1. (60%)實作題:啟動 Server 作業硬碟 - unit08
    1. 網路參數的設定,請依據底下的方式來設定好你的網路環境:
      1. 因為我們的系統是 clone 來的,因此裡面的網路卡連線會跑掉。所以,請先刪除所有的連線界面後, 再依據底下的要求逐次建立好你的網路環境:
      2. 建立 eth0 為外部的連線網卡 (相同的連線界面名稱),使用 ethernet 類型,且:
        • IPv4 的 IP位址: 172.18.255.*/24 ,其中 * 為老師規定的 IP 尾數
        • gateway 為 172.18.255.254
        • DNS 為 172.16.200.254 以及 168.95.1.1
      3. 使用 teamd 的機制建立內部區域網路的備援功能:
        • team 的界面使用 team0 卡號,且連線名稱請命名為 team0
        • team 使用 activebackup 備援功能,不要使用 loadbalance
        • team 的實體網卡 (team slave) 請使用 eth1 及 eth2 ,且其連線名稱名稱亦請命名為 eth1, eth2
        • 內部網路參數為: 172.19.*.254/24,不需要 gateway
      4. 主機名稱指定為: server*.example.dic
      5. 最終你的主機名稱與 IP 的對應為:
        server*.example.dic	172.18.255.*		別名為 server*
        server254.example.dic	172.18.255.254		別名為 server254
        server.lan*.example.dic	172.19.*.254		別名為 server
        client.lan*.example.dic	172.19.*.1		別名為 client
        
    2. 基本的伺服器作業系統設定行為:
      1. 使用崑山的 FTP 網站作為你的 YUM server 來源,並且清除一次 yum 清單快取
      2. 安裝相關的軟體,至少須安裝 vim-enhanced, bash-completion, net-tools, mailx, wget, links, bind-utils
      3. 全系統自動升級,且每天凌晨 3 點也會自動升級一次。(請寫入 /etc/crontab 為主)
      4. 將 SELinux 修改成為 Enforcing 模式,且未來每次開機都自動為 Enforcing 才行
    3. 實際設定好本機防火牆
      1. 請關閉 firewalld 服務,並且自行安裝、啟動 iptables 服務
      2. 將預設的規則轉存到 /root/firewall.sh 這個檔案內
      3. 首先將全部的規則刪除 (應該有三條指令)
      4. 設定好預設政策,讓 INPUT 成為 DROP 而 OUTPUT 與 FORWARD 成為 ACCEPT
      5. 針對 INPUT 前三條規則為 (1)回應封包 (2)放行 lo 界面 (3)放行 icmp 封包
      6. 放行你自己的內部區域網路那個網域的連線要求
      7. 讓 ssh 只對外部的區網放行,不會對 Internet 放行
      8. 讓 http 針對整個 Internet 放行
      9. 最後讓確定的規則轉存到 /etc/sysconfig/iptables 這個設定檔
      10. 重新啟動 iptables 服務,然後觀察規則是否正確
    4. 實際設定好 Server 的路由功能
      1. 讓核心支援 IP 轉遞的功能
      2. 修改 /root/firewall.sh ,增加刪除 nat 表格的規則與自訂鏈
      3. 增加讓來自內部網路的封包,並預計由 eth0 對外網卡出去的封包,全部偽裝成為 eth0 的 public IP
      4. 在 /etc/sysconfig/iptables-config 當中增加 nf_nat_ftp 及 nf_conntrack_ftp 模組功能
      5. 此功能在開機後依舊能夠順利啟動
    5. 基本的網芳分享設定
      1. 僅有自己的 (1) lo 亦即是 localhost 內部網路、 (2)外部網域、(3)內部網域可以使用自己這部伺服器的 Samba 服務;
      2. 這部 Samba 的工作群組為 LINUX,而主機名稱使用 stationXX
      3. 讓 alex, dora, vitor 能夠使用網芳取得自己的家目錄,且能夠從遠端掛載使用! 這三個帳號的密碼都是 mylinux
    6. yum install samba
      yum install samba-client
      yum install samba-common
      
      systemctl start smb
      systemctl enable smb
      
      vim /etc/samba/smb.conf
      
      [global]
      	workgroup = LINUX
      	netbios name = stationXX
      	hosts allow = 127. 172.18.255. 172.19.*.
      
      useradd alex
      useradd dora
      useradd vitor
      
      pdbedit -a -u alex
      pdbedit -a -u dora
      pdbedit -a -u vitor
      
      setsebool -P samba_enable_home_dirs on
      
      systemctl restart smb
      
    7. 專題共享之 Samba 設定
      1. alex, dora, vitor 為三個專題組員,他們預計加入群組名稱為 vhost 群組的次要群組支援
      2. 這三個人想要共享 /srv/myvhost 目錄,這三個帳號可以具有完整權限,但非專題組員則沒有任何權限
      3. 這三個人想要使用 Samba 分享資源,分享的目錄就這個 /srv/myvhost,但分享的資源名稱想設定為 vhostdir, 且這個目錄是可以被瀏覽的,但需要有帳密才能登入!
      4. 另建立一個名為 admin1 的帳號,這個帳號可以唯讀使用 /srv/myvhost,且可以完整使用 /srv/myvhost/toadmin 目錄。
      5. admin1 也可以使用 vhostdir 這個 Samba 資源,且登入密碼為 myadmin。
    8. groupadd vhost
      usermod -G vhost alex
      usermod -G vhost dora
      usermod -G vhost vitor
      
      mkdir /srv/myvhost
      chgrp vhost /srv/myvhost
      chmod 2770 /srv/myvhost
      
      useradd admin1
      pdbedit -a -u admin1
      mkdir /srv/myvhost/toadmin
      setfacl -m d:u:admin1:rx /srv/myvhost
      setfacl -m d:u:admin1:rwx /srv/myvhost/toadmin
      
      vim /etc/samba/smb.conf
      
      [vhostdir]
      	path = /srv/myvhost
      	public = no
      	browseable = yes
      	writable = yes
      	create mask = 0664
      	directory mask = 0775
      	valid users = admin1, @vhost
      
      cifscreds add 127.0.0.1
      chcon -t samba_share_t /srv/myvhost -R
      
      systemctl restart smb
      
  2. (30%)實作題:啟動 client 作業硬碟
    1. 網路參數的設定,請依據底下的方式來設定好:
      1. 因為我們的系統是 clone 來的,因此裡面的網路卡連線會跑掉。所以,請先刪除所有的連線界面後, 再依據底下的要求逐次建立好你的網路環境:
      2. 建立 eth0 的連線網卡 (相同的連線界面名稱),使用 ethernet 類型,且:
        • IPv4 的 IP位址: 172.19.*.1/24 ,其中 * 為老師規定的 IP 尾數
        • gateway 為 172.19.*.254
        • DNS 為 172.16.200.254 以及 168.95.1.1
      3. 主機名稱指定為: client.lan*.example.dic
      4. 最終你的主機名稱與 IP 的對應為:
        server*.example.dic	172.18.255.*		別名為 server*
        server254.example.dic	172.18.255.254		別名為 server254
        server.lan*.example.dic	172.19.*.254		別名為 server
        client.lan*.example.dic	172.19.*.1		別名為 client
        
    2. 實際設定好本機防火牆
      1. 預設請使用 firewalld 防火牆服務,不要使用 iptables 服務!
      2. 預計放行的服務主要有 ssh 與 http 兩個服務,其他還可能有預設會啟用的 dhcp 用戶端服務。
      3. 查詢 rich rule (man firewalld.richlanguage),確認來自本機同一個 LAN 網段的封包,通通給予放行。
      4. 上述放行的防火牆服務,在下次重新開機後,依舊會存在才行
    3. Samba 的掛載與使用
      1. 讓來自你 server 的 vhostdir 掛載到本機的 /srv/myvhost 目錄下
      2. 預設使用 alex 的帳密掛載上述資源,但帳密請寫入 /root/alex.txt 當中,同時,開機就可以掛載此目錄。
      3. 系統上面有個名為 dora 的帳號 (自己建置,且此帳號的 UID 需要與 Samba Server 相同才行!) 另外,當 dora 要使用此目錄時,可以透過 cifscreds 更改自己的認證來登入此系統。
    4. yum install smb-client
      yum install smb-common
      yum install cifs-utils
      
      mkdir /srv/myvhost
      
      vim /root/alex.txt
      
      username=alex
      password=mylinux
      
      vim /etc/fstab
      
      //172.19.219.254/vhostdir /srv/myvhost cifs  defaults,credentials=/root/alex.txt,_netdev,multiuser,sec=ntlmssp 0 0
      
      mount -a
      cifscreds add -u alex 172.19.219.254
      
      useradd -u "SambaServer UID" dora
      (pdbedit -L 查看)