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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: HOWTO: Iptables для новичков  (Прочитано 526747 раз)

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

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1125 : 19 Марта 2011, 18:44:24 »
А так если
for a in /proc/sys/net/ipv4/conf/*/rp_filter;
do
echo 1 > $a
done

О чём вообще речь?...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн bubuntu-ru

  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1126 : 19 Марта 2011, 19:54:11 »
Ну вроде как бы про это. "Если речь идет о правиле защиты от spoofing, то"

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1127 : 19 Марта 2011, 21:04:01 »
Ну вроде как бы про это. "Если речь идет о правиле защиты от spoofing, то"
Зачем извращаться?
sysctl -w net.ipv4.conf.default.rp_filter=1
sysctl -w net.ipv4.conf.all.rp_filter=1
...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн bubuntu-ru

  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1128 : 19 Марта 2011, 21:23:47 »
:]

Оффлайн dr.Faust

  • Активист
  • *
  • Сообщений: 435
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1129 : 20 Марта 2011, 00:17:43 »
Если речь идет о правиле защиты от spoofing, то
-p tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW,INVALID -j REJECT --reject-with tcp-reset

Если интересно, спросите, объясню почему именно так
Попробую догадаться - пакет с установленными SYN и ACK, устанавливающий новое соединение (NEW), которое мы не инициировали (INVALID?).
Правильно?

У меня только вопрос, ESTABLISHED|RELATED сработает до или после INVALID?
До. Это имеет значение?

Ну вроде как бы про это. "Если речь идет о правиле защиты от spoofing, то"
Зачем извращаться?
sysctl -w net.ipv4.conf.default.rp_filter=1
sysctl -w net.ipv4.conf.all.rp_filter=1
...
Можно попдробнее в этом месте?

Пользователь решил продолжить мысль 20 Марта 2011, 00:52:55:
Быстро слепил новую версию - добавил log и logs выводящие лог - первая как есть с подсветкой, второя в  сокращённом виде.
Лог вынес в файл /var/log/iptabler.log



Пользователь решил продолжить мысль 20 Марта 2011, 02:54:00:
Большую машину проверил ещё раз  - правила не загружаются. Файл на месте, исполняемый, при запуске явно  всё работает...

UPD: Последняя версия здесь: https://forum.ubuntu.ru/index.php?topic=20334.msg1061912#msg1061912
« Последнее редактирование: 21 Марта 2011, 23:36:35 от dr.Faust »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1130 : 20 Марта 2011, 04:55:30 »
У меня только вопрос, ESTABLISHED|RELATED сработает до или после INVALID?
До. Это имеет значение?
Да. Придётся через это правило весь трафик гонять, чего я делать не люблю.

Цитировать
Ну вроде как бы про это. "Если речь идет о правиле защиты от spoofing, то"
Зачем извращаться?
sysctl -w net.ipv4.conf.default.rp_filter=1
sysctl -w net.ipv4.conf.all.rp_filter=1
...
Можно попдробнее в этом месте?
Куда подробнее то?... Он делает то же самое, только через... в общем, то самое место.
(И кстати, по умолчанию rp_filter включен, так что смысла в городимых тобой проверках никакого. Всё до тебя уже проверили.)

Цитировать
Большую машину проверил ещё раз  - правила не загружаются. Файл на месте, исполняемый, при запуске явно  всё работает...

ls -lA /etc/network/if-*up.d/
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

alexxnight

  • Гость
Re: HOWTO: Iptables для новичков
« Ответ #1131 : 20 Марта 2011, 12:39:34 »
Думаю, я понял из вашего предыдущего объяснения.
ctstate=NEW для отказа в установлении новых кривых соединений, INVALID - для отказа в подмене адреса во время сессии.

Если я ошибаюсь, поправьте меня:
Если от атакуемого хоста к нам придет первый пакет подтверждения установления несуществующего соединения (SYN/ACK), то conntrack установит для него состояние NEW. Но т.к. от нас не было инициировано соединения с атакуемым хостом (SYN), то через какое-то время статус должен смениться на INVALID, т.е. пакет ассоциированный с несуществующим соединением.
На все такие пакеты мы должны ответить RST пакетом (-j REJECT --reject-with tcp-reset) и попытку атаки от нашего имени можно предотвратить.

У меня только вопрос, ESTABLISHED|RELATED сработает до или после INVALID?

Если я правильно понял вопрос, то

iptables -A -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A -i lo -j ACCEPT
iptables -A -p tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW,INVALID -j REJECT --reject-with tcp-reset # защита от спуфинга
iptables -A -p tcp ! --syn -m conntrack --ctstate NEW -j DROP # защита NEW not SYN
« Последнее редактирование: 20 Марта 2011, 12:50:52 от alexxnight »

Оффлайн bubuntu-ru

  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1132 : 20 Марта 2011, 13:27:16 »
Не знаю конечно как в бубенту, но "по умолчанию rp_filter включен" он включен только на локалку, но не внешние айпи, и по дефолту должен быть 0, а не 1, но опять же в бубенту что не сделай все костыль, или через место :]
И  такой момент есчо есть, а если будет показывать, что все порты открыты(ну к теме немного защиты)?
« Последнее редактирование: 20 Марта 2011, 13:37:14 от bubuntu-ru »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1133 : 20 Марта 2011, 15:32:44 »
Не знаю конечно как в бубенту, но "по умолчанию rp_filter включен" он включен только на локалку, но не внешние айпи, и по дефолту должен быть 0, а не 1, но опять же в бубенту что не сделай все костыль, или через место :]
И  такой момент есчо есть, а если будет показывать, что все порты открыты(ну к теме немного защиты)?
Поясните, почему для конечной машины rp_filter=1 - костыль?
Даже для шлюзов не для всех его нужно отключать.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн dr.Faust

  • Активист
  • *
  • Сообщений: 435
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1134 : 20 Марта 2011, 15:32:57 »
Да. Придётся через это правило весь трафик гонять, чего я делать не люблю.
Почему это плохо?


ls -lA /etc/network/if-*up.d/
$ ls -lA /etc/network/if-*up.d/
/etc/network/if-pre-up.d/:
итого 8
-rwxr-xr-x 2 root root 2493 2011-03-18 23:06 netfilter-rules
-rwxr-xr-x 1 root root 3839 2009-12-18 18:15 wireless-tools
lrwxrwxrwx 1 root root   32 2010-04-30 21:43 wpasupplicant -> ../../wpa_supplicant/ifupdown.sh

/etc/network/if-up.d/:
итого 20
-rwxr-xr-x 1 root root  892 2009-12-05 00:14 avahi-autoipd
-rwxr-xr-x 1 root root  504 2009-12-05 00:14 avahi-daemon
-rwxr-xr-x 1 root root 1203 2010-02-03 03:19 ntpdate
-rwxr-xr-x 1 root root  740 2010-05-19 20:31 openssh-server
-rwxr-xr-x 1 root root  225 2010-07-22 16:59 upstart
lrwxrwxrwx 1 root root   32 2010-04-30 21:43 wpasupplicant -> ../../wpa_supplicant/ifupdown.sh

Думаю, я понял из вашего предыдущего объяснения.
ctstate=NEW для отказа в установлении новых кривых соединений, INVALID - для отказа в подмене адреса во время сессии.

Если я правильно понял вопрос, то

iptables -A -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A -i lo -j ACCEPT
iptables -A -p tcp --tcp-flags SYN,ACK SYN,ACK -m conntrack --ctstate NEW,INVALID -j REJECT --reject-with tcp-reset # защита от спуфинга
iptables -A -p tcp ! --syn -m conntrack --ctstate NEW -j DROP # защита NEW not SYN

Да, да. Именно так.


Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1135 : 20 Марта 2011, 15:35:13 »
Попробуйте всё же перенести netfilter-rules в if-up.d

И, безотносительно предыдущего,
chmod -x /etc/network/if-up.d/ntpdate
Это садизм. Если вам нужна нормальная синхронизация времени, а не "с качками", поставьте ntpd.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн dr.Faust

  • Активист
  • *
  • Сообщений: 435
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1136 : 20 Марта 2011, 15:50:55 »
Попробуйте всё же перенести netfilter-rules в if-up.d
ПОпробую, но на ноуте работате и так (10,10)

И, безотносительно предыдущего,
chmod -x /etc/network/if-up.d/ntpdate
Это садизм. Если вам нужна нормальная синхронизация времени, а не "с качками", поставьте ntpd.
Да - с синхронизацией есть проблемы. ntpd установлен (не запускается? откуда должен?).

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1137 : 20 Марта 2011, 16:39:29 »
C ntpd в другую тему, ладно?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн dr.Faust

  • Активист
  • *
  • Сообщений: 435
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1138 : 21 Марта 2011, 23:35:15 »
Ну вот как бы beta.
Здесь добавилась простенькая проверка правильности настроек.
Кстати может кто подскажет как узнать адрес интерфейса, а то сейчас я айпишник добываю так:
IP=`ifconfig $IF | grep "inet addr:" | sed
-e s/inet addr://
-e s/  *Bcast:.*//
-e s/  *Mask:.*//
-e s/^ *//
-e s/ *$//`
не очень красиво мне кажется...

Может теперь вынести в отдельную тему, раз уж модеры не хотят разрезать тему?
« Последнее редактирование: 24 Марта 2011, 17:38:22 от dr.Faust »

Оффлайн dr.Faust

  • Активист
  • *
  • Сообщений: 435
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #1139 : 24 Марта 2011, 17:38:39 »
Итак, ещё более 0.0.7 версия в аттаче.

Исправлена куча мелких ошибок и добавлен контроль версии файла конфигурации.

Прошу помощи в переводе. Поправте пожалуйста мой корявый английский, а ещё лучше и русский тоже:
"ru_RU" )
MSG_WRNG="Предупреждение: "
MSG_UMBROOT="Недостаточно прав (вы не root)"
MSG_IPNOTS="IP-адрес интерфейса %I (%AR) не совпадает\n    с указанным в конфигурационном файле (%AC)"
MSG_INVPORT="Порт %P не определён в файле конфигурации.\n    Попробуйте что-то вроде %LP=номер_порта."
MSG_RULNSET="Правило для цепочки %C не установлено."
MSG_STATUS="Состаяние автозагрузки правил: %S"
;;
* )
MSG_WRNG="Warning: "
MSG_UMBROOT="Permission denied (you must be root)"
MSG_IPNOTS=""
MSG_INVPORT="Port %P unset.\n    Use: %LP=number_of_port."
MSG_RULNSET="Rule for chain %C not set."
MSG_STATUS="Status: %S"
;;

 

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