iptables filter表案例及iptables nat應用

iptables filter表案例

iptables小案例需求

只針對filter表,預設策略INPUT鏈DROP,其他兩個鏈ACCEPT,然後針對192.168.1.0/24開通22端口,對所有網段開放80端口,對所有網段開放21端口。

由於這個需求有多條規則,所以最好寫成腳本的形式,操作示例如下:

# vi /usr/local/sbin/iptables.sh              加入如下內容,保存退出。

腳本內容:

ipt="/usr/sbin/iptables"

$ipt -F

$ipt -P INPUT DROP

$ipt -P OUTPUT ACCEPT

$ipt -P FORWARD ACCEPT

$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT    

$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT

$ipt -A INPUT -p tcp --dport 80 -j ACCEPT

$ipt -A INPUT -p tcp --dport 21 -j ACCEPT  


# sh /usr/local/sbin/iptables.sh      執行腳本

# iptables -nvL                             查看規則

Chain INPUT (policy DROP 193 packets, 14785 bytes)

 pkts bytes target     prot opt in     out     source               destination         

   25  1764 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

    0     0 ACCEPT     tcp  --  *      *       192.168.133.0/24     0.0.0.0/0            tcp dpt:22

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:21


Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination         


Chain OUTPUT (policy ACCEPT 16 packets, 1504 bytes)

 pkts bytes target     prot opt in     out     source               destination    




關於icmp有一個特殊的應用:

#iptables -I INPUT -p icmp --icmp-type 8 -j DROP

解釋:這裏的--icmp-type選項要跟-p icmp一起使用,後面指定類型編號。這個8指的是本機能ping通其他機器,而其他機器不能ping通本機,請牢記。



iptables nat表應用

linux的iptables功能規則是十分強大的,可以實現很多功能,路由器共享上網的功能就是通過由linux的iptables實現的,而iptables又是通過nat表作用而實現的。


舉例說明:

假設有兩臺機器,A機器有兩塊網卡ens33(192.168.100.1)、ens37(192.168.1.185),ens33可以上外網,但ens37僅僅是內部網絡,而B機器只有ens37(192.168.1.186),和A機器ens37可以通信互聯。

需求1:可以讓B機器連接外網


操作命令如下:

#echo "1" > /proc/sys/net/ipv4/ip_forward                    echo 1到配置文件打開轉發功能

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ens37 -j MASQUERADE          -o表表示出口的網卡,MASQUERA表示僞裝。


解釋:

第一個命令涉及內核參數相關的配置文件,它的目的是打開路由轉發功能,否則無法實現我們的應用。

第二個命令則是iptables對nat表做了一個IP轉發的操作,-O選項後面跟設備名,表示出口的網卡,MASQUERADE表示僞裝。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章