1. 程式人生 > >5月9日

5月9日

linux

10.15 iptables filter表案例

1. iptables filter表案例

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

需求有多條規則,最好寫成腳本的形式比較好操作:

命令:vim /usr/local/sbin/iptables.sh 配置如下:

#! /bin/bash

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.1.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

說明:-m state –state 後加這兩個狀態可讓通信更順暢 RELATED , ESTABLISHED

技術分享圖片

1.1添加完shell腳本內容後就執行腳本,命令sh /usr/local/sbin/iptables.sh //

執行腳本

1.2查看添加後的規則, iptables -nvL //查看規則

技術分享圖片

2.1 icmp示例場景:

可以實現ping通外部機器,但是ping不通本機(你能ping通別人的機器,別人ping不通你的機器)

命令:iptables -I INPUT -p icmp –icmp-type 8 -j DROP

技術分享圖片

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

2.1.2 刪除規則後可以正常相互ping通:

命令:iptables -D INPUT -p icmp –icmp-type 8 -j DROP

技術分享圖片

10.16-10.17-10.18 iptables nat表應用

iptables nat表應用場景:

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

1. 實驗:A機器兩塊網卡ens33(192.168.133.130)ens37(192.168.100.1)ens33可以上外網,ens37僅僅是內部網絡,B機器只有ens37192.168.100.100),和A機器ens37可以通信互聯。

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

A機器上打開路由轉發

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

A上執行:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ens37 -j MASQUERADE

//-o表表示出口的網卡,MASQUERA表示偽裝。

B上設置網關為192.168.100.1

解釋:

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

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

2 .需求:C機器只能和A通信,讓C機器可以直接連通B機器的22端口(就是端口映射把A192.168.133.1301122 映射到B機器的192.168.100.10022

2.1 A上打開路由轉發echo "1">/ proc/sys/net/ipv4/ip_forward

2.2 A上執行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22 //進去的包

2.3 A上執行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130 //回來的包

2.4 B設置網關為192.168.100.1



5月9日