[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