Я использую OpenWrt на своем маршрутизаторе, что позволяет мне запускать такие приложения, как apache и emule. Я установил emule, но я продолжаю получать lowid, указывая, что мой порт неправильно настроен. Я смог решить эту проблему с помощью SSHing в мой маршрутизатор и редактирование iptables. Моя таблица INPUT изначально выглядела так ...
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- anywhere anywhere state INVALID
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
syn_flood tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN
input_rule all -- anywhere anywhere
input all -- anywhere anywhere
Если я добавлю это правило, я получу highid, указывая, что мой порт настроен правильно ...
iptables -I INPUT 2 -p tcp --dport 4662 -j ACCEPT
После этого моя таблица INPUT выглядит так ...
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- anywhere anywhere state INVALID
ACCEPT tcp -- anywhere anywhere tcp dpt:4662
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
syn_flood tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN
input_rule all -- anywhere anywhere
input all -- anywhere anywhere
Обратите внимание на позицию. Если я попытаюсь сделать это 1-м или 2-м правилом в цепочке, это даст мне высокую оценку. Если я пойду куда-нибудь ниже этого (правила 3-6), я все равно получу слабость. Я очень мало знаю о iptables, но я понимаю, что правила в цепочке INPUT проверяются по порядку. Из того, что я вижу, мое правило работает, когда проверено до или после того, как все недопустимые пакеты отброшены.
Я не понимаю, почему он не работает после принятия всех связанных или установленных пакетов. Может кто-нибудь объяснить мне, почему это правило работает на позиции 1 или 2, но не на других?