- 網路參數的設定,請依據底下的方式來設定好你的網路環境:
- 因為我們的系統是 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 模組功能
- 此功能在開機後依舊能夠順利啟動
- 內部私有 VLAN 的設定
- 先取消 team0 的網路設定 (取消 IP 等參數的設定值)
- 指定一個名為 vlanXX 的 VLAN 環境,其中 XX 為 VLAN ID,該 ID 為你的 IP 尾數,且該 VLAN 使用 team0 作為實體網卡
- 使用 MTU 設定為 1400
- vlanXX 的網路參數使用原本設定於 team0 上面的網路參數。
nmcli connection modify team0 ipv4.method disabled ipv6.method ignore ipv4.addresses ""
nmcli connection add con-name vlan* ifname vlan* type vlan id * dev team0
nmcli connection modify vlan* 802-3-ethernet.mtu 1400
nmcli connection modify vlan* ipv4.method manual ipv4.addresses 172.19.*.254/24
- DHCP 伺服器的設定
- 以 vlanXX 的網路環境為準,定義出一個內部的 DHCP 管理的區域網路,該網路的特色為:
- 預留 172.19.*.1 ~ 172.19.*.100 作為保留給未來固定 IP 位址所使用
- 其中 172.19.*.101 ~ 172.19.*.200 作為動態分配給其他用戶端
- 你的 client 透過網卡,給予固定的 172.19.*.1 的 IP 位址參數
- 其他參數請參考數周以來的網路環境 (包括主機名稱、gateway、DNS等等)
- 請記得務必放行 dhcp 的使用權 (防火牆的規範)
yum install dhcp
vim /etc/dhcp/dhcpd.conf
option domain-name "lan*.example.dic";
option domain-name-servers 172.16.200.254,168.95.1.1;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 172.19.*.0 netmask 255.255.255.0 {
range 172.19.*.101 172.19.*.200;
option routers 172.19.*.254;
}
host client {
hardware ethernet 52:54:00:XX:XX:XX;
fixed-address 172.19.*.1;
}
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 -p udp --dport 67 -i vlan* -j ACCEPT <------ 新增此規則放行dhcp
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
systemctl start dhcpd
systemctl enable dhcpd
systemctl status dhcpd
- 內部私有路由
- 讓你的 server 會多一個路由,當發現到 172.19.200.0/24 的封包目標時,將它導向到 172.18.255.200 這部伺服器。
- 你可能需要修改防火牆,讓從 eth0 出去的封包,在 172.19.0.0/16 這一區段時,並不要進行偽裝喔!
- 當你在你的 Server 上面執行 ping 172.19.200.254 的時候,應該是會發現有回應封包才對。
- 這個設定在下次開機也是會生效的。
vim /etc/sysconfig/network-scripts/route-eth0
172.19.200.0/24 via 172.18.255.200 dev eth0
/etc/init.d/network restart
route -n
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 -p udp --dport 67 -i vlan* -j ACCEPT
iptables -A INPUT -j REJECT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -t nat -A POSTROUTING -d 172.19.0.0/16 -o eth0 -j ACCEPT <------ 新增此規則在下一條規則前
iptables -t nat -A POSTROUTING -s 172.19.*.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
sh /root/firewall.sh