#####iptables#######
iptables是一個工作於用戶空間的防火牆應用軟件
三表五鏈
表:filter、mangel、nat
filter:到達本機,不經過內核。
nat:通過本機做什麼東西,經過內核。
鏈:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
1.實驗之前關閉firewalld服務,開啓iptables
2.iptables命令
iptables -t ##指定表名稱,默認是filter表
-n ##不作解析
-L ##列出指定表中的策略
iptables -t filter -nL ##查看filter表的策略
iptables -A ##增加策略
-i ##向規則鏈中增加條目
-p ##網絡協議
--dport ##端口
-s ##數據來源
-j ##動作
ACCEPT ##允許
REJECT ##拒絕
DROP ##丟棄
iptables -A INPUT -i lo -j ACCEPT ##允許迴環接口通過
iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##允許訪問22端口
iptables -A INPUT -s 172.25.254.213 -j ACCEPT ##允許213主機訪問本機所有端口
iptables -A INPUT -j REJECT ##拒絕所有主機數據來源
iptables -N ##增加鏈
-E ##修改鏈名稱
-X ##刪除鏈
-D ##刪除指定策略
-I ##插入
-R ##修改策略
-P ##修改默認策略
iptables -N redhat ##添加redhat鏈
iptables -E redhat westos ##修改redhat鏈爲westos
iptables -X westos ##刪除westos鏈
iptables -D INPUT 2 ##刪除INPUT 鏈中的第二條策略
iptables -I INPUT -p tcp --dport 80 -j REJECT ##INPUT鏈第一條插入策略
iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT ##修改INPUT鏈中的第一條策略
iptables -P INPUT DROP ##修改默認策略
iptables -F ##刷掉所以策略,臨時生效
service iptables save ##保存設置到配置文件,重啓後也生效
## 提高訪問速度,緩解訪問壓力方法
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
##允許訪狀態是NEW問80端口
iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
##允許狀態是NEW訪問443端口
iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
##允許狀態是NEW訪問53端口
iptables -A INPUT -j REJECT ##拒絕所有主機數據來源
4.路由
sysctl -a | grep forward ##查看forward狀態
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf ##打開net.ipv4.ip_forward
sysctl -p ##設置生效
iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-dest 172.25.13.11 ##進入路由
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.213 ##出路由設置
測試