Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #72, НОЯБРЬ 2006 г.

шлюзование с секретом

ANDREY MATVEEV

Спецвыпуск: Хакер, номер #072, стр. 072-020-1


(ANDRUSHOCK@REAL.XAKEP.RU)

ДИНАМИЧЕСКОЕ ИЗМЕНЕНИЕ ПРАВИЛ ФАЙРВОЛА

ИСПОЛЬЗОВАНИЕ АУТЕНТИФИКАЦИОННОГО ШЛЮЗА НА БАЗЕ СВЯЗКИ PF + AUTHPF ПОЗВОЛИТ КОНТРОЛИРОВАТЬ ДОСТУП, ОСНОВЫВАЯСЬ НА ПРАВАХ ЗАРЕГИСТРИРОВАВШЕГОСЯ ПО SSH ПОЛЬЗОВАТЕЛЯ. ХИТРОСТЬ ЗАКЛЮЧАЕТСЯ В ТОМ, ЧТО В ЗАВИСИМОСТИ ОТ ВВЕДЕННЫХ ЛОГИНА И ПАРОЛЯ НА ШЛЮЗЕ БУДУТ ВСТУПАТЬ В СИЛУ ПЕРСОНАЛЬНЫЕ ПРАВИЛА ФАЙРВОЛА

Такой механизм работы открывает поистине безграничный простор для полета фантазии: организация ограниченного/полного доступа в интернет и закрытые сегменты сети, «умный» форвардинг входящего/исходящего TCP/UDP трафика, а также проведение аудита с журналированием имен пользователей и времени их аутентификации.

[увертюра к основному действию.]

Защита пользовательского трафика - одна из основных проблем, с которой сталкиваются при организации домашней сети. Каждый абонент, владеющий вопросом подмены IP и MAC-адреса, так и норовит скачать пару-тройку гигабайт информации «за счет» своего соседа. Как правило, использование средств вроде статической arp-таблицы или простое отслеживание смены адреса специальными утилитами (arpwatch) не является эффективным, поэтому для защиты от кражи трафика администраторы стараются применять громоздкие и не всегда надежные конструкции на базе FreeRadius, MySQL/PostgreSQL, mpd/poptop и т.д.

Совсем недавно для решения этих (и некоторых других) задач появилось довольно элегантное решение, которое состоит в использовании пакетного фильтра pf и авторизационного шелла authpf. Но связка pf + authpf - не панацея, а дополнительное средство для разграничения доступа в 802.3/802.11 сетях.

[непотопляемый OpenSSH.]

Прежде чем производить настройку authpf, необходимо переопределить некоторые дефолтные значения переменных демона sshd(8). Так мы усложним потенциальному злоумышленнику успешное проведение сетевой атаки с целью перехвата и подмены нашей ssh-сессии (смотри листинг 1).

Для того чтобы внесенные изменения вступили в силу, необходимо дать указание демону перечитать свой конфиг:

ЛИСТИНГ

# kill -HUP `sed q /var/run/sshd.pid`

Теперь, как только authpf получит сигнал SIGINT или SIGTERM, ssh-сессия аутентифицированного пользователя завершится должным образом, персонифицированные «рулесеты» будут корректно выгружены из общего набора правил, и не произойдет сохранение состояния соединений в таблице записей файрвола.

[магия authpf.]

Authpf представляет собой псевдооболочку, которая назначается пользователю системы в качестве login shell (запись /usr/sbin/authpf в файл /etc/shells добавлять не следует). При авторизации пользователя по ssh к текущим правилам фильтра пакетов с помощью так называемых якорей (anchors) будут присоединены правила, указанные в файле /etc/authpf/authpf.rules, либо в /etc/authpf/users/$USER. В добавляемых правилах допускается использование зарезервированных макросов $user_id и $user_ip, за счет которых будет происходить автоматическая подстановка имени и IP-адреса подключившегося пользователя (значения макросов считываются из переменных окружения ssh автоматически).

Содержание  Вперед на стр. 072-020-2