iptables filter表案例/iptables nat表應(yīng)用

iptables filter表案例

iptables filter 表案例

創(chuàng)建一個(gè)iptables.sh腳本

[root@hch ~]# vim /usr/local/sbin/iptables.sh

寫入腳本內(nèi)容:

ipt="/usr/sbin/iptables"http://定義一個(gè)環(huán)境變量(下面$ipt就等同于

/usr/sbin/iptables的絕對路徑了)

$ipt -F//清空之前規(guī)則(沒有-t,默認(rèn)是執(zhí)行的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//增加規(guī)則(RELATED狀態(tài),ESTABLISHED狀態(tài)放行)

$ipt -A INPUT -s192.168.135.0/24-p tcp --dport22-j ACCEPT//增加規(guī)則(192.168.223網(wǎng)段訪問22端口的數(shù)據(jù)包放行)

$ipt -A INPUT -p tcp --dport80-j ACCEPT//增加規(guī)則(80端口數(shù)據(jù)包方行)

$ipt -A INPUT -p tcp --dport21-j ACCEPT//增加規(guī)則(21端口數(shù)據(jù)包放行)

完成腳本后保存退出,接著運(yùn)行這個(gè)腳本;

[root@hch ~]# sh /usr/local/sbin/iptables.sh

最后再來查看以下規(guī)則;

[root@hch ~]# iptables -nvL

Chain INPUT (policy DROP 31 packets, 5272 bytes)

pkts bytes target? ? prot opt in? ? out? ? source? ? ? ? ? ? ? destination? ? ? ?

? ? 6? 448 ACCEPT? ? all? --? *? ? ? *? ? ? 0.0.0.0/0? ? ? ? ? ? 0.0.0.0/0? ? ? ? ? ? state RELATED,ESTABLISHED

? ? 0? ? 0 ACCEPT? ? tcp? --? *? ? ? *? ? ? 10.2.32.0/23? ? ? ? 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

恢復(fù)默認(rèn)規(guī)則;

[root@hch ~]# service iptables restart

關(guān)于icmp的包比較常見的應(yīng)用,執(zhí)行以下命令;

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

這條命令會禁止別人ping不通本機(jī),但是本機(jī)可以ping通外網(wǎng)

刪除這條規(guī)則命令如下;

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

iptables nat表應(yīng)用

在日常生活中接觸到的路由器,它的功能就是分享上網(wǎng),本來一根網(wǎng)線過來(其實(shí)只有一個(gè)公網(wǎng)IP),通過路由器后,路由器分配一個(gè)網(wǎng)段(私網(wǎng)IP),這樣連接路由器的多臺PC或者手機(jī)等設(shè)備都能連接上網(wǎng)了,而遠(yuǎn)端的設(shè)備認(rèn)為你的IP就是那個(gè)連接路由器的公網(wǎng)IP。這個(gè)路由器的功能其實(shí)就是由linux的iptables實(shí)現(xiàn)的,而iptables又是通過nat表作用而實(shí)現(xiàn)的。

以下舉個(gè)例子說明,假設(shè)你的兩臺機(jī)器,A機(jī)器有兩塊網(wǎng)卡ens33和ens37,其中ens33的IP為10.2.33.71,ens37的IP為192.168.100.1,ens33網(wǎng)卡連接了因特網(wǎng),但ens37沒有連接?,F(xiàn)在B機(jī)器有個(gè)的ens37網(wǎng)卡和A機(jī)器的ens37是互通的,如何設(shè)置才能讓連接ens33的A機(jī)器連接因特網(wǎng),和110.2.33.71互通呢,操作如下;

[root@hch ~]#?echo "1" > /proc/sys/net/ipv4/ip_forward

[root@hch ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

在此之前如果使用的是虛擬機(jī)演戲的話,需要預(yù)備幾步工作;

先對A機(jī)器進(jìn)行操作設(shè)置,添加網(wǎng)卡

編輯虛擬機(jī)設(shè)置——選中:網(wǎng)絡(luò)適配器——添加:網(wǎng)絡(luò)適配器——點(diǎn)擊:下一步——保持默認(rèn):NAT模式——點(diǎn)擊: 完成—— 選中:網(wǎng)絡(luò)適配器 2——選擇:LAN 區(qū)段——添加:自定義名稱——確定——選中剛剛添加的新LAN段 ——確定




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


這里記住A、B機(jī)器選擇的LAN區(qū)段一定要一致。

[root@hch ~]#?

接下來ifconfig查給A、B機(jī)器新網(wǎng)卡同時(shí)設(shè)置臨時(shí)IP;

[root@hch ~]#? ifconfig ens37 10.2.33.81/23

[root@hch ~]#? ifconfig ens37 10.2.33.85/24

B機(jī)器為了更好的演示操作,可以ifdown掉ens33網(wǎng)卡

[root@hch ~]#? ifdown ens33

這樣準(zhǔn)備工作就做好了,可以用ping命令檢測以下A、B機(jī)器是否能相互ping通內(nèi)網(wǎng)和外網(wǎng),如果以上操作正確的話,得到的結(jié)果是A機(jī)器能ping通外網(wǎng)和內(nèi)網(wǎng),而B機(jī)器只能ping通內(nèi)網(wǎng)。

接下來就是讓A機(jī)器的ens37設(shè)置的能夠連接外網(wǎng)

[root@hch ~]#? echo "1" > /proc/sys/net/ipv4/ip_forward //打開端口轉(zhuǎn)發(fā)?

[root@hch ~]#? iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE //增加規(guī)則

我們可以執(zhí)行以下命令查看設(shè)置結(jié)果

[root@hch ~]#? cat /proc/sys/net/ipv4/ip_forward //默認(rèn)是0端口關(guān)閉,1則是打開

1

[root@hch ~]#? iptables -t nat -nvL

再來給B機(jī)器設(shè)置網(wǎng)關(guān)以及修改DNS;

[root@hch ~]# route add default gw 192.168.100.1

[root@hch ~]# vi /etc/resolv.conf

寫入公共DNS:119.29.29.29保存并退出

這樣B機(jī)器技能ping通A機(jī)器也能ping通外網(wǎng)了,比如你ping一個(gè)A機(jī)器可以連接外網(wǎng)IP的地址或則ping百度或者騰訊的地址

遠(yuǎn)程訪問B機(jī)器

刪掉A機(jī)器之前設(shè)定的nat表的規(guī)則;

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

重新設(shè)定一個(gè)nat表的規(guī)則(針對進(jìn)去的數(shù)據(jù)包)

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

在設(shè)定一個(gè)nat表的規(guī)則(針對回來的數(shù)據(jù)包)

[root@hch ~]# iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 10.2.33.71

給B機(jī)器設(shè)置網(wǎng)關(guān);

[root@hch ~]# route add default gw 192.168.100.1

最后在Xshell設(shè)置一個(gè)遠(yuǎn)程登錄到IP地址為192.168.135.133端口為1122的服務(wù)器即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp...
    LL1502閱讀 966評論 0 0
  • 目錄 iptables命令及參數(shù)介紹 配置Filter表防火墻 配置NAT表防火墻 1. iptables命令及參...
    garyond閱讀 88,103評論 1 43
  • iptables 附件CC攻擊器-邪惡十六進(jìn)制2.0 模擬cc攻擊python寫的暴力破解的腳本 模擬...
    運(yùn)維阿文閱讀 2,229評論 0 1
  • 時(shí)光就這樣快快地走過,自己還在恍惚間,但它已留下了痕跡,那就是年齡,沒覺得這幾年過的是如此之快,自己都二十...
    悅小小閱讀 488評論 2 2
  • 真不知道應(yīng)該說些什么 或者寫些什么 這是我與我的食物
    平二爺閱讀 152評論 0 0

友情鏈接更多精彩內(nèi)容