Linux

iptables:DPT 範圍內的所有 SSH 連接

  • December 4, 2019

iptables 規則拒絕我的伺服器上的連接,應該允許這些連接。它們是應該允許連接的 SSH 客戶端。

系統日誌顯示:

Dec  3 16:22:49 server kernel: [4125974.777012] iptables denied: IN=eth0 OUT= MAC=<...> SRC=<...> DST=11.22.33.44 LEN=60 TOS=0x00 PREC=0x00 TTL=56 ID=327 DF PROTO=TCP SPT=42962 DPT=CLIENTPORT WINDOW=64240 RES=0x00 SYN URGP=0
  • DST=11.22.33.44 是伺服器的IP地址
  • MAC=<…> 是伺服器的 eth0 MAC 地址(已編輯)
  • SRC=<…> 可以是來自客戶端位置的任何 IP 地址(已編輯)
  • DPT=CLIENTPORT 來自我指定的一系列埠。每個客戶端都有一個他們使用的埠號。當然,實際的埠號會顯示在系統日誌中。

提供給客戶端的埠號並非出於安全考慮。sshd_config已加固,不允許密碼登錄等。客戶端使用密鑰對連接。

**我需要有關允許這些連接的 iptables 規則的幫助。**是否可以為 DPT 指定允許的埠範圍?

目前的規則是:

   # iptables -L
   Chain INPUT (policy ACCEPT)
   target     prot opt source               destination
   ACCEPT     all  --  anywhere             anywhere
   REJECT     all  --  anywhere             127.0.0.0/8         reject-with icmp-port-unreachable
   ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
   ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:80
   ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:443
   ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:22
   ACCEPT     icmp --  anywhere             anywhere            icmp echo-request
   LOG        all  --  anywhere             anywhere            limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: '
   REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable

   Chain FORWARD (policy ACCEPT)
   target     prot opt source               destination
   REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable

   Chain OUTPUT (policy ACCEPT)
   target     prot opt source               destination
   ACCEPT     all  --  anywhere             anywhere

唯一需要的傳入連接是網路伺服器和 SSH。我認為現有的 iptables 規則需要徹底修改。一個例子值得讚賞。

您正在尋找多埠 iptables 擴展,因此請輸入:

iptables -A INPUT -p tcp -m multiport --dports &lt;port1&gt;:&lt;portn&gt; -j ACCEPT

防火牆腳本中規則 3 之後的某處。

備註:規則 2(拒絕發往 localhost 的數據包)很奇怪:許多本地程序通過lo介面進行通信。通常你使用相反的規則:

iptables -A INPUT -i lo -j ACCEPT

引用自:https://unix.stackexchange.com/questions/555443