Инструменты, предназначенные для организации VPN
В настоящее время отсутствуют стандартные инструментальные средства, позволяющие создать VPN. Стандарты, регламентирующие работу VPN, находятся в стадии разработки. Ниже приведены три наиболее часто употребляемых инструмента, предназначенные для создания VPN.
• PPTP (Point-to-Point Tunneling Protocol — протокол межузлового туннелирования) был создан консорциумом PPTP Forum, в который входят несколько компаний, занимающихся разработкой сетевых средств. Протокол PPTP часто используется для организации взаимодействия сотрудников, работающих дома, с сетями предприятий. Средства поддержки PPTP входят в состав последних версий Windows. Существует также PPTP-сервер для Linux; он называется PoPToP (http://poptop.lineo.com
).
• FreeS/WAN. Проект FreeS/WAN (http://www.freeswan.org
) посвящен созданию VPN-инструмента для Linux. Этот инструмент распространяется в исходных кодах. Он очень популярен для организации VPN, в которые входят компьютеры под управлением Linux.
• SSH. Возможность протокола SSH поддерживать туннелирование соединений посредством других протоколов также может использоваться для создания VPN.
В данной главе будут рассматриваться первые два из описанных выше подходов к созданию VPN. PPTP — очень популярный инструмент. Его очень удобно использовать в тех случаях, когда Windows-клиент должен непосредственно подключаться к VPN-маршрутизатору. Данное средство также реализовано для других операционных систем; существуют даже специальные устройства, называемые
Настройка PPTP в системе Linux
Поскольку PPTP не разрабатывался специально для Linux, чтобы инсталлировать соответствующие средства на компьютере под управлением Linux, необходимо приложить определенные усилия. Сервер PoPToP взаимодействует с PPP-демоном pppd
. Для обеспечения безопасности система должна уметь шифровать данные, но соответствующие средства в программе pppd
отсутствуют. Поэтому демон pppd
необходимо заменить его расширенной версией. PPTP- клиенты созданы как для Linux, так и для Windows; очевидно, что они настраиваются по-разному.
Инсталляция PoPToP
Инструмент PoPToP поставляется в составе некоторых версий Linux, например Debian и Mandrake. Соответствующий пакет чаще всего имеет имя pptpd
или pptpd-server
. Пакет, поставляемый с системой Linux, обычно проще настраивать, чем универсальный пакет, распространяемый по Internet. Если в вашем дистрибутивном пакете Linux нет инструмента PoPToP, вы можете скопировать его с Web-узла PoPToP, расположенного по адресу http://poptop.lineo.com
.
По умолчанию средства PoPToP в системе Linux не обеспечивают должного уровня защиты при организации VPN. Причина в том, что PPTP применяет специальные средства кодирования PPP, которые не поддерживаются стандартной программой pppd
. В частности, работа PPTP базируется на использовании протокола MPPE (Microsoft Point-to-Point Encryption — межузловое кодирование Microsoft). Для поддержки кодирования вам надо инсталлировать MPPE-дополнения для стандартной программы pppd и для ядра Linux. Этот процесс будет описан далее в данной главе.
Установка конфигурации сервера PoPToP
После инсталляции пакета PoPToP вам надо активизировать его. Для этого выполните следующие действия.
1. Отредактируйте файл /etc/ppp/options
. Этот файл управляет работой программы pppd
, которая поддерживает соединение между VPN-маршрутизатором и удаленной системой PPTP. Файл /etc/ppp/options
должен содержать записи наподобие приведенных ниже.
debug
name
require-chap
proxyarp
192.168.1.1:192.168.1.100
Большинство из этих записей необходимо для работы PPTP. Последняя строка может отсутствовать; она задает адрес, используемый VPN-маршрутизатором в локальной сети (192.168.1.1), и адрес, присваиваемый VPN-клиенту (192.168.1.100). Если вы не зададите эту строку, будет использоваться IP- адрес, указанный в конфигурации VPN-клиента. В данном случае имя сервера — это доменное имя VPN- сервера.
2. Укажите в файле /etc/ppp/chap-secrets
имя пользователя и пароль, которые вы хотите использовать для регистрации. В приведенном ниже примере задано имя пользователя vpn1
и пароль vpnpass
.
vpn1 * vpnpass *
Пароль хранится в файле /etc/ppp/chap-secrets
в незакодированном виде, поэтому вам необходимо принять меры для защиты этого файла. Владельцем его должен быть пользователь root и право чтения файла должен иметь только его владелец. Если злоумышленник получит контроль над сервером PoPToP, он сможет прочитать этот файл. По этой причине на компьютере, выполняющем функции VPN-маршрутизатора, должно присутствовать как можно меньше серверов.
3. Найдите в файле /etc/inittab
ссылку на pptpd
и закомментируйте соответствующую запись, включив в начало строки символ #
. Затем введите команду telinit Q
, чтобы внесенные изменения были учтены. В результате вы получите возможность вручную запустить pptpd
и протестировать конфигурацию данной программы. После создания конфигурации, пригодной для работы, удалите символ комментариев из соответствующей строки файла /etc/inittab
или запустите сервер другим способом.
4. От имени пользователя root
введите команду pptpd
, запустив тем самым сервер.
В результате выполненных действий сервер будет запущен и PPTP-клиент сможет устанавливать взаимодействие с системой. Поскольку средства шифрования не доступны, для установления соединения вам надо также отключить шифрование и на стороне клиента. В следующем разделе рассказывается о том, как разрешить кодирование данных для PoPToP.