- 網路參數的設定,請依據底下的方式來設定好你的網路環境:
- 因為我們的系統是 clone 來的,因此裡面的網路卡連線會跑掉。所以,請先刪除所有的連線界面後,
再依據底下的要求逐次建立好你的網路環境:
- 建立 eth0 為外部的連線網卡 (相同的連線界面名稱),使用 ethernet 類型,且:
- IPv4 的 IP位址: 172.18.255.*/24 ,其中 * 為老師規定的 IP 尾數
- gateway 為 172.18.255.254
- DNS 為 172.16.200.254 以及 168.95.1.1
- 使用 teamd 的機制建立內部區域網路的備援功能:
- team 的界面使用 team0 卡號,且連線名稱請命名為 team0
- team 使用 activebackup 備援功能,不要使用 loadbalance
- team 的實體網卡 (team slave) 請使用 eth1 及 eth2 ,且其連線名稱名稱亦請命名為 eth1, eth2
- 內部網路參數為: 172.19.*.254/24,不需要 gateway
- 主機名稱指定為: server*.example.dic
- 最終你的主機名稱與 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
- 基本的伺服器作業系統設定行為:
- 使用崑山的 FTP 網站作為你的 YUM server 來源,並且清除一次 yum 清單快取
- 安裝相關的軟體,至少須安裝 vim-enhanced, bash-completion, net-tools, mailx, wget, links, bind-utils
- 全系統自動升級,且每天凌晨 3 點也會自動升級一次。(請寫入 /etc/crontab 為主)
- 將 SELinux 修改成為 Enforcing 模式,且未來每次開機都自動為 Enforcing 才行
- 實際設定好本機防火牆
- 請關閉 firewalld 服務,並且自行安裝、啟動 iptables 服務
- 將預設的規則轉存到 /root/firewall.sh 這個檔案內
- 首先將全部的規則刪除 (應該有三條指令)
- 設定好預設政策,讓 INPUT 成為 DROP 而 OUTPUT 與 FORWARD 成為 ACCEPT
- 針對 INPUT 前三條規則為 (1)回應封包 (2)放行 lo 界面 (3)放行 icmp 封包
- 放行你自己的內部區域網路那個網域的連線要求
- 讓 ssh 只對外部的區網放行,不會對 Internet 放行
- 讓 http 針對整個 Internet 放行
- 最後讓確定的規則轉存到 /etc/sysconfig/iptables 這個設定檔
- 重新啟動 iptables 服務,然後觀察規則是否正確
- 實際設定好 Server 的路由功能
- 讓核心支援 IP 轉遞的功能
- 修改 /root/firewall.sh ,增加刪除 nat 表格的規則與自訂鏈
- 增加讓來自內部網路的封包,並預計由 eth0 對外網卡出去的封包,全部偽裝成為 eth0 的 public IP
- 在 /etc/sysconfig/iptables-config 當中增加 nf_nat_ftp 及 nf_conntrack_ftp 模組功能
- 此功能在開機後依舊能夠順利啟動
- 針對 sshd 服務的相關設定項目:
- 由於某些緣故,這個系統的 sshd 必須要同時開啟 port 22 以及 port 3131,且開機完畢就啟動這兩個埠口
- 承上,針對 port 3131 的防火牆設定中:
- 除了兩段區網需要放行之外 (eth0 與 team0 的所在網域)
- 還需要針對 10.0.0.0/8 放行
- 但是 10.10.10.0/24 這個區段必須要拒絕使用 port 3131
- 建立三個帳號,帳號名稱分別為 localuser1, localuser2, localuser3,三個帳號均加入 nosshgrp 次要群組支援,
這三個帳號的密碼均為 123hehe。此外,這三個帳號可以使用本機 tty1~tty6 登入系統取得 bash 界面,但是不能使用 ssh 遠端登入!
- sshd 這個服務拒絕直接以 root 的身份登入系統。
yum install setroubleshoot-*
vim /etc/ssh/sshd_config
取消註解 #Port 22
新增Port 3131
semanage port -a -t ssh_port_t -p tcp 3131
systemctl restart sshd
netstat -tlunp //檢查是否啟動
vim /root/firewall.sh
#!/bin/bash
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -s 172.19.*.0/24 -j ACCEPT
iptables -A INPUT -s 172.18.255.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 10.10.10.0/24 -p tcp -m tcp --dport 3131 -j REJECT
iptables -A INPUT -s 172.18.255.0/24 -p tcp -m tcp --dport 3131 -j ACCEPT //針對 port 3131 放行
iptables -A INPUT -s 172.19.*.0/24 -p tcp -m tcp --dport 3131 -j ACCEPT
iptables -A INPUT -s 10.0.0.0/8 -p tcp -m tcp --dport 3131 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -j REJECT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -t nat -A POSTROUTING -s 172.19.*.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
sh /root/firewall.sh
groupadd nosshgrp
useradd -G nosshgrp localuser1
useradd -G nosshgrp localuser2
useradd -G nosshgrp localuser3
echo 123hehe | passwd --stdin localuser1
echo 123hehe | passwd --stdin localuser2
echo 123hehe | passwd --stdin localuser3
vim /etc/ssh/sshd_config
最底下新增 DenyGroups nosshgrp
vim /etc/ssh/sshd_config
取消註解 #PermitRootLogin yes
改成 PermitRootLogin no
systemctl restart sshd
- 針對異地備份的功能設置
- 在 server 上面寫一隻名為 /root/bin/backup.sh 的腳本,這個腳本會進行:
- 以 rsync 透過 ssh 通訊協定,將 Server 上的 /etc, /home, /root, /var/spool/mail 等目錄備份到 client 端的 /backups/ 裡面去
- 必須要在 Server 上面以 root 的身份進行這個備份的動作,而且備份到 client 時,也是以 root 的身份登入到 client 上面。
- 進行 ssh 協定時,需要使用 arcfour 的加密機制,這是為了避免 client 機器沒有支援 AES 的緣故。
- 上述腳本在運作中,不需要輸入密碼。
- 該腳本每日凌晨 3 點進行一次。
mkdir /root/bin
vim /root/bin/backup.sh
chmod 755 /root/bin/backup.sh
yum install rsync
#!/bin/bash
rsync -av -e "ssh -c arcfour" /etc /home /root /var/spool/mail root@172.19.*.1:/backups/
ssh-keygen
ll ~/.ssh
ssh-copy-id -i ~/.ssh/id_rsa root@172.19.*.1
vim /etc/crontab
新增 0 3 * * * root sh /root/bin/backup.sh
- 針對圖形界面 VNC 服務的啟動
- Server 為了圖形界面 VNC,請額外安裝 gnome-session, gnome-classic-session, gnome-terminal 等軟體
- 使用 student 的身份建立好 VNC 的服務,且服務密碼為 mystudent,埠口開在 5907 上面。
- 在 5901 ~ 5910 這一連續的埠口可以針對 172.30.0.0/16 這一段網域放行。
- 每次系統開機都會主動啟動 port 5907 這一段 VNC 服務。
yum install tigervnc-server
yum install gnome-session
yum install gnome-classic-session
yum install gnome-terminal
su - student
vncserver :7
password: mystudent
vim /root/firewall.sh
#!/bin/bash
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -s 172.19.*.0/24 -j ACCEPT
iptables -A INPUT -s 172.18.255.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 10.10.10.0/24 -p tcp -m tcp --dport 3131 -j REJECT
iptables -A INPUT -s 172.18.255.0/24 -p tcp -m tcp --dport 3131 -j ACCEPT
iptables -A INPUT -s 172.19.*.0/24 -p tcp -m tcp --dport 3131 -j ACCEPT
iptables -A INPUT -s 10.0.0.0/8 -p tcp -m tcp --dport 3131 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -s 172.30.0.0/16 -p tcp -m tcp --dport 5901:5910 -j ACCEPT //放行
iptables -A INPUT -j REJECT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -t nat -A POSTROUTING -s 172.19.*.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
sh /root/firewall.sh
vim /etc/systemd/system/vncserver@.service
systemctl daemon-reload
systemctl enable vncserver@:7.service
systemctl status vncserver@:7.service