tra-loi-cau-hoi-phat-trien-web.com

lỗi iptables: tùy chọn không xác định --dport

Lệnh iptables không còn nhận ra một trong các tùy chọn được sử dụng phổ biến nhất khi xác định quy tắc: --dport.

Tôi nhận được lỗi này:

[[email protected] /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.

Lệnh add rule ở trên chỉ là một ví dụ để kích hoạt các kết nối Terraria.

Đây là những gì tôi hiện có với cấu hình iptables barebones (listiptables được đặt bí danh là iptables -L -v --line-numbers) và rõ ràng là --dport đã hoạt động trong quá khứ:

[email protected] /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            

Tôi cũng đang cố gắng xác định chuỗi tùy chỉnh (lấy cảm hứng từ câu hỏi này ) để chấp nhận kết nối tcp & udp để tôi không phải xác định hai quy tắc cho mọi thứ mà tôi muốn bật tcp và udp cho (chẳng hạn như máy chủ Minecraft hoặc Terraria hoặc dịch vụ khác hoàn toàn). Nhưng ngay cả điều này cũng không hoạt động:

[[email protected] /home/calyodelphi]# iptables -P ACCEPT_TCP_UDP DROP
iptables: Bad built-in chain name.

Điều này đang trở nên rất bực bội, theo cách nói lịch sự (số lượng chửi rủa liên quan đến việc này sẽ khiến một thủy thủ bảo tôi xem miệng). Google-fu của tôi rất tệ, vì vậy tôi vẫn chưa tìm được giải pháp hiệu quả nào cho việc này. Tôi đang chạy CentOS 6.5 trên bộ định tuyến. Bất kỳ trợ giúp và gợi ý mà các bạn có thể cung cấp sẽ là tuyệt vời.

BIÊN TẬP:

Câu hỏi thưởng: Tôi cũng đang lên kế hoạch cấu hình chuyển tiếp cổng. Có còn cần thiết phải đặt quy tắc để chấp nhận kết nối đến qua các cổng cụ thể không?

19
Calyo Delphi

Đầu tiên cho một -p tùy chọn như -p tcp hoặc là -p udp.

Ví dụ:

iptables -A INPUT -p tcp --dport 22 -m state --state MỚI -j DROP

iptables -A INPUT -p udp --dport 53 --sport 1024: 65535 -j CHẤP NHẬN

Bạn cũng có thể thử -p all nhưng tôi chưa bao giờ làm điều đó và không tìm thấy quá nhiều sự hỗ trợ cho nó trong các ví dụ.

32
dmourati

Giao thức (-p) là bắt buộc nếu bạn sử dụng --dport. Thí dụ:

-p tcp
9
Diego Woitasen

@dmourati và @diegows đã trả lời câu hỏi đầu tiên của bạn, vì vậy tôi sẽ giải quyết câu hỏi thứ hai của bạn. Và câu hỏi tiền thưởng. Và tôi cũng sẽ đưa ra một mẹo thưởng;)

iptables -Pchỉ chấp nhận chuỗi BUILT-IN. Trong bảng filter, đó sẽ là các chuỗi INPUT, OUTPUTFORWARD.

Chuyển tiếp cổng không được xử lý bởi chuỗi INPUT, vì vậy bạn không phải mở cổng trong chuỗi INPUT. Mặc dù vậy, nó hiện được xử lý bởi chuỗi FORWARD. Hãy cẩn thận về điều đó.

Tiền thưởng: Khi tìm hiểu và/hoặc xử lý sự cố iptables, đầu ra của iptables-save là đầu & vai tốt hơn đầu ra của iptables -L -v --line-numbers. Hãy thử nó, bạn sẽ ngạc nhiên đấy :)

3
pepoluan