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


19

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:

[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.

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 iptables -L -v --line-numbers) và rõ ràng là nó --dportđã hoạt động trong quá khứ:

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            

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 kích hoạt tcp và udp cho (chẳng hạn như Minecraft hoặc Terraria server, hoặc một dịch vụ khác hoàn toàn). Nhưng ngay cả điều này cũng không hoạt động:

[root@dragonweyr /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?

Câu trả lời:


27

Đầu tiên đưa ra một -ptùy chọn như -p tcphoặc -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 allnhư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ụ.


1
Tôi chỉ thử điều này với -p allvà tôi đã nhận được chính xác cùng một lỗi. unknown option --dport. Nó đã làm việc với -p tcpnhưng điều đó không thực sự giúp tôi trong trường hợp này vì nó chỉ dẫn đến cùng một vấn đề: xác định các quy tắc tcp / udp riêng lẻ cho mọi thứ.
Calyo Delphi

Từ kinh nghiệm của tôi, sử dụng allkhông bao giờ làm việc với việc chỉ định một cổng. Tuy nhiên, thay vì có nhiều quy tắc cho các giao thức khác nhau, bạn có thể suy nghĩ về các quy tắc theo một hướng khác. Tạo quy tắc dựa trên giao thức và sau đó sử dụng multiportstùy chọn để nhóm một số quy tắc lại với nhau.
canadmos

Vì vậy, nếu tôi muốn kích hoạt kết nối Terraria và Minecraft, tôi có thể sử dụng đa kênh để mở 7777 và 25565 và tạo quy tắc TCP và UDP cho mỗi cặp cổng không?
Calyo Delphi

3
Tùy chọn -p phải là một giao thức duy nhất có khái niệm về cổng ( -p ICMP --dport whatevercũng không hoạt động, vì lý do rõ ràng).
Falcon Momot

9

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

-p tcp

Ngoài ra, nó phải chỉ định một giao thức có khái niệm về các cổng, như @FalconMomot đã chỉ ra trong một nhận xét trước đó.
một CVn

Bạn nói đúng, vì chi tiết đó :)
Diego Woitasen 30/12/13

3

@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 -P chỉ chấp nhận chuỗi BUILT-IN. Trong filterbảng, đó sẽ là INPUT, OUTPUTFORWARDdây chuyền.

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

Tiền thưởng: Khi học và / hoặc xử lý sự cố iptables, đầu ra của iptables-saveđầ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 :)


+1 cho câu trả lời hay, nhưng tôi hơi bất ngờ trước bình luận cuối cùng của bạn. Tôi ghét chẩn đoán iptablescác vấn đề từ -saveđầu ra; Tại sao bạn thấy nó tốt hơn iptables -L -n -v [--line-numbers]?
MadHatter hỗ trợ Monica

@MadHatter ví dụ đơn giản: Bạn có thể dễ dàng thấy các quy tắc đó với các --dporttùy chọn thực sự có -p tcpở phía trước. Bạn cũng có thể xem cách / khi xử lý quy tắc nhảy từ chuỗi tích hợp (ví dụ: INPUT) sang chuỗi tùy chỉnh (ví dụ: ACCEPT_TCP_UDP). Hai thông tin quan trọng không thể nhìn thấy trong đầu ra của iptables -L -n.
pepoluan

3
Một lợi ích khác: Tôi có thể làm iptables-save > somefile, chỉnh sửa somefilebằng vim, sau đó thực hiện iptables-apply -t 600 somefileđể kiểm tra nó. Nếu tôi vô tình chặn chính mình, sau 600 giây, các quy tắc trở lại.
pepoluan

Tiền thưởng được đánh giá rất cao, và đã được sử dụng. Tôi đã sử dụng iptables-saveđể giúp bản thân mình học hỏi từ một kết xuất cấu hình thô trước khi tôi hỏi câu hỏi này. Tuy nhiên, tôi không mong đợi FORWARDchuỗi sẽ là nơi tôi cần chú ý để chuyển tiếp cổng. Tôi sẽ phải đọc về điều đó.
Calyo Delphi

@CalyoDelphi nếu bạn thực hiện tìm kiếm "sơ đồ luồng gói netfilter", bạn sẽ thấy nơi mọi bảng và chuỗi áp dụng ;-)
pepoluan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.