Создание шлюза с проверкой полномочий

Шлюзы межсетевой защиты традиционно использовались для блокировки трафика от определенных служб или машин. Вместо просмотра IP-адресов и номеров портов, шлюз с проверкой полномочий позволяет регулировать двусторонний трафик от машин, основываясь на мандате пользователя. При использовании такого шлюза пользователь должен зарегистрироваться в сети и удостоверить свои полномочия для того, чтобы шлюз предоставил ему доступ к защищаемой сети. Это может быть полезно во многих случаях, например при ограничении интернет-доступа или ограничении доступа через беспроводный сегмент сети.
При использовании ОС OpenBSD версии 3.1 такую функциональность можно реализовать за счет использования PF и ядра authpf. Использование authpf также дает возможность проводить аудит, протоколируя имена пользователей, входящих в сеть, создаваемые IP-адреса, а также время их входа в сеть и выхода из нее.
Для включения проверки полномочий с помощью authpf необходимо на шлюзе создать учетную запись для каждого пользователя. Укажите в качестве ядра /usr/sbin/authpf и не забудьте добавить authpf в /etc/shells в качестве действительного ядра. Когда пользователь входит в систему через SSH, authpf получает имя пользователя и IP-адрес через окружение. После этого считывается файл шаблона, содержащий NAT и правила фильтрации, и к нему применяются имя пользователя и IP-адрес. После этого результирующие правила добавляются в исполняемую конфигурацию. При выходе пользователя из системы (то есть при вводе Ctrl+C) созданные правила выгружаются из текущего набора правил.