############################
######### iptables ##########
############################
iptables 是與最新的 3.5 版本 Linux 內核集成的 IP 信息包過濾系統。如果 Linux 系統連接到因特網或 LAN、服務器或連接 LAN 和因特網的代理服務器, 則該系統有利於在 Linux 系統上更好地控制 IP 信息包過濾和防火牆配置。
****實驗前關掉firewalld並打開iptables
iptables -t ##指定表名稱
-L ##列出指定表中的策略
-A ##增加策略
-p ##網絡協議
--dport ##端口
-s ##數據來源
-j ##動作
-N ##增加鏈
-E ##修改鏈名稱
-X ##刪除鏈
-D ##刪除指定策略
-I ##插入
-R ##修改策略
-P ##修改默認策略
ACCEPT ##允許
REJECT ##拒絕
DROP ##丟棄
iptables -t filter -nL ##查看filter表中的策略
iptables -F ##刷掉filter表中的所有策略,當沒有用-t指定表名稱時默認時filter(如此更改只是一次性的,當重新啓動機器時策略會被重新讀取)
iptables -A INPUT -i lo -j ACCEPT ##允許lo
iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##允許訪問22端口
iptables -A INPUT -s 172.25.254.250 -j ACCEPT ##允許250主機訪問本機所有端口
iptables -A INPUT -j REJECT ##拒絕所有主機的數據來源
iptables -N redhat ##增加鏈redhat
iptables -E redhat westos ##改變鏈名稱
iptables -D INPUT 2 ##刪除INPUT鏈中的第二條策略
iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT ##修改第一條策略
iptables -P INPUT DROP ##把INPUT表中的默認策略改爲drop
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ##允許狀態爲RELATED和ESTABLISHED的數據包通過
iptables -A INPUT -i lo -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT ##允許狀態爲new的數據包通過22端口
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -j REJECT ##拒絕其他所有包
#####配置路由策略#####
iptables -F ##刷掉策略
sysctl -a | grep forward ##查看內部網卡IP轉發功能是否開啓
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf ##允許雙網卡內部通信,即開啓IP轉發功能
sysctl -p ##重新加載策略
iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-dest 172.25.0.11 ##在nat表的PREROUTING鏈添加策略將外網轉化爲內網
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.100 ##在nat表的POSTROUTING鏈添加策略將內網數據包轉發到外網