Команда 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.
Вот то, что у меня сейчас есть как конфигурация barebones 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.
В вежливых выражениях это становится очень неприятным (количество ругательств, связанных с этим, заставило бы моряка посоветовать мне следить за своим ртом). Мой гугл-фу ужасен, поэтому я еще не нашел рабочего решения для этого. Я использую CentOS 6.5 на роутере. Любая помощь и советы, которые вы, ребята, можете предложить, были бы потрясающими.
РЕДАКТИРОВАТЬ:
Бонусный вопрос: я также планирую настроить переадресацию портов. Все еще необходимо устанавливать правила для приема входящих подключений через определенные порты?
Сначала дайте -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
но я никогда этого не делал и не нахожу слишком большой поддержки в примерах.
Протокол (-p) требуется, если вы используете --dport. Пример:
-p tcp
@dmourati и @diegows уже ответили на ваш первый вопрос, поэтому я отвечу на ваш второй вопрос. И бонусный вопрос. И еще добавлю бонусную подсказку;)
iptables -P
только принимает ВСТРОЕННЫЕ цепи. в filter
стол, это было бы INPUT
, OUTPUT
, и FORWARD
цепи.
Переадресация портов не обрабатывается INPUT
цепочке, поэтому вам не нужно открывать порт в INPUT
цепь. Это делает заниматься FORWARD
цепь, правда. Будьте осторожны с этим.
Бонусный совет: При обучении и / или устранении неполадок iptables
, выход iptables-save
на голову лучше, чем результат iptables -L -v --line-numbers
. Попробуйте, вы будете приятно удивлены :)
Если iptables
сообщить, что он использует nftables
, нужно использовать iptables-legacy
вместо.
Например:
Использовать iptables-legacy -A INPUT -p tcp --dport 22 -m state --state NEW -j DROP
Вместо того iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j DROP
Это старый вопрос, но он первый в результатах поиска.