From: Andrew Machulan <machulan@mail.ru>
Newsgroups: email
Date: Mon, 4 Jul 2003 14:31:37 +0000 (UTC)
Subject: Создание VPN во FreeBSD на базе IPSEC и racoon
Создание VPN во FreeBSD на базе IPSEC и racoon.
Исходим из предположения, что вам понадобилось объединить два офиса,
шлюзами для которых в интернет являются машины с установленными на них
FreeBSD. Я проделывал все это на FreeBSD 4.8.
Исходим из таких адресов на шлюзах:
Шлюз 1.
Внешний IP (смотрящий в инет) - xxx.xxx.xxx.xxx
Внутренний IP (смотрящий в сеть) - 10.1.1.1
Внутренняя сеть - 10.1.1.0/24
Шлюз 2.
Внешний IP (смотрящий в инет) - yyy.yyy.yyy.yyy
Внутренний IP (смотрящий в сеть) - 10.1.2.1
Внутренняя сеть - 10.1.2.0/24
Одного поднятия тоннеля мало, нам надо настроить еще и IPSEC.
Создаем файл /etc/ipsec.conf, в который пишем следующее:
Шлюз 1.
flush;
spdflush;
spdadd 10.1.1.0/24 10.1.2.0/24 any -P out ipsec esp/tunnel/xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy/require;
spdadd 10.1.2.0/24 10.1.1.0/24 any -P in ipsec esp/tunnel/yyy.yyy.yyy.yyy-xxx.xxx.xxx.xxx/require;
Шлюз 2.
flush;
spdflush;
spdadd 10.1.2.0/24 10.1.1.0/24 any -P out ipsec esp/tunnel/yyy.yyy.yyy.yyy-xxx.xxx.xxx.xxx/require;
spdadd 10.1.1.0/24 10.1.2.0/24 any -P in ipsec esp/tunnel/xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy/require;
Осталось только поставить и настроить racoon, который будет заниматься
обменом ключей.
# "path" must be placed before it should be used.
# You can overwrite which you defined, but it should not use due to confusing.
path include "/usr/local/etc/racoon" ;
#include "remote.conf" ;
# search this file for pre_shared_key with various ID key.
path pre_shared_key "/usr/local/etc/racoon/psk.txt" ;
# racoon will look for certificate file in the directory,
# if the certificate/certificate request payload is received.
path certificate "/usr/local/etc/cert" ;
# "log" specifies logging level. It is followed by either "notify", "debug"
# or "debug2".
#log debug;
# "padding" defines some parameter of padding. You should not touch these.
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.
}
# if no listen directive is specified, racoon will listen to all
# available interface addresses.
listen
{
#isakmp ::1 [7000];
#isakmp 202.249.11.124 [500];
#admin [7002]; # administrative's port by kmpstat.
#strict_address; # required all addresses must be bound.
}
# 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 30 sec;
phase2 15 sec;
}
remote anonymous
{
#exchange_mode main,aggressive;
doi ipsec_doi;
situation identity_only;
Если наблюдаем, значит все у нас шифруется, а то что пинги идут
доказывает то, что racoon сделал свое темное дело и обменялся ключами :)
Возможно вам не захочется чтобы все машины из ваших подсеток видели друг
друга, у меня это решено с помощью ipf следующим образом:
pass in quick on xl1 from 10.1.1.51/32 to 10.1.2.0/24
pass in quick on xl1 from 10.1.1.58/32 to 10.1.2.0/24
block in quick on xl1 from 10.1.1.0/24 to 10.1.2.0/24
Здесь xl1 мой внутренний интерфейс. Мы пускаем в тоннель только машины
10.1.1.51 и 10.1.1.58 - остальные могут расслабиться :)
1257 Прочтений • [Создание VPN во FreeBSD на базе IPSEC и racoon (freebsd ipsec vpn racoon security tunnel)] [08.05.2012] [Комментариев: 0]