Настройка IPSec на роутере WRT160NL с OpenWRT.

Mashrooms Peter аватар

wrt160nl

Хотелось бы рассказать о том, как настроить IPSec тунель на роутере WRT160NL под управлением OpenWRT.
Многие могут возразить, что инструкций по настройке IPSec'а полно в интернете, но настройка под OpenWRT на этом роутере имеет свои особености.

Итак, имеем подключение со следующими параметрами.

Адрес удаленного сервера A.A.A.A
Удаленная сеть a.a.a.a/a
Адрес роутера B.B.B.B
Локальная сеть b.b.b.b/b

Фаза 1
PSK nnnnnnn
Алгоритм шифрования(encryption_algorithm) 3des
Алгоритм хеширования(hash_algorithm) sha1
Diffie-Hellman_group modp1024
Время жизни ключа(lifetime) 28800 sec

Фаза 2
Diffie-Hellman_group modp1024
Алгоритм шифрования(encryption_algorithm) 3des
authentication_algorithm) hmac_sha1
Алгоритм сжатия(compression_algorithm) deflate
Время жизни ключа(lifetime) 3600 sec

Перейдем к настройке.
1.Устанавливаем необходимые пакеты

  1. # opkg update
  2. # opkg install ipsec-tools kmod-crypto-authenc kmod-ipsec kmod-ipsec4

2.Редактируем конфигурационный файл /etc/racoon.conf и приводим его к следующему виду

  1. path pre_shared_key "/etc/racoon/psk.txt";
  2. path certificate "/etc/racoon/certs";
  3. path include "/etc/racoon";
  4. log debug2;
  5. padding {
  6.         maximum_length 20; # maximum padding length.
  7.         randomize off;  # enable randomize length.
  8.         strict_check off; # enable strict check.
  9.         exclusive_tail off; # extract last one octet.
  10. }
  11.  
  12. remote A.A.A.A {
  13.         exchange_mode main;
  14.         situation identity_only;
  15.         lifetime time 28800 sec ; # sec,min,hour
  16.         proposal {
  17.                 encryption_algorithm 3des ;
  18.                 hash_algorithm sha1 ;
  19.                 authentication_method pre_shared_key ;
  20.                 dh_group 2 ;
  21.         }
  22. }
  23.  
  24. sainfo address b.b.b.b/b[any] any address a.a.a.a/a[any] any {
  25.         pfs_group 2;
  26.         lifetime time 3600 sec ;
  27.         encryption_algorithm 3des;
  28.         authentication_algorithm hmac_sha1;
  29.         compression_algorithm deflate;
  30. }

3.Дальше нужно записать в файл /etc/racoon/setkey.conf следующее

  1. #! /usr/sbin/setkey -f flush;
  2.  
  3. spdflush;
  4. spdadd b.b.b.b/b[any] a.a.a.a/a[any] any -P out ipsec esp/tunnel/B.B.B.B-A.A.A.A/require;
  5. spdadd a.a.a.a/a[any] b.b.b.b/b[any] any -P in ipsec esp/tunnel/A.A.A.A-B.B.B.B/require;

3.В файл /etc/racoon/psk.txt записывается Pre-Shared Key

  1. A.A.A.A nnnnnnn

и устанавливаются права 600

  1. # chmod 0600 /etc/racoon/psk.txt

4.Теперь нужно добавить правила для фаервола, для этого в файл /etc/firewall.user нужно добавить

  1. iptables -A input_rule -p esp -s A.A.A.A -j ACCEPT # allow IPSEC
  2. iptables -A input_rule -p udp -s A.A.A.A --dport 500 -j ACCEPT # allow ISAKMP
  3. iptables -A input_rule -p udp -s A.A.A.A --dport 4500 -j ACCEPT # allow NAT-T
  4. iptables -t nat -A postrouting_rule -d a.a.a.a/a -j ACCEPT

и перезапустить его

  1. # /etc/init.d/firewall restart

Собственно настройка завершена, теперь нужно подключится.

1.А вот теперь особености . Для работы racoon-а необходимы следующие модули af_key, esp4, ah4, authenc, xfrm4_tunnel, xfrm4_mode_tunnel. Загружаются они командой insmod

  1. # insmod af_key
  2. # insmod esp4
  3. # insmod ah4
  4. # insmod xfrm4_tunnel
  5. # insmod authenc
  6. # insmod xfrm4_mode_tunnel

2.Теперь нужно создать alias для интерфейса wan, который будет служить шлюзом сети

  1. # ifconfig eth1:0 b.b.b.b netmask 255.255.255.0

3.Далее создается рабочий каталог

  1. # mkdir /var/racoon

4.Теперь можно запустить racoon

  1. # racoon

если необходимо запустить racoon в режиме отладки то нужно выполнить эту команду с ключем -Fd

  1. # racoon -Fd

5.Запускаем setkey

  1. # setkey -f /etc/racoon/setkey.conf

6.И создаем соединение

  1. # racoonctl vpn-connect A.A.A.A

Все, тунель работает. Если тунель не заработал, то смотрите вывод демона racoon -Fd
Теперь можно создать init скрипт в каталоге /etc/init.d для автоматического поднятия тунеля, о том как это сделать я расскажу позже.

За создание материала,большая благодарность админам сайта Трамброид.

Ваша оценка: Ничего Средняя оценка: 8.7 (7 votes)
RSS-материал