1

Дано:

для доступа к внутренней сети с машин под Win поднят VPN-сервер на CentOS
используется pptp (pptpd) и l2tp (xl2tpd)

авторизация пользователей и присвоение им адресов при подключении сделаны через файл /etc/ppp/chap-secrets
который выглядит примерно так:

# client        server  secret                  IP addresses
user1 vpnserv aaaaa 192.168.100.8
user2 vpnserv bbbbb 192.168.100.9
user3 vpnserv ccccccc 192.168.100.10

все работает, с одним неприятным "но":

если с двух разных компьютеров установить VPN-подключение с одинаковым логином-паролем, то оно устаналивается с обоих.
после чего в системе заводится два интерфейса pppX с одинаковым IP-адресом.
неважно, оба подключаются по pptp, по l2tp или один так другой этак (сосбтвенно авторизация и назначение адресов производит уже pppd, как я понимаю)
при этмо ситуации такие реально встречаются и после этого, естественно, возникают проблемы.

вот так примерно это выглядит (смоделирована ситуация - с двух разных машин с адресами 192.168.11.169 и 192.168.23.199 по pptp подключились пользователи с одним и тем же логином user2 ):

процессы pppd

/usr/sbin/pppd local file /etc/ppp/options.pptpd 115200 ipparam 192.168.23.199 plugin /usr/lib/pptpd/pptpd-logwtmp.so pptpd-original-ip 192.168.23.199
/usr/sbin/pppd local file /etc/ppp/options.pptpd 115200 ipparam 192.168.11.169 plugin /usr/lib/pptpd/pptpd-logwtmp.so pptpd-original-ip 192.168.11.169

интерфейсы pppX:

ppp0      Link encap:Point-to-Point Protocol
          inet addr:192.168.100.1  P-t-P:192.168.100.9  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1396  Metric:1

ppp1      Link encap:Point-to-Point Protocol
          inet addr:192.168.100.1  P-t-P:192.168.100.9  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1396  Metric:1

Вопрос:

можно как-то этого избежать?

т.е. сделать так, чтобы когда один пользователь уже авторизовался с логином-паролем из chap-secrets - не давать этого сделать второму (ну или "убивать" первого при логине второго).
или это неустранимо?

при авторизации через внешний radius это делается, но задачка уж слишком простая (пустить пяток пользователей во внутреннюю сеть), не хочется ради нее radius отдельно поднимать-настраивать. Использование pptp/l2tp - достаточно приципиально (т.е. перейти на OpenVPN и т.п. - не предлагать)

все, что пришло в голову, уже перепробовал, маны читал, все назначение пользовательских адресов сделано через pppd (delegate в ppptp.conf и аналогично в xl2tpd.conf) ... не помогает.

2

Удали из конфигов remote ip address и пробуй

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

3

Нет там давно remote ip в конфигах
Я ж написал - в pptpd.conf стоит delegate
а remote ip соотвественно не стоит.

в xl2tpd аналогично - assign ip = no и никаких ip range

адреса, назначаемые пользователям берут строго из chap-secrets
и это важно - что они берутся именно оттуда и каждому логину в сооветствие ставится всегда один и тот же адрес.