######################
#### iptables ########
*iptables是一個工作于使用者空間的防火牆應用軟體
*三表五鍊
filter表 mangle表 nat表
INPUT鍊 OUTPUT鍊 FORWARD鍊 PREROUTING鍊 POSTROUTING鍊
1.實驗之前關閉firewalld服務,開啟iptables
<a href="https://s3.51cto.com/wyfs02/M02/97/7B/wKiom1kuv0-CZ2PfAABZ7m39UpQ371.jpg" target="_blank"></a>
2.iptables指令
* iptables -t ##指定表名稱,預設是filter表
-n ##不作解析
-L ##列出指定表中的政策
iptables -t filter -nL ##檢視filter表的政策
<a href="https://s2.51cto.com/wyfs02/M01/97/7B/wKiom1kuv7iAJOi4AABKrvHer5w853.jpg" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M01/97/7C/wKioL1kuv_Ci7pwjAAAzy6GMgxw089.jpg" target="_blank"></a>
* 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.234 -j ACCEPT ##允許234主機通路本機所有端口
iptables -A INPUT -j REJECT ##拒絕所有主機資料來源
<a href="https://s1.51cto.com/wyfs02/M01/97/7D/wKioL1kuwCbQDMgjAABykZ-uUPw941.jpg" target="_blank"></a>
*測試
* iptables -N ##增加鍊
-E ##修改鍊名稱
-X ##删除鍊
-D ##删除指定政策
-I ##插入
-R ##修改政策
-P ##修改預設政策
<a href="https://s5.51cto.com/wyfs02/M00/97/7B/wKiom1kuwITQBI1pAABGY67g4ow535.jpg" target="_blank"></a>
iptables -N redhat ##添加redhat鍊
<a href="https://s1.51cto.com/wyfs02/M00/97/7D/wKioL1kuwKGDcHAuAAAyR22DSEA133.jpg" target="_blank"></a>
iptables -E redhat westos ##修改redhat鍊為westos
<a href="https://s2.51cto.com/wyfs02/M00/97/7D/wKioL1kuwMPxeE7TAAAtvc9kXio473.jpg" target="_blank"></a>
iptables -X westos ##删除westos鍊
<a href="https://s2.51cto.com/wyfs02/M00/97/7B/wKiom1kuwTeTdrcAAACErKnRgaY086.jpg" target="_blank"></a>
iptables -D INPUT 2 ##删除INPUT 鍊中的第二條政策
<a href="https://s4.51cto.com/wyfs02/M01/97/7C/wKiom1kuwVHzoxFuAABqErzFcaQ637.jpg" target="_blank"></a>
iptables -I INPUT -p tcp --dport 80 -j REJECT ##INPUT鍊第一條插入政策
<a href="https://s3.51cto.com/wyfs02/M01/97/7D/wKioL1kuwW-BNE3QAABFuFJelyI844.jpg" target="_blank"></a>
iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT ##修改INPUT鍊中的第一條政策
iptables -P INPUT DROP ##修改預設政策
iptables -F ##刷掉是以政策,臨時生效
<a href="https://s3.51cto.com/wyfs02/M02/97/4C/wKiom1ktARrSmhLoAAA7sALXGtQ054.png" target="_blank"></a>
service iptables save ##儲存設定到配置檔案,重新開機後也生效
3. 提高通路速度,緩解通路壓力方法
<a href="https://s4.51cto.com/wyfs02/M01/97/7C/wKiom1kuwafTd2sNAABGMEvQl9I881.jpg" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M02/97/7C/wKiom1kuwdvAukvrAACNXqqSbxM082.jpg" target="_blank"></a>
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狀态
<a href="https://s5.51cto.com/wyfs02/M02/97/4C/wKiom1ktA9WwK8efAAEJ7OJML3s950.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M01/97/7C/wKiom1kuwh-CAQCDAABw0uQY71U737.jpg" target="_blank"></a>
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf ##打開net.ipv4.ip_forward
sysctl -p ##設定生效
<a href="https://s3.51cto.com/wyfs02/M02/97/4D/wKioL1ktBB3h83v1AAA88fJ-AiE010.png" target="_blank"></a>
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 172.25.0.11 ##進入路由
測試
用172.25.0.11主機ssh連接配接172.25.254.174主機
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.174 ##出路由設定
連上172.25.254.174主機,顯示的IP是172.25.254.11
本文轉自 夏梨巴人 51CTO部落格,原文連結:http://blog.51cto.com/12774035/1931119