From: Матыцын Денис <gdenis@aport.ru.>
Newsgroups: email
Date: Mon, 11 May 2005 14:31:37 +0000 (UTC)
Subject: Настройка FreeBSD и Planet VRT-311S для объединения сетей посредством IPSec
Настройка FreeBSD 5.3 и Planet VRT-311S для создания IPSec канала через
Интернет объединяющего две локальные сети.
Вводные данные.
Два офиса компании, локальные сети в каждом из офисов, оба офиса имеют
выделенные каналы доступа в сеть Интернет, провайдерами выделенных
каналов предоставленны реальные IP адреса.
Задача.
Обеспечить решение следующих задач:
1. Обеспечить возможность связи по протоколу IP между узлами локальных
сетей в офисах.
2. Необходимо скрыть информацию передаваемую через публичную сеть
Интернет, уровень скрытия - низкий/средний.
3. Обеспечить максимальную возможную скорость передачи данных между
узлами офисами.
Параметры TCP/IP, офис 1.
Локальная сеть - 192.168.1.0/24
Адрес внешнего сетевого интерфейса - 111.111.111.111
Шлюз доступа в Интернет на базе сервера FreeBSD 5.4 (http://www.freebsd.org/).
Параметры TCP/IP, офис 2.
Локальная сеть - 192.168.2.0/24
Адрес внешнего сетевого интерфейса - 222.222.222.222
Шлюз доступа в Интернет на базе Planet VRT-311S (http://www.planet.com.ru/).
Офис 1, шлюз на базе FreeBSD 5.4:
Для создания тунеля необходимо перекомпилировать ядро с поддержкой
следующих опций:
options IPSEC
options IPSEC_ESP
Определяем политику выбора ключей в стеке ядра IPSec - при наличии
нескольких ключей выбирается более новый.
Это решает проблему с восстановлением канала IPSec после перезагрузки
шлюза IPSec на базе FreeBSD.
Добавляем в файл /etc/sysctl.conf строку:
net.key.preferred_oldsa=0
Настроить разрешения пакетного фильтра шлюза для разрешения передачи
данных туннеля IPSec между шлюзами и между локальными сетями.
Конкретное решение зависит от используемого пакетного фильтра и
используемых правил.
Примечание: для обмена ключами используется протокол UDP/IP, обмен между
портами номер 500, для передачи зашифрованных данных туннеля
используется протокол ESP/IP.
>>> Вариант 1 настройки шлюза на FreeBSD, используется сервер обмена ключами KAME racoon.
Настроить правила IPSec:
Файл конфигурации /etc/ipsec.conf:
flush;
spdflush;
spdadd 192.168.1.0/24 192.168.2.0/24 any -P out ipsec esp/tunnel/111.111.111.111-222.222.222.222/require;
spdadd 192.168.2.0/24 192.168.1.0/24 any -P in ipsec esp/tunnel/222.222.222.222-111.111.111.111/require;
Включить автоматическую загрузку правил IPSec при загрузке системы:
Файл конфигурации /etc/rc.conf
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"
Установить сервер обмена ключей KAME racoon IKE daemon из портов FreeBSD, проверен на работоспособность - racoon-20050510a.
Настроить сервер, файл конфигурации /usr/local/etc/racoon/racoon.conf
# search this file for pre_shared_key with various ID key.
path pre_shared_key "/usr/local/etc/racoon/psk.txt" ;
# "log" specifies logging level. It is followed by either "notify", "debug"
# or "debug2".
log notify;
# if no listen directive is specified, racoon will listen to all
# available interface addresses.
listen
{
isakmp 111.111.111.111 [500];
}
# Specification of default various timer.
timer
{
# These value can be changed per remote node.
counter 5; # maximum trying count to send.
interval 20 sec; # maximum interval to resend.
persend 1; # the number of packets per a send.
# timer for waiting to complete each phase.
phase1 60 sec;
phase2 60 sec;
}
remote anonymous
{
exchange_mode main;
lifetime time 600 sec;
proposal {
encryption_algorithm 3des;
hash_algorithm md5;
authentication_method pre_shared_key;
dh_group 1;
}
}
Задать общий ключ шлюзов в файле /usr/local/etc/racoon/psk.txt, формат -
адрес другого шлюза, табуляция, общий ключ.
Рекомендуется осторожно использовать пробелы и табяляции в общем ключе,
паролем считается слово с первого непробельного символа после IP адреса
до конца строки.
Пример:
# IPv4/v6 addresses
222.222.222.222 test
Необходимо установить маску доступа к файлу общих ключей
/usr/local/etc/racoon/psk.txt - "600", владелец - "root", группа
"wheel".
Установить загрузку racoon при запуске шлюза в файле /etc/rc.conf:
Настроить политики сервера, файл конфигурации
/usr/local/etc/isakmpd/isakmpd.policy:
Comment: This policy accepts ESP SAs from a remote that uses the rigth password.
Authorizer: "POLICY"
Conditions: app_domain == "IPsec policy" &&
esp_present == "yes" &&
esp_enc_alg != "null" -> "true";
Необходимо установить маску доступа к конфигурационным файлам isakmpd
/usr/local/etc/isakmpd/isakmpd.conf и
/usr/local/etc/isakmpd/isakmpd.policy - "600", владелец - "root", группа
"wheel".
Установить загрузку isakmpd при запуске шлюза в файле /etc/rc.conf:
ike_enable="YES" # Enable IKE daemon (usually racoon or i
ike_flags="-4" # Additional flags for IKE daemon
ike_program="/usr/local/sbin/isakmpd" # Path to IKE daemon
Перезапустить шлюз.
Офис 2, шлюз на базе Planet VRT-311S:
На роутере использовалась прошивка 1.0 релиз BD
http://www.planet.com.ru/index.php?toc_id=81&cur_id=74&openl=1.
Краткое описание роутера
http://www.planet.com.ru/pagecontent.php?name=pagecontent&rec_id=403&key=
Настройки политики IPSec VPN приведены в виде скриншота меню настройки
правил IPSec.
Примечание: Настройки TCP/IP намеренно искажены.
---
Предложения и дополнения
Буду рад и благодарен. Присылайте на gdenis@aport.ru