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
必要な唯一の着信接続は、WebサーバーとSSHです。既存のiptablesルールを全面的にチェックする必要があると思います。感謝の例を見てください。
答え1
あなたが探しているマルチポート iptables 拡張だから:
iptables -A INPUT -p tcp -m multiport --dports <port1>:<portn> -j ACCEPT
ファイアウォールスクリプトの規則3次のどこかにあります。
コメント:ルール2(localhostに対するパケット拒否)が異常です。多くのローカルプロセスがインターフェイスを介して通信しますlo
。通常、反対のルールを使用します。
iptables -A INPUT -i lo -j ACCEPT