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 규칙을 전면적으로 점검해야 한다고 생각합니다. 감사의 예를 들어보세요.
답변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