iptables игнорирует мои правила?

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Chet
Сообщения: 18
ОС: Red Hat Linux

iptables игнорирует мои правила?

Сообщение Chet »

У меня на виртуальной машине установлены Linux и Windows и объединены в сеть с выходом в интернет.
В Linux
eth0 получает сетевой адрес автоматически
eth1 сетевой адрес 192.168.1.8 255.255.255.0 (основной шлюз 192.168.1.1)
В Windows
192.168.1.5
255.255.255.0
(основной шлюз 192.168.1.1)

В Linux Red Hat есть утилита iptables. Мне хотелось бы настроить брандмауэр (чтобы работало во всей сети), но что-то не так наверное делаю. Вот задаю такие правила через командную строку

Код: Выделить всё

iptables -A INPUT -s ! 213.180.204.8 -p icmp --icmp-type 8 -j ACCEPT //должен разрешать пинговать все сайты кроме www.ya.ru но не работает

iptables -A INPUT -s ! 213.180.204.8 -p udp –j REJECT //можно пинговать только www.ya.ru (но странно здесь же протокол не icmp, кот. требует ping! и + это работает только в Linux т.е. не во всей сети + если убрать отрицание , то команда НЕ работает наоборот)

iptables -A FORWARD -p tcp -s torrents.ru -j DROP //эта команда по идее должна запретить заходить на сайт torrents.ru но на практике она лишь запрещает пинговать этот сайт, а с браузера просто заходит + опять таки не работает во всей сети).

iptables -A INPUT -s 213.180.204.8 -j DROP  //по идее эта команда должна запрещать выход на www.ya.ru при чем через любые порты. но НЕ работает.

iptables -A INPUT -i eth0  -s ! 213.180.204.8 -p icmp --icmp-type destination-unreachable -j ACCEPT //а здесь я указываю сетевую карту, но опять такие не работает как я понимаю правило гласит "пакеты от любого сервера кроме www.ya.ru поступающие на сетевую карту eth0 по протоколу icmp должны быть приняты" но ввожу ping www.ya.ru и спокойненько проходит обмен пакетами.


Огромный респект тем, кто поможет разобраться в этой ситуации.
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: iptables игнорирует мои правила?

Сообщение Mage-Warrior »

Во-первых, нужно убедиться, что других правил нет (iptables -L).
Во-вторых почитать русскую документацию... Пока пропустим.
Во-первых, обратите внимание на то, что у вас шлюз, а не прокси-сервер. Правила в цепочке INPUT будут срабатывать только для самого шлюза, а не для тех, кто через него выходит в сеть.

Расшифровываем:

iptables -A INPUT -s ! 213.180.204.8 -p icmp --icmp-type 8 -j ACCEPT

Все icmp пакеты, типа echo-request, кроме пакетов от ya.ru, поступающие на данную машину, принимаются. Внимательнее - echo-ЗАПРОС! То есть, если Ваш шлюз вздумает пинговать обезумевший админ с www.ya.ru, то его пакеты не попадут под это правило. Если же Вы будете ему мстить тем же, то будет от Вас выслан echo-request, а от него получен echo-reply (icmp-type=0). Вобщем, правило бесполезное и неосмысленное.

iptables -A INPUT -s ! 213.180.204.8 -p udp –j REJECT

Это правило отбрасывает входящие udp-пакеты, кроме пакетов от ya.ru. Пинги, видимо, проходят именно из-за некорректности предыдущего правила.

iptables -A FORWARD -p tcp -s torrents.ru -j DROP
Это не сработает для самого шлюза. Пакет может пройти из-за уже существующих правил (например, с использованием state ESTABLISHED, RELATED).

iptables -A INPUT -s 213.180.204.8 -j DROP
Опять же оговоримся про уже имеющиеся правила и про принадлежность цепочке INPUT.

iptables -A INPUT -i eth0 -s ! 213.180.204.8 -p icmp --icmp-type destination-unreachable -j ACCEPT
Во-первых, непонятно стало после этого, действительно ли Вы применяете правили на шлюзе... при чем тут указание eth0... не буду ломать голову над этим. Просто расшифрую правило: все входящие icmp-пакеты (кроме пакетов исходящих от www.ya.ru), сообщающие о недоступности адреса назначения, пропускаются.

По сути остальное в Ваших руках: iptables -L (или iptables-save); описание того, где вводите правила; откуда пингуете.
Главное - в указанной документации начните хотя бы с главы 3.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали: