Beeline настройка vpn ubuntu

Обновлено: 05.07.2024

Заметки по ходу настройки "разного" в Linux. Хочу разобраться - читаю исходники. Программирование, администрирование, микроэлектроника, фотографирование и пр.

четверг, 15 марта 2012 г.

Настройка Билайн Интернет в Ubuntu 12.04 на HP ProLiant MicroServer

Заметка по настройке сети Билайн-Интернет (быв. Корбина-Интернет) в Петербурге
Пошаговый, ручной способ, для лучшего понимания взаимодействия частей.
Девиз: пакет не знаешь куда идти? - иди на шлюз по умолчанию.

Чистый установленный сервер Ubuntu 12.04.
В принципе. методика применима к серверу Ubuntu 11.10, Ubuntu 11.04, Ubuntu 10.10.
Железо: HP Proliant Microserver, версия N40L.
Сервер будет использоваться как роутер домашней сети, сервер резервирования, сервер разработки.
Т.к. сеть интернет недоступна из коробки, ее надо настроить. Сервер устанавливался с образа на флешке, подготовленного встроенным в Ubuntu средством "Создание загрузочного диска".
Сложностью здесь может быть то, что требуемые пакеты для нормальной работы Билайн-Интернет, надо скачивать из сети Интернет.

Требуются пакеты:
1. Для PPTP VPN - pptp-linux
2. Для L2TP VPN - xl2tpd

Я обошел эту проблему первоначальным временным подключением сервера к обычному настольному компьютеру с Ubuntu 11.10, на котором дополнительно установил адаптер USB-Ethernet (или вторую сетевую плату). Сеть между ними я временно настроил со статическими IP адресами. На настольном компьютере произвел настройки, предоставляющие доступ в Интернет серверу (IP mascarade) через настроенное соединение на настольном компьютере. У сервера адресом шлюза по-умолчанию был выбран IP настольного компьютера.
Есть и другой способ, можно создать собственный загрузочный диск с необходимыми пакетами, перебрав диск Ubuntu 12.04.
Можно также перенести эти файлы на флешке, предварительно их загрузив тем или иным способом.
Есть и самый интересный способ, - использовать локальный репозиторий Ubuntu, которые поддерживает Beeline Интернет на своих серверах. У них есть локальный FTP сервер, по адресу 195.14.50.21 (см. Ресурсы п. 5), там же и репозитории пакетов Ubuntu.

Итак, временные настройки на настольном компьютере, обеспечивающие NAT для сервера:
$sudo -s
$echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf
$sysctl -p
$sudo iptables -t nat -I POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE

$sudo iptables-save >/etc/iptables.conf

Настройки на сервере, в файле /etc/network/interfaces, добавил:

auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.2

server$ sudo ifconfig eth0 up

Добавил маршрут по умолчанию, на сервере:
server$ route add default gw 192.168.1.2

Скачал требуемые пакеты
server$ sudo apt-get install pptp-linux xl2tpd

Заодно русифицировал консоль:
?
$ sudo apt-get install console-cyrillic
$ sudo dpkg-reconfigure console-cyrillic
$ sudo dpkg-reconfigure console-setup
Включить настройку консоли при загрузке. Для этого в файл /etc/initramfs-tools/initramfs.conf необходимо добавить параметр FRAMEBUFFER=Y. В результате будут показываться шрифты, приветствия на русском языке.
Обновить initramfs, чтобы в него добавились нужные параметры:
sudo update-initramfs -u

далее в файл /etc/rc.local добавляет строку:
/etc/init.d/console-cyrillic start
Перезагрузился.

Переименование сетевых интерфейсов в Ubuntu 12.04

Для удобства восприятия сетевых интерфейсов на сервере, сделаем переименование невнятных eth, в что-то более адекватное, например - интерфейс к провайдеру - district или beeline, интерфейс к домашней сети - home.
Это также позволит писать более-менее универсальные правила iptables.

iface beeline inet dhcp

iface home inet static
address 192.168.3.1
netmask 255.255.255.0

auto home
auto beeline

Для моей домашней сети выбран диапазон 192.168.3.1/24

Т.е. в системе получилось два понятных сразу, по их назначению, интерфейса. Гут. Это становится актуально при наличии многих интерфейсов, виртуальных бриджей и пр. Позже, тоже самое проделал и для домашнего компьютера.

Особенностью подключения является то, что при получении IP-адреса через локальную (районную) сеть, также устанавливается шлюз по-умолчанию. Но этот шлюз, не обеспечивает доступ в Интернет, однако можно получить доступ к районными ресурсам провайдера.
Вот вывод команды, после загрузки и поднятия интерфейса beeline.
$sudo route -n

Таблица маршрутизации ядра протокола IP

здесь 10.123.240.1 - шлюз по-умолчанию. У меня beeline, у вас может быть eth0, eth1 или иное, если делали переименование.

Т.к. подразумевается что в системе должен быть один шлюз по умолчанию, а при подключении к pptp создается правильный шлюз, то старых районных шлюз все рекомендуют удалить. Что мы и проделаем ниже. Можно удалить до подключения ppp, а можно после.
$ ip route del default

Также на форумах Beeline Интернет настоятельно советуют настроить таблицу маршрутов, следующим образом - указать доступ к vpn-серверам, dns-серверам через шлюз (он же шлюз по-умолчанию) полученный нами по DHCP.
Очень странно, что не все эти маршруты не передаются автоматически в dhcp - запросе. А они передаются, только хитрым способом (см. ресурсы п.2). Для этого надо настроить еще клиент dhcp, через /etc/dhcp/dhclient.conf.

Добавлю DNS-адрес, актуальный для моих условий Петербурга. У Вас может быть свои DNS-серверы, это можно выяснить у тех. поддержки.
$ sudo ip route add 85.21.192.3 via 10.123.240.1 dev beeline
или route add -host 85.21.192.3 gw 10.123.240.1
после добавления маршрута к dns серверу, команда route стала способна показывать dns-адреса маршрутов.

В принципе, остальные маршруты не нужны для функционирования Интернет.


в папке /etc/ppp/peers создадим настройку для нашего соединения VPN, назовем ее beeline. В результате, мы сможем управлять соединением, с помощью команд вида, pon beeline и poff beeline, из под рута.
$ sudo touch /etc/ppp/peers/beeline

где - это имя пользователя выданное провайдером Beeline, совпадает с именем Личного кабинета в Beeline. Пароль будет указан в другом файле

Указываем пароль для соединения
$ sudo nano /etc/ppp/chap-secrets
beeline

Чтобы контролировать процесс установки соединения, надо выбрать вторую виртуальную консоль на сервере (alt+F2), войти в систему и выполнить команду:

$ tail -f /var/log/syslog

Команда будет показывать хвост журнала syslog, до тех пор, пока не нажмете Ctrl-C.
Alt+F1 - переключиться на первую консоль.

$ sudo ifconfig
Среди списка интерфейсов ищем обычно ppp0, и смотрим его IP адрес.

Следующее, не нужно делать, если опция replacedefaultroute нормально отрабатывает.
Удаляем маршрут по-умолчанию, установленный на интерфейс eth0:
$ sudo ip route del default
Далее, добавляем маршрут по умолчанию:
route add default gw
К примеру, у меня был IP-адрес 176.14.13.105, соотв. добавление маршрута выглядело так:
route add default gw 176.14.13.105
либо с использование команды ip (новый способ)
ip route add default via 176.14.13.105 dev ppp0

либо так:
ip route add default dev ppp0

Итак, после подъема соединения pon beeline (beeline - это имя для ppp peer), я делаю две команды:
ip route del default
ip route add default dev ppp0

После отключения от Интернет, надо восстановить маршрут по умолчанию, у меня через beeline.
$ sudo ip route add default via . dev beeline
автоматически восстанавливается, если работает опция replacedefaultroute.

Для автоматического поднятия соединения вносим в файл /etc/network/interfaces, запись относительно ppp


после перезагрузки видим четкие и понятные интерфейсы
$ ifconfig
lo .
beeline .
home .
ppp9 .

иногда интернет отваливается, можно поднять ifup ppp9, а остановить ifdown ppp9.

Настройка L2TP долго не давалась, пока не были выяснены все нюансы подключения, обходы багов и пр., основная засада от корбины-билайна.

Куда я вносил изменения:
1. /etc/dhcp/dhclient.conf
2. /etc/network/interfaces
3. /etc/xl2tpd/xl2tpd.conf
4. /etc/ppp/options.xl2tpd
5. /etc/ppp/options
6. /etc/ppp/ip-up.d/delroute
7. /etc/ppp/chap-secrets

Итак, после установки пакета xl2tpd.

Видим, на сервере Ubuntu 12.04 установлена версия 1.3.1 демона xl2tpd.

Порядок действий и ручных проверок подключения по протоколу L2TP
Предварительно.
Отключен интерфейс beeline. В файле /etc/network/interfaces
минимально задано, для начала:
iface beeline inet dhcp
Таблица маршрутов пустая, за исключением маршрута в home. Маршрута по умолчанию - нет, у меня он удаляется автоматически при поднятии home. Если он есть, его надо удалить, чтобы он не мешался при поднятии интерфейса beeline.

1. Открываем дополнительную консоль, на которой исполняем команду просмотра хвоста системного журнала. Тут мы будем наблюдать за ходом подключения:
$ tail -f /var/log/syslog

2. Поднимаем Ethernet-интерфейс beeline.
$ sudo ifup beeline

В консоли наблюдаем получение IP-адреса по DHCP.
Распечатываем таблицу маршрутов:
$ ip route

Видим, что получены различные маршруты.

Просматриваем содержимое файла /etc/resolv.conf
$ cat /etc/resolv.conf
Видим серверы имен, полученные по dchp и внесенные сюда командой ifup, через вызов resolvconf.
Записываем на бумаге их.

4. Делаем пинг, до DNS серверов.
Видимо их доступность, потому что работает маршрут по-умолчанию, через районный шлюз.

5. Начинаем вносить маршруты до DNS-серверов в таблицу маршрутизации.
ip route add 85.21.192.3 via 10.123.240.1
ip route add 213.234.192.8 via 10.123.240.1
Мы обеспечили доступность DNS серверов через районный шлюз, независимо от маршрута по-умолчанию. 10.123.240.1 - это районный шлюз, у Вас может быть другой. Выясняется по команде ifconfig

Видим, что каждый раз IP-адрес L2TP сервера меняется, но они кучкуются в одной подсетке.

7. Добавляем маршрут к выявленной подсетке серверов в таблицу маршрутизации, через районный шлюз
ip route add 83.102.254.0/24 via 10.123.240.1

8. Удаляем маршрут по-умолчанию
ip route del default

10. Готовим урезанные версии конфигурационных файлов демона xl2tpd, для целей ручного тестирования и поднятия туннеля.

Файлы конфигураций xl2tpd находятся:
/etc/xl2tpd/xl2tpd.conf
/etc/ppp/options.xl2tpd

Редактируем, основываясь на прочтении man xl2tpd.conf
Временно исключаем ряд опций: redial
Временно добавляем ряд опций отладки: debug network, debug tunnel


$ sudo nano /etc/xl2tpd/xl2tpd.conf

lac - L2TP Access Concentrator (LAC)
lns - L2TP Network Server (LNS)
Замените строчку <ваш логин> на свой, он совпадает с логином для входа в личный кабинет.
На моем тарифе, опция tx bps роли не играет. Без нее тоже работает.

$ sudo nano /etc/ppp/options.xl2tpd

Небольшой такой, компактный файл опций. Все нужное, ничего лишнего, для начала
Опция defaultroute - определяет, что туннель ppp8 будет установлен как маршрут по-умолчанию в таблице маршрутизации. Здесь важно, чтобы в таблице маршрутизации, перед установлением соединения l2tp, не было маршрута по умолчанию, иначе pppd не станет устанавливать маршрут по-умолчанию.
Опция linkname используется в скрипте delroute в папке /etc/ppp/ip-up.d/ ,
чтобы выполниться только когда поднимается соединение l2tp.

Можно добавить опцию, mtu 1460. У меня, без этой опции скорость на отдачу низкая. Есть еще mru 1460.

11. Исправляем цепляющиеся опции pppd, которые присоединяются к нашим опциям из файла /etc/ppp/options

Особенность, в том, что демон pppd присоединяет файл /etc/ppp/options к конфигурации /etc/ppp/options.l2tp

Во-вторых, мои конфиги xl2tpd:

В-третьих, dhcp работает, и при подключении кабеля появляется:

Итог: пингуются только 85.21.78.93 и 89.179.75.100.


У Билайна свой, упоротый, впн в интернет.
Сохрани себе нервы и время, сделай мини-виртуалку с OpenWRT и LuCI настрой в ней подключение.

Шлюзом должен быть таки поднятый ppp0. Вот пример костыля, работающего уж который год (да, костыль, но работает). Локалка 192.168.3.0/24

olegkrutov ★ ( 18.10.20 18:18:34 )
Последнее исправление: olegkrutov 18.10.20 18:21:09 (всего исправлений: 2)

А использовать web-авторизацию у билайна не вариант?

сделай мини-виртуалку с OpenWRT и LuCI настрой в ней подключение

Спасибо за идею.

А использовать web-авторизацию у билайна не вариант?

Не завезли, узнавал.

Шлюзом должен быть таки поднятый ppp0. Вот пример костыля, работающего уж который год

Прошу подробностей!

  • Скрипт /etc/ppp/ip-up выполняется при старте pppd?
  • Он запускает остальные, из /etc/ppp/ip-up.d/?
  • Ваш /etc/ppp/ip-up.d/beeline нужен, чтобы трафик шел через локальный шлюз ppp0?
  • Шлюз ppp0 нужен, чтобы передать посредством xl2tpd данные для аутентификации?
  • Кто и когда запускает xl2tpd?
  1. насколько я помню, pppd при соединении выполняет всё по порядку из /etc/ppp/ip-up.d
  2. угу
  3. тут настраивается роутинг и iptables (адрес белый, а всякие сервисы смотрят наружу), также важная строка –clamp-mss-to-pmtu, без нее пакеты будут пропадать частенько
  4. ppp0 – это в общем и есть ваш шлюз в инет по умолчанию
  5. если это автоматика – то запускается через SysV или systemd сервис, если нет – ручками

То есть принцип:запускаем xl2tpd, он запускает pppd при удачной аутентификации, тот выполняет /etc/ppp/ip-up, тот – скрипты из /etc/ppp/ip-up.d, и при правильной настройке инет бегает через туннель ppp0

Когда туннель прибивается, выполняется /etc/ppp/ip-down и что есть в /etc/ppp/ip-down.d, это важно для возвращения роутинга в исходное.

olegkrutov ★ ( 19.10.20 23:57:52 )
Последнее исправление: olegkrutov 20.10.20 00:20:59 (всего исправлений: 2)

В МСК на Билайн тебе достаточно DHCP, L2TP настраивать не надо - «воткнул кабель и полетели».

Помню, в 2014-ом году был у меня Билайн через L2TP. Затык был в том, что DHCP выдавал нужные маршруты через option номер_не_помню. Виндой и роутерами помнимается, а Linux из коробки - нет. Просто добавлял маршруты «руками».


Да, я тоже помню что на ubuntu 14.04 добавлял кастомные костыли в скрипты dhcp. Причём на 16.04 они уже не работали, так что плюнул и перешёл на OpenWRT где похоже все костыли в комплекте, и оно просто коннектится.

В большинстве случаев VPN соединение настраивается по туннельному протоколу L2TP.

Поддержки VPN соединения с протоколом L2TP/IPSec в системе Linux по умолчанию нет. Я использую в качестве основной системы Debian 10 и у меня его нет.

список возможных соединений debian 10

В операционных системах windows данный протокол есть по умолчанию. Как там происходит процесс настройки вы можете узнать из этой статьи, опубликованной ранее.

Посмотрев дистрибутив Linux mint и Ubuntu оказалось, что и там нет необходимых протоколов.

Так как все эти системы основаны на Debian, решение данного вопроса будет одинаковым на всех системах.

Далее я опишу процесс настройки VPN протоколу L2TP в системе Debina 10.

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

Необходимые пакеты L2TP для VPN соединения есть в репозиториях Debian 10, поэтому просто ставим их при помощи менеджера пакетов Synaptic.

Открываем менеджер и в поиске пишем L2TP.

после поиска отмечаем для установки два пакета

vpn network-manager-l2tp выбор пакетов

Отмечаем нужные пакеты для установки

vpn network-manager-l2tp установка пакетов

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

Со всем соглашаемся и нажимаем применить, дожидаемся окончания установки.

Устанавливаем пакеты для L2tp в терминале

Так же можно все эти пакеты установить командами в терминале, открываем терминал и последовательно выполняем команды

Обновляем список пакетов

Устанавливаем пакет network-manager-l2tp

Устанавливаем пакет network-manager-l2tp-gnome

vpn l2tp установка пакетов из терминала
vpn l2tp установка пакетов из терминала

Настраиваем само подключение по протоколу L2TP

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

vpn l2tp настраиваем соединение

Далее все заполняем согласно вашим данным, все данные по подключению вам должен предоставить администратор.

Перед тем как ввести пароль выберите способ его хранения, вводить каждый раз или запомнить его раз и навсегда.

настраиваем соединение

Не забудьте указать PSK ключ для подключения, ниже показано где его ввести

настраиваем соединение

После ввода всех данных, сохраняете настроенное соединение и можете выбрать его по клику левой кнопки мыши в трее

Роутер от Билайн

В своих домашних сетях Билайн использует VPN типа L2TP. Соответственно их роутер заточен именно под этот тип VPN. L2TP представляет из себя IPSec+IKE. Нам надо найти VPN-провайдера, который продает VPN соответствующего типа. Для примера возьмем FORNEX (не на правах рекламы).

Настраиваем VPN

image

В панели управления VPN-провайдера узнаем параметры подключения к VPN-серверу. Для L2TP это будут адрес сервера, логин и пароль.

image

Теперь входим в роутер.

Как указано в подсказке, "ищи пароль на коробке".

Далее кликаем в "Расширенные настройки", затем в "Другие".

image

И тут мы попадаем на страницу настроек L2TP (Начало > Другие > WAN).

В параметрах уже введены адрес L2TP-сервера Билайн, логин и пароль к вашему личному кабинету Билайн, которые так-же используются и на L2TP-сервере. При переходе на IPoE ваша учетная запись на L2TP-сервере Билайн блокируется, что приводит к значительному возрастанию нагрузки на IKE-сервер провайдера, т.к. вся толпа домашних роутеров продолжает к нему ходить днем и ночью раз в минуту. Дабы немного облегчить участь оного продолжим.

image

Вводим адрес L2TP-сервера, логин и пароль, предоставленные VPN-провайдером.

Нажимаем "Сохранить", затем "Применить".

image

Переходим в "Главное меню"

image

затем снова в "Расширенные настройки".

image

В итоге, что у нас получилось.

В секции "DHCP интерфейс" к нам пришли настройки от DHCP-сервера Билайн. Нам выдан белый адрес и DNS, которые отрабатывают блокировки. В секции "Информация о подключении" к нам пришли настройки от VPN-провайдера: адреса серые (так секурней) и DNS без блокировок. DNS-сервера от VPN-провайдера перекрывают DNS-сервера из DHCP.

Profit

Получили чудо-роутер, который раздает WiFi с работающим Гуголом, довольная бабушка продолжает чатиться в Telegram, а PS4 радостно подгружает контент из PSN.

Disclaimer

Все торговые марки принадлежат их владельцам и их использование в данном материале есть следствие чистого совпадения. Все адреса, логины, пароли, идентификаторы — вымышлены. В статье отсутствует реклама какого-либо провайдера или оборудования т.к. данный трюк работает с любым оборудованием в сети любого оператора связи.

Читайте также: