Глава 26. Виртуальные частные сети, VPN
В этой главе:
1. VPN-cервер FreeS/WAN
2. Ограничения и допущения
3. Пакеты
4. Компиляция, оптимизация и инсталляция FreeS/WAN
5. Конфигурирование FreeS/WAN
6. Тестирование FreeS/WAN
7. Подключение к MS WINDOWS NT VPN-серверу c помощью PPTP-клиента
8. Ограничения и допущения
9. Пакеты
10. Инсталляция MPPE и PPTP-клиента
11. Конфигурирование PPTP-клиента
12. Тестирование подключения к MS WINDOWS NT VPN-серверу c помощью PPTP-клиента.
Виртуальные частные сети (Virtual Private Network) - по своей сути, довольно широкий термин, не определяющий определенного типа сетей или протоколов, но, в целом, предполагающий использование "туннельной" пересылки конфиденциальных данных по сетям общего пользования. В настоящей главе рассмотрены два метода формирования туннелей:
* по протоколу IPSec (Internet Protocol Security);
* и достаточно уязвимый и устаревший протокол PPTP (Point-To-Point Tunneling Protocol), по непонятным для авторов причинам широко используемый провайдерами для предоставления доступа в Интернет через так называемые "широкополосные сети".
Протокол IPSec, реализованный в рамках проекта FreeS/WAN, обычно используют для объединения фрагментов корпоративных сетей с помощью сетей общего пользования. При этом данные, передаваемые из одной сети в другую, инкапсулируются в пакеты другого типа, шифруются исходящим шлюзом при передаче через сети общего пользования и преобразуются в исходный вид принимающим шлюзом. В настоящее время нет достоверной информации о безопасности этого протокола.
Уязвимость протокола PPTP в реализации Microsoft, используемого провайдерами для передачи по сетям общего пользования информации от шлюза в Интернет к своим клиентам, описана в работах Брюса Шнейера (Bruce Shneier) и Петера Муджа (Peter Mudge).
Тем не менее, учитывая распространенность варианта, когда в качестве шлюза в Интернет используется VPN-сервер на базе MS Windows NT, и единственной возможностью подключить Linux-систему является использование PPTP, в этой главе так же рассматривается установка и конфигурирование пакетов Microsoft Point-To-Point Encryption и PPTP Client, реализующих такое соединение.
Тем не менее, учитывая распространенность варианта, когда в качестве шлюза в Интернет используется VPN-сервер на базе MS Windows NT, и единственной возможностью подключить Linux-систему является использование PPTP, в этой главе так же рассматривается установка и конфигурирование пакетов Microsoft Point-To-Point Encryption и PPTP Client, реализующих такое соединение.
ЗАМЕЧАНИЕ В случае, если ваши учетные данные при подключении по протоколу PPTP к MS Windows
NT VPN-серверу провайдера будут использованы злоумышленниками, а счет за трафик будет выставлен вам, всегда можно
грамотно предъявить претензии своему провайдеру, сославшись на широко известную уязвимость этого протокола в реализации
Microsoft.
VPN-cервер FreeS/WAN
[Назад]
[В этой главе]
[Далее]
FreeS/WAN - очень специфичный программный продукт, исходные коды которого состоят из двух частей: патча для исходных кодов ядра и файлов, устанавливаемых на системе обычным образом. Обновления кода ядра выходят гораздо чаще, чем обновления кодов FreeS/WAN, поэтому не все версии ядер и FreeS/WAN совместимы. Сведения о совместимости различных версий ядра и FreeS/WAN могут быть получены с http://www.freeswan.ca/download.php#contact , кроме того, авторы протестировали работоспособность FreeS/WAN версии 1.99 с версиями ядер 2.4.18 и 2.4.19, исходные коды которых были модифицированы патчем Grsecurity.
FreeS/WAN использует три протокола:
* протокол аутентификации (Authentication Header, AH);
* протокол шифрования (Encapsulation Security Payload, ESP);
* протокол обмена ключами (Internet Key Exchange, IKE).
Функции по поддержанию защищенного канала распределяются между этими протоколами следующим образом:
* протокол AH используется для контроля целостности и проверки подлинности данных;
* протокол ESP предназначен для шифрования данных, но он может также контролировать аутентификацию и целостность данных;
* протокол IKE предназначен для автоматического предоставления конечным точкам канала секретных ключей, необходимых для работы протоколов аутентификации и шифрования данных.
Ядро IPSec - KLIPS (Kernel IPSec) реализует протоколы AH и ESP и взаимодействие пакетов с ядром. Демон pluto реализует через протокол IKE взаимодействие с другими системами.
Схема типового варианта построения виртуальной частной сети, объединяющей локальные сети двух офисов с использованием сетей общего пользования, представлена на рисунке.
Ограничения и допущения
[Назад]
[В этой главе]
[Далее]
Исходные коды находятся в каталоге /usr/src.
Все операции выполняются пользователем с учетной записью root.
Используется дистрибутив ASPLinux 7.3 (Vostok).
Используется ядро версии 2.4.18 или 2.4.19, собранное из исходных кодов в соответствии с рекомендациями главы 6. К исходным кодам ядер возможно применение патча Grsecurity.
Требуется перекомпиляция ядра.
Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы это не проверяли.
Пакеты
[Назад]
[В этой главе]
[Далее]
Последующие рекомендации основаны на информации, полученной с домашней страницы проекта FreeS/WAN по состоянию на 15.03.2003. Регулярно посещайте домашнюю страницу проекта http://www.freeswan.org и отслеживайте обновления. Исходные коды FreeS/WAN содержатся в архиве freeswan-version.tar.gz (последняя доступная на момент написания главы стабильная версия freeswan-1.99.tar.gz).
Для нормальной инсталляции и работы программного обеспечения необходимо, чтобы в системе были дополнительно установлены пакеты gmp-4.0.1-3.i386.rpm и gmp-devel-4.0.1-3.i386.rpm, входящие в дистрибутив ASPLinux 7.3 (Vostok).
Компиляция, оптимизация и инсталляция FreeS/WAN
[Назад]
[В этой главе]
[Далее]
Для компиляции, оптимизации и инсталляции FreeS/WAN на каждом из шлюзов выполните следующие операции.
Шаг 1
Распакуйте архив с пакетом freeswan-1.99.tar.gz в каталоге /usr/src:
[root@yubileyny tmp]# tar -xzpf freeswan-1.99.tar.gz
Шаг 2
Для размещения файлов FreeS/WAN в соответствующих каталогах и повышения производительности VPN в файле /usr/src/freeswan-1.99/Makefile.inc измените строку:
INC_USRLOCAL=/usr/local
на:
INC_USRLOCAL=/usr/
Cтроку:
INC_MANDIR=man
на:
INC_MANDIR=share/man
Cтроку:
USERCOMPILE=-g -O3
на:
USERCOMPILE=-g -O2
Cтроку:
KLIPSCOMPILE=-O3
на:
KLIPSCOMPILE=-O2
Шаг 3
Сконфигурируйте исходные коды ядра с поддержкой FreeS/WAN:
[root@yubileyny freeswan-1.99]# make ogo
После запуска программы вам будет предложено ответить на вопросы связанные с конфигурацией ядра.
Для включения поддержки FreeS/WAN в коды ядра необходимо правильно ответить на следующие вопросы:
Kernel/User netlink socket (CONFIG_NETLINK) [Y/n/?]y
Netlink device emulation (CONFIG_NETLINK_DEV) [Y/n/?] (NEW)y
...
IP Security Protocol (FreeS/WAN IPSEC) (CONFIG_IPSEC) [Y/n/?] Enter
*
IPSEC options (FreeS/WAN
*
IPSEC: IP-in-IP encapsulation (tunnel mode) (CONFIG_IPSEC_IPIP) [Y/n/?]Enter
IPSEC: Authentication Header (CONFIG_IPSEC_AH) [Y/n/?]Enter
HMAC-MD5 authentication algorithm (CONFIG_IPSEC_AUTH_HMAC_MD5) [Y/n/?]Enter
HMAC-SHA1 authentication algorithm (CONFIG_IPSEC_AUTH_HMAC_SHA1) [Y/n/?]Enter
IPSEC: Encapsulating Security Payload (CONFIG_IPSEC_ESP) [Y/n/?] Enter
3DES encryption algorithm (CONFIG_IPSEC_ENC_3DES) [Y/n/?] Enter
IPSEC: IP Compression (CONFIG_IPSEC_IPCOMP) [Y/n/?] Enter
IPSEC Debugging Option (CONFIG IPSEC_DEBUG) [Y/n/?] Enter
ЗАМЕЧАНИЕ Все настройки, сделанные для ядра при первичной его настройке сохраняются и будут предложены вам в качестве значений опций, предлагаемых по умолчанию.
Шаг 4
Проинсталлируйте FreeS/WAN, создайте и сохраните список проинсталлированных файлов:
[root@yubileyny src]# cd /usr/src/freeswan-1.99/
[root@yubileyny freeswan-1.99]# find /* > /root/freeswan1
[root@yubileyny freeswan-1.99]# make install
[root@yubileyny freeswan-1.99]# find /* > /root/freeswan2
[root@yubileyny freeswan-1.99]# diff /root/freeswan1 /root/freeswan2 > /root/freeswan.installed
[root@yubileyny freeswan-1.99]# mv /root/ freeswan.installed /very_reliable_place/freeswan.installed.YYYYMMDD
Шаг 5
Проинсталлируйте в соответствии с рекомендациями главы 6 новое ядро, конфигурация которого была осуществлена на 2 шаге.
Шаг 6
Удалите архив с исходными кодами и каталог freeswan-1.99:
[root@yubileyny /]# cd ..
[root@yubileyny src]# rm -rf
[root@yubileyny src]# rm -f freeswan-1.99.tar.gz
Конфигурирование FreeS/WAN
[Назад]
[В этой главе]
[Далее]
Основными конфигурационными файлами FreeS/WAN являются файлы:
* /etc/ipsec.conf;
* /etc/ ipsec.secrets.
Для конфигурирования шлюзов виртуальной частной сети, организуемой с помощью FreeS/WAN, на обоих шлюзах необходимо выполнить следующие настройки.
Шаг 1
Отредактируйте в соответствии с вашими потребностями и ниже приведенными рекомендациями файл /etc/ipsec.conf. В рассматриваемом примере:
# /etc/ipsec.conf - конфигурационный файл FreeS/WAN
# Примеры конфигурационных файлов находятся в каталоге
# doc/examples исходных кодов.
config setup
# Сетевой интерфейс, используемый IPSec
interfaces="IPSEC0=eth0"
# Запрет на выдачу отладочных сообщений
# all - включение выдачи отладочных сообщений
klipsdebug=none
plutodebug=none
# Автоматическая установка соединений и аутентификация
# при запуске IPSec
plutoload=%search
plutostart=%search
# Параметры соединения между локальными сетями
# Название соединения (произвольная строка)
conn Moscow-Yubileyny
# Исходные данные для шлюза в Москвe
# IP адрес
left=212.45.28.123
# Описание локальной сети
leftsubnet=192.168.1.0/24
# IP ближайшего к шлюзу в Москве роутера
# (может быть определен с помощью traceroute)
leftnexthop=62.117.82.145
# Исходные данные для шлюза в Юбилейном
# IP адрес
right=212.111.80.21
# Описание локальной сети
rightsubnet=192.168.1.0/24
# IP ближайшего к шлюзу в Юбилейном роутера
rightnexthop=212.111.78.1
# Количество попыток проверки ключей
# 0 - до достижения положительного результата
keyingtries=0
# Тип аутентификации(AH или ESP)
auth=ah
# Устанавливать соединение при запуске IPSec
auto=start
ЗАМЕЧАНИЕ Файлы на обоих шлюзах должны быть идентичны с точностью до значения параметра interfaces, которое должно соответствовать имени внешнего интерфейса шлюза.
В рассматриваемом примере файл /etc/ipsec.conf состоит из двух разделов.
Первый раздел - config setup - содержит общие опции конфигурации, используемые всеми соединениями.
Опция interfaces="IPSEC0=eth0" определяет сетевое устройство для интерфейса IPSec. В данном случае это первая сетевая карта. При использовании значения по умолчанию, т.е. interfaces=%defaultroute, в качестве сетевого интерфейса будет выбрано устройство, используемое для соединения с Интернет или локальной сетью.
Опция plutoload=%search определяет соединения, автоматически загружаемые в память при старте демона pluto. Значение опции по умолчанию none запрещает загрузку всех соединений, %search - загружает все соединения с установленным значением опции auto=start или auto=add. В качестве значения опции может использоваться имя соединения, например, plutoload=" Moscow-Yubileyny" или список имен соединений, разделенных пробелами.
Опция plutostart=%search определяет соединения, автоматически устанавливаемые при старте демона pluto. Значение опции по умолчанию none запрещает установку всех соединений, %search - устанавливает все соединения с установленным значением опции auto=start. В качестве значения опции может использоваться имя соединения, например, plutoload="Moscow-Yubileyny" или список имен соединений, разделенных пробелами.
Во втором разделе - conn Moscow-Yubileyny - устанавливаются опции, имеющие отношение только к определенному соединению, в нашем примере, соединению с именем Moscow-Yubileyny.
Опции left=212.45.28.123 и right=212.111.80.21 определяют, соответственно, IP-адрес шлюза в г. Москве и г. Юбилейном.
Опция leftsubnet=192.168.1.0/24 определяет параметры локальных сетей в г. Москве и г. Юбилейном.
Опция leftnexthop=62.117.82.145 и rightnexthop=212.111.78.1, соответственно, IP-адреса ближайших к шлюзам в г. Москве и в г. Юбилейном роутеров.
Опция keyingtries=0 определяет максимальное количество попыток обмена ключами при установке соединения. Значение опции равное 0, устанавливаемое по умолчанию, предполагает неограниченное (до получения положительного результата) количество попыток.
Опция auth=ah определяет протокол аутентификации данных (AH или ESP).
Опция auto=start определяет операции, которые должны быть выполнены при запуске IPSec. При установке значения start - соединение должно быть установлено автоматически, add параметры соединения должны быть загружены в память.
Шаг 2
FreeS/WAN поддерживает два формата ключей, используемых демоном pluto для проверки подлинности соединений длиной до 256 бит. Каждый из этих форматов требует определенных операций по созданию ключей и изменению конфигурационного файлов FreeS/WAN.
В случае использования открытых зашифрованных ключей, для создания нового ключа на одном из шлюзов выполните команду:
[root@yubileyny /]# ipsec ranbits 256 > /root/key
Файл /root/key.txt содержит новый ключ:
[root@yubileyny /]# cat /root/key
0xaf4a2a4c_f58a942f_5a36d31e_23885ac4_490a58e2_b6ea25a3_0ee661d4_daf15661
Этим ключом необходимо заменить ключи, имеющиеся в файлах /etc/ipsec.secrets. Для этого в файлах /etc/ipsec.secrets на обоих шлюзах замените строку вида (у вас она может выглядеть по-другому):
10.0.0.1 11.0.0.1 "0x9748cc31_2e99194f_d230589b_cd846b57_dc070b01_74b66f34_19c40ala_804906ed"
на:
212.45.28.123 212.111.80.21 "0xaf4a2a4c_f58a942f_5a36d31e_23885ac4_490a58e2_b6ea25a3_0ee661d4_daf15661"
Проверьте и установите права доступа для файлов /etc/ipsec.conf и /etc/ipsec.secrets на обоих шлюзах:
[root@yubileyny /]# chmod 600 /etc/ipsec.secrets
[root@yubileyny /]# chmod 644 /etc/ipsec.conf
В случае использования RSA-ключей, необходимо выполнить следующие операции для файлов ipsec.conf и ipsec.secrets, как описано ниже:
Создайте ключи RSA для каждого шлюза.
На шлюзе 212.45.28.123 (в г. Москве):
[root@moskow /]# cd /
[root@moskow /]# ipsec rsasigkey --verbose 1024 > /root/moscow-key
getting 64 random bytes from /dev/random...
looking for a prime starting there (can take a while)...
found it after 1233 tries.
getting 64 random bytes from /dev/random...
looking for a prime starting there (can take a while)...
found it after 9 tries...
computing modulus...
computing lcm(p-1, q-1)...
computing d...
computing exp1, exp1, coeff...
output...
На шлюзе 212.111.80.21 (в г. Юбилейном):
[root@yubileyny /]# cd /
[root@yubileyny /]# ipsec rsasigkey --verbose 1024 > /root/yubileyny-key
getting 64 random bytes from /dev/random...
looking for a prime starting there (can take a while)...
found it after 13 tries.
getting 64 random bytes from /dev/random...
looking for a prime starting there (can take a while)...
found it after 233 tries...
computing modulus...
computing lcm(p-1, q-1)...
computing d...
computing exp1, exp1, coeff...
output...
Измените файлы /etc/ipsec.conf на обоих шлюзах для обеспечения возможности использования RSA-ключей:
# /etc/ipsec.conf - конфигурационный файл FreeS/WAN
# Примеры конфигурационных файлов находятся в каталоге
# doc/examples исходных кодов.
config setup
# Сетевой интерфейс, используемый IPSec
interfaces="IPSEC0=eth0"
# Запрет на выдачу отладочных сообщений
# all - включение выдачи отладочных сообщений
klipsdebug=none
plutodebug=none
# Автоматическая установка соединений и аутентификация
# при запуске IPSec
plutoload=%search
plutostart=%search
# Параметры соединения между локальными сетями
# Название соединения (произвольная строка)
conn Moscow-Yubileyny
# Исходные данные для шлюза в Москвe
# IP адрес
left=212.45.28.123
# Описание локальной сети
leftsubnet=192.168.1.0/24
# IP ближайшего к шлюзу в Москве роутера
# (может быть определен с помощью traceroute)
leftnexthop=62.117.82.145
# Исходные данные для шлюза в Юбилейном
# IP адрес
right=212.111.80.21
# Описание локальной сети
rightsubnet=192.168.1.0/24
# IP ближайшего к шлюзу в Юбилейном роутера
rightnexthop=212.111.78.1
# Количество попыток проверки ключей
# 0 - до достижения положительного результата
keyingtries=0
# Тип аутентификации(AH или ESP)
auth=ah
#Опции устанавливаемые для использования RSA-ключей
authby=rsasig
leftrsasigkey=
rightrsasigkey=
# Устанавливать соединение при запуске IPSec
auto=start
Опция authby=rsasig используется для включения поддержки проверки подлинности соединения с использованием RSA-ключей.
Опции leftrsasigkey= и rightrsasigkey= используются для ввода открытых ключей для 212.45.28.123 и 212.111.80.21, соответственно. Открытые ключи содержатся в файле /root/moscow-key:
# RSA 1024 bits moscow.sipria.ru Mon Mar 10 17:41:55 2003
# for signatures only, UNSAFE FOR ENCRYPTION
#pubkey=0sAQN/KebjvkF/xc7IdhwJA/46FhuHvn1bU7UGbCwohsCttWoidHbO8pPDTmR8fwRNKqcHTSkp
5hiGr6CFXHVZ/5bmuqYb9Xv58/dUCqf6sHUbyTSseRjTv4+RcI4YYaxcrf51ZG5DaZJa8RKDxsIfLF2jcG
9IUzDOPSfYXpUo0gsQJQ==
#IN KEY 0x4200 4 1 AQN/KebjvkF/xc7IdhwJA/46FhuHvn1bU7UGbCwohsCttWoidHbO8pPDTmR8fwR
NKqcHTSkp5hiGr6CFXHVZ/5bmuqYb9Xv58/dUCqf6sHUbyTSseRjTv4+RcI4YYaxcrf51ZG5DaZJa8RKDxsIfL
F2jcG9IUzDOPSfYXpUo0gsQJQ==
# (0x4200 = auth-only host-level, 4 = IPSec, 1 = RSA)
Modulus: 0x7f29e6e3be417fc5cec8761c0903fe3a161b87be7d5b53b5066c2c2886c0adb56a22747
6cef293c34e647c7f044d2aa7074d2929e61886afa0855c7559ff96e6baa61bf57bf9f3f7540aa7fab0751
bc934ac7918d3bf8f91708e1861ac5cadfe75646e4369925af11283c6c21f2c5da3706f485330ce3d27d8
5e9528d20b1025
PublicExponent: 0x03
# everything after this point is secret
PrivateExponent: 0x1531a67b4a603ff64d216904ac2b5509ae59ebf514e48df38112075c16757248
e705be13cd286df5e26614bfd60cdc712be23186fbaec11d456b8f68e45543d0e28f25720c0012db035b0b
89e8e174e1b73831fe4ee39184e6c193df049b9b7d98b1b069ab4dda5dd8cdfb8b78a4d89c912ddb363f11c
71d5f93a253472c5aab
Prime1: 0xcaa9ed7a02b9f0f252990304950d8b819c6e323e5062e9fa36d4843d8b07ca98d1c2fbcd0
ecc6104498fcfb864e0d1793f04cc6270e7ff940f85a1da43704801
Prime2: 0xa0a14dcf313f91e2ed4f5fbaa61ed2fd4ced1ae4aa073c79d1301cea05af3e740f774ffc5
6f2dbb9b42011c4e66e787eca5758ab457b92e38b63255ae390a825
Exponent1: 0x871bf3a6ac7bf5f6e1bb5758635e5d0112f4217ee041f15179e302d3b20531bb3681fd
335f32eb58310a8a7aedeb3650d4addd96f5efffb80a591691824adaab
Exponent2: 0x6b1633df762a6141f38a3fd1c4148ca8ddf367431c04d2fbe0cabdf1591f7ef80a4f8a
a839f73d267815612deef4505486e4e5c783a7b7425cecc391ed0b1ac3
Coefficient: 0xc29527035094a396b88b7bb586ee1add3086689060ff20e4f29277681309f2cd88726
3a7a72867eeb7757a5f53a3803e33b1bea237c92a6104abdf9fdfbff157
и в файле/root/yubileyny-key:
# RSA 1024 bits yubileyny.sipria.ru Mon Mar 10 17:43:07 2003
# for signatures only, UNSAFE FOR ENCRYPTION
#pubkey=0sAQPBVNukXMmREo55ChGtFKj+64+TW1P1lqSZtI8+WEvVAu2ua0Pdxz39Wpw4zxtO+RzRCUljwoe
EWu4KBXJa9uqtTtBtfN7inMz2KhF0wxugE3B+PC19WdcL3YU1P8pYAvtwjMk/GHi3STbza8+IxDRewV4klEDTHvNg
L3E/ReJcuw==
#IN KEY 0x4200 4 1 AQPBVNukXMmREo55ChGtFKj+64+TW1P1lqSZtI8+WEvVAu2ua0Pdxz39Wpw4zxtO+R
zRCUljwoeEWu4KBXJa9uqtTtBtfN7inMz2KhF0wxugE3B+PC19WdcL3YU1P8pYAvtwjMk/GHi3STbza8+IxDRewV4
klEDTHvNgL3E/ReJcuw==
# (0x4200 = auth-only host-level, 4 = IPSec, 1 = RSA)
Modulus: 0xc154dba45cc991128e790a11ad14a8feeb8f935b53f596a499b48f3e584bd502edae6b43dd
c73dfd5a9c38cf1b4ef91cd1094963c287845aee0a05725af6eaad4ed06d7cdee29cccf62a1174c31ba013707
e3c2d7d59d70bdd85353fca5802fb708cc93f1878b74936f36bcf88c4345ec15e249440d31ef3602f713f45e25cbb
PublicExponent: 0x03
# everything after this point is secret
PrivateExponent: 0x015f035f93b8ce3127235ad9ff697394df2c97bd786cdcc19f0c2c97231f672f39f
f828b439db4910525841c3bd0430f8f12460bf588750d3413bfc684ce68463425eb7a25e6a719f82328b396297
c421641b80d6d03e6fa02daaa948a614d712ffeae3f7782709de6ebb809492aa5c1d5d0eb545b1bf68fde29ffe
819543c29b
Prime1: 0xfd1877406f2f1d7e72fe0f87b5bca2efee80c6306865b48a5d9da420720d5ecf1f97bef0b39e
7cd0a57e0a51cac82
aaffb1e096d0b5e55734b9546cd37f13f59
Prime2: 0xc38cd1ce6f12ea73cd555351bfc7f6bf5ed77fac6290a74858e8541bded02eb55c957b013759
caf5942f8fa8f6274d82852643c44f07f5aa427afd12d79eee33
Exponent1: 0xa8bafa2af4ca13a9a1feb50523d3174a9f00842045992306e913c2c04c08e9df6a6529f5c
d145335c3a95c3687301c7552140648b23ee3a232638488cff62a3b
Exponent2: 0x825de1344a0c9c4d338e378bd52ff9d4e9e4ffc841b5c4dae5f03812948ac9ce3db8fcab7
a3bdca3b81fb51b4ec4de57036ed7d834aff91c2c51fe0c8fbf4977
Coefficient: 0x0b474a89523b664841d5332d57588a6e31a602d59570d615bcf3728f9c9e403fa19b4c8
e8d7a9c32c02c076d7f4fda73341978746da9e411766a622b4d586210
Вставьте открытые ключи в файлы /root/moscow-key и /root/yubileyny-key. В файле /etc/ipsec.conf замените строку:
leftrsasigkey=
на:
leftrsasigkey="0sAQN/KebjvkF/xc7IdhwJA/46FhuHvn1bU7UGbCwohsCttWoidHbO8pPDTmR8fwRNKqcHT
Skp5hiGr6CFXHVZ/5bmuqYb9Xv58/dUCqf6sHUbyTSseRjTv4+RcI4YYaxcrf51ZG5DaZJa8RKDxsIfLF2jcG9IUzD
OPSfYXpUo0gsQJQ=="
строку:
rightrsasigkey=
на:
rightrsasigkey="0sAQPBVNukXMmREo55ChGtFKj+64+TW1P1lqSZtI8+WEvVAu2ua0Pdxz39Wpw4zxtO+RzRC
UljwoeEWu4KBXJa9uqtTtBtfN7inMz2KhF0wxugE3B+PC19WdcL3YU1P8pYAvtwjMk/GHi3STbza8+IxDRewV4klEDTHvNgL3
E/ReJcuw=="
ЗАМЕЧАНИЕ Значения ключей должны быть заключены в кавычки.
Поместите закрытые ключи в файлы /etc/ipsec.secrets на обоих шлюзах.
На шлюзе 212.45.28.123 файл /etc/ipsec.secrets отредактируйте следующим образом:
212.45.28.123 212.111.80.21: RSA {
Modulus: 0x7f29e6e3be417fc5cec8761c0903fe3a161b87be7d5b53b5066c2c2886c0adb56a227476cef2
93c34e647c7f044d2aa7074d2929e61886afa0855c7559ff96e6baa61bf57bf9f3f7540aa7fab0751bc934ac791
8d3bf8f91708e1861ac5cadfe75646e4369925af11283c6c21f2c5da3706f485330ce3d27d85e9528d20b1025
PublicExponent: 0x03
# everything after this point is secret
PrivateExponent: 0x1531a67b4a603ff64d216904ac2b5509ae59ebf514e48df38112075c16757248e70
5be13cd286df5e26614bfd60cdc712be23186fbaec11d456b8f68e45543d0e28f25720c0012db035b0b89e8e17
4e1b73831fe4ee39184e6c193df049b9b7d98b1b069ab4dda5dd8cdfb8b78a4d89c912ddb363f11c71d5f93a25
3472c5aab
Prime1: 0xcaa9ed7a02b9f0f252990304950d8b819c6e323e5062e9fa36d4843d8b07ca98d1c2fbcd0ecc
6104498fcfb864e0d1793f04cc6270e7ff940f85a1da43704801
Prime2: 0xa0a14dcf313f91e2ed4f5fbaa61ed2fd4ced1ae4aa073c79d1301cea05af3e740f774ffc56f2
dbb9b42011c4e66e787eca5758ab457b92e38b63255ae390a825
Exponent1: 0x871bf3a6ac7bf5f6e1bb5758635e5d0112f4217ee041f15179e302d3b20531bb3681fd335
f32eb58310a8a7aedeb3650d4addd96f5efffb80a591691824adaab
Exponent2: 0x6b1633df762a6141f38a3fd1c4148ca8ddf367431c04d2fbe0cabdf1591f7ef80a4f8aa83
9f73d267815612deef4505486e4e5c783a7b7425cecc391ed0b1ac3
Coefficient: 0xc29527035094a396b88b7bb586ee1add3086689060ff20e4f29277681309f2cd887263a
7a72867eeb7757a5f53a3803e33b1bea237c92a6104abdf9fdfbff157
}
На шлюзе 212.111.80.21 файл /etc/ipsec.secrets отредактируйте следующим образом:
212.45.28.123 212.111.80.21: RSA {
Modulus: 0xc154dba45cc991128e790a11ad14a8feeb8f935b53f596a499b48f3e584bd502edae
6b43ddc73dfd5a9c38cf1b4ef91cd1094963c287845aee0a05725af6eaad4ed06d7cdee29cccf62a117
4c31ba013707e3c2d7d59d70bdd85353fca5802fb708cc93f1878b74936f36bcf88c4345ec15e249440
d31ef3602f713f45e25cbb
PublicExponent: 0x03
# everything after this point is secret
PrivateExponent: 0x015f035f93b8ce3127235ad9ff697394df2c97bd786cdcc19f0c2c97231f6
72f39f828b439db4910525841c3bd0430f8f12460bf588750d3413bfc684ce68463425eb7a25e6a719f8
2328b396297c421641b80d6d03e6fa02daaa948a614d712ffeae3f7782709de6ebb809492aa5c1d5d0eb
545b1bf68fde29ffe819543c29b
Prime1: 0xfd1877406f2f1d7e72fe0f87b5bca2efee80c6306865b48a5d9da420720d5ecf1f97be
f0b39e7cd0a57e0a51cac82aaffb1e096d0b5e55734b9546cd37f13f59
Prime2: 0xc38cd1ce6f12ea73cd555351bfc7f6bf5ed77fac6290a74858e8541bded02eb55c957b0
13759caf5942f8fa8f6274d82852643c44f07f5aa427afd12d79eee33
Exponent1: 0xa8bafa2af4ca13a9a1feb50523d3174a9f00842045992306e913c2c04c08e9df6a65
29f5cd145335c3a95c3687301c7552140648b23ee3a232638488cff62a3b
Exponent2: 0x825de1344a0c9c4d338e378bd52ff9d4e9e4ffc841b5c4dae5f03812948ac9ce3db8
fcab7a3bdca3b81fb51b4ec4de57036ed7d834aff91c2c51fe0c8fbf4977
Coefficient: 0x0b474a89523b664841d5332d57588a6e31a602d59570d615bcf3728f9c9e403fa1
9b4c8e8d7a9c32c02c076d7f4fda73341978746da9e411766a622b4d586210
}
Шаг 3
На обоих шлюзах в файлах /etc/sysctl.conf измените или проверьте наличие строки:
net.ipv4.ip_forward = 1
Для вступления изменений в силу перезагрузите сеть:
[root@yubileyny /]# /etc/init.d/network restart
Деактивируется интерфейс eth0: [ОК]
Деактивируется интерфейс-петля: [ОК]
Устанавливаются параметры сети: [ОК]
Активируется интерфейс loopback: [ОК]
Активируется интерфейс eth0: [ОК]
или выполните команду, что не потребует перезагрузки:
[root@yubileyny /]# sysctl -w IP_forward =1
Шаг 4
Настройте систему сетевой защиты, руководствуясь рекомендациями глав 9 и 10.
Система сетевой защиты, как минимум, должна иметь правила, разрешающие:
* поддержку канала обмена ключами (работу демона pluto) - порт 500, протокол UDP;
* поддержку шифрования данных по протоколу ESP - протокол 50;
* поддержку протокола контроля целостности и аутентификации по протоколу AH - протокол 51.
Для реализации этих правил, если вы используете систему сетевой защиты IPTables, в стартовый скрипт iptables нужно добавить строки:
# allow IPsec
#
# Канал обмена ключами
iptables -A INPUT -p udp --sport 500 --dport 500 -j ACCEPT
iptables -A OUTPUT -p udp --sport 500 --dport 500 -j ACCEPT
# Шифрование данных по протоколу ESP
iptables -A INPUT -p 50 -j ACCEPT
iptables -A OUTPUT -p 50 -j ACCEPT
# Контроль за целостностью и аутентичностью данных по протоколу AH
iptables -A INPUT -p 51 -j ACCEPT
iptables -A OUTPUT -p 51 -j ACCEPT
Шаг 5
Для нормальной работы IPSec на обоих шлюзах должна быть выключена подсистема rp_filter, используемая для защиты от подмены IP-адреса. Для этого на каждом из шлюзов выполните:
[root@yubileyny /]# echo 0 > /proc/sys/net/ipv4/conf/IPSEC0/rp_filter
[root@yubileyny /]# echo 0 > /proС/sys/net/ipv4/conf/eth0/rp_filter
Для того, чтобы требуемое значение параметра устанавливалось автоматически при загрузке системы, добавьте в файлы /etc/rc.d/init.d/iptables на каждом из шлюзов следующие строки:
# Disable IP spoofing protection to allow IPSEC to work properly
echo 0 > /proc/sys/net/ipv4/conf/IPSEC0/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
В противном случае в файл /var/log/messagess будут выданы следующие сообщения:
Мар 10 17:24:40 moscow ipsec: ipsec_setup: WARNING: eth0 has route filtering turned on, KLIPS may not work
Мар 10 17:24:40 moscow ipsec_setup: (/proc/sys/net/ipv4/conf/eth0/rp_filter = `1', should be 0)
Тестирование FreeS/WAN
[Назад]
[В этой главе]
[Далее]
Шаг 1
Перезагрузите оба шлюза, чтобы запустить FreeS/WAN.
Шаг 2
Проверьте отсутствие ошибок в файлах регистрации на каждом из шлюзов. В файлах /var/log/messages должны быть строки примерно следующего содержания:
Mar 10 17:24:39 moscow kernel: klips_info:ipsec_init: KLIPS startup, FreeS/WAN IPSec version: 1.99
Мар 10 17:24:39 moscow ipsec: ipsec_setup: Starting FreeS/WAN IPsec 1.99...
Мар 10 17:24:39 moscow ipsec_setup: Starting FreeS/WAN IPsec 1.99...
Mar 10 17:24:40 moscow ipsec_setup: KLIPS debug `none'
Mar 10 17:24:40 moscow ipsec_setup: KLIPS ipsec0 on eth0 212.45.28.123/255.255.255.255 broadcast 0.0.0.0
Mar 10 17:24:41 moscow ipsec_setup: ...FreeS/WAN IPsec started
Мар 10 17:24:41 moscow rc: Starting ipsec: succeeded
В файлах /var/log/secure должны быть строки примерно следующего содержания:
Mar 10 17:24:40 moscow ipsec__plutorun: Starting Pluto subsystem...
Mar 10 17:24:41 moscow pluto[13069]: Starting Pluto (FreeS/WAN Version 1.99)
Mar 10 17:24:41 moscow pluto[13069]: added connection description "Moscow_ Yubileyny"
Mar 10 17:24:41 moscow pluto[13069]: listening for IKE messages
Mar 10 17:24:42 moscow pluto[13069]: adding interface ipsec0/eth0 212.45.28.123
Mar 10 17:24:42 moscow pluto[13069]: loading secrets from "/etc/ipsec.secrets"
Mar 10 17:24:42 moscow pluto[13069]: "Moscow-Yubileyny" #l: initiating Main Mode
Mar 10 17:24:42 moscow pluto[13069]: "Moscow-Yubileyny" #l: ISAKMP SA established
Mar 10 17:24:45 moscow pluto[13069]: "Moscow-Yubileyny" #2: initiating Quick Mode_POLICY_RSASIG+POLICY_ENCRYPT+POLICY_AUTHENTICATE+POLICY_TUNNEL+POLICY_PFS
Mar 10 17:24:46 moscow pluto[13069]: "Moscow-Yubileyny" #2: sent Q12, IPSec SA
Mar 10 17:24:49 moscow pluto[13069]: "Moscow-Yubileyny" #3: responding to Main Mode
Mar 10 17:24:49 moscow pluto[13069]: "Moscow-Yubileyny" " #3: sent MR3, ISAKMP SA
Mar 10 17:24:50 moscow pluto[13069]: "Moscow-Yubileyny" #4: responding to Quick Mode established
Mar 10 17:24:50 moscow pluto[13069]: "Moscow-Yubileyny"#4: IPSEC SA established
На обоих шлюзах в каталоге /proc/net/ должны содержаться следующие псевдофайлы:
[root@yubileyny /]# ls -l /proc/net/ipsec_*
-r--r--r-- 1 root root 0 Мар 10 18:03 /proc/net/ipsec_eroute
-r--r--r-- 1 root root 0 Мар 10 18:03 /proc/net/ipsec_klipsdebug
-r--r--r-- 1 root root 0 Мар 10 18:03 /proc/net/ipsec_spi
-r--r--r-- 1 root root 0 Мар 10 18:03 /proc/net/ipsec_spigrp
-r--r--r-- 1 root root 0 Мар 10 18:03 /proc/net/ipsec_tncfg
-r--r--r-- 1 root root 0 Мар 10 18:03 /proc/net/ipsec_version
Интерфейсы IPSec должны быть описаны ранее физических интерфейсов:
[root@yubileyny /]# cat /proc/net/ipsec_tncfg
ipsec0 -> eth0 mtu=16260 -> 1500
ipsec1 -> NULL mtu=0 -> 0
ipsec2 -> NULL mtu=0 -> 0
ipsec3 -> NULL mtu=0 -> 0
Шаг 3
Тестирование работоспособности созданного туннеля и виртуальной частной сети может быть осуществлено путем проверки связи между системами, находящимися в разных локальных сетях. В нашем случае, система drwalbr.und (192.168.1.105) находилась в локальной сети офиса в г. Юбилейном, а система karlnext.und (192.168.1.35) - в локальной сети офиса в г. Москве. Для проверки связи наберите:
[karlnext@karlnext /]# ping -c 3 192.168.1.105
PING 192.168.1.105 (192.168.1.105) from 192.168.1.35: 56(84) bytes of data.
64 bytes from 192.168.1.105 (192.168.1.105): icmp_seq=1 ttl=249 time=4.17 ms
64 bytes from 192.168.1.105 (192.168.1.105): icmp_seq=2 ttl=249 time=4.73 ms
64 bytes from 192.168.1.105 (192.168.1.105): icmp_seq=3 ttl=249 time=4.56 ms
--- 192.168.1.105 ping statistics ---
3 packets transmitted, 3 received, 0% loss, time 2021ms
rtt min/avg/max/mdev = 4.170/4.490/4.731/0.235 ms
и
[drwalbr@drwalbr / ]# ping -c 3 karlnext.und
PING karlnext.und (192.168.1.35) from 192.168.1.105: 56(84) bytes of data.
64 bytes from karlnext.und (192.168.1.105): icmp_seq=1 ttl=249 time=4.17 ms
64 bytes from karlnext.und (192.168.1.105): icmp_seq=2 ttl=249 time=4.73 ms
64 bytes from karlnext.und (192.168.1.105): icmp_seq=3 ttl=249 time=4.56 ms
--- karlnext.und ping statistics ---
3 packets transmitted, 3 received, 0% loss, time 2021ms
rtt min/avg/max/mdev = 4.170/4.490/4.731/0.235 ms
Шаг 4
Протестируйте предназначенные для работы в локальной сети приложения, обращающиеся к системам, расположенным в локальной сети другого офиса.
Выше рассмотрен тривиальный вариант использования и настройки FreeS/WAN. Более сложные случаи рассмотрены в файлах документации, содержащихся в каталоге /doc исходных кодов FreeS/WAN и страницах документации.
Подключение к MS WINDOWS NT VPN-серверу c помощью PPTP-клиента
[Назад]
[В этой главе]
[Далее]
PPTP-клиент реализует PPTP (Point-to-Point Tunneling Protocol) протокол, предназначенный для подключения систем с Linux, FreeBSD и NetBSD к виртуальным частным сетям через MS Windows NT VPN-сервер. PPTP позволяет шифровать передаваемую информацию с ключом длиной 128 бит. Кроме того, этот протокол, не смотря на известные проблемы с безопасностью, используется некоторыми провайдерами для реализации доступа в Интернет через локальные сети общего пользования, и в некоторых случаях является единственной возможностью подключения Linux-системы к Интернет. В такой ситуации оказались жители г. Юбилейного Московской области. В этом городе ЗАО "Инфолайн" имеет сеть и шлюз в Интернет, реализованный на базе Windows NT VPN-сервера. С их помощью и предоставляются услуги доступа в Интернет. Укрупненная схема сопряжения компьютеров клиентов ЗАО "Инфолайн" с Интернет представлена на рисунке.
Учитывая, что подключение Linux-системы к MS Windows NT VPN-серверу c помощью PPTP-клиента
представляет интерес, в основном, для начинающих пользователей, ниже описывается процедура установки
необходимого программного обеспечения из rpm-пакетов с некоторыми подробностями, которые могут показаться
излишними для опытных пользователей.
Ограничения и допущения
[Назад]
[В этой главе]
[Далее]
rpm-пакеты находятся в каталоге /usr/src.
Все операции выполняются пользователем с учетной записью root.
Используется дистрибутив ASPLinux 7.3 (Vostok).
Используется ядро версии 2.4.18-5asp, или 2.4.18 или 2.4.19, собранные из исходных кодов в соответствии с рекомендациями главы 6. Работоспособность приведенных ниже рекомендаций протестирована для ядер версии 2.4.18 или 2.4.19, собранных из исходных кодов, модифицированных соответствующим патчем Grsecurity.
Для ядра версии 2.4.18-5asp, входящего в комплект поставки ASPLinux 7.3 (Vostok) перекомпиляция не требуется.
По данным, полученным клиентами ЗАО "Инфолайн", процедура, описанная в этой главе, применима без внесения изменений к Red Hat Linux 7.3, а с незначительными изменениями - и для последних версий Linux Slackware и AltLinux.
Пакеты
[Назад]
[В этой главе]
[Далее]
Последующие рекомендации основаны на информации, полученной с домашней страницы проекта PPTP Client по состоянию на 01.02.2003. Регулярно посещайте домашнюю страницу проекта http://pptpclient.sourceforge.net и отслеживайте обновления. Для организации подключения системы c ASPLinux 7.3 к MS Windows NT VPN-серверу необходимы пакет ppp-mppe-2.4.0-4.i386.rpm, реализующий протокол MPPE (Microsoft Point-To-Point Encryption) и pptp-linux-1.1.0-1.i386.rpm, содержащий клиент PPTP.
Инсталляция MPPE и PPTP-клиента
[Назад]
[В этой главе]
[Далее]
Шаг 1
Проверьте параметры настройки ядра. Если вы используете ядро версии 2.4.18-5asp, поставляемое в составе ASPLinux 7.3, то можете пропустить этот шаг. В противном случае проверьте, что в вашей конфигурации ядра установлены следующие опции:
IP: tunneling (CONFIG_NET_IPIP) [N/y/?] y
IP: GRE tunnels over IP (CONFIG_NET_IPGRE) [N/y/?] y
Dummy net driver support (CONFIG_DUMMY) [Y/n/?] y
PPP (point-to-point protocol) support (CONFIG_PPP) [N/y/?] y
Если опции не были установлены, то перекомпилируйте и проинсталлируйте новое ядро.
Шаг 2
Создайте и установите модуль поддержки MPPE. Для этого установите пакет ppp-mppe-2.4.0-4.i386.rpm, игнорируя зависимости:
[root@drwalbr /]# cd /var/tmp
[root@drwalbr tmp]# rpm -Uhv --nodeps ppp-mppe-2.4.0-4.i386.rpm.
В результате получите сообщение о том, что модуль ядра нужно собрать самостоятельно.
Шаг 3
Для создания модуля нужны исходные коды ядра. Если вы используете стандартное ядро версии 2.4.18-5asp, установите пакет kernel-source-2.4.18-5asp.rpm. Для этого вставьте диск #3 дистрибутива ASPLinux 7.3 в привод CD-ROM и выполните:
[root@drwalbr /]# mount /dev/cdrom /mnt/cdrom
[root@drwalbr /]# cd /mnt/cdrom/ASPLinux/RPMS/
[root@drwalbr /]# rpm -i kernel-source-2.4.18-5asp.rpm
[root@drwalbr /]# cd /usr/src/linux-2.4.18-5asp/
[root@drwalbr linux-2.4.18-5asp]# cp /boot/config-2.4.18-5asp ./config
Если вы используете ядро, созданное из исходных кодов, и придерживались рекомендаций главы 6, то исходные коды содержатся в каталоге /usr/src/linux-2.4.x. Если вы уже удалили исходные коды, то выполните:
[root@drwalbr /]# cp linux-2.4.x.tar.gz /usr/src/
[root@drwalbr /]# tar xzpf linux-2.4.x.tar.gz
[root@drwalbr /]# cd /usr/src/linux-2.4.x/
Шаг 4
Соберите модуль ядра:
[root@drwalbr linux-2.4.x]# make dep
[root@drwalbr linux-2.4.x]# cd /usr/lib/ppp-mppe-2.4.0/linux/
[root@drwalbr linux-2.4.x]# ./kmodbuild.sh /usr/src/linux-2.4.x
После выполнения этой команды могут появиться различные предупреждения, которые следует проигнорировать.
Шаг 5
Проинсталлируйте модуль ядра:
[root@drwalbr linux-2.4.x]# kernel-modules/kmodinst.sh kernel-modules/new-2.4.x
Откорректируйте ссылки в файле /etc/modules.conf. Для этого строку:
alias char-major-108 ppp
замените на:
alias char-major-108 ppp_generic
и добавьте строку:
alias ppp-compress-18 mppe
Шаг 6
Установите PPTP-клиента:
[root@drwalbr linux-2.4.x]# cd /var/tmp
[root@drwalbr tmp]# rpm -Uhv pptp-linux-1.1.0-1.i386.rpm
Конфигурирование PPTP-клиента
[Назад]
[В этой главе]
[Далее]
Передача параметров PPTP-клиенту возможна через интерфейс командной строки и конфигурационные файлы. Наиболее простым способом конфигурирования клиента является использование скрипта, написанного на языке Perl c именем pptp-command, входящего в дистрибутив PPTP-клиента. Для настройки необходимы следующие исходные данные:
* IP-адрес в локальной сети провайдера и имя вашей системы;
* имя учетной записи (логин) и пароль на VPN-сервере провайдера;
* IP-адрес VPN-сервера в локальной сети провайдера;
* IP-адреса первичного и вторичного DNS-серверов;
* IP-адрес внешнего шлюза.
Рассмотрим конфигурирование PPTP-клиента при следующих исходных данных:
* ваш IP-адрес: 192.168.2.99;
* имя компьютера: drwalbr.inf;
* логин: sv_bambr;
* пароль: sEcReTnOe_Sl0v0;
* IP-адрес шлюза в локальной сети: 192.168.2.1;
* IP-адрес первичного DNS: 212.111.78.3;
* IP-адрес вторичного DNS: 212.111.80.3;
* IP-адрес внешнего шлюза: 212.111.80.10.
Шаг 1
Запустите скрипт pptp-command:
[root@drwalbr tmp]# /usr/sbin/pptp-command
1.) start
2.) stop
3.) setup
4.) quit
Выберите пункт 3:
What task would you like to do?: 3 Enter
Шаг 2
Введите информацию, необходимую для аутентификации на сервере VPN:
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
1.) List CHAP secrets
2.) Add a New CHAP secret
3.) Delete a CHAP secret
4.) Quit
Выберите пункт 2:
?: 2 Enter
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:
domain\\username
Введите логин:
Local Name: sv_bambr Enter
Установите предлагаемое по умолчанию имя удаленной системы:
This is the 'remote' identifier for CHAP authentication.
In most cases, this can be left as the default. If 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
Введите пароль:
This is the password or CHAP secret for the account specified. The
password will not be echoed.
Password: sEcReTnOe_Sl0v0 Enter
Adding sv_bambr PPTP *****
Шаг 3
Добавьте новый туннель:
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:
?: 4 Enter
Add a NEW PPTP Tunnel.
1.) Other
Выберите пункт 1:
Which configuration would you like to use?: 1 Enter
Введите имя туннеля (любая строка):
Tunnel Name: drwalbr_internet Enter
Введите IP-адрес шлюза в локальной сети:
Server IP: 192.168.2.1 Enter
Добавьте, в случае необходимости, опции команды route, обеспечивающие прохождение пакетов с вашей системы в Интернет:
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.
DEF_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 Enter
route: add default gw 212.111.80.10 Enter
route: Enter
Шаг 4
Задайте IP-адреса DNS-серверов:
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
Выберите пункт 6:
?: 6 Enter
Если вы для всех соединений используйте одни и те же сервера:
Use a PPTP-specific resolv.conf during tunnel connections? [Y/n]: n Enter
Выберите один из файлов, содержащих IP-адреса DNS-серверов (у вас не выбран ни один из файлов):
1.) Other
Which configuration do you want to use?: 1 Enter
Введите IP-адреса DNS-серверов:
What domain names do you want to search for partially specified names?
Enter all of them on one line, seperated by spaces.
domain Names: inf Enter
Enter the IP addresses of your nameservers
Enter a blank IP address to stop.
Nameserver IP Address:212.111.78.3 Enter
Nameserver IP Address:212.111.80.3 Enter
Nameserver IP Address: Enter
Copying /etc/resolv.conf to /etc/resolv.conf.real...
Creating link from /etc/resolv.conf.real to /etc/resolv.conf
ЗАМЕЧАНИЕ Если вы не являетесь клиентом ЗАО "Инфолайн", не используйте приведенные выше IP-адреса DNS-серверов. Использование DNS-серверов без разрешения их владельцев - признак плохого тона.
Выберите туннель, используемый по умолчанию:
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
Выберите пункт 7:
?: 7 Enter
1.) drwalbr_internet
2.) cancel
Выберите пункт 1:
Which tunnel do you want to be the default?: 1 Enter
Завершите конфигурирование PPTP:
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:
?: 8 Enter
Тестирование подключения к MS WINDOWS NT VPN-серверу c помощью PPTP-клиента
[Назад]
[В этой главе]
Шаг 1
Войдите в систему в качестве обычного пользователя. С использованием команд sudo или su запустите скрипт pptp-command от имени пользователя root:
[root@drwalbr drwalbr]# /usr/sbin/pptp-command
[root@drwalbr tmp]# pptp-command
1.) start
2.) stop
3.) setup
4.) quit
Установите соединение:
What task would you like to do?: 1 Enter
1.)drwalbr_internet
Установите соединение с VPN-сервером, выбрав пункт 1:
Start a tunnel to which server?: 1 Enter
Через несколько секунд должно появиться сообщение на экране:
Route: del default added
Route: add default gw 212.111.80.10 added
All routes added.
Tunnel drwalbr_internet is active on ppp0. IP Address: 212.111.80.221
и в файле /var/log/messages:
Mar 15 22:21:00 drwalbr pptp[22863]: log[pptp_dispatch_ctrl_packet:pptp_ctrl.c:580]: Client connection established.
Mar 15 22:21:01 drwalbr pptp[22863]: log[pptp_dispatch_ctrl_packet:pptp_ctrl.c:708]: Outgoing call established (call ID 0, peer's call ID 17326).
Mar 15 22:21:01 drwalbr kernel: CSLIP: code copyright 1989 Regents of the University of California
Mar 15 22:21:01 drwalbr kernel: PPP generic driver version 2.4.2
Mar 15 22:21:01 drwalbr pppd[8100]: pppd 2.4.0 started by root, uid 0
Mar 15 22:21:01 drwalbr pppd[8100]: Using interface ppp0
Mar 15 22:21:01 drwalbr pppd[8100]: Connect: ppp0 <--> /dev/pts/0
Mar 15 22:21:03 drwalbr pptp[22863]: log[pptp_dispatch_ctrl_packet:pptp_ctrl.c:757]: PPTP_SET_LINK_INFO recieved from peer_callid 0
Mar 15 22:21:03 drwalbr pptp[22863]: log[pptp_dispatch_ctrl_packet:pptp_ctrl.c:760]: send_accm is 00000000, recv_accm is FFFFFFFF
Mar 15 22:21:03 drwalbr pppd[8100]: Remote message: S=7FECC7F871AD80E87A2B7F1048D9FE915BC917DA
Mar 15 22:21:03 drwalbr kernel: PPP MPPE compression module registered
Mar 15 22:21:03 drwalbr insmod: Warning: loading /lib/modules/2.4.19-grsec/misc/mppe.o will taint the kernel: no license
Mar 15 22:21:03 drwalbr insmod: See http://www.tux.org/lkml/#s1-18 for information about tainted modules
Mar 15 22:21:03 drwalbr insmod: Module mppe loaded, with warnings
Mar 15 22:21:03 drwalbr pppd[8100]: MPPE 128 bit, stateless compression enabled
Mar 15 22:21:03 drwalbr pppd[8100]: local IP address 212.111.80.221
Mar 15 22:21:03 drwalbr pppd[8100]: remote IP address 212.111.80.10
Шаг 2
Проверьте наличие доступа в Интернет:
[root@drwalbr drwalbr]# ping -c 3 omega2.infline.ru
Если получены сообщения, подобные этим:
PING (212.111.78.6) from 212.111.80.221: 56(84) bytes of data.
64 bytes from omega2.infline.ru (212.111.78.6): icmp_seq=1 ttl=126 time=4.88 ms
64 bytes from omega2.infline.ru (212.111.78.6): icmp_seq=2 ttl=126 time=3.14 ms
64 bytes from omega2.infline.ru (212.111.78.6): icmp_seq=3 ttl=126 time=4.89 ms
--- omega2.infline.ru ping statistics ---
3 packets transmitted, 3 received, 0% loss, time 2021ms
rtt min/avg/max/mdev = 3.145/4.306/4.891/0.822 ms
то соединение установлено и работоспособно. В противном случае проверьте правильность сетевых настроек вашей системы и ознакомьтесь с документацией по диагностике PPTP-клиента, которая может быть получена с http://pptpclient.sourceforge.net/howto-diagnosis.phtml.
Проверьте наличие доступа к Web-ресурсам:
[root@drwalbr drwalbr]# lynx www.infline.ru
Если вы увидите индексную страницу сервера:
Инфолайн" (p1 of 6)
left_part_logo center_part_logo right_part_logo
[naviarr.gif] [spacer.gif] Навигация [spacer.gif] [adrarr.gif]
[spacer.gif] www.infline.ru [spacer.gif] [adrarr.gif] [spacer.gif]
Новости
О компании
Интернет
Телефонная связь
Кабельное ТВ
Оборудование
Вакансии
Наши адреса
...
то процесс настройки подключения к MS WINDOWS NT VPN-серверу c помощью PPTP-клиента можно считать завершенным.
Шаг 3
Завершите соединение:
[root@drwalbr tmp]# /usr/sbin/pptp-command
1.) start
2.) stop
3.) setup
4.) quit
Выберите пункт 4:
What task would you like to do?: 4 Enter
Sending HUP signal to PPTP processes...
pptp: no process killed
В файле /var/log/messages должны появиться сообщения:
Мар 15 22:24:10 drwalbr pptp: Sending HUP signal to PPTP processes...
Mar 15 22:24:10 drwalbr pptp[22863]: log[callmgr_main:pptp_callmgr.c:245]: Closing connection
Mar 15 22:24:10 drwalbr pptp[22863]: log[pptp_conn_close:pptp_ctrl.c:307]: Closing PPTP connection
Mar 15 22:24:10 drwalbr pppd[8100]: Hangup (SIGHUP)
Mar 15 22:24:10 drwalbr pppd[8100]: Modem hangup
Mar 15 22:24:10 drwalbr pppd[8100]: Connection terminated.
Mar 15 22:24:10 drwalbr pppd[8100]: Connect time 3.2 minutes.
Mar 15 22:24:10 drwalbr pppd[8100]: Sent 4816 bytes, received 29486 bytes
Приведенные сообщения указывают на корректное завершение соединения и содержат информацию о времени соединения - 3,2 минуты, объеме исходящего и входящего трафика, соответственно - 4816 и 29486 Байт.
|
|
|