Kill pptp Session
Материал из Ksimute
Коробанов Сергей
Сентябрь 8, 2006
Вернее не пользователя а процесса. Т.к.
Уголовный кодекс надо чтить! (с) Остап Бендер.
Вообще статья старая и неактуальная, pptp-kill во всех современных дистрибутивах есть и вообще pptpd - отстой. Большой нагрузки не держит.
MPD под FBSD решает!
Имеем vpn сервер (без радиуса) простой банальный pptpd. На нем обитает 500 подключений.
Задача:
Знаем ip абонента например 10.168.0.2, необходимо убить pptp процесс отвечающий
за его подключение.
Что может быть проще :)
vpn1 ~ # kill `cat /var/run/\`ip a l | grep -w 10.168.0.2 | awk {'print $7'}\`.pid`
Теперь разберем детально, чтобы без вопросов можно было прикрутить к любому скрипту и дистрибутиву.
vpn1 ~ # ip a l | grep -w 10.168.0.2 inet 10.1.1.1 peer 10.168.0.2/32 scope global ppp132
grep -w нужен, чтобы под маску поиска не попали ip 10.168.0.2xx
выцепляем имя интерфейса (в данном случае ppp132)
vpn1 ~ # ip a l | grep -w 10.168.0.2 | awk {'print $7'} ppp132
распечатываем файл из /var/run, содержащий pid pppd, обслуживающего этот ip
vpn1 ~ # cat /var/run/ppp132.pid 28740 vpn1 ~ # kill 28740
Проверяем:
vpn1 ~ # ip a l | grep -w 10.168.0.2
Пути могут немного варьироваться (в зависимости от дистрибутива).