iptables 오류 : 알 수없는 옵션 --dport


19

iptables 명령은 더 이상 규칙을 정의 할 때 가장 일반적으로 사용되는 옵션 중 하나를 인식하지 않습니다 --dport.

이 오류가 발생합니다.

[root@dragonweyr /home/calyodelphi]# iptables -A INPUT --dport 7777 -j ACCEPT_TCP_UDP
iptables v1.4.7: unknown option `--dport'
Try `iptables -h' or 'iptables --help' for more information.

위의 규칙 추가 명령은 Terraria 연결을 활성화하기위한 예일뿐입니다.

다음은 현재 ipbones 기본 구성으로 가지고있는 것입니다 ( listiptables과 별칭으로 지정됨 iptables -L -v --line-numbers) --dport.

root@dragonweyr /home/calyodelphi]# listiptables 
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       39  4368 ACCEPT     all  --  lo     any     anywhere             anywhere            
2      114 10257 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
3        1    64 ACCEPT     tcp  --  eth1   any     anywhere             anywhere            tcp dpt:EtherNet/IP-1 
4       72 11610 ACCEPT     all  --  eth1   any     anywhere             anywhere            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 91 packets, 10045 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain ACCEPT_TCP_UDP (0 references)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            

또한 tcp & udp 연결을 허용 하도록 사용자 정의 체인 ( 이 질문에서 영감을 받음 )을 정의하려고하므로 tcp 및 udp를 활성화하려는 모든 것에 대해 두 가지 규칙을 정의 할 필요가 없습니다 (예 : Minecraft 또는 Terraria 서버 또는 다른 서비스). 그러나 이것조차 작동하지 않습니다.

[root@dragonweyr /home/calyodelphi]# iptables -P ACCEPT_TCP_UDP DROP
iptables: Bad built-in chain name.

이것은 정중 한 용어로 매우 실망스러워지고 있습니다. 내 Google-fu는 끔찍하기 때문에 아직 이것에 대한 효과적인 해결책을 찾지 못했습니다. 라우터에서 CentOS 6.5를 실행하고 있습니다. 여러분이 제공 할 수있는 모든 도움과 조언은 훌륭합니다.

편집하다:

보너스 질문 : 포트 포워딩도 구성 할 계획입니다. 특정 포트를 통해 들어오는 연결을 수락하도록 규칙을 설정해야합니까?

답변:


27

먼저 또는 -p과 같은 옵션을 제공하십시오 . -p tcp-p udp

예 :

iptables -A 입력 -p tcp --dport 22 -m state --state NEW -j DROP

iptables -A 입력 -p udp --dport 53 --sport 1024 : 65535 -j 수락

시도해 볼 수도 -p all있지만 결코 그렇게 한 적이 없으며 예제에서 너무 많은 지원을 찾지 못합니다.


1
방금 시도했지만 -p all정확히 같은 오류가 발생했습니다. unknown option --dport. 그것은 효과가 -p tcp있었지만 실제로는 모든 문제에 대해 개별 tcp / UDP 규칙을 정의하는 것과 같은 문제가 발생하기 때문에이 경우 실제로 도움이되지 않습니다.
Calyo Delphi

내 경험상,를 사용 all하면 포트를 지정하는 데 결코 효과가 없었습니다. 그러나 다른 프로토콜에 대해 여러 규칙을 사용하는 대신 규칙을 다른 방향으로 생각할 수 있습니다. 프로토콜을 기반으로 규칙을 만든 다음 multiports옵션을 사용하여 일부 규칙을 그룹화하십시오.
canadmos

따라서 Terraria 및 Minecraft 연결을 활성화하려면 멀티 포트를 사용하여 7777 및 25565를 열고 각 포트 쌍에 대해 TCP 및 UDP 규칙을 만들 수 있습니까?
Calyo Delphi

3
-p 옵션은 포트 개념을 가진 단일 프로토콜이어야합니다 ( -p ICMP --dport whatever명확한 이유로 작동하지 않음).
Falcon Momot

9

--dport를 사용하는 경우 프로토콜 (-p)이 필요합니다. 예:

-p tcp

또한 @FalconMomot가 이전 주석에서 지적했듯이 포트 개념이있는 프로토콜을 지정해야합니다.
CVn

세부 사항은 다음과 같습니다.)
Diego Woitasen

3

@dmourati와 @diegows는 이미 첫 번째 질문에 답 했으므로 두 번째 질문을 다룰 것입니다. 그리고 보너스 질문. 그리고 나는 또한 보너스 팁을 던질 것이다;)

iptables -P BUILT-IN 체인 허용합니다. 에서 filter테이블, 그 것 INPUT, OUTPUT그리고 FORWARD체인.

포트 전달은 INPUT체인에 의해 처리되지 않으므로 체인에서 포트를 열 필요가 없습니다 INPUT. 그것은 않습니다 에 의해 처리 얻을 FORWARD하지만, 체인. 조심해

보너스 팁 : 학습 및 / 또는 문제 해결 iptables시의 결과는 iptables-save의 결과보다 머리와 어깨가 더 좋습니다 iptables -L -v --line-numbers. 사용해보십시오, 당신은 즐겁게 놀랄 것입니다 :)


좋은 답변은 +1이지만 마지막 댓글에 약간 놀랐습니다. 나는 출력 에서 문제를 진단하는 것을 싫어 한다. 왜 그보다 더 나은 가요? iptables-saveiptables -L -n -v [--line-numbers]
MadHatter는 Monica를 지원합니다. Monica

@MadHatter 간단한 예 : --dport옵션이 -p tcp있는 규칙이 실제로 앞에 있다는 것을 쉽게 볼 수 있습니다 . 또한 규칙 처리가 내장 체인 (예 : INPUT)에서 사용자 정의 체인 (예 : ACCEPT_TCP_UDP)으로 이동하는 방법을 확인할 수 있습니다. 이 두 가지 중요한 정보는 의 출력에 표시 되지 않습니다iptables -L -n .
pepoluan

3
또 다른 이점 : vim을 사용하여 iptables-save > somefile편집 somefile한 다음 iptables-apply -t 600 somefile테스트 를 수행 할 수 있습니다. 실수로 자신을 차단하면 600 초 후에 규칙이 되돌아갑니다.
pepoluan

보너스 팁은 대단히 높이 평가되었으며 이미 사용되고 있습니다. iptables-save이 질문을하기 전에 원시 구성 덤프에서 배우는 데 도움 이되었습니다 . 그러나 FORWARD체인이 포트 포워딩에주의를 기울여야 할 곳에있을 것이라고는 생각하지 않았습니다 . 나는 그것에 대해 읽어야 할 것이다.
Calyo Delphi

@CalyoDelphi "netfilter packet flow diagram"을 검색하면 모든 테이블과 체인이 어디에 적용되는지 볼 수 있습니다 ;-)
pepoluan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.