Авторизация пользователей в сети при помощи authpf
Одной из проблем в организации домашней сети является защита
пользовательского трафика. Речь идет не о шифровании данных, а о
возможности скачать пару-тройку гигабайт информации "за счет" другого
абонента. Ведь, как правило, домашние сети строятся на дешевом
оборудовании, и часто о применении дорогих коммутаторов с возможностью
привязки IP/MAC к порту не может быть и речи. Так как использование
средств типа статической arp-таблицы или простое отслеживание смены
адреса утилитами вроде arpwatch неэффективно (поменять себе MAC-адрес,
пока жертва не находится в сети, весьма легко), традиционно для защиты
от кражи трафика применяют различные VPN-решения, с ипользованием
FreeRadius, MySQL/PostgreSQL, mpd/poptop, и т.д. Это весьма громоздко, и
не всегда надежно (достаточно посмотреть на историю обсуждения проблем
"FreeBSD+mpd+WindowsXP" на OpenNET).
А в то же время есть, на мой взгляд, гораздо более элегантное решение,
которое состоит в использовании пакетного фильтра OpenBSD/PF и
авторизационного шелла authpf. PF и authpf входят в базовую систему
OpenBSD и портированы во FreeBSD начиная с ветки 5, а в NetBSD - начиная
с ветки 3.
[Антон Карпов (toxa AT toxahost.ru)]
Authpf - это авторизационный шелл, назначаемый пользователю системы в
качестве login shell. При авторизации пользователя в системе (по ssh), к
текущим правилам пакетного фильтра присоединяются (с помощью механизма
anchorов) правила, указанные в файле /etc/authpf/authpf.rules либо в
/etc/authpf/$USER/authpf.rules, где USER - имя пользователя. При этом в
добавляемых правилах допустимо использование переменных $user_ip
(IP-адрес пользователя) и $user_id (имя пользователя), которые берутся
из переменных окружения ssh. Отличное руководство по authpf входит в
OpenBSD FAQ: http://www.openbsd.org/faq/pf/authpf.html Так что считаю
лишним дублировать информацию оттуда, приводя здесь шаги настройки
системы для использования authpf.
Наша задача - настроить правила авторизации таким образом, чтобы при
заходе пользователя по ssh поднимался NAT на тот адрес, который присвоен
этому пользователю. Так, если пользователю foobar назначен адрес
192.168.0.100, то на шлюзе создаем файл:
# echo " nat pass on $ext_if inet from 192.168.0.100 to any -> $ext_if" > /etc/authpf/users/foobar/authpf.rules
Разумеется, трансляции адресов из пользовательской подсети в pf.conf
глобально присутствовать не должны.
Теперь, даже если foobar изменит свой IP-адрес на адрес соседа, в
надежде выкачать пару гигабайт смешных картинок, пока сосед отдыхает на
даче, при авторизации на шлюзе поднимется NAT-правило для родного
foobarовского адреса, 192.168.0.100, и любитель халявы останется ни с
чем.
Foobar - это пользователь в системе, с паролем и назначенным в качестве
login shell /usr/sbin/authpf. Под Windows для ssh-авторизации проще
всего использовать консольную утилиту plink из набора putty:
http://the.earth.li/~sgtatham/putty/latest/x86/plink.exe. Для комфортной
работы пользователя следует создать bat-файл с командой "plink.exe
user@gateway -pw userpass", и положить его на рабочий стол. Теперь
двойной клик по файлу активизирует ssh-сессию, поднимет NAT-правило для
заранее указанного адреса, и пользователь сможет работать в интернете.
Файл можно также поместить в автозагрузку.
Использование такой авторизации позволит доверять простому учету
трафика, например программой cnupm, и избавит от необходимости
использовать громоздкие конструкции авторизации по VPN с использованием
RADIUS-сервера, и т.п.
Статья взята с сайта OpenNet.
www.linuxcenter.ru
Строим сеть грамотно 17-02-2007 Мини-HOWTO: Корневой NFS 24-03-2008 Строим сеть грамотно Мини-HOWTO: Корневой NFSAndreas Kostyrkaandreas@ag.or.at Перевод: Станислав Рогин, ASPLinux АннотацияВ этом документе дается объяснение того, как настроить "бездисковую" рабочуюстанцию на Linux, корневая файловая система которой подключена через NFS.Новую версия этого Мини-Howto можно найти по адресуftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/NFS-Root или на любом егозеркале РЯДО...
LINUX PLIP MINI-HOWTO 24-03-2008 Строим сеть грамотно LINUX PLIP MINI-HOWTOAndrea Controzzicontrozz@cli.di.unipi.it Перевод: Денис Дементьев, ASPLinux АннотацияИспользование информации этого HOWTO позволит вам настроить и использовать протокол параллельного интерфейса (Parallel Line Interface Protocol).СодержаниеВступление: что такое PLIP, и для чего он нужен?Аппаратное обе...
Как бороться со сменой IP адресов клиентами локальной сети? 24-03-2008 Строим сеть грамотно Keywords: arp mac ethernet ifconfig freebsd limit securityFrom: Alexander V. NaumochkinNewsgroups: http://www.unixfaq.ruDate: Mon, 17 May 2004 18:21:07 +0000 (UTC)Subject: Как бороться со сменой IP адресов клиентами локальной сетиОригинал: http://www.unixfaq.ru/index.pl?req=qs&id=169 Как бороться со сменой IP адресов клиентами локальной сети? Оглавление Статический ARPСтатический ARP + NOARPPort SecurityТуннелировани...
Использование бездисковых Linux-станций с загрузкой по сети 24-03-2008 Строим сеть грамотно Использование бездисковых Linux-станций с загрузкой по сетиВпервые опубликованно в журнале "Системный администратор" N11/2004Постановка задачиРабота сотрудника отдела автоматизации – это постоянная борьба спроблемами и решение задач, которые попеременно подкидываютпользователи, разработчики эксплуатируемого программного обеспечения ируководство организации. И если два первых направления работы – этопросто «борьба за живучесть кора...
Опыт внедрения OpenVPN 24-03-2008 Строим сеть грамотно Опыт внедрения OpenVPNПочему OpenVPN?На ключевое слово vpn Google откликнулся 17 000 000 ссылок. Это приятно удивило. Немного сузив поиск наткнулся на сайтopenvpn.sourceforge.net. Вводная статья обещала простоту инсталяции и конфигурирования,а главное,- возможность созданиятунеля для большинства наиболее распрастранённых операционных систем, включая Linux,SUN Solaris,*BSD, Mac OS X, w2k, w2k3.Это то что мне нужно... Внешний... |