<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          干貨:25 條有用的 iptables 常用示例

          共 7699字,需瀏覽 16分鐘

           ·

          2021-01-09 16:02



          本文將給出25個(gè)iptables常用規(guī)則示例,這些例子為您提供了些基本的模板,您可以根據(jù)特定需求對(duì)其進(jìn)行修改調(diào)整以達(dá)到期望。

          格式

          iptables?[-t?表名]?選項(xiàng)?[鏈名]?[條件]?[-j?控制類型]

          參數(shù)

          -P 設(shè)置默認(rèn)策略:iptables -P INPUT (DROP|ACCEPT)
          -F 清空規(guī)則鏈
          -L 查看規(guī)則鏈
          -A 在規(guī)則鏈的末尾加入新規(guī)則
          -I num 在規(guī)則鏈的頭部加入新規(guī)則
          -D num 刪除某一條規(guī)則
          -s 匹配來源地址IP/MASK,加嘆號(hào)"!"表示除這個(gè)IP外。
          -d 匹配目標(biāo)地址
          -i 網(wǎng)卡名稱 匹配從這塊網(wǎng)卡流入的數(shù)據(jù)
          -o 網(wǎng)卡名稱 匹配從這塊網(wǎng)卡流出的數(shù)據(jù)
          -p 匹配協(xié)議,如tcp,udp,icmp
          --dport num 匹配目標(biāo)端口號(hào)
          --sport num 匹配來源端口號(hào)

          示例

          1. 刪除已有規(guī)則

          在開始創(chuàng)建iptables規(guī)則之前,你也許需要?jiǎng)h除已有規(guī)則。命令如下:

          iptables?-F
          (or)
          iptables?–flush
          2.設(shè)置鏈的默認(rèn)策略

          鏈的默認(rèn)政策設(shè)置為”ACCEPT”(接受),若要將INPUT,FORWARD,OUTPUT鏈設(shè)置成”DROP”(拒絕),命令如下:

          iptables?-P?INPUT?DROP
          iptables?-P?FORWARD?DROP
          iptables?-P?OUTPUT?DROP

          當(dāng)INPUT鏈和OUTPUT鏈都設(shè)置成DROP時(shí),對(duì)于每一個(gè)防火墻規(guī)則,我們都應(yīng)該定義兩個(gè)規(guī)則。例如:一個(gè)傳入另一個(gè)傳出。在下面所有的例子中,由于我們已將DROP設(shè)置成INPUT鏈和OUTPUT鏈的默認(rèn)策略,每種情況我們都將制定兩條規(guī)則。當(dāng)然,如果你相信你的內(nèi)部用戶,則可以省略上面的最后一行。例如:默認(rèn)不丟棄所有出站的數(shù)據(jù)包。在這種情況下,對(duì)于每一個(gè)防火墻規(guī)則要求,你只需要制定一個(gè)規(guī)則——只對(duì)進(jìn)站的數(shù)據(jù)包制定規(guī)則。

          3. 阻止指定IP地址

          例:丟棄來自IP地址x.x.x.x的包

          BLOCK_THIS_IP="x.x.x.x"
          iptables?-A?INPUT?-s?"$BLOCK_THIS_IP"?-j?DROP

          注:當(dāng)你在log里發(fā)現(xiàn)來自某ip地址的異常記錄,可以通過此命令暫時(shí)阻止該地址的訪問以做更深入分析

          例:阻止來自IP地址x.x.x.x eth0 tcp的包

          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的連接請(qǐng)求

          例:允許所有來自外部的SSH連接請(qǐng)求,即只允許進(jìn)入eth0接口,并且目標(biāo)端口為22的數(shù)據(jù)包

          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)絡(luò)的SSH連接請(qǐng)求

          例:僅允許來自于192.168.100.0/24域的用戶的ssh連接請(qǐng)求

          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.允許http和https的連接請(qǐng)求

          例:允許所有來自web - http的連接請(qǐng)求

          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

          例:允許所有來自web - https的連接請(qǐng)求

          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
          7. 使用multiport 將多個(gè)規(guī)則結(jié)合在一起

          允許多個(gè)端口從外界連入,除了為每個(gè)端口都寫一條獨(dú)立的規(guī)則外,我們可以用multiport將其組合成一條規(guī)則。如下所示:

          例:允許所有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
          8. 允許從本地發(fā)起的SSH請(qǐng)求
          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

          請(qǐng)注意,這與允許ssh連入的規(guī)則略有不同。本例在OUTPUT鏈上,我們?cè)试SNEW和ESTABLISHED狀態(tài)。在INPUT鏈上,我們只允許ESTABLISHED狀態(tài)。ssh連入的規(guī)則與之相反。

          9. 僅允許從本地發(fā)起到一個(gè)指定的網(wǎng)絡(luò)域的SSH請(qǐng)求

          例:僅允許從內(nèi)部連接到網(wǎng)域192.168.100.0/24

          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
          10. 允許從本地發(fā)起的HTTPS連接請(qǐng)求

          下面的規(guī)則允許輸出安全的網(wǎng)絡(luò)流量。如果你想允許用戶訪問互聯(lián)網(wǎng),這是非常有必要的。在服務(wù)器上,這些規(guī)則能讓你使用wget從外部下載一些文件

          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

          注:對(duì)于HTTP web流量的外聯(lián)請(qǐng)求,只需要將上述命令中的端口從443改成80即可。

          11. 負(fù)載平衡傳入的網(wǎng)絡(luò)流量

          使用iptables可以實(shí)現(xiàn)傳入web流量的負(fù)載均衡,我們可以傳入web流量負(fù)載平衡使用iptables防火墻規(guī)則。
          例:使用iptables nth將HTTPS流量負(fù)載平衡至三個(gè)不同的ip地址。

          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. 允許外部主機(jī)ping內(nèi)部主機(jī)
          iptables?-A?INPUT?-p?icmp?--icmp-type?echo-request?-j?ACCEPT
          iptables?-A?OUTPUT?-p?icmp?--icmp-type?echo-reply?-j?ACCEPT
          13. 允許內(nèi)部主機(jī)ping外部主機(jī)
          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)訪問

          例:在服務(wù)器上允許127.0.0.1回環(huán)訪問。

          iptables?-A?INPUT?-i?lo?-j?ACCEPT
          iptables?-A?OUTPUT?-o?lo?-j?ACCEPT
          15. 允許內(nèi)部網(wǎng)絡(luò)域外部網(wǎng)絡(luò)的通信

          防火墻服務(wù)器上的其中一個(gè)網(wǎng)卡連接到外部,另一個(gè)網(wǎng)卡連接到內(nèi)部服務(wù)器,使用以下規(guī)則允許內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)的通信。此例中,eth1連接到外部網(wǎng)絡(luò)(互聯(lián)網(wǎng)),eth0連接到內(nèi)部網(wǎng)絡(luò)(例如:192.168.1.x)。

          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管理用戶帳戶,你需要允許NIS連接。如果你不允許NIS相關(guān)的ypbind連接請(qǐng)求,即使SSH連接請(qǐng)求已被允許,用戶仍然無法登錄。NIS的端口是動(dòng)態(tài)的,先使用命令rpcinfo –p來知道端口號(hào),此例中為853和850端口。

          rpcinfo?-p?|?grep?ypbind

          例:允許來自111端口以及ypbind使用端口的連接請(qǐng)求

          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

          注:當(dāng)你重啟ypbind之后端口將不同,上述命令將無效。有兩種解決方案:1)使用你NIS的靜態(tài)IP 2)編寫shell腳本通過“rpcinfo - p”命令自動(dòng)獲取動(dòng)態(tài)端口號(hào),并在上述iptables規(guī)則中使用。

          18. 允許來自指定網(wǎng)絡(luò)的rsync連接請(qǐng)求

          例:允許來自網(wǎng)絡(luò)192.168.101.0/24的rsync連接請(qǐng)求

          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. 允許來自指定網(wǎng)絡(luò)的MySQL連接請(qǐng)求

          很多情況下,MySQL數(shù)據(jù)庫與web服務(wù)跑在同一臺(tái)服務(wù)器上。有時(shí)候我們僅希望DBA和開發(fā)人員從內(nèi)部網(wǎng)絡(luò)(192.168.100.0/24)直接登錄數(shù)據(jù)庫,可嘗試以下命令:

          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郵件服務(wù)

          Sendmail和postfix都使用了25端口,因此我們只需要允許來自25端口的連接請(qǐng)求即可。

          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

          例:允許IMAP/IMAP2流量,端口為143

          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

          例:允許IMAPS流量,端口為993

          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

          例:允許POP3訪問

          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

          例:允許POP3S訪問

          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. 防止DoS攻擊
          iptables?-A?INPUT?-p?tcp?--dport?80?-m?limit?--limit?25/minute?--limit-burst?100?-j?ACCEPT

          上述例子中:

          -m limit: 啟用limit擴(kuò)展
          –limit 25/minute: 允許最多每分鐘25個(gè)連接(根據(jù)需求更改)。
          –limit-burst 100: 只有當(dāng)連接達(dá)到limit-burst水平(此例為100)時(shí)才啟用上述limit/minute限制。

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

          例:將來自422端口的流量全部轉(zhuǎn)到22端口。

          這意味著我們既能通過422端口又能通過22端口進(jìn)行ssh連接。啟用DNAT轉(zhuǎn)發(fā)。

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

          除此之外,還需要允許連接到422端口的請(qǐng)求

          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. 記錄丟棄的數(shù)據(jù)表

          第一步:新建名為LOGGING的鏈

          iptables?-N?LOGGING

          第二步:將所有來自INPUT鏈中的數(shù)據(jù)包跳轉(zhuǎn)到LOGGING鏈中

          iptables?-A?INPUT?-j?LOGGING

          第三步:為這些包自定義個(gè)前綴,命名為”IPTables Packet Dropped”

          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



          良許個(gè)人微信


          添加良許個(gè)人微信即送3套程序員必讀資料


          → 精選技術(shù)資料共享

          → 高手如云交流社群





          本公眾號(hào)全部博文已整理成一個(gè)目錄,請(qǐng)?jiān)诠娞?hào)里回復(fù)「m」獲取!

          推薦閱讀:

          PyCharm vs VSCode,是時(shí)候改變你的 IDE 了!

          微信QQ等主流應(yīng)用上線國產(chǎn)系統(tǒng)UOS:界面曝光

          萬萬沒想到,良許也開掛了


          5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹莓派,等等。在公眾號(hào)內(nèi)回復(fù)「1024」,即可免費(fèi)獲?。?!


          瀏覽 31
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本不卡无码视频 | 草比网站 | 亚洲操B在线看 | 成人免费无码婬片在线 | 操操综合网 |