На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила трёх "С"
Пожалуйста,
1. Соблюдайте правила Форума.
2. Слушайте советы Модераторов.
(например, http://forum.sources.ru/index.php?act=ST&f=7&t=80382 )
3. Сверяйтесь с учебником по Великому и Могучему
  
> не получается поднятие vpn соединения непривелегированным пользователем , из лога: anon fatal[main:pptp.c:275]: Cannot bind GRE socket, aborting
    Всем привет!
    Уважаемые форумчане, прошу совета или намека куда копнуть.

    OS: Debian etch
    Пытаюсь сделать чтобы непривелегированный пользователь (назовем его internet) мог поднять vpn-соединение. Пользователь занесен в группу dip.
    Через sudo pon [provider] всё работает.
    А если просто pon [provider] вот такие вещи дает в /var/log/syslog:
    ExpandedWrap disabled
      Jan 12 11:37:58 localhost pppd[32433]: pppd 2.4.4 started by internet, uid 1003
      Jan 12 11:37:58 localhost pptp[32434]: anon log[main:pptp.c:267]: The synchronous pptp option is NOT activated
      Jan 12 11:37:58 localhost pptp[32434]: anon warn[pptp_gre_bind:pptp_gre.c:82]: socket: Operation not permitted
      Jan 12 11:37:58 localhost pptp[32434]: anon fatal[main:pptp.c:275]: Cannot bind GRE socket, aborting.
      Jan 12 11:37:58 localhost pppd[32433]: Couldn't get channel number: Input/output error
      Jan 12 11:37:58 localhost pppd[32433]: Script /usr/sbin/pptp 10.1.255.250 --nolaunchpppd finished (pid 32434), status = 0x1
      Jan 12 11:37:58 localhost pppd[32433]: Exit.


    гуглил и 2, и 3, и 4 строки... но разумного ничего не накопал. Заранее спасибо.

    Добавлено
    Продолжая гуглить нашел ответ.
    вот привожу что накопал из какого то форума.
    мне лично помог только пункт 1. Но там внизу в принципе есть пояснения для ВСЕХ шагов - может кому поможет.
    Вопрос решен. Всем спасибо :)


    Debian + PPTP. Запуск pon/poff из-под обычного пользователя.

    Алгоритм следующий (все шаги выполняются из-под рута... ну, или с использованием sudo):

    1. Установить suid-бит на pptp.
    ExpandedWrap disabled
        root# chmod u+s `which pptp`


    2. Узнать полный путь к pptp.
    ExpandedWrap disabled
       root# which pptp


    3. Записать полный путь к pptp (который был выведен на предыдущем шаге) в соответствующий файл описания связи с провайдером (в файл из /etc/ppp/peers):
    * открываем требуемый файл (например, /etc/ppp/peers/server);

    * находим строчку, содержащую вызов команды pptp:
    ExpandedWrap disabled
        pty "pptp 172.16.5.1 --nolaunchpppd"


    * изменяем эту строчку так, чтобы вызов команды pptp производился по полному пути (допустим, на предыдущем шаге команда which pptp вывела /usr/sbin/pptp):
    ExpandedWrap disabled
       pty "/usr/sbin/pptp 172.16.5.1 --nolaunchpppd"


    * сохраняем изменённый файл.

    4. Добавить пользователя в группу dip. Вместо user следует подставить имя пользователя, из-под которого требуется запускать pon/poff.
    ExpandedWrap disabled
        root# usermod -aG dip user


    5. После всего этого следует перелогиниться (выйти из-под учётной записи пользователя и войти обратно).


    Всё, теперь команды pon server и poff server должны работать из-под user'а и соединять с требуемым провайдером (вместо server, соответственно, необходимо подставить имя файла, который был изменён на 3-ем шаге).


    В дальнейшем, чтобы позволить любому другому пользователю запускать pon/poff достаточно добавить его в группу dip и перелогиниться. Шаги 1-2 повторять необязательно. Шаг 3 (указание полного пути к pptp) нужно учитывать при создании новых файлов в /etc/ppp/peers.


    Краткие пояснения по шагам:

    * в Debian скриптами pon/poff (и программой pppd) по умолчанию имеют право пользоваться только пользователи из группы dip (ну, и, естественно, root).

    * если не поставить suid-бит на pptp, то при запуске из-под обычного пользователя он не получит доступ к требуемому им сокету: возникнет ошибка вида
    ExpandedWrap disabled
            anon warn[pptp_gre_bind:pptp_gre.c:82]: socket: Operation not permitted
            anon fatal[main:pptp.c:275]: Cannot bind GRE socket, aborting.


    * если не прописать полный путь к pptp, то при запуске из-под обычного пользователя он не будет найден: возникнет ошибка вида
    ExpandedWrap disabled
            sh: pptp: command not found


    Для отладочного вывода при запуске pon используйте дополнительные опции debug dump logfd 2 nodetach. Например:
    ExpandedWrap disabled
      pon server debug dump logfd 2 nodetach
      gonsaless смотри какие группы уже существуют. Включи своего пользователя в нужную группу и все будет Ок. Точнее сказать не могу поскольку названия групп дистрозависимое явление.
      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0215 ]   [ 14 queries used ]   [ Generated: 1.07.25, 20:13 GMT ]