1. 程式人生 > >LiNUX20180509七周四次課(5月9日)IPTABLES

LiNUX20180509七周四次課(5月9日)IPTABLES

iptables nat

七周四次課(5月9日)

10.15 iptables filter表案例
10.16/10.17/10.18 iptables nat表應用

擴展
1. iptables應用在一個網段 http://www.aminglinux.com/bbs/thread-177-1-1.html
2. sant,dnat,masquerade http://www.aminglinux.com/bbs/thread-7255-1-1.html
3. iptables限制syn速率 http://www.aminglinux.com/bbs/thread-985-1-1.htmlhttp://jamyy.us.to/blog/2006/03/206.html



iptables filter表案例

技術分享圖片



技術分享圖片

技術分享圖片

-ipt是定義變量,這樣不用每次都寫絕對地址,以後寫shell腳本的時候最好寫據對路徑

首先要把之前的規則清空,所以 -F

然後默認的策略定義 INPUT -DROP OUTPUT- ACCEPT FORWARD -ACCEPT

接著 添加規則 -A ,指定了狀態是 related和established的,針對這些狀態的數據放行。這一行主要是保證保持連接的狀態。related是一個邊緣的狀態,沒有這個的話,有可能其他的被禁掉了。這一行必須有。

接下裏是把192.168.133.0/24網段的訪問22端口的放行

然後是把80和21端口數據放行


iptables [-t 表名] <-A|I|D|R> 鏈名[規則編號] [-i|o 網卡名稱] [-p 協議類型] [-s 源IP地址|源子網] [--sport 源端口號] [-d 目標IP地址|目標子網] [--dport 目標端口號] <-j 動作>

技術分享圖片

寫腳本的目的就是連續操作,因為中間的某些操作有可能會斷掉連接無法繼續操作。


iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT # 允許被ping

iptables -I INPUT -p icmp --icmp-type 8 -j DROP 這個就是不允許被ping 但是可以ping外面


需要將service iptables restart後才能去操作icmp

操作完之後的效果就是iptables -I INPUT -p icmp --icmp-type 8 -j DROP 可以ping出去 其他ping不了它

技術分享圖片


技術分享圖片



iptables nat表應用 1


技術分享圖片

首先需要給虛擬機1新做一個網卡

技術分享圖片

技術分享圖片

然後給虛擬機2新建一個網卡,因為本身的網卡已經設置好IP等所以可以取消它啟動時連接,第二塊網卡也使用lan區段。也就是說想完成這個實驗(一臺機器一網卡內網,一個外網,另一個機器網卡內網,但是想上網)必須倆內網網卡在一個區段,使用同一個交換機。因為第二個虛擬機的網卡已經變化了,所以遠程連接已經不行了。

技術分享圖片

技術分享圖片


技術分享圖片

接下來要給虛擬出來的網卡設定一個ip ens37

可以ifconfig 網卡 ip 來臨時指定ip 如果想永久保存要修改配置文件

技術分享圖片

接著給另一臺機器設置內網ip,因為沒有辦法登陸遠程,只能直接從機器登陸,為了保險,ifdown再去關閉第一塊網卡。

技術分享圖片

使用同樣的命令 ifconfig 網卡 192.168.100.100/24,而且可以ping通之前那個機器的第二個內網網卡。這樣前提條件都已經滿足了。

技術分享圖片


iptables nat表應用(中)


準備工作已經就緒, 準備做實驗。

技術分享圖片

首先A機器上需要打開路由轉發 echo "1">/proc/sys/net/ipv4/ip_forward

默認 /proc/sys/net/ipv4/ip_forward這個文件的值是0,就意味著沒有開啟路由轉發。

技術分享圖片

技術分享圖片

然後需要添加規則,實現上網。iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE 目的就是讓100.0的網段上網。

技術分享圖片

然後給b機器設置網關。

192.168.100.1

route -n 查找網關,目前是沒有網關的。

技術分享圖片

設置網關 route add default gw 192.168.100.1

技術分享圖片

B網卡可以pingA的外網ip就成功了。

技術分享圖片然後理論上就可以連接外網了。

註意的幾點:

1. A需要一個網卡連接外網,一個內網,B的內網網卡和A的內網在一個網段

2. A的內網IP作為B的內網網卡的網關來提供上網。

其實就是實現了一個路由器的功能



技術分享圖片

遠程登陸B機器,通過映射到A機器的其他端口來實現。就是說訪問A的1122端口,實際上訪問的是B的22端口


第一步還是打開端口轉發

第二步增加規則。在這時候需要先將之前的規則刪除。

技術分享圖片

此時的nat表是空的

技術分享圖片

第二步需要加規則,prerouting這個就是把進來的包,轉發到100.100:22

技術分享圖片

第三部是 回來的包,經過A機器再做一個

iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.202.123


第四部給B機器加網關

這時候應該就可以遠程訪問B機器了

LiNUX20180509七周四次課(5月9日)IPTABLES