KsI-wiki online documents

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

Пути могут немного варьироваться (в зависимости от дистрибутива).