1. 程式人生 > >iptables filter表案例及iptables nat應用

iptables filter表案例及iptables nat應用

out accept 設備名 -- 策略 nbsp 案例 1.0 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表示偽裝。


iptables filter表案例及iptables nat應用