溫馨提示×

如何用iptables進行端口掃描檢測

小樊
38
2025-10-15 19:59:09
欄目: 編程語言

使用iptables進行端口掃描檢測是一種常見的網絡安全實踐。iptables是Linux系統中的一個命令行工具,用于配置內核防火墻(netfilter)的規則。以下是一些基本的步驟和命令,可以幫助你使用iptables進行端口掃描檢測:

1. 安裝iptables

首先,確保你的系統上已經安裝了iptables。如果沒有安裝,可以使用以下命令進行安裝:

sudo apt-get update
sudo apt-get install iptables

2. 設置默認策略

為了安全起見,建議先設置iptables的默認策略為DROP,這樣可以阻止所有未經明確允許的流量。

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

3. 允許必要的流量

接下來,允許一些必要的流量,比如SSH(默認端口22)、HTTP(默認端口80)和HTTPS(默認端口443)。

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT

sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT

4. 檢測端口掃描

你可以使用iptables的recent模塊來檢測端口掃描。以下是一個示例規則,用于檢測在短時間內對同一IP地址的多次連接嘗試:

# 創建一個新的recent列表
sudo iptables -N PORT_SCAN_DETECT

# 將新的連接添加到recent列表中
sudo iptables -A PORT_SCAN_DETECT -p tcp --syn -m conntrack --ctstate NEW -m recent --set --name PORT_SCAN

# 檢測recent列表中的連接數,如果超過閾值(例如5次),則丟棄該IP
sudo iptables -A PORT_SCAN_DETECT -p tcp --syn -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 5 --name PORT_SCAN -j DROP

# 將PORT_SCAN_DETECT鏈應用到INPUT鏈
sudo iptables -A INPUT -j PORT_SCAN_DETECT

5. 查看iptables規則

你可以使用以下命令查看當前的iptables規則:

sudo iptables -L -v -n

6. 保存iptables規則

為了確保在系統重啟后規則仍然有效,可以使用以下命令保存iptables規則:

sudo iptables-save > /etc/iptables/rules.v4

注意事項

  • 在進行端口掃描檢測之前,請確保你有足夠的權限和知識,以免誤操作導致網絡中斷。
  • 端口掃描檢測規則可能會誤報正常的流量,因此需要根據實際情況進行調整和優化。

通過以上步驟,你可以使用iptables進行基本的端口掃描檢測。根據具體需求,你還可以進一步擴展和優化這些規則。

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