Linux
iptables:DPT 範圍內的所有 SSH 連接
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 <port1>:<portn> -j ACCEPT
防火牆腳本中規則 3 之後的某處。
備註:規則 2(拒絕發往 localhost 的數據包)很奇怪:許多本地程序通過
lo
介面進行通信。通常你使用相反的規則:iptables -A INPUT -i lo -j ACCEPT