免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

linux下用iptables做本機端口轉(zhuǎn)發(fā)方法

 XeonGate 2021-06-23

拓撲圖

下來一個一般情況下公司內(nèi)網(wǎng)和外網(wǎng)的拓撲圖

一、概要

1、防火墻分類

      ①包過濾防火墻(pack filtering)在網(wǎng)絡(luò)層對數(shù)據(jù)包進行選擇過濾,采用訪問控制列表(Access control table-ACL)檢查數(shù)據(jù)流的源地址,目的地址,源和目的端口,IP等信息。
      ②代理服務(wù)器型防火墻

2、iptables基礎(chǔ)

      ①規(guī)則(rules):網(wǎng)絡(luò)管理員預(yù)定義的條件
      ②鏈(chains): 是數(shù)據(jù)包傳播的路徑
      ③表(tables):內(nèi)置3個表filter表,nat表,mangle表分別用于實現(xiàn)包過濾網(wǎng)絡(luò)地址轉(zhuǎn)換和包重構(gòu)的功能
      ④filter表是系統(tǒng)默認的,INPUT表(進入的包),F(xiàn)ORWORD(轉(zhuǎn)發(fā)的包),OUTPUT(處理本地生成的包),filter表只能對包進行授受和丟棄的操作。
      ⑤nat表(網(wǎng)絡(luò)地址轉(zhuǎn)換),PREROUTING(修改即將到來的數(shù)據(jù)包),OUTPUT(修改在路由之前本地生成的數(shù)據(jù)包),POSTROUTING(修改即將出去的數(shù)據(jù)包)
      ⑥mangle表,PREROUTING,OUTPUT,F(xiàn)ORWORD,POSTROUTING,INPUT

3、其它

   iptables是按照順序讀取規(guī)則
   防火墻規(guī)則的配置建議
    Ⅰ 規(guī)則力求簡單
    Ⅱ 規(guī)則的順序很重要
    Ⅲ 盡量優(yōu)化規(guī)則
    Ⅳ 做好筆記

二、配置

1、iptables命令格式

     iptables [-t 表] -命令 匹配 操作 (大小寫敏感)
   動作選項
     ACCEPT          接收數(shù)據(jù)包
     DROP             丟棄數(shù)據(jù)包
     REDIRECT      將數(shù)據(jù)包重新轉(zhuǎn)向到本機或另一臺主機的某一個端口,通常功能實現(xiàn)透明代理或?qū)ν忾_放內(nèi)網(wǎng)的某些服務(wù)
     SNAT             源地址轉(zhuǎn)換
     DNAT             目的地址轉(zhuǎn)換
     MASQUERADE       IP偽裝
     LOG               日志功能

2、定義規(guī)則

   ①先拒絕所有的數(shù)據(jù)包,然后再允許需要的數(shù)據(jù)包
      iptalbes -P INPUT DROP
      iptables -P FORWARD DROP
      iptables -P OUTPUT ACCEPT
   ②查看nat表所有鏈的規(guī)則列表
      iptables -t nat -L
   ③增加,插入,刪除和替換規(guī)則
     iptables [-t 表名] <-A|I|D|R> 鏈名 [規(guī)則編號] [-i|o 網(wǎng)卡名稱] [-p 協(xié)議類型] [-s 源ip|源子網(wǎng)] [--sport 源端口號] [-d 目的IP|目標子網(wǎng)] [--dport 目標端口號] [-j 動作]
    參數(shù):-A 增加
               -I 插入
               -D 刪除
               -R 替換
 

三、例子

①iptables -t filter -A INPUT -s 192.168.1.5 -i eth0 -j DROP
禁止IP為192.168.1.5的主機從eth0訪問本機②iptables -t filter -I INPUT 2 -s 192.168.5.0/24 -p tcp --dport 80 -j DROP
禁止子網(wǎng)192.168.5.0訪問web服務(wù)③iptables -t filter -I INPUT 2 -s 192.168.7.9 -p tcp --dport ftp -j DROP
禁止IP為192.168.7.9訪問FTP服務(wù)
④iptables -t filter -L INPUT
查看filter表中INPUT鏈的規(guī)則
⑤iptables -t nat -F
刪除nat表中的所有規(guī)則
⑥iptables -I FORWARD -d wwww. -j DROP
禁止訪問www.網(wǎng)站
⑦iptables -I FORWARD -s 192.168.5.23 -j DROP
禁止192.168.5.23上網(wǎng)

下面詳細介紹一下iptables的配置

一 :從一臺機到另一臺機端口轉(zhuǎn)發(fā)

啟用網(wǎng)卡轉(zhuǎn)發(fā)功能
#echo 1 > /proc/sys/net/ipv4/ip_forward

舉例:從192.168.0.132:21521(新端口)訪問192.168.0.211:1521端口


a.同一端口轉(zhuǎn)發(fā)

(192.168.0.132上開通1521端口訪問 iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT)

iptables -t nat -I PREROUTING -p tcp --dport 1521 -j DNAT --to 192.168.0.211
iptables -t nat -I POSTROUTING -p tcp --dport 1521 -j MASQUERADE

b.不同端口轉(zhuǎn)發(fā)

(192.168.0.132上開通21521端口訪問 iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21521 -j ACCEPT)

iptables -t nat -A PREROUTING -p tcp -m tcp --dport21521 -j DNAT --to-destination192.168.0.211:1521
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d 192.168.0.211 -p tcp -m tcp --dport 1521 -j SNAT --to-source 192.168.0.132

以上兩條等價配置(更簡單[指定網(wǎng)卡]):
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 31521 -j DNAT --to 192.168.0.211:1521
iptables -t nat -A POSTROUTING -j MASQUERADE

保存iptables
#service iptables save
#service iptables restart
 

二 用iptables做本機端口轉(zhuǎn)發(fā)

代碼如下:
   iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

估計適當增加其它的參數(shù)也可以做不同IP的端口轉(zhuǎn)發(fā)。

如果需要本機也可以訪問,則需要配置OUTPUT鏈(********特別注意:本機訪問外網(wǎng)的端口會轉(zhuǎn)發(fā)到本地,導(dǎo)致訪不到外網(wǎng),如訪問yown.com,實際上是訪問到本地,建議不做80端口的轉(zhuǎn)發(fā)或者指定目的 -d localhost):
  iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080

原因:
外網(wǎng)訪問需要經(jīng)過PREROUTING鏈,但是localhost不經(jīng)過該鏈,因此需要用OUTPUT。

例子1:

概述:

      有一些核心MYSQL服務(wù)器位于核心機房的內(nèi)網(wǎng)段,經(jīng)常需要去連接這些服務(wù)器,因無法直接通過外網(wǎng)訪問,給管理造成了不便。
思路:

      雖然解決此問題的方法及思路有很多,但當下想使用IPTABLES的端口重定向功能解決此問題,比較簡單易用,而且擴展性也比較好,依次類推,可以運用到其他的端口轉(zhuǎn)發(fā)方面的應(yīng)用。
網(wǎng)絡(luò)環(huán)境:
公網(wǎng)服務(wù)器      :eth0:公網(wǎng)IP    eth1:內(nèi)網(wǎng)IP - 192.168.1.1
MYSQL服務(wù)器:eth1:內(nèi)網(wǎng)IP - 192.168.1.2

實現(xiàn)方法:通過訪問公網(wǎng)IP的63306端口來實現(xiàn)到內(nèi)網(wǎng)MYSQL服務(wù)器的3306端口的訪問
在公網(wǎng)服務(wù)器上:
配置腳本:
iptables -t nat -A PREROUTING -p tcp --dport 63306 -j DNAT --to-destination 192.168.1.2:3306
iptables -t nat -A POSTROUTING -d 192.168.1.2 -p tcp --dport 3306 -j SNAT --to 192.168.1.1

允許服務(wù)器的IP轉(zhuǎn)發(fā)功能:

echo 1 > /proc/sys/net/ipv4/ip_forward
使用方法:
mysql -h 公網(wǎng)IP -p 63306 -uroot -p

例子2:

     由于業(yè)務(wù)需要,服務(wù)器越來越多,內(nèi)網(wǎng)服務(wù)器無外網(wǎng)環(huán)境管理甚是不便,所以折騰了一下外網(wǎng)到內(nèi)網(wǎng)的端口轉(zhuǎn)發(fā)以達到輕松管理的目的,貼一下心得。

S1:
eth0 10.0.0.1
eth1 x.x.x.x

S2:
eth0 10.0.0.2

S1 8082端口轉(zhuǎn)發(fā)到內(nèi)網(wǎng)機器22端口

iptables規(guī)則配置如下:

iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 8082 -j DNAT --to-destination 10.0.0.2:22

iptables -t nat -A POSTROUTING -d 10.0.0.2 -p tcp --dport 22 -j SNAT --to-source x.x.x.x

說明:
iptables -t nat -A PREROUTING -d "對外公網(wǎng)ip" -p tcp --dport "對外端口" -j DNAT --to "內(nèi)部實際提供服務(wù)的ip":"實際提供服務(wù)的端口"

iptables -t nat -A POSTROUTING -d "內(nèi)部實際提供服務(wù)的ip"-p tcp --dport "實際提供服務(wù)的端口" -j SNAT --to-source "運行iptables機器的內(nèi)網(wǎng)ip"

另外,網(wǎng)上看到一篇很好的文章,這里轉(zhuǎn)發(fā)一下:https:///post/25-iptables-policy.html

25個最常用的iptables策略

1、清空存在的策略

當你開始創(chuàng)建新的策略,你可能想清除所有的默認策略,和存在的策略,可以這么做:

  • iptables -F 或者iptables –flush

2、設(shè)置默認策略

默認鏈策略是ACCEPT,改變所有的鏈策略為DROP:

  • iptables -P INPUT DROP

  • iptables -P FORWARD DROP

  • iptables -P OUTPUT DROP

3、阻止一個指定的ip

  • BLOCK_THIS_IP=“x.x.x.x"

  • iptables -A INPUT -s ”$BLOCK_THIS_IP“ -j DROP

  • iptables -A INPUT -i eth0 -s "$BLOCK_THIS_IP" -j DROP

  • iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP

4、允許SSH

允許所有通過eth0接口使用ssh協(xié)議連接本機:

  • iptables -A INPUT -i eth0 -p tcp -dport 22 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -sport 22 -m state -state ESTABLISHED -j ACCEPT

5、允許某個網(wǎng)段通過ssh連接

  • iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 –dport 22 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -sport 22 -m state –state ESTABLISHED -j ACCEPT

6、允許SSH連接指定的網(wǎng)段

  • iptables -A OUTPUT -o eth0 -p tcp -d 192.168.100.0/24 -dport 22 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A INPUT -i eth0 -p tcp -sport 22 -m state -state ESTABLISHED -j ACCEPT

7、允許http和https

允許所有進來的web流量:http協(xié)議80端口,https協(xié)議是443端口

  • iptables -A INPUT -i eth0 -p tcp -dport 80 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -sport 80 -m state -state ESTABLISHED -j ACCEPT

  • iptables -A INPUT -i eth0 -p tcp -dport 443 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -sport 443 -m state -state ESTABLISHED -j ACCEPT

8、多個策略聯(lián)合一起

允許ssh,http,https:

  • iptables -A INPUT -i eth0 -p tcp -m multiport -dports 22,80,443 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -m multiport -sports 22,80,443 -m state -state ESTABLISHED -j ACCEPT

9、允許SSH連接其他主機

  • iptables -A OUTPUT -o eth0 -p tcp -dport 22 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A INPUT -i eth0 -p tcp -sport 22 -m state -state ESTABLISHED -j ACCEPT

10、允許https出去

  • iptables -A OUTPUT -o eth0 -p tcp -dport 443 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A INPUT -i eth0 -p tcp -sport 443 -m state -state ESTABLISHED -j ACCEPT

11、對web請求做負載均衡(每三個包,均衡到指定服務(wù)器,需要擴展iptables)

  • iptables -A PREROUTING -i eth0 -p tcp –dport 443 -m state -state NEW -m nth -counter 0 -every 3 -packet 0 -j DNAT -to-destination 192.168.1.101:443

  • iptables -A PREROUTING -i eth0 -p tcp –dport 443 -m state -state NEW -m nth -counter 0 -every 3 -packet 1 -j DNAT -to-destination 192.168.1.102:443

  • iptables -A PREROUTING -i eth0 -p tcp –dport 443 -m state -state NEW -m nth -counter 0 -every 3 -packet 2 -j DNAT -to-destination 192.168.1.103:443

12、允許ping

  • iptables -A INPUT -p icmp -icmp-type echo-request -j ACCEPT

  • iptables -A OUTPUT -p icmp -icmp-type echo-reply -j ACCEPT

13、允許ping遠程

  • iptables -A OUTPUT -p icmp -icmp-type echo-request -j ACCEPT

  • iptables -A INPUT -p icmp -icmp-type echo-reply -j ACCEPT

14、允許本地回環(huán)

  • iptables -A INPUT -i lo -j ACCEPT

  • iptables -A OUTPUT -o lo -j ACCEPT

15、允許內(nèi)網(wǎng)訪問外部網(wǎng)絡(luò)

這個例子eth1 連接外部網(wǎng)絡(luò),eth0連接內(nèi)部網(wǎng)絡(luò)

  • iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

16、允許DNS出去

  • iptables -A OUTPUT -p udp -o eth0 -dport 53 -j ACCEPT

  • iptables -A INPUT -p udp -i eth0 -sport 53 -j ACCEPT

17、允許NIS連接

NIS端口是動態(tài)的,當ypbind啟動時它分配端口。

首先運行 rpcinfo -p 顯示得到端口號,這個例子使用端口850,853。

  • iptables -A INPUT -p tcp -dport 111 -j ACCEPT

  • iptables -A INPUT -p udp -dport 111 -j ACCEPT

  • iptables -A INPUT -p tcp -dport 853 -j ACCEPT

  • iptables -A INPUT -p udp -dport 853 -j ACCEPT

  • iptables -A INPUT -p tcp -dport 850 -j ACCEPT

  • iptables -A INPUT -p udp -dport 850 -j ACCEPT

上面的例子當ypbind重新啟動時將失效,有2種解決方案:

(1) 分配nis服務(wù)靜態(tài)ip

(2) 使用精妙的腳本

18、允許指定網(wǎng)段連接Rsync

  • iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 -dport 873 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -sport 873 -m state -state ESTABLISHED -j ACCEPT

19、允許mysql從指定的網(wǎng)段連接

  • iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 -dport 3306 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -sport 3306 -m state -state ESTABLISHED -j ACCEPT

20、允許sendmail或者postfix

  • iptables -A INPUT -i eth0 -p tcp -dport 25 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -sport 25 -m state -state ESTABLISHED -j ACCEPT

21、允許IMAP和IMAPS

  • iptables -A INPUT -i eth0 -p tcp -dport 143 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -sport 143 -m state -state ESTABLISHED -j ACCEPT

  • iptables -A INPUT -i eth0 -p tcp -dport 993 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -sport 993 -m state -state ESTABLISHED -j ACCEPT

22、允許POP3和POP3S

  • iptables -A INPUT -i eth0 -p tcp -dport 110 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -sport 110 -m state -state ESTABLISHED -j ACCEPT

  • iptables -A INPUT -i eth0 -p tcp -dport 995 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -sport 995 -m state -state ESTABLISHED -j ACCEPT

23、預(yù)防DDOS攻擊

  • iptables -A INPUT -p tcp -dport 80 -m limit -limit 25/minute -limit-burst 100 -j ACCEPT

  • -m :使用iptables擴展

  • –limit 25/minute : 限制分鐘連接請求數(shù)

  • –limit-burst:觸發(fā)閥值,一次涌入數(shù)據(jù)包數(shù)量

24、端口轉(zhuǎn)發(fā)

來自442的都轉(zhuǎn)到22端口

  • iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 -dport 422 -j DNAT -to 192.168.102.37:22

你還必須明確允許442端口

  • iptables -A INPUT -i eth0 -p tcp -dport 422 -m state -state NEW,ESTABLISHED -j ACCEPT

  • iptables -A OUTPUT -o eth0 -p tcp -sport 422 -m state -state ESTABLISHED -j ACCEPT

25、包丟棄日志

你也許想查看所有丟棄包的日志。首先創(chuàng)建一個新鏈叫 LOGGING

  • iptables -N LOGGING

確保所有的連接跳到LOGGING

  • iptables -A INPUT -j LOGGING

記錄這些包通過自定義名字 "log-prefix"

  • iptables -A LOGGING -m limit -limit 2/min -j LOG -log-prefix "IPTables Packet Dropped:" -log-level 7

最后丟棄這些數(shù)據(jù)包

  • iptables -A LOGGING -j DROP

參考

https:///post/25-iptables-policy.html

https://www.jianshu.com/p/fd0e5ce233a7

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多