Как включить (отключить) многопользовательский вход PPTP (из одной учетной записи) в Linux? - PullRequest
1 голос
/ 09 декабря 2010

Я не хочу, чтобы многие пользователи входили на PPTP-сервер Linux с одним именем пользователя и паролем. Есть ли какое-либо решение для этого?

Ответы [ 2 ]

5 голосов
/ 05 января 2012

PPTP multi login включен по умолчанию в Linux. Чтобы отключить мульти-логин, я просто добавил следующие строки в / etc / ppp / ip-up

# disconnect new PPTP connection if user already connected
sleep 2
PID=$(cat /var/run/$PPP_IFACE.pid)
if [ $PID ]; then
    PROCCESS="$(last -w | grep ppp | grep still | grep $PPP_IFACE)"
    USERNAME=$(echo $PROCCESS | cut -d' ' -f1)
    NUMLOGINS="$(last -w | grep ppp | grep still | grep -c $USERNAME' ')"
    if [ $NUMLOGINS -gt 1 ]; then
        kill $PID
    fi
fi

Эта часть просто отключает любое новое соединение, если пользователь вошел в систему. Хорошо работает на моем Ubuntu 9.04

1 голос
/ 09 декабря 2010

Я никогда не использовал 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) проверяют, не злоупотребляют ли они людьми, и рассматривают это как проблему политики, а не как проблему принудительного применения программного обеспечения.

Надеюсь, это поможет.

...