У меня есть правило iptable, в котором я разрешаю подсеть IP-адресов. Правило следующее:
iptables -I INPUT 2 -i eth0 -s x.x.x.x / 24 -d x.x.X.x -j ПРИНЯТЬ
Например, я хочу разрешить подсеть 172.16.0.0/24. Могу ли я столкнуться с проблемой, такой как IP-адрес из этой подсети не имеет доступа, хотя я настроил эту подсеть как разрешенную?
Я имею дело с такой проблемой. Я настроил 172.16.0.0/24 на разрешение из iptables, но когда я пытаюсь получить доступ с IP 172.16.0.9, у меня нет доступа.
Попробуйте удалить "-d x.x.x.x". Я говорю это, потому что INPUT означает весь трафик, предназначенный для вашей машины, поэтому нет необходимости указывать пункт назначения. РЕДАКТИРОВАТЬ: Также попробуйте добавить «-p tcp» перед «-s x.x.x.x / 24». Думаю, вам нужно указать протокол матча. - aseaudi 17 минут назад
Вы можете отлаживать правила netfilter, включив цель TRACE:
Сначала загрузите соответствующий модуль ядра, чтобы войти непосредственно в системный журнал:
modprobe -i ipt_LOG
А затем создайте правило для регистрации всего трафика из вашей некорректной системы:
iptables -t raw -A PREROUTING --source 172.16.0.9 -p tcp -j TRACE
Пакеты регистрируются с префиксом строки: TRACE: tablename:chain-
name:type:rulenum
где type может быть "rule" для простого правила, "return" для неявного правила в конце определяемой пользователем цепочки и "policy" для политики встроенных цепочек. Rulenum можно найти с помощью iptables -L --line-numbers
Я думаю о двух возможных проблемах:
1 - вы не позволяете трафику уходить с вашего компьютера
iptables -I OUTPUT 1 -i eth0 -d x.x.x.x/24 -j ACCEPT
2 - вы предотвращаете попадание широковещательных пакетов на вашу машину
попробуйте это вместо исходного ввода:
iptables -I INPUT 1 -i eth0 -s x.x.x.x/24 -j ACCEPT
без использования IP-адреса назначения.