- 網路參數的設定,請依據底下的方式來設定好你的網路環境:
- 因為我們的系統是 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 服務,然後觀察規則是否正確
systemctl status firewalld //查看firewalld狀態
systemctl stop firewalld //關閉firewalld
systemctl disable firewalld //預設關閉firewalld
yum install iptables-services //安裝iptables
systemctl start iptables //啟動iptables
systemctl enable iptables //預設啟動iptables
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 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -j REJECT
iptables-save > /etc/sysconfig/iptables //轉存
sh /root/firewall.sh //編輯腳本
- 實際設定好 Server 的路由功能
- 讓核心支援 IP 轉遞的功能
- 修改 /root/firewall.sh ,增加刪除 nat 表格的規則與自訂鏈
- 增加讓來自內部網路的封包,並預計由 eth0 對外網卡出去的封包,全部偽裝成為 eth0 的 public IP
- 在 /etc/sysconfig/iptables-config 當中增加 nf_nat_ftp 及 nf_conntrack_ftp 模組功能
- 此功能在開機後依舊能夠順利啟動
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p //啟用設定
cat /proc/sys/net/ipv4/ip_forward //觀察是否生效 (1 是有生效, 0 是未生效)
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 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -j REJECT
iptables -t nat -F
iptables -t nat -X //NAT設定
iptables -t nat -Z
iptables -t nat -A POSTROUTING -s 172.19.*.0/24 -o eth0 -j MASQUERADE //IP 偽裝
iptables-save > /etc/sysconfig/iptables //轉存
sh /root/firewall.sh //編輯腳本
vim /etc/sysconfig/iptables-config
IPTABLES_MODULES="nf_nat_ftp nf_conntrack_ftp"
- 針對 NAT 的設定行為:
- 讓由 eth0 進入的封包,想要連線到本機的 port 82 時,重新導向到 172.19.*.1 的 port 80 上面去。
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 -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 //IP 偽裝
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 82 -j DNAT --to-destination 172.19.*.1:80 //重新導向
iptables-save > /etc/sysconfig/iptables //轉存
sh /root/firewall.sh //編輯腳本