The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Авторизация пользователей в сети при помощи authpf

20.09.2005 17:59

Anton Karpov описал один из путей решения проблемы подключения за чужой счет в домашней сети, через использование пакетного фильтра OpenBSD/PF и авторизационного шелла authpf.

Т.е. при входе пользователя на сервер по ssh, автоматически поднимается NAT на тот адрес, который присвоен этому пользователю, после завершения сессии - правила трансляции удаляются.

  1. Главная ссылка к новости (http://www.opennet.ru/base/sec...)
  2. Настройка авторизации пользователей в сети при помощи authpf
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/6123-pf
Ключевые слова: pf, auth, aaa, openbsd, firewall
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (33) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Allex (?), 20:55, 20/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    полезная статья
    я так и сделаю
    щас стоит: obsd3.8+pf/nat+squid+netams
    подскажите только как authpf со squid'ом связать?
     
     
  • 2.3, robin zlobin (?), 21:44, 20/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем их связывать?
     
  • 2.9, tim777 (?), 08:28, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    В squid использовать external_acl - небольшой скрипт бутдет выбирать из
    /var/authpf/<ip-adress> имя пользователя и, тогда в логах squid'а
    будет прописыватся login:

    ---- squid.conf  ---
    acl authuser external authpf
    http_access allow authuser
    external_acl_type authpf ttl=60  children=1 %SRC /usr/local/libexec/squid/seapf
    ---------------------

    seapf - тот самй скрипт.

    Тогда очень просто через squid'овые логи показываются трафик пользователя  при заходе с разных ip. Думаю можно и к netams можно также припинать.
    Только netams авторизацию порезать, а netams заставить для закрытия юзверя создавать файл /etc/authpf/banned/<user name>.

    Зачем это надо? Некоторые юзвери видя статистику по ip dst ip src -
    кричат и пищат, а sarg или netams очень доходчиво все показывает.

    PS. логи по ip src ip dst очень лего выгребаются при такой авторизации через ng_ipacct.

     
  • 2.32, sergey (??), 20:00, 21/11/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Что-то никак не получается запустить authpf согласно man-ов.
    Может кто напишнт пример конфигурационных файлов pf.conf,
    authpf.conf и authpf.rules для доступа в сеть для примера одного юзера.
     

  • 1.2, toor99 (ok), 21:23, 20/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что только люди ни придумывают, лишь бы не делать по-нормальному.
     
     
  • 2.4, robin zlobin (?), 21:44, 20/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    >Что только люди ни придумывают, лишь бы не делать по-нормальному.

    по-нормальному это как?

     
     
  • 3.23, Av (??), 22:37, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    pppoe
     

  • 1.5, Аноним (5), 22:40, 20/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "FreeBSD+mpd+WindowsXP" прекрасно работает
     
  • 1.6, Vladislav (??), 22:44, 20/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    IMHO, "громоздкие решения" во многом упростят жизнь админа в будущем
     
     
  • 2.7, McLone (?), 05:12, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    mclone@Droid:~> ll -s 'where authpf'
    20 -r-sr-sr-x  1 root  authpf  18436 16 вер 02:18 /usr/sbin/authpf*

    IMHO, 20Kb != "громоздкие решения". А если судить по количеству занимаемой памяти и скорости работы - ни PPPoE, ни *VPN не выдерживают критики (подразумевается пара сотен одновременных пользователей в сегменте с роутером ~1 gHz на fxp(4)-like NICs под FreeBSD 5/6 or OpenBSD)

     
     
  • 3.10, tim777 (?), 08:32, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Ну еще 2mb/юзверь на sshd накинь, как минимум.
     
     
  • 4.11, Аноним (-), 09:41, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну еще 2mb/юзверь на sshd накинь, как минимум.

    Трафик через ssh не идет. Юзер по ssh заходит для того чтобы на него поднялся NAT,никакого тунеля при этом не нужно. Все просто и элегантно....для админа.

    Для того чтобы это было просто и элегантно для пользователя, можно обойтись без ssh, а поставить apache+mod_ssl, написать простой CGI скрипт, который при правильном вводе пароля будет открывать NAT, и раз в минуту проверять не закрыл ли клиент окно в браузере. Если закрыл - NAT на его IP убирается.

     
     
  • 5.28, tim777 (?), 08:31, 23/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    >>Ну еще 2mb/юзверь на sshd накинь, как минимум.
    >
    >Трафик через ssh не идет. Юзер по ssh заходит для того чтобы
    >на него поднялся NAT,никакого тунеля при этом не нужно. Все просто
    >и элегантно....для админа.
    Так никто и не против и в этом вся прелесть
    >
    >Для того чтобы это было просто и элегантно для пользователя, можно обойтись
    >без ssh, а поставить apache+mod_ssl, написать простой CGI скрипт, который при
    >правильном вводе пароля будет открывать NAT, и раз в минуту проверять
    >не закрыл ли клиент окно в браузере. Если закрыл - NAT
    >на его IP убирается.
    Вот при ssh именно и не надо думать о том чтобы что-то проверять - все уже и так работает.

     
  • 4.20, McLone (?), 20:06, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Окстись [, Пендальф] !
    authpf это всего лишь шелл, а даже если по ssh, оно его вскоре высвапливает.
     

  • 1.8, Andrey (??), 05:44, 21/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хранить пароль в открытом виде в bat-файле на рабочем столе небезопасно, т.к. появится очередная дыра в WinXP и кто-то соберет урожай учетных записей и паролей сети. Лучше использовать авторизацию по ассиметричным ключам и pageant (еще одна утилита из пакета Putty). Недостаток решения - висящее окно терминала у клиента. В принципе недолго написать своего клиента, используя готовый ssh-компонент.
     
  • 1.12, Аноним (5), 10:38, 21/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    авторизацию по uucp не делаете?
     
     
  • 2.21, McLone (?), 20:06, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    и сделали бы, но не умеем... :-(
     

  • 1.13, Denis (??), 11:00, 21/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    нифига не понял. чем это отличается от простого vpn? и там и там пароль. а если есть чужой пароль, то...
    и там и там можно менять МАС и ip. так что в чем преимущества?
     
     
  • 2.14, xxx (??), 11:17, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Просто некоторые патологически любят изобретать велосипед.
     
     
  • 3.15, fb (??), 12:49, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Некоторые просто любят изобретать, а некоторым это почему-то не нравится.
     
     
  • 4.18, toor99 (ok), 16:52, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Да ради бога, с чего вы это взяли?
    Помню, как в журнале "Радио" за шестьдесят какой-то год была статья "как сделать пульт ДУ к телевизору" - из шкивов, верёвочек, и палочек. Респект, хуле!
    Только тогда это изобретали от невозможности сделать по-другому.
    Для чего такие изобретения нужны в наши дни - непонятно. И делать из этого статью в журнале вряд ли кому-нибудь придёт в голову.
     
  • 3.25, fa (??), 23:02, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Человек привел в статье скрипт в одну строчку. Ну где тут "изобретение" хоть велосипеда, хоть чего. Решение очень простое и к ресурсам не требовательно и IMHO этим и примечательно. Для mpd нужно много чего крутить (постов на опеннет типа "и снова мпд" вооооон сколько). Для apache+ssl тоже cgi-скрипт писать надо. А тут все уже написано.
     
  • 2.29, tim777 (?), 08:35, 23/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    >нифига не понял. чем это отличается от простого vpn? и там и
    >там пароль. а если есть чужой пароль, то...
    >и там и там можно менять МАС и ip. так что в
    >чем преимущества?
    В том, что не создается еще одного интерфейса на win и не ловим всех связанных с этим приятностей.

     

  • 1.16, bmc (??), 15:03, 21/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    совершенно не вижу смысла такого решения. По сравнению с mpd+radius+mysql+apache - не дотягивает по функционалу оооочень сильно, хотя наверно на слабых машинах побыстрее.

    По сравнению с простым mpd (ведь биллинг и проч. в статье не описывалось) - плюсов совершенно не вижу.

     
     
  • 2.22, McLone (?), 20:17, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Я возможно не слишком умён, но по-моему кошерно делать биллинг на netflow или sflow. Соответственно берем pfflowd... А дальше - хоть flowscan, хоть flow-tools, даже NeTAMS сойдёт... И черви обнаружить есть возможность, и p2p-трафик узреть... Но напильник сотрёте не один, пока всё подымете.
     

  • 1.17, jok (?), 15:44, 21/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В vpn-решениях кроме NAT выдается еще и DNS вообще то, а тут пользователю придеться прописывать самостоятельно, что не очень удобно например при использовании внутреннего DNS-сервера ничем не связанного с внешним миром.
     
     
  • 2.19, robin zlobin (?), 17:23, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    А dhcpd простите на что?
     

  • 1.24, Av (??), 22:38, 21/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Даже в этом случае можно без проблем своровать трафик у уже авторизованного клиента - это решение только "на время" (пока клиенты не научаться обманывать эту систему)
     
     
  • 2.26, fa (??), 23:04, 21/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    >Даже в этом случае можно без проблем своровать трафик у уже авторизованного
    >клиента - это решение только "на время" (пока клиенты не научаться
    >обманывать эту систему)

    Расскажите, как это сделать без проблем. Читал уже подобное обсуждение. Можно сменить ip/mac на ip/mac авторизованного пользователя, в данный момент находящегося в сети. Тогда из-за конфликта мак-адресов клиент или нарушитель вылетят из сети, либо оба будут работать с огромными тормозами. То есть в любом случае проблемы будут. Или я что-от упускаю.


     
     
  • 3.30, Av (??), 12:56, 24/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    При тех же реквизитах ip/mac конфликта не будет. Будут dup'ы на ping и arp-request, но этого можно избежать, как можно избежать и ответа своей машинки на отсутствие приложения с портом клиента authpf (tcp как никак). Тут конечно не все без проблем, но при туннелированнии трафика через udp или icmp вполне можно работать одновремменно...
     
  • 2.27, ILyaZ (?), 06:26, 22/09/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Однако народ насколько я понял там постояно должен висеть шел от клиента к серваку. Соответсвенно как толко хитромудрый чел меняет на чужой айпи свой вместе с маком. Ему будет кукиш с маслом. Или я не прав?
     
     
  • 3.33, KBAKEP (ok), 13:58, 04/02/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Однако народ насколько я понял там постояно должен висеть шел от клиента
    >к серваку. Соответсвенно как толко хитромудрый чел меняет на чужой айпи
    >свой вместе с маком. Ему будет кукиш с маслом. Или я
    >не прав?

    Да. Для того, чтобы у злоумышленника всё работало, надо ещё и SSH сессию перехватить.
    Используя в настройках sshd следующие параметры
    ClientAliveInterval 15
    ClientAliveCountMax 3
    можно лишить интернета того, кто просто подменил IP-MAC, менее, чем за минуту.

     

  • 1.31, Celcion (?), 09:38, 28/09/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На самом деле, ничего такого особенного в authpf - нет. Написать его аналог можно легко и не напрягаясь, куда более удобный и никак не связаный с SSH, работающий хоть по HTTP. Используется возможность динамического навешивания наборов и суб-наборов правил на PF динамически через управляющую структуру pfctl. Юзер логинится - authpf выдергивает из своего конфига эти правила, подменяет переменную $user_ip на IP коннектящегося юзера, добавляет в якорь authpf суб-набор с именем пользователя - и всех делов.
    С таким же успехом можно создать скрипт на перле, который слушает определенный порт, получает коннект - и вызывает системной коммандой pfctl с параметрами, че-та типа 'echo "pass in from $ip to any" | pfctl -a perlpf:User -f -'
    Намного интереснее другое - на эти правила можно поставить логгирование и таким образом считать трафик с привязкой пакетов к имени пользователя, снимая статистику с интерфейса pflog0.
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру