Küsimus: Настройка IPSec тоннеля между межсетевым экраном DFL-100 и FreeSwan (Linux)

Vastus: 

Содержание:

  • Введение
  • Конфигурирование
  • Проверка работы

Введение

Этот пример демонстрирует настройку IPSec тоннелей между маршрутизаторами на базе Linux и DFL-100.
Используемые технологии:

  • Протоколы ESP
  • Алгоритмы шифрования 3des
  • Аутентификация с использованием pre-shared key

Конфигурирование
Примечание: тестирование данной схемы проводилось в условиях лаборатории. В начале работы все устройства имели конфигурацию по умолчанию. Если у Вас работающая сеть, убедитесь, что Вы представляете всю потенциальную угрозу ее работоспособности от выполнения каждой команды

В этом разделе содержится информация о том, как настроить и использовать технологии, указанные выше. Более детальную информацию обо всех параметрах настройки IPSec на маршрутизаторе DI-804HV можно получить в руководстве пользователя.
Диаграмма тестовой сети:

 

Файлы конфигураций:

FreeSwan

Версия ядра Linux: 2.4.24
Версия FreeS/WAN: 1.96
Более подробную информацию по настройке FreeSwan можно получить на сайте проекта: http://www.freeswan.org/

Несколько важных замечаний перед настройкой:
Туннель между FreeSwan и DFL-100 возможен при условии шифрования по алгоритму 3des, использования DH group2 и аутентификации по алгоритму HMAC-MD5. Это связано с ограничениями в работе FreeSwan:

  • не работает с ключами короче 1024 (DH group2);
  • не поддерживает des;
  • аутентификация только по hmac (нет esp-auth).

Для настройки FreeSwan необходимо изменить два файла: ipsec.conf и ipsec.secrets. Настраивать протоколы шифрации, DH Group и т.д. не нужно - FreeSwan содержит уже предопределенные наборы конфигураций и в зависимости от настроек на соседнем устройстве подставлет необходимые настройки.

ipsec.conf:

# /etc/ipsec.conf - FreeS/WAN IPsec configuration file

# More elaborate and more varied sample configurations can be found
# in FreeS/WAN's doc/examples file, and in the HTML documentation.

# basic configuration
config setup
# THIS SETTING MUST BE CORRECT or almost nothing will work;
# %defaultroute is okay for most simple cases.
# interfaces=%defaultroute
interfaces="ipsec0=eth0"
# Debug-logging controls: "none" for (almost) none, "all" for lots.
klipsdebug=none
plutodebug=none
# Use auto= parameters in conn descriptions to control startup actions.
plutoload=%search
plutostart=%search
# Close down old connection when new one using same ID shows up.
uniqueids=yes

# defaults for subsequent connection descriptions
# (mostly to fix internal defaults which, in retrospect, were badly chosen)
conn %default
keyingtries=0
disablearrivalcheck=no
#authby=rsasig
leftrsasigkey=%dns
rightrsasigkey=%dns

# sample VPN connection
conn dfl-100
authby=secret
keylife=28800s
# Left security gateway, subnet behind it, next hop toward right.
left=192.168.100.25
leftsubnet=192.168.14.0/24
#leftnexthop=192.168.100.179
# Right security gateway, subnet behind it, next hop toward left.
right=192.168.100.201
rightsubnet=192.168.3.0/24
#rightnexthop=10.101.102.103
# To authorize this connection, but not actually start it, at startup,
# uncomment this.
auto=add

i

psec.secrets:

# This file holds shared secrets or RSA private keys for inter-Pluto
# authentication. See ipsec_pluto(8) manpage, and HTML documentation.

# RSA private key for this host, authenticating it to any other host
# which knows the public part. Suitable public keys, for ipsec.conf, DNS,
# or configuration of other implementations, can be extracted conveniently
# with "ipsec showhostkey".
#: RSA {
# -- not filled in because ipsec.secrets existed at build time --
# }
# do not change the indenting of that "}"
192.168.100.201 192.168.100.25: PSK "123456"

DFL-100

Версия ПО для DFL-100: тестировались 2.25.

Шаг 1. Настраиваем параметры IP на DFL-100

При помощи web-интерфейса настраиваем WAN (внешний IP) и LAN (внутренний IP) межсетевого экрана DFL-100.
Внутренний IP-адрес DFL-100 по умолчанию - 192.168.0.1, поэтому компьютеру, с которого конфигурируется устройство, нужно назначить IP- адрес типа 192.168.0.х
Логин по умолчанию - "admin" , пароль пустой.

Для того чтобы внести изменения в конфигурацию межсетевого экрана, после всех сделанных изменений на соответствующей странице web-интерфейса нужно нажать кнопку Apply.
На WAN интерфейсе настраиваем статический IP - адрес, маску подсети, шлюз по умолчанию.
На LAN интерфейсе настраиваем IP-адрес, соответствующий адресации, принятой в вашей сети. В данном случае IP - адрес будет 192.168.3.1
Проверить настройки можно на вкладке Device Status:

 

Шаг 2. Настраиваем IPSec на DFL-100.

В первую очередь, на вкладке Advanced Settings / VPN Settings /IPSec Status настраиваем статус IPSec. По умолчанию, IPSec включен.
Важно!
Настраиваем параметр Negotiation ID - этот параметр, заданный на DFL-100, служит для организации тоннеля и указывается на удаленном устройстве в привязке к ключу шифрации. Т.к. на FreeSwan ключ шифрации мы привязываем к IP адресу, то в данной схеме мы должны на DFL-100 указать в поле Negotiation ID IP - адрес wan интерфейса DFL-100. Иначе тоннель не будет установлен!
Т.о. в данной схеме Negotiation ID = 192.168.100.201

 

Далее, на вкладке Advanced Settings / VPN Settings / IPSec Tunnel Mode задаем настройки для конкретного тоннеля. За подробностями понимания всех этих настроек можно обратится к документации по IPSec - она широко представлена в Интернет.
В данном случае на этой вкладке, при работе с маршрутизатором Linux, поле Negotiation ID носит информативный характер - можно указать любое значение.
Далее, параметр Remote Gateway IP - это IP-адрес WAN-интерфейса устройства, стоящего на другом конце тоннеля, т.е. 192.168.100.25
Параметр Remote IP Network - это внутренняя сеть LAN, подключенная к устройству, стоящему на другом конце тоннеля, т.е. 192.168.14.0
Параметр Remote IP Netmask - маска подсети для предыдущего пункта, т.е. 255.255.255.0
Все остальные параметры должны быть одинаковые на обоих устройствах, организующих IPSec соединение.
Примечание: Здесь выбор настроек определяется пользователем исходя из требований производительности или надежности. Приведенные ниже настройки даны в качестве примера. Вы также можете использовать другие комбинации - необходимое требование при этом одно: настройки должны быть идентичны на обоих устройствах, организующих IPSec тоннель!

 

Все, на этом конфигурирование устройств закончено

Проверка

Теперь для поднятия тоннеля между устройствами посылаем icmp-запрос из одной подсети в другую:

 

Тоннель устанавливается за несколько секунд и после этого пакеты icmp, как и весь остальной трафик между сетями, направляются именно по тоннелю IPSec.

Тоннель устанавливается за несколько секунд и после этого пакеты icmp между сетями направляются именно по тоннелю IPsec.
Отследить установку тоннеля IPSec на DFL-100, а также в случае необходимости терминировать тоннель можно на вкладке Device Status / VPN Statistics:

 

Для поиска ошибок со стороны FreeSwan используется debug