LINUX.ORG.RU
ФорумAdmin

копия pptpd на одном хосте

 , , ,


0

1

Всем привет!

Не могу запустить второй экземпляр pptpd на Debian 8. Скопировал /etc/init.d/pptpd в pptp2 внес изменения:

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC='PoPToP Point to Point Tunneling Server copy'
NAME=pptpd2
DAEMON="/usr/sbin/pptpd"
DAEMON_OPTS=''
PIDFILE='/var/run/pptpd2.pid'
SCRIPTNAME="/etc/init.d/$NAME"
остальное не трогал. Создал конфиг юнита systemd в /lib/systemd/system/pptpd2.service:
[Unit]
Description=PoPToP Point to Point Tunneling Server copy
After=network.target

[Service]
EnvironmentFile=-/etc/default/pptpd2
# don't daemonize to simplify stuff
ExecStart=/usr/sbin/pptpd --fg $DAEMON_OPTS
KillMode=process

[Install]
WantedBy=multi-user.target

Стартую сервис, такая картина:

● pptpd2.service - PoPToP Point to Point Tunneling Server copy
   Loaded: loaded (/lib/systemd/system/pptpd2.service; disabled)
   Active: failed (Result: exit-code) since Вт 2018-03-13 12:26:33 MSK; 1h 10min ago
  Process: 8827 ExecStart=/usr/sbin/pptpd --fg $DAEMON_OPTS (code=exited, status=255)
 Main PID: 8827 (code=exited, status=255)

мар 13 12:26:33 proxy-squid systemd[1]: Starting PoPToP Point to Point Tunneling Server copy...
мар 13 12:26:33 proxy-squid systemd[1]: Started PoPToP Point to Point Tunneling Server copy.
мар 13 12:26:33 proxy-squid pptpd[8827]: MGR: Maximum of 100 connections reduced to 51, not enough IP addresses given
мар 13 12:26:33 proxy-squid pptpd[8827]: MGR: Manager process started
мар 13 12:26:33 proxy-squid pptpd[8827]: MGR: Maximum of 51 connections available
мар 13 12:26:33 proxy-squid pptpd[8827]: MGR: Couldn't create host socket
мар 13 12:26:33 proxy-squid pptpd[8827]: createHostSocket: Address already in use
мар 13 12:26:33 proxy-squid systemd[1]: pptpd2.service: main process exited, code=exited, status=255/n/a
мар 13 12:26:33 proxy-squid systemd[1]: Unit pptpd2.service entered failed state.
Когда выключаю первый экземпляр pptpd, второй стартует. Понятно, что у второго будет свой ip, пока дал ему локалхост. Подскажите, как запустить два pptpd?

Когда выключаю первый экземпляр pptpd, второй стартует. Понятно, что у второго будет свой ip, пока дал ему локалхост.

Логично, так и должно быть. Если не секрет, зачем Вам 2 экземпляра pptpd? По поводу своего IP - тут дело не в адресе, а в порте. Сообщение в логах

мар 13 12:26:33 proxy-squid pptpd[8827]: MGR: Couldn't create host socket
мар 13 12:26:33 proxy-squid pptpd[8827]: createHostSocket: Address already in use

прямо указывает на отсутствие свободного порта.

Serge10 ★★★★★ ()
Ответ на: комментарий от Serge10

Если не секрет, зачем Вам 2 экземпляра pptpd? Для того чтобы люди могли ходить только в определенный сегмент сети.

borschov ()
Ответ на: комментарий от Pinkbyte

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

я бы хотел чтобы пользователи разных групп коннектились к разным адресам.

borschov ()
Ответ на: комментарий от borschov

чтобы пользователи авторизовались на основе принадлежности к группе AD

За это отвечает RADIUS-сервер, pptpd тут вообще не при делах

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

За это отвечает RADIUS-сервер, pptpd тут вообще не при делах

Это от конкретной конфигурации зависит. Насколько я понял, у автора темы вообще нет RADIUS, авторизация идет с помощью winbind-плагина непосредственно через pptpd.

Serge10 ★★★★★ ()
Ответ на: комментарий от Serge10

Ну так это отличный повод перейти на радиус и не городить костыли с запуском нескольких pptpd. Так-то можно распихать pptpd по network namespace и как-то завязать эту логику... Но рожать на каждый инстанс pptpd новый netns - такое себе дело...

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Radius - это наверное правильно, но требует времени, чтобы разобраться. И для меня остается непонятным, как клиентам pptpd будут назначаться ip-адреса из разных сеток, тогда как pptpd, как я понял, работает с адресами одной сети.

borschov ()
Ответ на: комментарий от borschov

И для меня остается непонятным, как клиентам pptpd будут назначаться ip-адреса из разных сеток, тогда как pptpd, как я понял, работает с адресами одной сети.

С чего ты взял? Каждый экземпляр pptpd у тебя может выдавать свою отдельную подсеть, при условии что и конфиги у них будут разные конечно.

Но, опять же хочу подчеркнуть, что это дикие плохомасштабируемые костыли.

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Сорри, неправильно выразил мысль.
Про отдельные экземпляры мне все понятно.

Выше я имел в виду случай с Radius.
Т.е. - один радиус, один pptpd, но клиентам надо получать адреса из разных сетей.

borschov ()
Ответ на: комментарий от borschov

Т.е. - один радиус, один pptpd, но клиентам надо получать адреса из разных сетей

Ты видимо не в курсе возможностей freeradius - назначаемый адрес можно прописать как тебе будет угодно через файл users например. А возможность цеплять на каждый этап(авторизация, аккаунтинг и т.д.) несколько модулей открывает большое пространство для манёвра.

Матчинг по группе в rlm_ldap имеется

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1 )
Ответ на: комментарий от borschov

И для меня остается непонятным, как клиентам pptpd будут назначаться ip-адреса из разных сеток, тогда как pptpd, как я понял, работает с адресами одной сети.

Посмотрите по ссылке - там описывается практически такая же конфигурация, которая Вам нужна. IP-адреса берутся из AD и назначаются радиусом.

Serge10 ★★★★★ ()
Последнее исправление: Serge10 (всего исправлений: 1 )
Ответ на: комментарий от Pinkbyte

Так-то можно распихать pptpd по network namespace и как-то завязать эту логику... Но рожать на каждый инстанс pptpd новый netns - такое себе дело...

Угу, городить для такой задачи контейнеры - явно не самое оптимальное решение...

Serge10 ★★★★★ ()
Ответ на: комментарий от Serge10

Всем спасибо за советы. Radius, оно наверное правильнее, но долго...

borschov ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.