Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 81
Текст из файла (страница 81)
Виртуальные частные сети, VPN353ПакетыПоследующие рекомендации основаны на информации, полученной с домашней страницы проектаFreeS/WAN по состоянию на 15.03.2003. Регулярно посещайте домашнюю страницу проектаhttp://www.giptables.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).
Если вы следовали рекомендациям главы 2, то они ужедолжны быть установлены.Компиляция, оптимизация и инсталляция FreeS/WANДля компиляции, оптимизации и инсталляции FreeS/WAN на каждом из шлюзов выполните следующие операции.Шаг 1Распакуйте архив с пакетом freeswan-1.99.tar.gz в каталоге /usr/src:[root@yubileyny src]# 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/manCтроку:USERCOMPILE=-g -O3на:USERCOMPILE=-g –O2Cтроку:KLIPSCOMPILE=-O3на:KLIPSCOMPILE=-O2Шаг 3Сконфигурируйте исходные коды ядра с поддержкой FreeS/WAN:[root@yubileyny src]# cd freeswan-1.99[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>354Часть 6.
Программное обеспечение для организации шлюза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 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 freeswan-1.99]# cd ..[root@yubileyny src]# rm -rf freeswan-1.99/[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# Сетевой интерфейс, используемый IPSecinterfaces="IPSEC0=eth0"# Запрет на выдачу отладочных сообщений# all – включение выдачи отладочных сообщенийklipsdebug=noneplutodebug=none# Автоматическая установка соединений и аутентификация# при запуске IPSecplutoload=%searchplutostart=%search# Параметры соединения между локальными сетями# Название соединения (произвольная строка)conn Moscow-Yubileyny# Исходные данные для шлюза в Москвe# IP адресГлава 26. Виртуальные частные сети, VPN355left=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# Устанавливать соединение при запуске IPSecauto=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 – параметры соединения должны быть загружены в память.Шаг 2356Часть 6.
Программное обеспечение для организации шлюзаFreeS/WAN поддерживает два формата ключей, используемых демоном pluto для проверки подлинности соединений длиной до 256 бит. Каждый из этих форматов требует определенных операций по созданию ключей и изменению конфигурационных файлов FreeS/WAN.В случае использования открытых зашифрованных ключей, для создания нового ключа на одном изшлюзов выполните команду:[root@yubileyny /]# ipsec ranbits 256 > /root/keyФайл /root/key.txt содержит новый ключ:[root@yubileyny /]# cat /root/key0xaf4a2a4c_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 root]# cd /[root@moskow /]# ipsec rsasigkey --verbose 1024 > /root/moscow-keygetting 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 root]# cd /[root@yubileyny /]# ipsec rsasigkey --verbose 1024 > /root/yubileyny-keygetting 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 добавьте строки, выделенные более жирным шрифтом:# /etc/ipsec.conf – конфигурационный файл FreeS/WANГлава 26. Виртуальные частные сети, VPN357# Примеры конфигурационных файлов находятся в каталоге# doc/examples исходных кодов.config setup# Сетевой интерфейс, используемый IPSecinterfaces="IPSEC0=eth0"# Запрет на выдачу отладочных сообщений# all – включение выдачи отладочных сообщенийklipsdebug=noneplutodebug=none# Автоматическая установка соединений и аутентификация# при запуске IPSecplutoload=%searchplutostart=%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=rsasigleftrsasigkey=<Public key of 212.45.28.123>rightrsasigkey=<Public key of 212.111.80.21># Устанавливать соединение при запуске IPSecauto=startОпция authby=rsasig используется для включения поддержки проверки подлинности соединенияс использованием RSA-ключей.Опции leftrsasigkey=<Public key of moscow> и rightrsasigkey=<Public key ofyubileyny > используются для ввода открытых ключей для 212.45.28.123 и 212.111.80.21, соответственно.