하나의 포트만 제외하고 모두 차단하는 방법 (예: 9999
특정 IP에서 서버에 액세스)192.168.0.1
iptables -A INPUT -s 192.168.0.1 -j DROP
모든 포트가 차단됩니다.
특정 IP의 포트 범위를 차단할 수 있나요?
답변1
물론이죠!
iptables
규칙은 순서대로 적용됩니다. 따라서 먼저 체인에 대해 매우 엄격한 정책을 만든 다음 특정 포트에서 트래픽을 허용할 수 있습니다.
먼저 기본 체인 정책을 설정할 수 있습니다. 예를 들면 다음과 같습니다. (기본적으로 ACCEPT로 설정되어 있습니다.)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
이렇게 하면 모든 콘텐츠를 거부하도록 각 체인을 구성할 수 있습니다. 그런 다음 필요한 경우 하나의 포트 또는 특정 네트워크 세그먼트에 대한 트래픽만 허용할 수 있습니다.
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
INPUT
규칙을 추가하려는 체인의 이름입니다. -i
규칙이 적용되는 인터페이스를 지정하는 데 사용됩니다( eth0
예제에서는). -p
프로토콜을 지정하는 데 사용됩니다.( tcp
) 이 예에서는 --dport
어느 포트에서 지정할 수 있습니다. 트래픽이 허용되면 -m state
방화벽에 연결 상태를 보도록 지시합니다. 이는 연결 --state NEW,ESTABLISHED
을 허용하는 두 가지 상태를 사용할 수 있도록 허용하고 마지막으로 -j ACCEPT
앞서 설명한 규칙과 일치하는 연결이 허용된다는 것을 방화벽에 알립니다.
마지막 질문에서 IP 및/또는 포트 범위를 요구하므로 이를 수행하는 방법은 --dport 80:10010
(80에서 10010까지의 포트에 규칙이 적용됨) IP 범위를 사용하여 -m iprange --src-range 192.168.1.100-192.168.1.200
규칙이 모든 주소에 적용되도록 하는 것입니다. 교통. IP 범위는 192.168.1.100 - 192.168.1.200입니다.
전체 작업 예:
iptables -A INPUT -i eth0 -p tcp --dport 80:10010 -m iprange --src-range 192.168.1.100-192.168.1.200 -m state --state NEW,ESTABLISHED -j ACCEPT