Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: iptables -A принимает по 1 правилу для INPUT, OUTPUT, FORWARD  (Прочитано 1392 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Усики

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
Возможен ли такой вариант что iptables -A принимает по 1 правила для (INPUT, OUTPUT, FORWARD)а те правила которые введешь после не работает.. у меня так что может быть?


« Последнее редактирование: 14 Марта 2014, 07:01:39 от Дмитрий Бо »

Оффлайн golota

  • Участник
  • *
  • Сообщений: 132
    • Просмотр профиля
Re: БАН IPTABLES
« Ответ #1 : 27 Февраля 2014, 20:40:59 »
Может !, надо не -A (add) а -I (insert)
Я знаю то, что ничего не знаю, но некоторые не знают и этого. Сократ

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: БАН IPTABLES
« Ответ #2 : 27 Февраля 2014, 22:21:34 »
Возможен ли такой вариант
Внимательней изучайте работу iptables.
Правила делятся на терминирующие и нетерминирующие (второе определение может быть не верным, но в данном случае отражает суть).
Если срабатывает терминирующее правило, то прохождение пакета по цепочке прекращается и переходит в следующую цепочку.
К терминирующим относятся (не все перечислены) - ACCEPT, DROP, REDIRECT, REJECT, DNAT, SNAT, MASQUERADE...
К нетерминирующим (тоже далеко не все) - LOG, TCPMSS, MARK ... больше на вскидку не вспомню

Пример (ваще больной на всю голову, не повторять): имеем 2 интерфейса: eth0,1. Хотим чтобы все клиенты eth0 ходили везде и вся, а со стороны eth1 пусть отдыхают.
Цитировать
-P FORWARD DROP (а чё? всё по фен-шую)
-A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT (пропускаем установленные соединения, чтоб не морочиться)
-A FORWARD -i eth0 -j ACCEPT
ОК. вроде всё отлично. Система ниппель: туда дуй, оттуда фиг вам.
Тут приходит ещё одна сетка и добавляется eth2 из директорского кабинета, в которую никто не должен ходить, а директор... ну на то он и директор, чтобы всё знать и всех иметь.
Да нет проблем, добавляем:
-A FORWARD -i eth2 -j ACCEPT (дорогу королю директору)
А обратно никто не пойдёт, ведь дефолтное правило DROP
И... какие-то грабли: директор орёт, что его порнуху документы кто-то смотрит без его ведома.
Разберёмся и смотрим, что-же у нас там в таблице.
И чтобы не плодить сразу представляем, как злостный манагер из сети за eth0 лезет в комп директора.
-P FORWARD DROP (ну это сработает, если ни одно правило не сработает и мысленно его забываем до конца цепочки, если дойдёт дело)
-A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT (манагер тока полез, потому никаких соединений пока нет)
-A FORWARD -i eth0 -j ACCEPT (так, захожу через eth0, потому я могу идти дальше)
Вот именно на этом правиле пакет покинет цепочку с переходом в следующую, то есть продолжит путь к цели,
а до запрещающего правило дело и не дошло...

Бороться с таким явлением можно по разному. Но самый простой и надёжный способ от подобных граблей замедленного действия, ИМХО, более чётко ставить условия правил. Например, самое простое, было изначально указать не только входной интерфейс, но и через который должен выходить разрешённый траффик.
-A FORWARD -i eth0 -o eth1 -j ACCEPT
Всё. Добавление любого интерфейса не добавит полномочий клиентам сети eth0.

Ну это так... в качестве трололо. Может и не стоило так много писать. Но надеюсь какому-нибудь новичку чуть больше отодвинул завесу "секретов" iptables
« Последнее редактирование: 27 Февраля 2014, 22:23:25 от fisher74 »

 

Страница сгенерирована за 0.057 секунд. Запросов: 25.