2016年5月22日 星期日

2016年3月勞動部產學合作班(分組名單)

學員分組名單:

  1.    No.07   No.19    No.24
         在 CentOS7/RHEL7上安裝管理 RAID 5 檔案系統
  2.    No.02   No.03    No.04
         在 CentOS7/RHEL7 上架設 MRTG 主機網路流量監控系統
  3.    No.11   No.15    No.16
  4.      在 CentOS7/RHEL7 上架設 PXE 系統 (DiskLess System)
  5.    No.01   No.06    No.08
  6.      在 CentOS7/RHEL7 上安裝設定 Power DNS (Master-Slave With MySQL)
  7.    No.18   No.22    No.26
  8.      SNMP 網路管理協定實作統計 ( CACTI )
  9.    No.10   No.14    No.28
  10.      在 CentOS7/RHEL7 上設定 iSCSI (Target & Initiator)
  11.    No.23   No.25    No.29
  12.      在 CentOS7/RHEL7 上架設多部 PostgreSQL (Master-Slave Pgpool-II)
  13.    No.5     No.17    No.27
  14.      在 CentOS7/RHEL7 上架設 OpenVPN Server (Quick VPN)
  15.    No.9     No.20    No.21
  16.      在 CentOS7/RHEL7 上架設 HTTP 負載平衡系統 (Reverse-Proxy)
  17.    No.12   No.13    No.30
  18.      在 CentOS7/RHEL7 上安裝設定 E-mail Server (With MySQL)
專題製作要項:
  • 主題名稱
  • 基本原理說明
  • 系統架構與環境說明
  • 操作流程與步驟
  • 測試與結果
  • 結論

在 CentOS7/RHEL7 上架設 PostgreSQL Replication (Master-Slave)

設定目標:
  • 架設多部 PostgreSQL Server,並且設定 Replication 進行同步資料與備援!
    • 請參考這一篇的設定,架設好多部 PostgreSQL Server!
Master 端快速設定流程:
  1. 切換成 postgres 使用者:
    #su - postgres
    
  2. 建立用於 replication 的使用者帳密:
    $createuser --replication -P replica 
    
  3. 修改 PostgreSQL Server 相關設定:
    $vim /var/lib/pgsql/data/postgresql.conf
    (只修改下列設定:)
    listen_addresses = '*'
    wal_level = hot_standby
    
    ### 修改同步方式 ####
    # on ⇒ sync
    # remote_write ⇒ memory sync
    # local ⇒ slave is asynchronous
    # off ⇒ asynchronous
    synchronous_commit = local
    
    archive_mode = on
    archive_command = 'cp %p /var/lib/pgsql/archive/%f'
    
    ### 設定 Master 以及 Slave 主機數量 ###
    max_wal_senders = 2
    wal_keep_segments = 10
    
    ### 同步的主機名稱(可以任意定) ###
    synchronous_standby_names = 'slave01'
    
  4. 設定 pg_hba.conf 檔:
    $vim /var/lib/pgsql/data/pg_hba.conf
    ### 在檔尾追加下列設定 ###
    # host replication [replication user] [allowed IP addresses] password
    host    replication     replica          127.0.0.1/32            password
    host    replication     replica          192.168.5.244/32            password
    host    replication     replica          192.168.5.243/32            password
    
  5. 重新啟動 PostgreSQL Server:
    $pg_ctl restart 
    
Slave 端快速設定流程:
  1. 切換成 postgres 使用者:
    #su - postgres
    
  2. 由 Master 備份資料到 Slave (需要 replica 的密碼):
    $pg_basebackup -h 192.168.5.244 -U replica -D /var/lib/pgsql/data -P --xlog 
    
  3. 修改 PostgreSQL Server 相關設定:
    $vim /var/lib/pgsql/data/postgresql.conf
    (只修改下列設定,其餘設定保留)
    hot_standby = on
    
  4. 從範例檔複製設定檔:
    $cp /usr/share/pgsql/recovery.conf.sample /var/lib/pgsql/data/recovery.conf 
    
  5. 編修設定檔 /var/lib/pgsql/data/recovery.conf:
    $ vi /var/lib/pgsql/data/recovery.conf
    (只修改下列設定,其餘設定保留)
    restore_command = 'scp 192.168.5.244:/var/lib/pgsql/archive/%f %p'
    standby_mode = on
    ### 設定 Master Server 相關設定 ###
    primary_conninfo = 'host=192.168.5.244 port=5432 user=replica password=a123456 application_name=slave01'
    
  6. 重新啟動 PostgreSQL Server:
    $pg_ctl stop
    $pg_ctl start
    

參考文獻:

  1. http://www.server-world.info/en/note?os=CentOS_7&p=postgresql&f=3

在 CentOS7/RHEL7 上使用 phpPgAdmin

設定目標:
  • 利用 phpPgAdmin 管理 PostgreSQL Server!
    • 請參考這一篇的設定,架設好 PostgreSQL Server!
    • 請參考這一篇的設定,架設好 Web + PHP Server!
快速設定流程:
  1. 調整 SELinux 設定值:
    #setsebool -P httpd_can_network_connect_db 1
    
  2. 調整 PostgreSQL Server 設定值:
    #vim /var/lib/pgsql/data/postgresql.conf
    listen_addresses = '*'
    port = 5432
    
  3. 重新啟動 PostgreSQL Server:
    #systemctl restart postgresql
    
  4. 安裝 phpPgAdmin:
    #yum install phpPgAdmin php-pgsql
    
  5. 編修 Web Server 設定檔:
    #vim /etc/httpd/conf.d/phpPgAdmin.conf
    [...省略...]
    Alias /phpPgAdmin /usr/share/phpPgAdmin
    <Location /phpPgAdmin>
        <IfModule mod_authz_core.c>
            # Apache 2.4
            Require all granted
            #Require host example.com
        </IfModule>
        [...省略...]
    </Location>
    [...省略...]
    
  6. 重新啟動 Web Server:
    #systemctl restart httpd
    
  7. 編修 phpPgAdmin 設定檔:
    #vim /etc/phpPgAdmin/config.inc.php
    (只編修下列設定檔內容,其餘保留不動作!)
    $conf['servers'][0]['host'] = 'localhost';
    $conf['extra_login_security'] = false;
    $conf['owned_only'] = true;
    
  8. 連線至 phpPgAdmin :
    #firefox http://localhost/phpPgAdmin
    

參考文獻:

  1. http://www.unixmen.com/postgresql-9-4-released-install-centos-7/
  2. http://www.server-world.info/en/note?os=CentOS_7&p=postgresql&f=1
  3. http://www.server-world.info/en/note?os=CentOS_7&p=postgresql&f=2

在 CentOS7/RHEL7 上架設 PostgreSQL Server

快速設定流程:
  1. 安裝 PostgreSQL Server 套件:
    #yum install postgresql postgresql-server postgresql-contrib
    
  2. 初始化 PostgreSQL Database:
    #postgresql-setup initdb
    
  3. 修改認證設定檔:
    #vim /var/lib/pgsql/data/pg_hba.conf
    (將下列設定改成 md5 驗證方式)
    host    all             all             127.0.0.1/32            md5
    host    all             all             ::1/128                 md5
    
  4. 啟動 PostgreSQL Server:
    #systemctl start postgresql
    #systemctl enable postgresql
    
  5. 開啟防火牆設定:
    #firewall-cmd --permanent --add-service=postgresql
    #firewall-cmd --reload
    
※補充操作:
  1. 切換至 postgres 使用者:
    #su - postgres
    
  2. 執行 PostgresSQL Shell:
    $psql
    
  3. 設定 postgres 使用者密碼:
    postgres=# \password postgres 
    
  4. 離開 PostgresSQL Shell:
    postgres=# \q
    

參考文獻:

  1. https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-centos-7
  2. http://www.liquidweb.com/kb/how-to-install-and-connect-to-postgresql-on-centos-7/
  3. http://blog.xuite.net/towns/hc/323035660-PostgreSQL+%E5%AE%89%E8%A3%9D%E3%80%81%E8%A8%AD%E5%AE%9A%E8%88%87%E7%AE%A1%E7%90%86

在 CentOS7/RHEL7 上架設 DHCP Server

快速設定流程:
  1. 安裝 DHCP 套件:
    #yum install dhcp
    
  2. 複製範例設定檔:
    #cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
    
  3. 編輯設定檔:
    #vim /etc/dhcp/dhcpd.conf
    [...省略...]
    ### 設定子網段與 IP 位置配發範圍 ###
     subnet 192.168.5.0 netmask 255.255.255.0 {
     range 192.168.5.100 192.168.5.200;
    
    ### 指定 DNS IP 位置 ### 
     option domain-name-servers 168.95.1.1, 8.8.8.8;
    
    ### 指定網域名稱 ###
     option domain-name "example.com";
    
    ### 指定預設閘道與相關的路由協定 ###
     option routers 192.168.5.254;
     option broadcast-address 192.168.5.255;
    
    ### 指定租約更新時間 ###
     default-lease-time 600;
     max-lease-time 7200;
    }
    
    ### 指定特定主機的 IP 位置,避免該 IP 位置被配發出去 ###
    host mailserver {
     hardware ethernet 00:0C:29:05:A7:CB; 
     fixed-address 192.168.5.110; 
    } 
    
    [...省略...]
    
  4. 啟動 DHCP Server:
    #systemctl restart dhcpd
    #systemctl enable dhcpd
    
  5. 開啟防火牆設定:
    #firewall-cmd --permanent --add-service=dhcp
    #firewall-cmd --reload
    

參考文獻:

  1. http://www.server-world.info/en/note?os=CentOS_7&p=dhcp
  2. http://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/install-and-configure-dhcp-server-on-centos-7-ubuntu-14-04.html

在 CentOS7/RHEL7 上架設 OpenVPN Server

Server端快速設定流程:
  1. 安裝 EPEL 套件:
    #yum install epel-release
    
  2. 安裝 OpenVPN 以及快速加密套件:
    #yum install -y openvpn easy-rsa
    
  3. 利用 OpenVPN 範例檔,加快設定速度:
    #cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn
    
  4. 開啟 /etc/openvpn/server.conf, 修改以下設定::
    #vim /etc/openvpn/server.conf
    ### 修改 "dh" 設定:
    dh dh2048.pem
    
    ### 找到 "redirect-gateway def1 bypass-dhcp" 並將它解註解:
    push "redirect-gateway def1 bypass-dhcp"
    
    ### 修改 DNS 伺服器設定:
    push "dhcp-option DNS 8.8.8.8"
    push "dhcp-option DNS 8.8.4.4"
    
    ### 修改 "user" 及 "group" 設定:
    user nobody
    group nobody
    
    ### 註解 tls 認證功能 #### 
    #tls-auth ta.key 0 
    
    ### 開啟標頭壓縮功能 ####
    comp-lzo
    
  5. 建立 Easy RSA 設定檔目錄、及建立相關設定檔:
    # mkdir -p /etc/openvpn/easy-rsa/keys
    # cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa
    # cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf
    
  6. 修改 /etc/openvpn/easy-rsa/vars 設定值:
    #vim /etc/openvpn/easy-rsa/vars
    export KEY_COUNTRY=TW
    export KEY_PROVINCE=Taiwan
    export KEY_CITY=Kaohsiung
    export KEY_ORG="Happy Heaven"
    export KEY_EMAIL="test@gmail.com"
    export KEY_CN=""
    export KEY_NAME=""
    
  7. 用 Easy RSA 產生金鑰:
    # cd /etc/openvpn/easy-rsa
    # source ./vars
    # ./clean-all
    # ./build-ca
    # ./build-key-server server
    # ./build-dh
    
  8. 將金鑰複製到 OpenVPN 目錄:
    #cd /etc/openvpn/easy-rsa/keys
    #cp dh2048.pem ca.crt server.crt server.key /etc/openvpn
    
  9. 在 OpenVPN Server 產生 Client 端的認證金鑰:
    # cd /etc/openvpn/easy-rsa
    # ./build-key client
    
  10. 設定防火牆:
    #firewall-cmd --permanent --add-service=openvpn
    #firewall-cmd --permanent --add-masquerade
    #firewall-cmd --reload
    
  11. 編修 /etc/sysctl.conf:
    #vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1
    
  12. 重新導入 /etc/sysctl.conf:
    # sysctl -p
    
  13. 啟動 OpenVPN:
    #systemctl restart NetworkManager
    #systemctl -f enable openvpn@server
    #systemctl start openvpn@server
    

※補充建議:
  1. 請事先安裝好 HTTP Server,並且啟動!
  2. 複製下列三個檔案到 /var/www/html/keys 目錄下:
    #mkdir /var/www/html/keys
    #cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys/client.crt /etc/openvpn/easy-rsa/keys/client.key /var/www/html/keys
    
  3. 編修 client.ovpn 檔案:
    #vim /var/www/html/keys/client.ovpn
    client
    dev tun
    proto udp
    remote your_server_ip 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    comp-lzo
    verb 3
    ca /opt/keys/ca.crt
    cert /opt/keys/client.crt
    key /opt/keys/client.key
    
  4. 修正檔案權限設定:
    #cd /var/www/html/keys
    #chown apache.apache *
    #restoreconf -R /var/www/html
    

Client 端快速設定流程:
傋註:以 Linux 作業系統為例!
  1. 下載 Server 端上的四個檔案:
    #mkdir /opt/keys
    #cd /opt/keys
    #wget http://192.168.5.244/keys/client.crt
    #wget http://192.168.5.244/keys/ca.crt
    #wget http://192.168.5.244/keys/client.key
    #wget http://192.168.5.244/keys/client.ovpn
    ##restoreconf -R /opt/keys
    
  2. 安裝 OpenVPN :
    #yum install -y openvpn
    
  3. 連線 OpenVPN :
    #openvpn –config /path/to/client.ovpn
    
  4. 補充說明 client.ovpn 放入 key 值的設定 :
    #vim client.ovpn
    在檔案最下方,刪去 ca、cert、key 三行設定!
    接下來,加入下列設定....
    <ca>
    (把 ca.crt 檔案內容完整複製過來...)
    </ca>
    <key>
    (把 client.key 檔案內容完整複製過來...)
    </key>
    <cert>
    (把 client.crt 檔案內容完整複製過來...)
    </cert>

參考文獻:

  1. http://www.phpini.com/linux/centos-7-install-openvpn-server
  2. http://www.tecmint.com/setup-openvpn-server-with-linux-and-windows-clients-in-centos-rhel/
  3. http://dreamtails.pixnet.net/blog/post/30797812-centos-7-install-openvpn

2016年5月18日 星期三

在 CentOS7/RHEL7 上設定 iSCSI (二)

Target 快速設定流程:
  1. 安裝相關套件:
    #yum install iscsi-initiator-utils
    
  2. 編輯 Initiator 名稱:
    #vim /etc/iscsi/initiatorname.iscsi
    InitiatorName=iqn.2016-05.com.example:server2
    
  3. 啟動 Initiator 服務:
    #systemctl enable iscsi
    #systemctl restart iscsi
    
  4. 利用 iscsiadm 登入 iSCSI :
    #iscsiadm -m discovery -t st -p 192.168.5.244
    #iscsiadm -m node -T iqn.2016-05.com.example:server1.disk01 -p 192.168.5.244 -l
    
  5. 掛載 iSCSI 分出來的硬碟空間:
    #lsblk
    #tail /var/log/messages
    #fdisk /dev/sdb
    #mkfs -t ext4 /dev/sdb1
    #blkid /dev/sdb1
    #vim /etc/fstab
      UUID=xxxx   /mnt/data  ext4 _netdev 0 0
    
  6. 利用 iscsiadm 登出 iSCSI :
    #iscsiadm -m node -T iqn.2016-05.com.example:server1.disk01 -p 192.168.5.244 -u