Я никогда не использовал pptpd сам, но его документы говорят, что он просто использует базовый pppd.
pppd можно настроить через pam, используя /etc/pam.d/ppp
.
Один модуль PAMимеет значение pam_listfile(8)
(по крайней мере, доступно на моем компьютере с Ubuntu 10.04), которое можно настроить для запрета пользователям с именами пользователей, указанными в определенном файле:
Classic ´ftpusers´ authentication can be implemented with this entry in /etc/pam.d/ftpd:
#
# deny ftp-access to users listed in the /etc/ftpusers file
#
auth required pam_listfile.so \
onerr=succeed item=user sense=deny file=/etc/ftpusers
Вы можете изменить это для своего сайта;добавляя имена в файл после успешного входа в систему и удаляя имена при выходе из системы, вы можете очень затруднить создание двух соединений для одной и той же учетной записи пользователя.
Конечно, это будет довольно хрупко -для разорванного соединения потребуется удалить свою линию, а перезагрузка маршрутизатора может раздражать сотни или тысячи пользователей одновременно.Я мог бы предложить просто обрезать весь файл, когда пользователи жалуются, и надеяться в лучшем случае избежать грубого злоупотребления вашей системой.(И программа для удаления имен пользователей должна быть тщательно написана, чтобы избежать гонок; вы можете использовать lockfile(1)
или dotlockfile(1)
, чтобы помочь вам.)
Возможно, какой-то периодический аудит будет другим вариантом: вы могли бы проверитьвремя от времени файлы wutmp (см. w(1)
, lastlog(8)
) или списки процессов (приятно - ps auxw
) проверяют, не злоупотребляют ли они людьми, и рассматривают это как проблему политики, а не как проблему принудительного применения программного обеспечения.
Надеюсь, это поможет.