2016年3月30日 星期三

在 CentOS7/RHEL7 上安裝設定 RoundCube Webmail

快速設定流程:
  1. 事前準備:

  2. 安裝 RoundCube Webmail 套件:
    #yum -y install roundcubemail
    
    ※ PS:
    (1) 主要程式目錄:/usr/share/roundcubemail
    (2) 主要設定檔目錄:/etc/roundcubemail
    (3) 與 web 伺服器相關設定檔:/etc/httpd/conf.d/roundcubemail.conf

  3. 加裝 php-mcrypt 套件:
    #yum -y install php-mcrypt
    
  4. 編修 /etc/httpd/conf.d/roundcubemail.conf 檔案:
    #vim /etc/httpd/conf.d/roundcubemail.conf
    ##先暫時註解所有項目,加入下列項目設定,方便遠端安裝與測試!
    
    <Directory /usr/share/roundcubemail/>
     Options none
     AllowOverride Limit
     Require all granted
    </Directory>
    <Directory /usr/share/roundcubemail/installer>
     Options none
     AllowOverride Limit
     Require all granted
    </Directory>
    
    
  5. 修改 php.ini 內的時區設定:
    #vim /etc/php.ini
    date.timezone = "Asia/Taipei"
    
  6. 重新啟動 Apache Server
    #systemctl restart httpd
    
  7. 打開文字介面視窗,解開 SELinux 的限制:
    #setsebool -P httpd_can_network_connect on
    
  8. 打開瀏覽器,連結網址: http://www.example.com/roundcubemail/installer
    ※ PS:請確認所有項目均出現 OK !(SQL項目只需要 MySQL 與 SQLLite 項目 OK 即可!)

  9. 按<<NEXT>>按鈕,進行下一步!

  10. 填入下列資料:
    • product_name:網站標題名稱
    • support_url:技術支援網址!可填入 mailto:xxx@domain.name
    • db_dsnw:填入資料庫相關資料內容!建議先建立好 MySQL 資料庫後,再填入!
    • default_host:指定提供 IAMP 服務的主機!
    • auto_create_user:一定要勾選!

  11. 按<< CREATE CONFIG >>按鈕,形成設定檔內容!

  12. 按<< DOWNLOAD>>按鈕,下載 config.inc.php 檔案,並且送進主機的 /etc/roundcubemail 目錄內!

  13. 按<<CONTINUE>>按鈕,進行下一步驟!

  14. 按<<Initialize database>>按鈕,進行資料庫初始化!
    ※ PS:請確認所有項目均出現 OK

  15. 新增一個使用者,用來測試 web mail !!
    #useradd peter
    #passwd peter
    
  16. 打開瀏覽器,連線至http://www.example.com/roundcubemail
    利用 peter 帳號登入!

補充要項:
  • SMTP 寄信主機設定:
    #vim /etc/roundcubemail/config.inc.php
    $config['smtp_server'] = '%h';
    

可用連結參考:
  • https://github.com/roundcube/roundcubemail/wiki/Configuration

2016年3月29日 星期二

XFS 檔案系統管理

Quota (磁碟配額) 的使用
  • 安裝 quota 套件:
    #yum -y install quota
    
  • 使用 xfs_quota 指令與格式
    xfs_quota [option] [mount_point]
    
    [option]
    • -x:專家模式
    • -c:配合專家模式,在後面追加下列指令:
      • print:列出目前主機內的檔案系統參數資料
      • df:與系統指令 df 功能相同
      • report:列出 quota 資料,可用參數包含 -ugr (user/group/project) 及 -bi (block/inode)
      • state:顯示目前 quota 資訊
      • limit:限制配額空間,針對 user/group 來限制
          指令格式limit [-ug] b[soft|hard]=N i[soft|hard]=N name
          bsoft/bhard : block 限制值,後面可以加上空間單位
          isoft/ihard : inode 限制值
          name:用戶/群組名稱
      • timer:設定 grace time
          指令格式timer [-ug] [-bir] Ndays
    [mount_point]
    • 檔案系統掛載點
  • 使用範例與測試:
    範例一:
    1. 編輯 /etc/fstab 檔案,加入 quota 功能:
      #vim /etc/fstab
      UUID=XXXX  /webhome  xfs  defaults,usrquota,grpquota  0  0
      
    2. 重新掛載檔案系統:
      #mount -o remount -a
      
    3. 查看所有相關的訊息:
      #xfs_quota -x -c "print"
      #xfs_quota -x -c "df -h" /home
      #xfs_quota -x -c "report -ubih" /home
      #xfs_quota -x -c "state"
      
    4. 編寫設定:
      #xfs_quota -x -c "limit -u bsoft=1024M bhard=1500M user1" /webhome
      #xfs_quota -x -c "timer -u -b 30days" /webhome
      
    5. 測試:
      #su - user1
      $dd if=/dev/zero of=/webhome/123.img bs=1M count=1300
      $ls -al /webhome/123.img
      $exit
      #xfs_quota -x -c "report -ubh" /webhome
      

在 CentOS7/RHEL7 上安裝設定 E-mail Server(一)

快速設定流程:
  1. 安裝 Postfix 套件:
    #yum -y install postfix dovecot
    
  2. 編修設定檔 /etc/postfix/main.cf:
    #vim /etc/postfix/main.cf
    myhostname = mail.example.com
    mydomain = example.com
    myorigin = $mydomain
    mynetworks_style = class
    mynetworks = 127.0.0.0/8, 192.168.100.0/24
    
    inet_interfaces = all
    mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost
    mail_spool_directory = /var/mail
    
    home_mailbox = Maildir/
    mailbox_size_limit = 0  #原設定參數沒有
    message_size_limit = 0  #請自己加上即可
    
  3. 編修設定檔 /etc/dovecot/dovecot.conf:
    #vim /etc/dovecot/dovecot.conf
    protocols = imap pop3
    
  4. 編修設定檔 /etc/dovecot/conf.d/10-mail.conf:
    #vim /etc/dovecot/conf.d/10-mail.conf
    mail_location = mbox:~/mail:INBOX=/var/mail/%u
    
  5. 設定防火牆,放行 smtp 與 imap 的服務:
    #firewall-cmd --permanent --add-service=smtp
    #firewall-cmd --permanent --add-port=110/tcp
    #firewall-cmd --permanent --add-port=143/tcp
    #firewall-cmd --reload
    
  6. 設定 SELinux :
    #setsebool -P postfix_local_write_mail_spool on
    
  7. 啟動 smtp 與 imap 的服務:
    #systemctl enable postfix
    #systemctl enable dovecot
    #systemctl start postfix
    #systemctl start dovecot
    
  8. 發送 mail ,檢測服務是否運作正常:
    #mail student@mail.example.com
    Subject:  test
    Hello World!
    .
    
  9. 查看一下 /var/log/maillog 的記錄 :
    #tail /var/log/maillog
    
  10. 可以利用 mutt 或 thunderbird 來檢測:
    #yum -y install thunderbird mutt
    
    mutt 的小設定
    #su - student
    $vim ~/.muttrc
    set mbox_type=Maildir
    set folder="~/Maildir"
    set mask="!^\\.[^.]"
    set mbox="~/Maildir"
    set record="+.Sent"
    set postponed="+.Drafts"
    set spoolfile="~/Maildir"
    
    使用 mutt 來測試:
    $mutt
    
PS: 值得參考的連結:
  1. http://www.nurdletech.com/linux-notes/mail-server/postfix.html
  2. http://blog.kevinlinul.idv.tw/?p=225#comment-16
  3. http://www.elho.net/mutt/maildir/

2016年3月28日 星期一

在 CentOS7/RHEL7 上安裝設定 BIND

快速設定流程:
  1. 安裝 BIND 套件:
    #yum -y install bind bind-libs bind-chroot bind-utils
    
  2. 編修設定檔 /etc/named.conf:
    #vim /etc/named.conf
    options {
            listen-on port 53  { any; };
            //listen-on-v6 port 53 { ::1; };
            directory          "/var/named";
            dump-file          "/var/named/data/cache_dump.db";
            statistics-file    "/var/named/data/named_stats.txt";
            memstatistics-file "/var/named/data/named_mem_stats.txt";
            allow-query        { localhost; 192.168.100.0/24; };
            recursion yes;
    
            dnssec-enable yes;
            dnssec-validation yes;
            dnssec-lookaside auto;
            bindkeys-file "/etc/named.iscdlv.key";
    
            managed-keys-directory "/var/named/dynamic";
    
            pid-file "/run/named/named.pid";
            session-keyfile "/run/named/session.key";
    };
    
    logging {
            channel default_debug {
               file "data/named.run";
               severity dynamic;
            };
    };
    
    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";
    
    zone "." IN {
            type hint;
            file "named.ca";
    };
    //設定所管轄的網域名稱對IP正解析
    zone "example.com" IN {
            type master;
            file "example.zone";
    };
    //設定所管轄的網域名稱對IPv4反解析
    zone "100.168.192.in-addr.arpa" IN {
            type master;
            file "example.reverse";
    };
    
  3. 編修example.com網域正解析記錄檔 /var/named/example.zone:
    #vim /var/named/example.zone
    $TTL 10
    @        IN SOA dns1.example.com. root (
             2016032901;
             1H;
             2D;
             3W;
             10 )
    @        IN NS dns1.example.com.
    @        IN A 192.168.100.183
    @        IN MX 10 mail
    
    dns1.example.com. IN A 192.168.100.183
    mail              IN A 192.168.100.183
    ftp               IN A 192.168.100.183
    www               IN A 192.168.100.183
    
  4. 編修example.com網域正解析記錄檔 /var/named/example.reverse:
    #vim /var/named/example.reverse
    $TTL 10
    @        IN SOA dns1.example.com. root (
             2016032901;
             1H;
             2D;
             3W;
             10 )
    @        IN NS dns1.example.com.
    183      IN PTR dns1.example.com.
    
    183      IN PTR mail.example.com.
    183      IN PTR www.example.com.
    183      IN PTR ftp.example.com. 
    
  5. 設定防火牆,放行 DNS 服務:
    #firewall-cmd --permanent --add-service=dns
    #firewall-cmd --reload
    
  6. 啟動 DNS Server 服務:
    #systemctl stop named
    #systemctl disable named
    #systemctl enable named-chroot
    #systemctl start named-chroot
    
  7. 設定本機查詢的 DNS Server:
    #vim /etc/resolv.conf
    search example.com
    nameserver 192.168.100.183
    
檢測工具:
  1. 利用 rndc 工具:
    #rndc status
    #rndc reload
    
  2. 利用 dig 工具:
    #dig example.com NS
    #dig example.com A
    #dig -x 192.168.100.183
    

2016年3月21日 星期一

在 CentOS7/RHEL7 上安裝 MariaDB

快速設定流程:
  1. 安裝 MySQL/MariaDB 套件:
    #yum -y install mariadb mariadb-server mariadb-bench
    
  2. 啟動 MySQL Server :
    #systemctl start mariadb.service
    #systemctl enable mariadb.service
    
  3. 查詢預設 root 密碼:
    #systemctl status mariadb -l
    #less /var/log/messages
    
  4. 設定 root 密碼:
    #/usr/bin/mysqladmin -u root password 'a123456!'
    #/usr/bin/mysqladmin -u root -h localhost.localdomain password 'a123456!'
    
  5. ※PS:可以執行 mysql_secure_installation 指令來設定 root 密碼
  6. 開通防火牆設定:
    #firewall-cmd --permanent --add-service=mysql
    #firewall-cmd --reload
    
  7. 測試 MariaDB:
    #mysql -u root -p
    

安裝 phpMyAdmin 管理程式:
  1. 下載 phpMyAdmin 套件:
    #wget -d /var/www/html/ https://files.phpmyadmin.net/phpMyAdmin/4.4.15.5/phpMyAdmin-4.4.15.5-all-languages.tar.gz
    
  2. 解開 phpMyAdmin 套件:
    #cd /var/www/html
    #tar zxvf phpMyAdmin-4.4.15.5-all-languages.tar.gz
    #mv phpMyAdmin-4.4.15.5-all-languages phpMyAdmin
    

在 CentOS7/RHEL7 上設定 Web Server

基本設定流程:
  1. 安裝 Web Server 套件:
    #yum -y install httpd
    
  2. 設定啟動 Web Server 服務:
    #systemctl enable httpd.service
    #systemctl start httpd.service
    #systemctl status httpd.service
    
  3. 設定開通防火牆:
    #firewall-cmd --permanent --add-service=http
    #firewall-cmd --reload
    
Apache 相關設定檔案:
  1. 主要設定檔:/etc/httpd/conf/httpd.conf
  2. 設定檔目錄:/etc/httpd/conf.d/
  3. 網頁放置目錄:/var/www/html

安裝 PHP 模組:
  1. 安裝 PHP 模組套件:
    #yum -y install php php-bcmath php-cli php-common php-dba php-devel php-embedded php-enchant php-fpm php-gd php-intl php-ldap php-mbstring
    #yum -y install php-mysqlnd php-odbc php-pdo php-process php-pspell php-recode php-snmp php-soap php-xml php-xmlrpc rrdtool-php uuid-php php-pecl-memcache
    
    或是
    #yum -y install php-* --skip-broken php-mysql
  2. 重新啟動 Web Server 服務:
    #systemctl restart httpd.service
    

在 CentOS7/RHEL7 上架設 Samba Server

基本設定流程:
  1. 安裝 Samba Server 套件:
    #yum -y install samba
    
  2. 設定欲分享目錄:
    #mkdir /sharedpath
    
  3. 設定 SELinux 限定規則:
    #semanage fcontext -a -t samba_share_t '/sharedpath(/.*)?'
    #restorecon -RFvv /sharedpath
    
  4. 設定 Samba Server 設定檔:
    #vim /etc/samba/smb.conf
     [global]
      workgroup = WORKGROUP
      interfaces = lo eth0 192.168.1.1/24
      hosts allow = 127. 192.168.1.
     [myshare]
       path = /sharedpath
       writable = no
       valid users = fred, @management
    
  5. 開啟 SELinux 存取規則:
    #setsebool -P samba_enable_home_dirs=on
    #restorecon -RFvv /sharedpath
    
  6. 在 Samba Server 上,検查設定項目是否正確:
    #testparm
    
  7. 在 Samba Server 上,新增一般的使用者帳號與密碼:
    #useradd -s /sbin/nologin fred
    
  8. 在 Samba Server 上,安裝管理使用者的套件:
    #yum -y install samba-client
    
  9. 在 Samba Server 上,設定可存取 Samba Server的使用者帳號與密碼:
    #smbpasswd -a fred
    
  10. 啟動 Samba Server:
    #systemctl start smb nmb
    #systemctl enable smb nmb
    
  11. 在 Samba Server 上,開啟防火牆設定:
    #firewall-cmd --permanent --add-service=samba
    #firewall-cmd --reload
    
  12. 在 client 端,掛載 Samba Server 所分享目錄:
    #mkdir /mnt/myshare
    #mount -t cifs -o username=fred //server/myshare /mnt/myshare
    

在 CentOS7/RHEL7 上架設 NFS Server

基本設定流程:
  1. 設定 NFS Server 之前,須安裝 nfs-utils 套件:
    #yum -y install nfs-utils
    
  2. 啟動 NFS Server :
    #systemctl start nfs-server.service
    #systemctl enable nfs-server.service
    
  3. 開通防火牆:
    #firewall-cmd --permanent --add-service=nfs
    #firewall-cmd --reload
    
  4. 在 NFS Server 上,建立分享目錄:
    #mkdir /myshare
    
  5. 在 NFS Server 上,設定分享目錄權限:
    #vim /etc/exports
     /myshare  *.example.com(rw) 10.0.0.0/8(ro)
    
  6. 在 NFS Server 上,發佈分享目錄:
    #exportfs -r
    
  7. 在 NFS Server 上,啟動 SELiux 放行規定:
    #setsebool -P nfs_export_all_rw on
    #setsebool -P nfs_export_all_ro on
    
  8. 在 NFS Server 上,查詢分享狀態:
    #showmount -e
    
  9. 在 client 端,掛載 NFS Server 所分享目錄:
    #mkdir /mnt/nfsshare
    #mount -t nfs server:/myshare /mnt/nfsshare