Помилка iptables: невідомий варіант - звіт


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.

Ось що я зараз маю як конфігурація iptables barebones ( 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-фу жахливий, тому я ще не знайшов робочого рішення для будь-якого з цього. Я працюю на маршрутизаторі CentOS 6.5. Будь-яка допомога та вказівки, які ви можете запропонувати, були б приголомшливими.

Редагувати:

Питання про бонус: я також планую налаштувати переадресацію портів. Чи все-таки потрібно встановити правила прийому вхідних з'єднань через конкретні порти?

Відповіді:


27

Спочатку дайте -pваріант на зразок -p tcpабо -p udp.

Приклади:

iptables -A INPUT -p tcp - доповідь 22 -м стан - держава НОВЕ -j КРОПКА

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

Ви також можете спробувати, -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

Протокол (-p) необхідний, якщо ви використовуєте --dport. Приклад:

-p tcp

Крім того, він повинен вказати протокол, що містить поняття портів, як @FalconMomot вказував у коментарі раніше.
CVn

Ви маєте рацію на цю деталь :)
Дієго Войтасен

3

@dmourati та @diegows вже відповіли на ваше перше запитання, тому я вирішу ваше друге питання. І бонусне питання. І я також підкину бонусну пораду;)

iptables -P приймає тільки ланцюги BUILT-IN. У filterтаблиці, яка була б INPUT, OUTPUTі FORWARDланцюги.

Переадресація порту не обробляється INPUTланцюгом, тому вам не доведеться відкривати порт у INPUTланцюзі. Це, однак, обробляється FORWARDланцюгом. Будьте уважні до цього.

Порада про бонуси: під час навчання та / або усунення несправностей iptablesрезультат iptables-saveголовок та плечей кращий, ніж результат iptables -L -v --line-numbers. Спробуйте, ви будете приємно здивовані :)


+1 за гарну відповідь, але я трохи здивований вашим останнім коментарем. Я ненавиджу діагностувати iptablesпроблеми з -saveрезультатів; чому ти вважаєш це краще, ніж iptables -L -n -v [--line-numbers]?
MadHatter підтримує Моніку

Простий приклад @MadHatter: Ви можете легко побачити, що правила з --dportпараметрами насправді є -p tcpпопереду. Ви також можете бачити, як / коли обробка правил переходить зі вбудованого ланцюга (наприклад, INPUT) на користувацький ланцюг (наприклад, ACCEPT_TCP_UDP). Ці дві важливі відомості не видно у висновку iptables -L -n.
pepoluan

3
Ще одна користь: я можу зробити iptables-save > somefile, відредагувати somefileза допомогою vim, потім зробити iptables-apply -t 600 somefileтестування. Якщо я ненавмисно заблокував себе, через 600 секунд правила відновлюються.
pepoluan

Бонусна порада дуже цінується і вже використовується. Я використовував, iptables-saveщоб допомогти собі вчитися із нераціонального дампа конфігурації, перш ніж задавати це питання. FORWARDОднак я не сподівався, що ланцюжок буде там, де мені потрібно звернути увагу на переадресацію портів. Мені доведеться прочитати про це.
Calyo Delphi

@CalyoDelphi, якщо ви шукаєте "схему потоку пакетів netfilter", ви побачите, де застосовується кожна таблиця та ланцюжок ;-)
pepoluan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.