iptables에서 다양한 포트를 여는 올바른 방법은 무엇입니까


56

나는 다음을 조언하는 기사를 보았습니다.

iptables -A INPUT -p tcp 1000:2000 -j ACCEPT

그리고 위의 내용은 작동하지 않으며 iptables는 --multiport옵션으로 여러 포트 선언 만 지원한다고 언급하는 다른 사람들도 있습니다.

iptables로 많은 포트를 여는 올바른 방법이 있습니까?


답변:


60

이것은 올바른 방법입니다.

iptables -A INPUT -p tcp --match multiport --dports 1024:3000 -j ACCEPT

예로서. 여기에 출처 .


5
규칙 집합의 상태를 모르는 경우 -I보다 안전합니다 -A.
user9517

@Iain, 그 이유를 설명해 주시겠습니까?
jayhendren

2
@jayhendren 많은 규칙 집합에는 기본적으로 모든 항목 삭제 규칙이 있습니다 (예 : -A INPUT -j REJECT --reject-with icmp-host-prohibitedINPUT 및 다른 테이블의 끝 부분). 를 사용 -A하면 최종 규칙 이후에 테이블 끝에 규칙이 추가되므로 netfilter가 첫 번째 경기에서 승리하는 것으로 간주되지 않습니다. -I규칙을 사용 하면 표의 시작 부분에 규칙이 삽입되므로 항상 고려됩니다.
user9517

4
@Iain 그러나 일부 규칙 세트에는 처음에 필터 또는 속도 제한 패킷에 대한 규칙이 있으므로 규칙 세트를 모르는 경우 항상 더 안전한 -I것은 아니라는 점을 지적하는 것이 좋습니다 .
jayhendren

3
@jayhendren 나는 당신이 지금 막 생각하고 또한 내가 좀하지 말라고주의 항상 .
user9517

54

잘못 썼지 만 (잊어 버렸습니다 --dport) 당신이들은 것은 옳습니다 .

iptables -A INPUT -p tcp --dport 1000:2000 TCP 포트 1000에서 2000까지의 인바운드 트래픽을 엽니 다.

-m multiport --dports예를 들어 열려는 범위가 연속적이지 않은 경우에만 필요합니다. 예를 들어 -m multiport --dports 80,443, 사이에있는 범위가 아닌 HTTP와 HTTPS 열립니다 .

규칙 순서는 중요하며 (Iain이 다른 곳에서 언급 한 것처럼) 추가 한 규칙이 효과적인 위치에 있는지 확인하는 것이 귀하의 임무입니다.


1
당신이 원한다면 나는 여기에서도
인용

1
희 희희! 그러면 메시지를 반복 할 가치가 있습니다!
MadHatter

2
이것이 정답입니다. 더 철저합니다.
Andrew Kozak

10

TL; DR이지만 ...

멀티 포트 모듈이없는 순수한 포트 범위 : iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT

동등한 멀티 포트 예 : iptables -A INPUT -p tcp -m multiport --dports 1000:2000 -j ACCEPT

... 다중 범위의 다중 포트에 대한 변형 (예, 가능) : iptables -A INPUT -p tcp -m multiport --dports 1000,1001,1002:1500,1501:2000 -j ACCEPT

... 및 부정을 갖는 동등한 다중 포트 다중 범위 예 : iptables -A INPUT -p tcp -m multiport ! --dports 0:999,2001:65535 -j ACCEPT

푼다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.