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

iptables filter表案例 iptables nat表應用

iptables filter表案例

技術分享圖片
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 //把192.168.133網段和22端口放行
$ipt -A INPUT -p tcp --drop 80 -j ACCEPT //放行80端口數據包,沒有指定源ip指所有ip都能訪問到
$ipt -A INPUT -p tcp --drop 21 -j ACCEPT //放行21端口數據包,沒有指定源ip指所有ip都能訪問到

icmp示例:
iptables -I INPUT -p icmp --icmp -type 8 -j DROP //禁ping,加上這條規則後本機可以ping外面的機器,但是外面的機器不能ping通本機,-type 8指icmp 8種類型

二、iptables nat表應用
技術分享圖片
1、實現上圖需求1前期準備工作
A機器上先添加一塊網卡,設置為內網網卡,網絡連接選擇:LAN區段,在LAN區段自定義一個名稱,並選擇它

技術分享圖片
B機器同樣添加一塊網卡,也是內網網卡(可以把之前第一塊網卡先禁用),也選擇LAN區段,這兩臺機器必須選擇同一個交換機同一個區段
技術分享圖片
設置A機器新添加網卡的ip地址,使用命令行添加:
#ifconfig ens37 192.168.100.1/24 //設置ip為192.168.100.1,/24指24網段,但是這樣添加ip重啟機器後就沒有了,如果讓它永久生效,需要編輯它的配置文件
設置B機器新添加的內網網卡ip,
#ifconfig ens37 192.168.100.100 //設置完之後ping下192.168.100.1是否能通

2、實現需求1功能
A機器上打開路由轉發 echo "1">/proc/sys/net/ipv4/ip_forward //後面這個配置文件默認是0,沒有開啟內核轉發

技術分享圖片
#echo "1">/proc/sys/net/ipv4/ip_forward //打開端口轉發,將默認的值0修改為1
#iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE //添加這條規則,讓192.168.100.0這個網段可以上網
B機器上設置網關
#route -n //查看網關的命令
#route add default gw 192.168.100.1 //使用命令行設置網關為192.168.100.1
然後再ping下192.168.133.130,如果可以ping通,證明它可以和公網通信了
#vi /etc/resolv.conf //給它設置下DNS,在配置文件中寫入:
nameserver 119.29.29.29(這個是DNS PORE的一個公共DNS地址),保存退出
#ping 119.29.29.29 //如果可以ping通這個DNS,我們就可以ping通外網了
#ping www.qq.com //試著ping下www.qq.com,能ping通,證明就實現了上外網的目的,實際上就是A機器作為路由器,B機器是一個網絡設備終端

3、實現圖片需求2
端口映射,就是把內網機器(B機器)的22端口映射出來,映射成一個其他的端口,比如1122端口(因為A機器的22端口已被占用了)
技術分享圖片
A機器上打開路由轉發規則 #echo "1">/proc/sys/net/ipv4/ip_forward
#iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE //做這個操作之前先把之前的規則刪掉,讓nat表是一個空表
#iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22 //添加規則,做一個端口轉發,轉發到100.100的22端口,這個是進去的包
#iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130 //從100.100回來的包經過133.130機器,再做一個SNAT操作
B機器上設置網關
#route add default gw 192.168.100.1 //使用命令行給B機器設置網關為192.168.100.1
然後使用遠程工具連接,這裏的主機ip是輸入A機器的ip 192.168.133.130,端口號是映射的端口號1122,成功遠程連接就OK了
技術分享圖片

iptables filter表案例 iptables nat表應用