|
|
Все о софте Обсуждение программного обеспечения, проблемы и их решения - здесь. |
|
Опции темы |
#1 | |
Завсегдатай
Информация
![]() |
![]() День добрый. Решил поделиться опытом организации ВПН используя IKE(racoon).
Собственно ipsec/racoon был выбран по следующим причинам: 1) Высокая стабильность работы; 2) Кроссплатформенная реалиация (возможно объединение Linux<>Cisco; Linux<>Windows); 3) Наличие опыта организации впн используя ipsec/openswan. Собственно статья ориентированна на unix-like пользователей. Настройка производилась на шлюзах с debian lenny на борту, ядро 2.6.30. В принципе ОС значения не имеет, на redhat-like все делается аналогично. Реализаций ipsec существует с десяток. В моем случае рассматривается ipsec over gre. GRE был выбран в целях совместимости с cisco ipsec (хотя с ipsec на цисках дело не имел...но все когда нибудь может произойти...). Итак. Сначала устанавливаем необходимые пакеты: Код:
aptitude install ipsec-tools racoon Код:
modprobe ip_gre Далее привожу мой конфигурационный файл /etc/network/interfaces Хост слева (beta): Код:
auto eth0 allow-hotplug eth0 iface eth0 inet static network 82.140.78.112 gateway 82.140.78.113 address 82.140.78.114 broadcast 82.140.78.119 netmask 255.255.255.248 auto eth1 allow-hotplug eth1 iface eth1 inet static address 192.168.1.1 network 192.168.1.0 netmask 255.255.255.0 auto tun0 # описание виртуального gre туннеля iface tun0 inet static address 192.168.100.5 netmask 255.255.255.252 broadcast 192.168.100.7 up ifconfig tun0 multicast pre-up ip tunnel add tun0 mode gre local 82.140.78.114 remote 82.140.78.116 ttl 255 pointopoint 192.168.100.5 post-up ip link set tun0 mtu 1400 post-down ip link set tun0 down post-down ip tunnel del tun0 post-up ip r add 192.168.4.0/24 via 192.168.100.6 dev tun0 # маршрут в противоположную сеть Код:
auto eth0 allow-hotplug eth0 iface eth0 inet static network 82.140.78.112 gateway 82.140.78.113 address 82.140.78.116 broadcast 82.140.78.119 netmask 255.255.255.248 auto eth1 allow-hotplug eth1 iface eth1 inet static address 192.168.4.1 network 192.168.4.0 netmask 255.255.255.0 auto tun0 iface tun0 inet static address 192.168.100.6 netmask 255.255.255.252 broadcast 192.168.100.7 up ifconfig tun0 multicast pre-up ip tunnel add tun0 mode gre local 82.140.78.116 remote 82.140.78.114 ttl 255 pointopoint 192.168.100.5 post-up ip link set tun0 mtu 1400 post-down ip link set tun0 down post-down ip tunnel del tun0 post-up ip r add 192.168.1.0/24 via 192.168.100.5 dev tun0 # маршрут в противоположную сеть Racoon умеет работать в двух режимах: 1. direct 2. racoon-tool Первый вариант рекомендуемый (пока сам не понимаю почему), но настройка через racoon-tool является несколько более простой. При настройке через racoon-tool при каждом запуске racoon генерирует файл /var/lib/racoon/racoon.conf Редактирование режима работы осуществляется путем редактирования файла /etc/default/racoon В моем случае рассматривается первый вариант. Настройки firewall для первого хоста (beta) Для функционирования ipsec для IKE необходимо открыть udp порт 500 (ISAKMP), а также 4500 (NAT-T). Кроме этого необходимо обеспечить беспрепятственное прохождение пакетов по протоколу esp, ah и gre между удаленными хостами: Код:
iptables -t filter -A INPUT -p udp -s 82.140.78.116 -d 82.140.78.114 --dport 500 --j ACCEPT iptables -t filter -A INPUT -p udp -s 82.140.78.116 -d 82.140.78.114 --dport 4500 --j ACCEPT iptables -t filter -A INPUT -p esp -s 82.140.78.116 -d 82.140.78.114 -j ACCEPT iptables -t filter -A INPUT -p ah -s 82.140.78.116 -d 82.140.78.114 -j ACCEPT iptables -t filter -A INPUT -p gre -s 82.140.78.116 -d 82.140.78.114 -j ACCEPT Настройка /etc/ipsec-tool.conf Пример конфига первого хоста (beta): Код:
#!/usr/sbin/setkey -f # Flush the SAD and SPD flush; spdflush; spdadd 82.140.78.114 82.140.78.116 gre -P out ipsec esp/transport/82.140.78.114-82.140.78.116/require; spdadd 82.140.78.116 82.140.78.114 gre -P in ipsec esp/transport/82.140.78.116-82.140.78.114/require; Файл /etc/racoon/psk.txt В данном варианте рассматривается вариант с psk ключем. Однако на моем "боевом" сервере используются сертификаты X.509. Но это уже другая история... Итак. В psk.txt в качестве ключа можно использовать произвольный текст. Я же предлагаю Вам сгенерировать ключ например таким образом: Код:
dd if=/dev/random count=24 bs=1 |xxd -ps Код:
82.140.78.116 a20ca6efb4dc64ed23e6007f84d6b121e72bf16409edddf5 Настройка /etc/racoon/racoon.conf Подходим к финальной фазе. Настраиваем racoon.conf. Привожу пример для первого хоста (beta). Код:
path include "/etc/racoon"; path pre_shared_key "/etc/racoon/psk.txt"; log debug2; padding { maximum_length 20; randomize off; strict_check off; exclusive_tail off; } # по умолчанию racoon слушает все доступные интерфейсы listen { isakmp 82.140.78.114 [500]; } # тайминги timer { counter 5; interval 20 sec; persend 1; phase1 90 sec; phase2 60 sec; } remote 82.140.78.116 { my_identifier address 82.140.78.114; exchange_mode main,aggressive; # режим первой фазы. Означает порядок перебора. Использование aggressive не рекоммендкется doi ipsec_doi; proposal_check obey; proposal { encryption_algorithm 3des; hash_algorithm md5; authentication_method pre_shared_key; dh_group modp1024; lifetime time 3600 sec; } } sainfo anonymous { pfs_group 2; encryption_algorithm 3des; authentication_algorithm hmac_md5; compression_algorithm deflate; lifetime time 3600 sec; } На этом настройка окончена. Теперь необходимо рестартануть setkey и racoon на каждом из шлюзов и поднять виртуальный интерфейс tun0: Код:
/etc/init.d/setkey restart && /etc/init.d/racoon restart && ifup tun0 Код:
Feb 8 15:37:31 beta racoon: INFO: IPsec-SA established: ESP/Transport 82.140.78.114[500]->82.140.78.116[500] spi=40483762(0x269bbb2) Код:
tcpdump -i eth0 -p esp На этом вроде все...если что забыл, то буду дополнять. Жду комментариев/вопросов. Последний раз редактировалось andy-none; 12.02.2010 в 22:01.. |
![]() |
![]() |
![]() |
Метки |
ipsec, linux, psk, racoon, vpn |
Опции темы | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
организация WiFi в офисе | sergery74 | Сетевое оборудование | 9 | 21.04.2011 01:49 |
Организация видеонаблюдения | Char | Сетевое оборудование | 18 | 22.10.2009 15:35 |
Организация сетевого хранилища | Char | Все о софте | 3 | 17.08.2009 20:09 |
Как сэкономить трафик используя телефон в качестве модема? | toshaalex | Флейм | 18 | 15.01.2009 21:24 |
Организация RSS | Unix | Сетевые технологии | 7 | 21.11.2008 09:36 |