В целом, надо сказать, настройка VPN на базе IPSec производится несколько легче, нежели настройка PPTP и mpd на FreeBSD, да и IPSec наиболее проверенный временем протокол.
Соединение VPN через IPSec наиболее подходит для соединения целых удаленных сетей между собой, поддерживается целой армией специализированных устройств (даже за $50-$70 можно купить такой роутер).
К слову, PPTP подходит для единичных подключений к сети из различных удаленных точек, к примеру, если сотрудиник едет в командировку, и ему нужен доступ к сети (и не важно каким способом он подключен к Интернет, это может быть даже GPRS).
Дано:
корпоративная сеть с публичным адресом xxx.xxx.xxx.xxx
внутренняя сеть: 192.168.0.0
удаленный офис с публичным адресом yyy.yyy.yyy.yyy (иметь честный адрес - обязательное условие)
и выделенной подсетью, скажем, 192.168.2.0
Цель: связать два офиса по криптованному каналу и настроить маршрутизацию.
Для удаленного офиса была выбрана коробайка EP-4804 -то что в тот момент оказалось под рукой. Ведь мы же не хотим ездить в другой город, поэтому целый сервер передавать невыгодно, ведь нам за ним, в случае чего, следить :)
Плюсы в использовании таких коробочек:
можно настроить и передать посылкой в удаленный офис,
отсутствие движущихся частей, а следовательно надежность,
стоимость,
можно настроить две таких коробочки и будет некий failover.
Все настройки приведены ниже:
Что бы избежать перезагрузки:
ipconfig gif0 create
gifconfig gif0 xxx.xxx.xxx.xxx
ipconfig gif0 inet 192.168.0.1 192.168.2.1 netmask 255.255.255.0
touch /etc/ipsec.conf
заполняем ipsec.conf
setkey -f /etc/ipsec.conf
редактируем racoon.conf
вносим ключ в psk.txt и не забываем выставить правильные права (возможен из-за неправильных прав глюк).
запускаем /usr/local/etc/rc.d/racoon.sh start
и ждем коннектов.
туннель должен подниматься при наличии любого трафика в сеть 192.168.2.x и наоборот.
из файла rc.conf (все все аналогично строкам выше, дабы при загрузке все поднялось автоматом)
----------------------------------------
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"
gifconfig_gif0="xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy"
ifconfig_gif0="inet 192.168.2.1 192.168.0.1 netmask 255.255.255.0"
racoon_enable="yes"
----------------------------------------
создаем в /etc/ipsec.conf
----------------------------------------
flush;
spdflush;
spdadd 192.168.0.0/24 192.168.2.0/24 any -P out ipsec esp/tunnel/xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy/require;
spdadd 192.168.2.0/24 192.168.0.0/24 any -P in ipsec esp/tunnel/yyy.yyy.yyy.yyy-xxx.xxx.xxx.xxx/require;
----------------------------------------
в настройках коробочки и сервера racoon не забываем указать пароль (общий ключ для обмена).
из racoon.conf
----------------------------------------
В целях экономии места много комментариев "по умолчанию" было удалено.
# $KAME: racoon.conf.in,v 1.18 2001/08/16 06:33:40 itojun Exp $
path include "/usr/local/etc/racoon" ;
path pre_shared_key "/usr/local/etc/racoon/psk.txt" ;
path certificate "/usr/local/etc/cert" ;
padding
{
maximum_length 20; # maximum padding length.
randomize off; # enable randomize length.
strict_check off; # enable strict check.
exclusive_tail off; # extract last one octet.
}
listen
{
isakmp xxx.xxx.xxx.xxx;
}
timer
{
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 30 sec;
phase2 15 sec;
}
remote anonymous
{
exchange_mode main;
doi ipsec_doi;
lifetime time 24 hour; # sec,min,hour
proposal {
encryption_algorithm 3des;
hash_algorithm md5;
authentication_method pre_shared_key ;
dh_group 1;
}
}
sainfo anonymous
{
lifetime time 28800 sec;
encryption_algorithm 3des ;
authentication_algorithm hmac_md5;
compression_algorithm deflate ;
}
и не забываем подправить таблицу роутинга:
route add -net 192.168.2.0/24 -gateway 192.168.2.1
Рабочим состоянием будем считать прохождение пингов и отсутствие "failed" в логах сервера.
Оставить комментарий