[Uneex] Круглый стол UNИX. Тема: "Полезное и новое в современных ОС"
Yuri Ryazantsev
yuri на unix.ru
Вс Ноя 28 13:33:03 MSK 2004
Небольшое добавление к закрытой на семинаре теме - pf:
1. Есть у него еще одна веселая вещь как таблицы. Очень полезно при
решении задачи изменяемых правил доступа. Проще пример (как это есть в
pf.conf):
# задать таблицу чтением из файла
table <ipblock> persist file "/etc/pf.ipblock"
# использовать ее в правилах доступа
block in quick log from <ipblock> to any
Для этого случая происходит подстановка имен (если они есть в файле, на
текущее состояние по DNS). Таблица находится в ядре, и далее с ней
возможны операции:
- посмотреть содержимое или проверить IP на нахождение в таблице;
- добавить строку;
- удалить строку;
- заменить таблицу;
Замечание - очень полезно для создания связки firewall + IDS.
Еще одно применение (работает у меня для Стрим):
- после подключения регистрируется IP на dyndns.org, получаю имя
xxx.dyndns.org (понятно, что имя не соответствует реальному :-);
- на сервере есть файл pf.my состоящий из одной строки xxx.dyndns.org;
- на сервере файл pf.conf содержит строки:
table <my> persist file "/etc/pf.my"
pass in quick on fxp0 proto tcp from <my> to any port ssh
- далее остается по cron'у вызвать раз в минуту строку, заменяющую
таблицу my:
/sbin/pfctl -q -t my -Tr -f /etc/pf.my
И в результате получаем доступ на сервер только с моего IP.
2. Одна из проблем - анализ того, что откидываем по правилам. В pf, с
моей точки зрения, это сделано более чем красиво:
- создается сетевое устройство pflog, на которое то, что надо
регистрировать выходит напрямую. Далее вы можете работать с этим
трафиком также, как и с обычным сетевым устройством. Например,
посмотреть при помощи tcpdump.
3. И еще одна веселая вещь - pfsync. Кратко это сетевой интерфейс и
протокол, позволяющий обмениваться таблицей состояний установленных
сетевых соединений. Подробнее можно рассказывать, а кратко - это решение
следующей задачи:
Параллельно существующему NAT-фильтру для повышения общей
отказоустойчивости системы подключается еще один в "горячем резерве".
При переключении не происходит сброс установленных соединений (!).
--
Yuri Ryazantsev <yuri на unix.ru> | RIPE: YR1-RIPE
UNIX System Network Administrator | RIPN: YAR1-RIPN
Gnu PGP: 1024D/92165F61
9252 80C7 D693 BFFD 3C4D 01D2 3601 9CD7 9216 5F61
Подробная информация о списке рассылки Uneex