溫馨提示×

Debian iptables如何管理鏈

小樊
45
2025-02-21 23:55:13
欄目: 智能運維

在Debian系統中,iptables是一個用于配置Linux內核防火墻(netfilter)規則的工具。通過iptables,你可以管理不同的鏈(chains),這些鏈定義了數據包在網絡棧中的處理流程。以下是一些常用的iptables命令和概念,幫助你管理鏈:

基本概念

  1. 鏈(Chains)
    • INPUT:處理進入本機的數據包。
    • OUTPUT:處理從本機發出的數據包。
    • FORWARD:處理經過本機轉發的數據包。
    • PREROUTING:用于目標地址轉換(DNAT)。
    • POSTROUTING:用于源地址轉換(SNAT)。

常用命令

  1. 查看所有鏈的規則

    sudo iptables -L -n -v
    
    • -L:列出規則。
    • -n:以數字形式顯示地址和端口。
    • -v:詳細模式,顯示更多信息。
  2. 查看特定鏈的規則

    sudo iptables -L INPUT -n -v
    
  3. 添加規則

    • INPUT鏈的末尾添加一條規則,拒絕所有來自特定IP的流量:
      sudo iptables -A INPUT -s 192.168.1.100 -j DROP
      
    • INPUT鏈的開頭添加一條規則,允許SSH連接:
      sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
      
  4. 刪除規則

    • 刪除INPUT鏈中第一條規則:
      sudo iptables -D INPUT 1
      
    • 根據規則編號刪除規則(需要先查看規則編號):
      sudo iptables -L INPUT --line-numbers -n -v
      sudo iptables -D INPUT <規則編號>
      
  5. 清空所有鏈的規則

    sudo iptables -F
    
    • -F:清空指定鏈的所有規則。
    • -t <表>:指定表(如filter、nat、mangle)。
  6. 保存規則: Debian系統通常使用iptables-persistent來保存和恢復iptables規則。

    • 安裝iptables-persistent
      sudo apt-get install iptables-persistent
      
    • 保存當前規則:
      sudo netfilter-persistent save
      
    • 恢復規則:
      sudo netfilter-persistent reload
      

示例

假設你想允許來自特定IP的SSH連接,并拒絕所有其他SSH連接,可以這樣做:

  1. 允許特定IP的SSH連接:

    sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
    
  2. 拒絕所有其他SSH連接:

    sudo iptables -A INPUT -p tcp --dport 22 -j DROP
    

通過這些命令,你可以靈活地管理Debian系統中的iptables鏈和規則。記得在修改防火墻規則時要小心,以免意外阻止必要的網絡流量。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女