
PPTP
VPN (Virtual Private Network - Виртуальная Частная сеть) используется для организации доступа извне к компьютерам, находящимся внутри корпоративной сети за маршрутизатором. При подключении к VPN пользователю выдаётся IP-адрес из внутренней сети и пользователь получает доступ ко всем ресурсам внутренней сети, как будто он находится в офисе. Для защиты информации весь трафик между сервером VPN и клиентом, как правило, шифруется.
Наиболее простым с точки зрения настройки и сервера, и клиента является VPN типа PPTP (Point-to-Point Tunneling Protocol), разработанный в Microsoft для Windows 95 и впоследствии ставший стандартом (RFC 2637). PPTP использует туннель GRE для передачи пакетов PPP. Основным преимуществом PPTP является простота подключения клиентов - соответствующее программное обеспечение встроено во все системы Microsoft Windows начиная с Windows 95 OSR2, возможно и подключение Linux/UNIX клиентов. Основной недостаток - недостаточная защита (применяемое шифрование MPPE 128bit считается достаточно слабым), поэтому там, где необходима надежная защита данных.
Рассмотрим настройку сервер PPTP на следующем примере.
Вводные данные:
- Корпоративная сеть 192.168.0.0/255.255.255.0
- Шлюз - Linux-сервер, адрес шлюза во внутренней сети - 192.168.0.1
- Внешнее подключение - PPP (3G) либо PPPOE (ADSL)(настройка внешнего подключения не входит в эту статью).
- Настройка pptpd вручную
Установка пакетов
Для установки сервера PPTP необходимо выполнить команду:
yum install pptpd
Для Debian, Ubuntu Server, и др..
apt-get install pptpd
Пакет ppp, если он не установлен, будет автоматически установлен по зависимостям.
Настройка pptpd
После установки необходимо включить автозапуск службы pptpd:
chkconfig pptpd onНастройка pptpd осуществляется путём редактирования трёх файлов: /etc/pptpd.conf (настройка демона), /etc/ppp/options.pptpd (параметры pppd) и /etc/ppp/chap-secrets (имена пользователей и пароли). Ниже приведены примеры файлов с необходимыми комментариями.
/etc/pptpd.conf
# Файл, содержащий параметры pppd option /etc/ppp/options.pptpd # Локальный IP-адрес сервера PPTP localip 192.168.0.1 # Пул адресов, которые сервер выдаёт клиентам # Эти адреса не должны использоваться в локальной сети remoteip 192.168.0.10-20/etc/ppp/options.pptpd
# Имя локальной системы для аутентификации # Должно соответствовать второму полю записей в файле /etc/ppp/chap-secrets name pptpd # Отклонять небезопасные протоколы проверки пароля refuse-pap refuse-chap refuse-mschap # Требовать защищенный протокол проверки пароля require-mschap-v2 # Требовать шифрование MPPE 128bit require-mppe-128 # Передавать клиенту внутренний DNS-сервер, если необходимо ms-dns 192.168.0.2 # Сделать клиента доступным для других компьютеров в локальной сети proxyarp # Создавать файл блокировки псевдотерминала в стиле UUCP lock # Отключить BSD-компрессию: nobsdcomp # Отключить компрессию Van Jacobson novj novjccomp # Отключить вывод ошибок на stderror nologfd/etc/ppp/chap-secrets
# Secrets for authentication using PAP # client server secret IP addresses # Это пароль для исходящего соединения с сервером 3G оператора: "80921234567@people.net.ua" "PeopleNet" "3GPasswd" #Этому клиенту всегда выдаётся фиксированный IP: "user1" "pptpd" "passord1" 192.168.0.30 #Этому клиенту выдаётся любой свободный IP из разрешенных параметром remoteip в /etc/pptpd.conf "user2" "pptpd" "passord2" *Настройка VPN (pptp) клиента с использование автоматических скриптов
Настройка при помощи pptp-command
- Устанавливаем pptp
- Устанавливаем pptp-command
- Проверяем содержание файла /etc/ppp/options
Проверяем чтобы в /etc/ppp/options были такие строчки
lock noauth defaultroute usepeerdnsПроверяем содержание файла /etc/ppp/options.pptp
lock noauth nobsdcomp nodeflate
Запускаем pptp-command setup и настраиваем туннель:
$ pptp-command setup ls: /etc/pptp.d: No such file or directory 1.) Manage CHAP secrets 2.) Manage PAP secrets 3.) List PPTP Tunnels 4.) Add a NEW PPTP Tunnel 5.) Delete a PPTP Tunnel 6.) Configure resolv.conf 7.) Select a default tunnel 8.) Quit ?: 1 1.) List CHAP secrets 2.) Add a New CHAP secret 3.) Delete a CHAP secret 4.) Quit ?: 2 Add a NEW CHAP secret. NOTE: Any backslashes () must be doubled (). Local Name: This is the 'local' identifier for CHAP authentication. NOTE: If the server is a Windows NT machine, the local name should be your Windows NT username including domain. For example: domainusername Local Name: <ваш логин> Remote Name: This is the 'remote' identifier for CHAP authentication. In most cases, this can be left as the default. It must be set if you have multiple CHAP secrets with the same local name and different passwords. Just press ENTER to keep the default. Remote Name [PPTP]:<enter> Password: This is the password or CHAP secret for the account specified. The password will not be echoed. Password:<ваш пароль> Adding secret <ваш логин> PPTP ***** 1.) List CHAP secrets 2.) Add a New CHAP secret 3.) Delete a CHAP secret 4.) Quit ?: 4 1.) Manage CHAP secrets 2.) Manage PAP secrets 3.) List PPTP Tunnels 4.) Add a NEW PPTP Tunnel 5.) Delete a PPTP Tunnel 6.) Configure resolv.conf 7.) Select a default tunnel 8.) Quit ?: 4 Add a NEW PPTP Tunnel. 1.) Other Which configuration would you like to use?: 1 Tunnel Name: <имя туннеля> #Произвольное Server IP: 10.10.10.1 What route(s) would you like to add when the tunnel comes up? This is usually a route to your internal network behind the PPTP server. You can use TUNNEL_DEV and DEF_GW as in /etc/pptp.d/ config file TUNNEL_DEV is replaced by the device of the tunnel interface. EF_GW is replaced by the existing default gateway. The syntax to use is the same as the route( command. Enter a blank line to stop. route:del default route:add -host 10.10.10.1 gw <Ваш шлюз> route:add default dev ppp0 Local Name and Remote Name should match a configured CHAP or PAP secret. Local Name is probably your NT domainusername. NOTE: Any backslashes () must be doubled (). Local Name: <ваш логин> Remote Name [PPTP]:<enter> Added tunnel <имя туннеля> 1.) Manage CHAP secrets 2.) Manage PAP secrets 3.) List PPTP Tunnels 4.) Add a NEW PPTP Tunnel 5.) Delete a PPTP Tunnel 6.) Configure resolv.conf 7.) Select a default tunnel 8.) Quit ?: 8Запуск vpn туннеля:
pptp-command start <Выбираем тунель>Настройка через pptpsetup на примере UBUNTU (рекомендуется)
Установка нужных пакетов:
sudo aptitude install pptp-linuxСоздаем туннель:
pptpsetup --create <Название Тунеля> --server <Сервер> --username <логин> --password <Пароль>--start route del default route add default dev ppp0Теперь можете включать и выключать впн подключение с помощью следующих команд: Включение
sudo pon <Название Тунеля>Выключение
sudo poff <Название Тунеля>Для автоматического поднятия маршрута, восстановления при обрыве и выставления максимального количества ошибок нужно в конец файла /etc/ppp/peers/<Название Тунеля> добавить:
persist maxfail 0 holdoff 5 #lcp-echo-interval 10 #lcp-echo-failure 10 defaultroute replacedefaultroutepersist - написать этот параметр для того чтобы pppd автоматически переподнимал VPN.
maxfail n - сколько раз pppd будет пытаться переподнять VPN. Чтобы pppd пытался до упора n должно быть равно 0
holdoff n - время в секундах между попытками переподнятия упавшего VPN.
lcp-echo-interval n - как pppd может узнать что канал отвалился? Для этого предназначен протокол LCP. Этой командой Вы указываете pppd через какой интервал времени в секундах посылать запросы типа ping чтобы проверить жив канал или нет. По умолчанию ping не посылается и pppd не может определить что канал упал.(я не стал указывать)
lcp-echo-failure n - этот параметр говорит, что если n пингов не прошло, то это означает канал отвалился и его надо переподнимать(я не стал указывать).
Для автоматического подключения VPN при загрузке системы редактируем файл /etc/network/interfaces и вставляем в его конец следующие строки:post-up pon <Название Тунеля>где <Название Тунеля> - название vpn-соединения которое мы создали выше.
Настройка Windows-клиента
При настройке Windows-клиента необходимо выполнить следующие действия:
- Открыть Панель Управления - Сеть
- Выбрать "Создание нового соединения - Подключить к сети на рабочем месте - Подключение к виртуальной частной сети"
- Ввести название организации (имя соединения), затем имя или IP-адрес сервера PPTP
- При установке соединения использовать имя пользователя и пароль, введенный в файле /etc/ppp/chap-secrets на сервере.
Ссылки
https://wiki.ubuntu.com/VPN
http://www1.opennet.ru/base/net/ubuntu_route.txt.html
http://leolik.blogspot.com/2008/05/vpn-ubuntu.html
Часть материала взята от сюда
Настройка VPN (pptp) подключения в Ubuntu Linux