Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Настройка VPN без Network Manager'a в Ubuntu 12.04  (Прочитано 5014 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kon_peter_ua

  • Автор темы
  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Собссно говоря захотелось мне чтобы интернет включался автоматически при старте системы. Нетворк манагер хороший конечно парень, но каждый раз клацать на иконку подключания четА влом стало  ;).
Сначала настроил поднятие VPN из командной строки. Это оказалось очень просто. Идем в /etc/ppp и создаем (если его нету) файлик options.pptp. Приводим его к следующему виду:
lock

#следующие 4 строки нужны ибо у моего провайдера используется авторизация mschap-v2
refuse-pap
refuse-eap
refuse-chap
refuse-mschap

#сжатие отключено
nobsdcomp
nodeflatу

Редактируем файлик chap-secrets:
<имя пользователя> PPTP <пароль>  * (звездочка :-) если вдруг кто не понял)

Далее идем в /etc/ppp/peers и создаем здесь так называемый файл туннеля. Назваине любое :-) главное чтобы вы не забыли. Приводим содержимое файла к следующему виду:
#первая строчка говорит как коннектиться к серверу VPN. В частности 10.100.2.1 это его ИП :-)
pty "pptp 10.100.2.1 --nolaunchpppd"
name <имя пользователя>
remotename PPTP
#эта строчка вставляется если требуется шифрование
require-mppe-128
#чтобы поднятый интерфейс (ppp0) использовался по умолчанию для маршрутизации (в инет)
defaultroute

Собственно говоря все. Подключаемся с помощью команды:
Цитировать
sudo pon <имя файла туннеля>
Отключаемся с помощью комманды:
Цитировать
sudo poff <имя файла туннеля>

У меня почему то не смотря на то, что к интернету подключалось, в сам инет не ходило. Проблемма оказалась в маршрутизации - было два ИП адреса в качестве дефаултроутов. Дополнительно потребовались две команды (выполняем от рута):
(Нажмите, чтобы показать/скрыть)

ppp0 - имя нашего инет-интерфейса, у вас должно быть таким же (проверьте, если надо исправьте)

Если VPN у вас подключается значит все гуд :-) и можно переходить к следующему - запуск при загрузке. Здесь тоже сложного немного: нужно создать скрипт запуска в папке /etc/init.d и добавить его к автозапуску. Приблизительный текст скрипта привожу ниже.
#!/bin/bash
case "$1" in
    start)
        #Здесь мы проверяем получили ли мы ИП, у моего провайдера раздача по DHCP
        while [ -z "`ifconfig | grep 10.100.`" ]
        do
            echo "`date`: waiting ip address" >> /var/log/myinet.log
            sleep 5
        done
        echo "`date`: Inet started" >> /var/log/myinet.log
        pon <имя файла туннеля>
        route del default
        route add default dev ppp0
        exit 0
        ;;
    stop)
        echo "`date`: Inet stoped" >> /var/log/myinet.log
        poff <имя файла туннеля>
        route del default
        route add default eth0
        exit 0
        ;;
    *)
        echo "Usage: myinet start | stop - Establish or disconnect ip connection to provider "
        exit 0
        ;;
esac

Далее нам надо добавить этот скрипт в автозапуск системы:

Цитировать
sudo update-rc.d myinet defaults

Как вы видимо догадались myinet имя нашего скрипта. По идее все. Дополнительных танцев с бубном не требуется и инет должен запускаться при старте ситемы. Но для пущей уверенности я заглянул в директории /etc/rcX.d, чтобы убедиться :-) шо усе гуд :-). И в папках /etc/rc2.d, /etc/rc3.d, /etc/rc4.d, /etc/rc5.d переименовал символическую ссылку, чтобы имя начиналось символами "S99z" для уверенности, что скрипт запуститься в самую последнюю очередь. Помогло :-).
Но тут нас спиткала нэвдача: оказывается network-manager при старте обновляет адреса dhcp у интерфейса eth0 (наша сетевушка), обрубая при этом уже поднятый туннель в инет (мое наблюдение может быть ошибочным, но все равно на фиг он нам вообще нужен если у нас все и без нетворк манагера подымается на ура). И решил я снести этого парня. Все оказалось довольно просто:
Цитировать
sudo apt-get remove network-manager

Вместе с ним удалиться еще аплет отображающий сетевые подключения в трее.
Единственноя проблемма которая возникнет - это сетевой интерфейс был завязан на нетворк менеджере и мы останемся без сетки :-). Ай-яй-яй-яй-яй. Пичалька  :(.

Идем в /etc/network ищем там файлик interfaces и приводим его к следующему виду:
auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp

Все. Все необходимые интерфейсы у нас будут подниматься при старте системы.

P.S. В Linuxе я не гуру :-) так что буду благодарен за внесенные коррективы.

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Настройка VPN без Network Manager'a в Ubuntu 12.04
« Ответ #1 : 09 Мая 2012, 18:42:38 »
(Нажмите, чтобы показать/скрыть)
Это не нужно. В /etc/ppp/peers/<vpn_scriptname> добавляются команды:
Код: (text) [Выделить]
defaultroute
replacedefaultroute
persist
maxfail 0
Само соединение поднимается с помощью ifupdown в /etc/network/interfaces
Код: (text) [Выделить]
# file: /etc/network/interfaces
# Выдержка
auto my_vpnname
iface my_vpnname inet ppp
      provider <vpn_scriptname>
и управляется ifup my_vpnname / ifdown my_vpnname
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 09 Мая 2012, 18:55:01 от KT315 »
OpenWrt 19.07

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.