Подключение к интернет с использованием VPN в Ubuntu/Debian: часть 1
Debian, Ubuntu, VPN, Интернет 03.02.2008Некоторые интернет-провайдеры предоставляют свои услуги посредством VPN?. Т.е., для того, чтобы использовать интернет, вам нужно иметь настроенное соединение VPN с вашим провайдером. В таком способе доступа в интернет есть как свои плюсы, так и свои минусы. Однако обсуждение их выходит за рамки данной записи и, поэтому, я не буду обсуждать их сейчас.
УСТАНОВКА PPTP-LINUX
Для создания соединения VPN необходимо установить пакет pptp-linux. Он находится на первом установочном CD/DVD диске Ubuntu/Debian. При установке под Debian пакет pptp-linux потребует установить еще пакеты ppp и libpcap0.8. pptp-linux можно установить при помощи менеджера пакетов Synaptic?, а можно набрать команду в терминале:
sudo apt-get install pptp-linux
Замечание. Если вы не найдете пакет
pptp-linuxв менеджере пакетов Synaptic, значит, установочные CD/DVD не добавлены в список репозиториев системы. Добавить установочные CD/DVD можно в менеджере пакетов Synaptic через пункт меню приложения Edit -> Add CD-ROM. Посмотреть, какие CD/DVD уже добавлены можно в окне настроек репозиториев Software Sources (меню Settings -> Repositories).
НАСТРОЙКА PPTP-LINUX
В файле /etc/ppp/chap-secrets укажите имя пользователя USERNAME и пароль PASSWORD, которые будут использовать при подключении.
USERNAME PROVIDER_NAME PASSWORD *
Создайте файл подключения PROVIDER_NAME в папке /etc/ppp/peers и вставьте в него следующие строки:
remotename PROVIDER_NAME pty "pptp --loglevel 1 IP_ADDRESS --nolaunchpppd" name USERNAME noauth debug nodetach lock defaultroute replacedefaultroute noccp
Замените IP_ADDRESS на адрес сервера VPN вашего интернет-провайдера, а USERNAME и PROVIDER_NAME на имя вашего пользователя и имя файла подключения соответственно (USERNAME и PROVIDER_NAME те же самые, что указаны в файле /etc/ppp/chap-secrets).
ПОДКЛЮЧЕНИЕ К VPN
Перед тем, как дать инструкции подключения, хотелось бы заметить, что ваш интернет-провайдер скорее всего сообщит вам имена своих серверов DNS?, которые следует использовать вместе с соединением VPN. Чтобы использовать адреса DNS провайдера, следует указать их в файле /etc/resolv.conf перед подключением к интернет. Лично я для этого использую скрипт PROVIDER_NAME-ns.sh, код которого приведен ниже.
#!/bin/sh rm /etc/resolv.conf echo nameserver DNS1_IP_ADDRESS >> /etc/resolv.conf echo nameserver DNS2_IP_ADDRESS >> /etc/resolv.conf
Скрипт сначала удаляет файл /etc/resolv.conf, а потом создает его и записывает в него строки вида “nameserver DNS_IP_ADDRESS”. Поправьте скрипт под свои нужды, чтобы использовать его на своем компьютере: замените адреса DNS1_IP_ADDRESS и DNS2_IP_ADDRESS серверов DNS на те, которые предоставил вам интернет-провайдер.
Для начинающих пользователей Ubuntu хотелось бы сообщить, что создать файл скрипта можно в текстовом редакторе gedit (меню Applications -> Accessories -> Text Editor). После сохранения файла (в вашей домашней папке) необходимо разрешить выполнение файла скрипта. Для этого откройте вашу домашнюю папку (меню Places -> Home Folder), щелкните правой кнопкой мыши на файле скрипта, выберите в контекстном меню пункт Properties, после этого в открывшемся окне в закладке Permissions установите галочку Allow executing file as program.
Запустите в терминале скрипт PROVIDER_NAME-ns.sh, чтобы использовать адреса серверов DNS вашего провайдера.
sudo /home/username/PROVIDER-NAME.sh
Чтобы подключиться к VPN, воспользуйтесь в терминале командой pon.
sudo pon PROVIDER_NAME
В ходе подключения команда pon выдаст в окно терминала кучу отладочной информации (из-за наличия опции debug в файле /etc/ppp/peers/PROVIDER_NAME). При неудачном подключении pon выдаст код ошибки и вернется в консоль; в случае успешного подключения pon останется работать в терминале. После этого сворачивайте терминал, открывайте Firefox и вперед!
Чтобы отключится наберите в (еще одном) терминале команду poff.
sudo poff PROVIDER_NAME
И ЭТО ВСЕ?
В общем, да. Для того, чтобы подключаться к интернет на первых порах можно использовать команды sudo PROVIDER_NAME-ns.sh, а потом sudo pon PROVIDER_NAME. Однако делать это каждый раз после загрузки системы или восстановления из спящего/ждущего режимов со временем становится неудобно. В следующей записи я напишу как сделать так, чтобы соединение VPN устанавливалось автоматически при загрузке системы. Следите за обновлением блога!
05.02.2008 в 14:39
а гуглом пользоваться не учили, то что в гноме есть удобная тулза для настройки впн не знали, http://ubuntuforums.org/showthread.php?t=91249
достаточно всего лишь сделать:
sudo apt-get install network-manager-gnome network-manager-pptp
sudo NetworkManager restart
в общем КГ/АМ
06.02.2008 в 20:35
Про настройку VPN через Network Manager я тоже напишу, это вопрос времени
08.02.2008 в 09:00
NetworkManager у меня ни фига не стал соединять по впну, только статический адрес осилил. А из всего, что я нашла в инете, этот способ наименее замороченный. Спасибо огромное.
10.02.2008 в 22:43
Специально для DevTi сообщу небольшую новость …. Ваш хваленый NetworkManager отдыхает перед статическими IP адресами например. Там работает только консоль.
12.02.2008 в 10:49
Кстати, DevTi, а как вы собираетесь установить “удобную тулзу для настройки впн” network-manager-pptp, если пакет придется скачивать из интернет, а для того, чтобы выйти в интернет, нужно настроить соединение VPN? А вот пакет pptp-linux находится на установочном диске Ubuntu
20.02.2008 в 12:15
Интересует, как тут выглядят параметры анологичные в MS Windows, такие как:
1. шифрование данных (мне необходимо указывать - не разрешено)
2. протокол проверки пароля - (мне необходимо указывать - CHAP)
20.02.2008 в 18:34
Ну всё правильно. Только один момент - можно и нужно получать адреса DNS и табличку роутинга через dhcp сервер првайдера.
20.02.2008 в 18:39
Насчёт автозапуска - тут я так реализовал:
/etc/init.d/pppd:
#! /bin/sh
case $1 in
start)
[ -x /usr/sbin/pppd ] && /usr/sbin/pppd call PROVIDER_NAME && \
echo -n ‘ pppd’
;;
stop)
killall -HUP pppd && echo -n ‘ pppd’
;;
*)
echo “Usage: `basename $0` {start|stop}” >&2
exit 64
;;
esac
exit 0
20.02.2008 в 18:40
Не забудьте потом
# chmod a+x /etc/init.d/pppd
20.02.2008 в 19:18
Andrey_G, опция “noccp” выключает сжатие данных. Должна присутствовать в файле /etc/ppp/peers/PROVIDER_NAME. Насчет протокола проверки пароля - приведенный пример как раз использует CHAP.
20.02.2008 в 19:20
Tihon, спасибо за пример автозапуска. Мой способ другой. Опишу его скоро в следующем посте.
29.03.2008 в 22:32
Я пользуюсь “Домашними сетями”. В моей сетке нету модемов провайдеров, они находятся в других сетях. К этим сетям у меня доступ через route. В этом примере подключения это учитывается или нет?
03.05.2008 в 07:33
Во первых в пптп есть замечательная штука - выполнение скриптов перед и после запуска/отключения впн-а. Туда можно запихать и простенькое “echo DNS-1 > /etc/resolv.conf” Туда же можно запихнуть смену маршрутов для локальной сети одновременно с ВПН-ом
Во вторых не стоит забывать про кучу переменных которые стоит просто уточнить у провайдера. К примеру если шифрование пароля CHAP и PAP и все, то надо добавить в PROVIDE-NAME
require-chap
require-pap
refuse-eap
refuse-mschap
nobsdcomp
nodeflate
Так же кому то может понадобиться “require-mppe-128″
В соответствии с требованиями провайдера и выставляем указанные выше значения(refuse- или require-).
31.08.2008 в 13:49
Сам ставил по этой инструкиции http://dualx.net/nastroika-interneta-v-linux-ubuntu.html работает на ура!))
31.10.2008 в 12:25
>>Andrey_G
нет не учитывается, вам просто нужно роутинг настроить
21.11.2008 в 17:10
Я еще новичек в линуксе. интернет в винде потключается через pppoe с проверкой подлиности ms chap v2,как подключиться в ubuntu ,заранее спасибо,
23.02.2009 в 12:04
здравствуйте, всё сделал по инструкции как надо, работает на ура, но есть небольшая проблемка, сеть не работает а вместе с ней и внутрисетевые ресурсы, не мог бы кто-нибудь подсказхать как это исправить , спасибо заранее.
14.05.2009 в 10:13
чота с афтозапуском я не просёк фишку, объясните чо к чему))
я юзаю network-manager, пытаюсь прописать а автозапуске автоматическое подключение впн, не получается, кто знает как отпишите плиз)
14.05.2009 в 16:17
Network Manager подключается к VPN по-своему, минуя файлы о которым написано в посте. Сколько мне известно, пока нет способа автоматически поднимать VPN в Network Manager при старте системы.
13.07.2009 в 20:10
автозапуск решил следующим образом.
/etc/network/interfaces, после вручную прописанной конфигурашки eth0 написал:
auto ppp0
iface ppp0 inet ppp
provider %provider_name%
pre-up link ip set eth0 up
up route del default
up route add default dev ppp0
кстати, тем же решил проблему доступа к локальным ресурсам при поднятом впн, предварительно прописав при настройке eth0
up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.xxx.xxx.1 dev eth0
адресное пространство серверов с локальными ресурсами, маски сетей и шлюзы у вас, конечно же будут другими
20.12.2009 в 23:02
У меня не создается подключение в network-manager-e. Когда нажимаю кнопку “create” в окне “choose vpn connection type” ничего не происходит. Кто-то знает причину?
22.12.2009 в 17:38
dm, может быть какой-то баг в Network Manager. Попробуйте поищите на англоязычных форумах Ubuntu, наверняка кто-то уже сталкивался с подобным поведением NM.
06.01.2010 в 20:27
dm, скорее всего не установлен network-manager-pptp
07.01.2010 в 17:02
Посоветуйте, что делать. IP динамический, присваивается по dhcp, в настройках писал ..”iface eth0 inet dhcp”… Настраивал по найденным инструкциям, по этой в том числе. Однако после ввода “pon vpn” вообще ничего не происходит.
08.01.2010 в 11:39
eophonik, следует запускать как “sudo pon vpn”. Если вы так и делаете, попробуйте включить опцию “debug” в файле подключения /etc/ppp/peers/vpn.
14.01.2010 в 17:38
Большое спасибо за статью.
Не сказано в этой статье о том, как переподключить соединение к сети Интернет. Как один из возможных вариантов (запуск скрипта) я предлагаю в статье http://itmove.ru/2010/01/переподключение-к-сети-интернет-в-debian-и-д/
Желаю успехов!
16.03.2010 в 11:22
Файл /etc/ppp/chap-secrets недоступен, также как и папка /etc/ppp/peers. Что делать?
16.03.2010 в 15:01
ShOORek, файл /etc/ppp/chap-secrets и папка /etc/ppp/peers доступны только для пользователя root.
08.05.2010 в 19:12
Огромное спасибо автору! У меня стразу всё поднялось и заработало! Ubuntu 10.04 LTS. Вот с автозагрузкой думаю помучатся, хотя rc.local не вариант???
29.05.2010 в 22:25
в 10,04 vpn на раз подымается нэтворк мэнэджером, который, кстати, уже установлен в полном комплекте, его не надо качать ))
На счёт автозапуска по-моему самый кошерный вариант предложил Tihon.
Только я бы просто, как уже заметил Application в /etc/rc.local добавил одну строчку:
pon
предварительно навояв всю настройку в файле /etc/ppp/peers/provider
Ещё не понял, зачем каждый раз прои загрузке мозги полоскать resolv.conf? Можно ведь по порядку вписать туда все нужные DNS-серверы, делов-то….
19.06.2010 в 16:52
2 FAEN:
Как быть если комп работает в локальной сети, где есть DNS-серверы, которые прописаны в resolv.conf или провайдеров несколько?
А вот мозги полоскать действительно незачем, можно использовать опцию usepeerdns в файле /etc/ppp/peers/PROVIDER_NAME, в этом случае в resolv.conf записываются адреса DNS-серверов провайдера при подключении, и восстанавливаюся страрые адреса при отключении.
11.07.2010 в 20:38
Пользуюсь Ubuntu Начиная с 8-ой.Никогда! не набрал ни одного символа в терминале. и этим горжусь.Все всегда и vpn и любые 3G модемы поддключплись и работали с помощью графической оболочки.
Собственно для этого и создавалась Ubuntu.
А крутым Линуксоидам вместо советов начинающим в виде крутых сценариев сам даю совет. ставлю задачу. прошу убедительно!
Займитесь лучше полным подробным переводом встроенной справочной системы!
С уважением старый(55 лет) Uбунтсоид.