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 на следующем примере.

Вводные данные:

  1. Корпоративная сеть 192.168.0.0/255.255.255.0
  2. Шлюз - Linux-сервер, адрес шлюза во внутренней сети - 192.168.0.1
  3. Внешнее подключение - PPP (3G) либо PPPOE (ADSL)(настройка внешнего подключения не входит в эту статью).
  4. Настройка pptpd вручную

Установка пакетов

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

Для Fedora, StartCom, ASP Linux, CentOS.

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
replacedefaultroute 

persist - написать этот параметр для того чтобы 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

Теги: , ,

Дата: 3 ноября 2010

Автор: ignusius

Комментарии: 0

Оставить комментарий

*

Комментарий:

Ваш e-mail не будет опубликован.
Обязательные поля помечены *

Разрешенные HTML теги:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>