Ключевые слова:freebsd, hardware, security, ipsec, tunnel, (найти похожие документы)
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;
}
}
sainfo anonymous
{
lifetime time 600 sec;
encryption_algorithm 3des;
authentication_algorithm hmac_md5;
compression_algorithm deflate ;
}
Задать общий ключ шлюзов в файле /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:
racoon_enable="YES"
racoon_flags="-4 -l /var/log/racoon.log"
Опции racoon_flags - "-4" - только протокол IP версии 4, файл журналов /var/log/racoon.log.
Создать файл журнала работы racoon "/var/log/racoon.log".
Перезапустить шлюз.
>>> Вариант 2 настройки шлюза на FreeBSD, используется сервер обмена ключами OpenBSD isakmpd.
Установить сервер обмена ключей OpenBSD isakmpd из портов FreeBSD,
проверен на работоспособность - isakmpd-20041207.
Настроить сервер, файл конфигурации /usr/local/etc/isakmpd/isakmpd.conf:
[General]
Listen-on=111.111.111.111
Retransmits=3
Exchange-max-time=120
Check-interval=180
Policy-file=/usr/local/etc/isakmpd/isakmpd.policy
[Phase 1]
81.195.251.170=ISAKMP-peer-Office2
Default=ISAKMP-peer-Office2
[Phase 2]
Connections=IPsec-peer-Office2
[ISAKMP-peer-Office2]
Phase=1
Local-address=111.111.111.111
Address=222.222.222.222
Authentication=test
Configuration=Office2-phase-1-configuration
[IPsec-peer-Office2]
Phase=2
ISAKMP-peer=ISAKMP-peer-Office2
Configuration=Office2-phase-2-configuration
Local-ID=Office1-network
Remote-ID=Office2-network
[Office1-network]
ID-type=IPV4_ADDR_SUBNET
Network=192.168.1.0
Netmask=255.255.255.0
[Office2-network]
ID-type=IPV4_ADDR_SUBNET
Network=192.168.2.0
Netmask=255.255.255.0
[Office2-phase-1-configuration]
EXCHANGE_TYPE=ID_PROT
Transforms=Office2-phase-1-transform
[Office2-phase-1-transform]
ENCRYPTION_ALGORITHM=3DES_CBC
HASH_ALGORITHM=MD5
AUTHENTICATION_METHOD=PRE_SHARED
GROUP_DESCRIPTION=MODP_768
Life=Office2-phase-1-lifetime
[Office2-phase-2-configuration]
DOI=IPSEC
EXCHANGE_TYPE=QUICK_MODE
Suites=Office2-phase-2-suite
[Office2-phase-2-suite]
Protocols=Office2-phase-2-protocols
[Office2-phase-2-protocols]
PROTOCOL_ID=IPSEC_ESP
Transforms=Office2-phase-2-transform
[Office2-phase-2-transform]
TRANSFORM_ID=3DES
ENCAPSULATION_MODE=TUNNEL
AUTHENTICATION_ALGORITHM=HMAC_MD5
Life=Office2-phase-2-lifetime
[Office2-phase-1-lifetime]
LIFE_TYPE=SECONDS
LIFE_DURATION=600,300:7200
[Office2-phase-2-lifetime]
LIFE_TYPE=SECONDS
LIFE_DURATION=600,300:7200
Настроить политики сервера, файл конфигурации
/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".
Создать директории:
/usr/local/etc/isakmpd/ca
/usr/local/etc/isakmpd/certs
/usr/local/etc/isakmpd/crls
/usr/local/etc/isakmpd/pubkeys
Установить загрузку 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 намеренно искажены.
---
Предложения и дополнения
Буду рад и благодарен. Присылайте на [email protected]
Благодарности
Бекетову Олегу, ТД БУРЫЙ МЕДВЕДЬ, http://www.planet.com.ru/
FreeBSD Project, http://www.freebsd.org/
Условия распространения Данный документ публикуется на условия GNU
General Public License версии 2 или любой более поздней по Вашему
выбору.
Технический специалист ООО "СиС"
Матыцын Д.Н.
21 июня 2005 года, версия 0.4
[email protected]