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

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

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 연결을 활성화하는 예일 뿐입니다.

다음은 현재 베어본 iptables 구성( 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를 실행하고 있습니다. 여러분이 제공할 수 있는 도움과 조언은 정말 좋을 것입니다.

편집하다:

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

답변1

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

예:

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

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

시도해 볼 수도 있지만 -p all저는 그렇게 해본 적이 없으며 예제에서 이에 대한 지원을 너무 많이 찾지 못했습니다.

답변2

또 다른 가능한 해결책은 루트로 실행하는 것을 잊어버리는 것입니다. 방금 데비안 튜토리얼을 사용할 때 이런 문제를 만났습니다.

$ iptables -t nat -p tcp -I PREROUTING --src 0/0 --dst 127.0.0.1  --dport 80 -j REDIRECT --to-ports 8080
iptables v1.8.2 (nf_tables): unknown option "--dport"
$ sudo iptables -t nat -p tcp -I PREROUTING --src 0/0 --dst 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080
# OK

답변3

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

-p tcp

답변4

@dmourati와 @diegows는 이미 첫 번째 질문에 답변했으므로 두 번째 질문을 다루겠습니다. 그리고 보너스 질문입니다. 그리고 보너스 팁도 하나 던져드릴게요 ;)

iptables -P 오직내장 체인을 허용합니다. 테이블 에서는 , 및 체인이 filter됩니다 .INPUTOUTPUTFORWARD

포트 포워딩은 체인에서 처리되지 않으므로 체인 INPUT에서 포트를 열 필요가 없습니다 INPUT. 그것하다그래도 체인 에 의해 처리됩니다 FORWARD. 조심하세요.

보너스 팁:학습 및/또는 문제 해결 시 iptables의 출력은 iptables-save의 출력보다 머리와 어깨가 더 좋습니다 iptables -L -v --line-numbers. 시도해 보세요. 기분 좋게 놀랄 것입니다 :)

관련 정보