日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iptables filter表案例/iptables nat表应用

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iptables filter表案例/iptables nat表应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

iptables filter表案例

iptables filter 表案例
創建一個iptables.sh腳本

[root@Ask-02 ~]# vim /usr/local/sbin/iptables.sh

寫入腳本內容:

ipt="/usr/sbin/iptables" //定義一個環境變量(下面$ipt就等同于/usr/sbin/iptables的絕對路徑了) $ipt -F //清空之前規則(沒有-t,默認是執行的filter) $ipt -P INPUT DROP //定義策略 (INPUT策略 DROP掉) $ipt -P OUTPUT ACCEPT //定義策略(OUTPUT策略 ACCEPT接受) $ipt -P FORWARD ACCEPT // 定義策略(FORWARD策略 ACCEPT接受) $ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT //增加規則(RELATED狀態,ESTABLISHED狀態放行) $ipt -A INPUT -s 192.168.135.0/24 -p tcp --dport 22 -j ACCEPT //增加規則(192.168.223網段訪問22端口的數據包放行) $ipt -A INPUT -p tcp --dport 80 -j ACCEPT //增加規則(80端口數據包方行) $ipt -A INPUT -p tcp --dport 21 -j ACCEPT //增加規則(21端口數據包放行)

完成腳本后保存退出,接著運行這個腳本;

[root@Ask-02 ~]# sh /usr/local/sbin/iptables.sh

最后再來查看以下規則;

[root@Ask-02 ~]# iptables -nvL

恢復默認規則;

[root@Ask-02 ~]# service iptables restart

關于icmp的包比較常見的應用,執行以下命令;

[root@Ask-02 ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP

這條命令會禁止別人ping不通本機,但是本機可以ping通外網
刪除這條規則命令如下;

[root@Ask-02 ~]# iptables -D INPUT -p icmp --icmp-type 8 -j DROP

iptables nat表應用

在日常生活中接觸到的路由器,它的功能就是分享上網,本來一根網線過來(其實只有一個公網IP),通過路由器后,路由器分配一個網段(私網IP),這樣連接路由器的多臺PC或者手機等設備都能連接上網了,而遠端的設備認為你的IP就是那個連接路由器的公網IP。這個路由器的功能其實就是由linux的iptables實現的,而iptables又是通過nat表作用而實現的。
以下舉個例子說明,假設你的兩臺機器,A機器有兩塊網卡ens33和ens33,其中ens33的IP為192.168.135.133,ens35的IP為192.168.100.1,ens33網卡連接了因特網,但ens35沒有連接。現在B機器有個的ens37網卡和A機器的ens37是互通的,如何設置才能讓連接ens35的A機器連接因特網,和192.168.135.133互通呢,操作如下;

[root@Ask-02 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
[root@Ask-02 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

在此之前如果使用的是虛擬機演戲的話,需要預備幾步工作;
先對A機器進行操作設置,添加網卡

編輯虛擬機設置——選中:網絡適配器——添加:網絡適配器——點擊:下一步——保持默認:NAT模式——點擊: 完成—— 選中:網絡適配器 2——選擇:LAN 區段——添加:自定義名稱——確定——選中剛剛添加的新LAN段 ——確定





這里A機器就設置好了,B機器和A機器設置操作一樣,只是需要先把原本B機器上可以連接的網卡斷掉禁用掉,已方便操作,禁掉操作如下;

這里記住A、B機器選擇的LAN區段一定要一致。

接下來ifconfig查看下各個機器的網卡現象

給A、B機器新網卡同時設置臨時IP;

[root@Ask-02 ~]# ifconfig ens37 192.168.135.1/24
[root@Ask-01 ~]# ifconfig ens37 192.168.135.100/24

B機器為了更好的演示操作,可以ifdown掉ens33網卡

[root@Ask-01 ~]# ifdown ens33

這樣準備工作就做好了,可以用ping命令檢測以下A、B機器是否能相互ping通內網和外網,如果以上操作正確的話,得到的結果是A機器能ping通外網和內網,而B機器只能ping通內網。

接下來就是讓A機器的ens37設置的能夠連接外網

[root@Ask-02 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward //打開端口轉發
[root@Ask-02 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE //增加規則

我們可以執行以下命令查看設置結果

[root@Ask-02 ~]# cat /proc/sys/net/ipv4/ip_forward //默認是0端口關閉,1則是打開
1
[root@Ask-02 ~]# iptables -t nat -nvL

再來給B機器設置網關以及修改DNS;

[root@Ask-01 ~]# route add default gw 192.168.100.1
[root@Ask-01 ~]# vi /etc/resolv.conf

寫入公共DNS:119.29.29.29保存并退出
這樣B機器技能ping通A機器也能ping通外網了,比如你ping一個A機器可以連接外網IP的地址或則ping百度或者騰訊的地址

遠程訪問B機器
刪掉A機器之前設定的nat表的規則;

[root@Ask-02 ~]# iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

重新設定一個nat表的規則(針對進去的數據包)

[root@Ask-02 ~]# iptables -t nat -A PREROUTING -d 192.168.135.133 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22

在設定一個nat表的規則(針對回來的數據包)

[root@Ask-02 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.135.133
給B機器設置網關;
[root@Ask-02 ~]# route add default gw 192.168.100.1

最后在Xshell設置一個遠程登錄到IP地址為192.168.135.133端口為1122的服務器即可。

轉載于:https://blog.51cto.com/13529231/2065634

總結

以上是生活随笔為你收集整理的iptables filter表案例/iptables nat表应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。