lanman Опубликовано 12 ноября, 2007 (изменено) · Жалоба Помогите решить проблему. Есть VPN сервак, на нем ALTlinux Server 4.0.1, pptpd-1.3.4, ppp-2.4.4. Все установлено из rpm. в pptpd.conf есть logwtmp. В /var/log/wtmp ppp сессии есть, а вот в /var/run/utmp их нет. Знаю, что по who можно смотреть сессии (работает на другом серваке). Вообщем надо, чтобы по команде who отображались текущие ppp сессии. Облазил весь инет. Что-то никто не знает как это исправить или где копать. Значит, у меня два вопроса: 1. Как это сделать? Может надо пакеты собирать с какими-то опциями? 2. Или предложите варианты (может скрипт написать какой), чтобы можно было видеть ppp сесии и соответственно логины, под которым впн-юзеры залогинены. И чтобы можно было эти сессии при необходимости сбросить. PS авторизация впн0юзеров происходит через радиус сервер. Изменено 12 ноября, 2007 пользователем lanman Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
networks Опубликовано 12 ноября, 2007 · Жалоба А вы не хотите аккаунтинг тоже в радиус запихнуть? Там и будете смотреть текущие сессии - надо будет только acct_update прикрутить и SQL какой-нить, для удобства. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
random7 Опубликовано 13 ноября, 2007 · Жалоба в auth-up и auth-down можно добавить скрипты, которые будут добавлять/удалять из базы текущие сессии сбросить сессию можно через ifconfig $IFACE down Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
lanman Опубликовано 20 ноября, 2007 (изменено) · Жалоба Я наверно немного не точно описал проблему. Постараюсь изложить все более подробно, потому как перерыл весь инет, понял, что у людей есть такая проблема, но решения данной проблемы я не нашел. Была собственно работающая следующая схема. VPN сервер, RADIUS сервер. Моя задача была собрать новый VPN сервер. Остальное как все это работало, для меня в принципе было не важно и являлось таким черным ящиком. Я собрал сервер, настроил ppp и pptpd. Все заработало. Но потом выяснилось, что техподдержка смотрит текущие сессии и при необходимости их сбрасывает через Finger. Выяснилось, что xtradius, который у нас стоит, тоже использует finger, чтобы при авторизации vpn пользователя, он не мог законнектиться два или более раз под одной учеткой. Происходит это следующем образом. Стоит finger сервер. Вместо in.fingerd используется ctlportslave. В системе есть файл в /var/run/utmp, куда пишутся текущие ppp и консольные сессии (так было по-крайней мере на старром VPN сервере). Скрипт ctlportslave читает этот файл. Так вот на старом VPN сервере в этот файл пишутся текущие ppp сессии, а новом нет. В pptpd.conf есть строчка logwtmp. pptpd использует plugin pptpd-logwtmp.so. В /var/log/wtmp пишутся ppp сессии и также они должны писаться в utmp, но этого повторюсь не происходит на новом VPN сервер и связано это каким-то образом, с более новыми версиями пакетов pptpd и ppp. Сейчас стоит ppp-2.4.4, pptpd-1.3.4. На старом VPN сервере стояли ppp-2.4.2 и pptpd-1.3.2 если я не ошибаюсь. xtradius сейчас нет возможности поменять на freeradius и реализовать просмотр и отключение пользователей, а также проверку на multiple login с новым радиусом. Если кто использует pptpd, посмотрите, можно ли у вас по who посмотреть, текущие ppp сессии. По-большому счету просмотр и отключению сессий можно конечно и через самописный скрипт написать. Но самое важное - это проверка xtradius'ом на multiple login. Как вот это сделать? Повторюсь, что xtradius заменить на freeradius и делать какие-то манипуляции с базой пользователей нет возможности, как предложили ниже. Изменено 20 ноября, 2007 пользователем lanman Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ivcrash Опубликовано 26 февраля, 2013 · Жалоба Доброго утра, камрады! Похожая ситуация, только система debian, как известно who в ней показывает только пользователей на консоли, на убунтах всё отлично она выводит список ppp-пользователей ip, логин, время подключения и т.д. Дело в том, что существуют скрипты на сервере VPN, которые запускает биллинговая машина обращаясь на сокеты VPN-сервера (xinetd), находя логин и активную сессию в /var/log/wtmp используя команду last, так вот сама проблема в том, что last -f /var/log/wtmp жутко грузит все 4 ядра данного сервера, если кто знает более производительный способ смотреть ppp пользователей отпишитесь, спасибо! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bos9 Опубликовано 26 февраля, 2013 · Жалоба проблема в том, что last -f /var/log/wtmp жутко грузит все 4 ядра данного сервера, а чего грузит то? наверно нет ротации логов и файл распух до гигантских размеров? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ivcrash Опубликовано 26 февраля, 2013 · Жалоба проблема в том, что last -f /var/log/wtmp жутко грузит все 4 ядра данного сервера, а чего грузит то? наверно нет ротации логов и файл распух до гигантских размеров? периодические при запуске тех самых скриптов, в htop'e наблюдаю как процессы с командой last -f /var/log/wtmp грузят под 100% все 4 ядра, Вы верно подметили, возможно более частая ротация wtmp лога поможет, но по сути он и так ротируется, просто на других дебианах такая же схема поиска ppp юзеров и там таких скачков загрузки CPU нет... хотя сервера все аппаратно одинаковые 4х ядерники AMD Phenom II Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 27 февраля, 2013 · Жалоба Если авторизация пользователей через Radius и mysql-базу, то может так: mysql radius -e "select radacctid,username,acctstarttime,callingstationId,framedipaddress from radacct where acctstoptime=0" Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ivcrash Опубликовано 27 февраля, 2013 · Жалоба Если авторизация пользователей через Radius и mysql-базу, то может так: mysql radius -e "select radacctid,username,acctstarttime,callingstationId,framedipaddress from radacct where acctstoptime=0" Спасибо, попробую! На данный момент настройкой ротации wtmp лога, ядра больше не грузятся... Всем спасибо! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...