|
www.lissyara.su
—> статьи
—> FreeBSD
—> Security
—> DSL-G804V и FreeBSD 6.2
VPN-туннель между D-Link DSL-G804V и FreeBSD 6.2
Автор: freeman_tnu.
Предистория
В один "прекрасный" день появился у компании, где я работаю сисадмином, удаленный офис. Естественно встал вопрос о объединении двух офисов в одну локальную сеть посредством VPN-туннеля. За что я и взялся...
Что имеем
Главный офис - локальная сеть 192.168.100.0/24 на основе Win2003 Active Directory, выход в инет через шлюз FreeBSD 6.2 + почтовый сервер FreeBSD 6.2, находящийся в DMZ шлюза (реализовано через if_bridge не без помощи статьи http://www.lissyara.su/?id=1305)
IP шлюза 192.168.100.2 и внешний 62.134.22.121
Удаленный офис - локальная wi-fi сеть 192.168.1.0/24, выход в инет через беспроводной ADSL-маршрутизатор D-Link DSL-G804V (имеет возможность поднятия VPN трех видов: PPTP, IPSec, L2TP)
IP маршрутизатора 192.168.1.1 и внешний 81.84.224.15
Как реализуем
Решил строить VPN на основе IPSec и сразу же пошел читать соответствующую статью http://www.lissyara.su/?id=1328
На шлюзе, после пересборки ядра для поддержки IPSec и после установки ipsec-tools-0.6.7, полез править конфиг /etc/rc.conf
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"
| Дальше правим /etc/ipsec.conf, если его нету нужно создать
flush;
spdflush;
spdadd 192.168.100.0/24 192.168.1.0/24 any -P out ipsec
esp/tunnel/62.134.22.121-81.84.224.15/require;
spdadd 192.168.1.0/24 192.168.100.0/24 any -P in ipsec
esp/tunnel/81.84.224.15-62.134.22.121/require;
| Настраиваем /usr/local/etc/racoon/racoon.conf
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 62.134.22.121 [500];
}
timer
{
# These value can be changed per remote node.
counter 5; # maximum trying count to send.
interval 10 sec; # maximum interval to resend.
persend 1; # the number of packets per send.
# maximum time to wait for completing each phase.
phase1 30 sec;
phase2 15 sec;
}
remote anonymous
{
exchange_mode main,aggressive;
doi ipsec_doi;
situation identity_only;
my_identifier user_fqdn "free_m@domain.com.ua";
peers_identifier user_fqdn "free_m@domain.com.ua";
nonce_size 16;
lifetime time 480 min; # sec,min,hour
initial_contact on;
support_proxy on;
proposal_check obey; # obey, strict, or claim
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
# Аунтификация только по ключу, т.к. у маршрутизатора
# DSL-G804V нет возможности использования сертификатов в IPSec VPN-сервере
authentication_method pre_shared_key;
dh_group 1;
}
}
sainfo anonymous
{
pfs_group 1;
lifetime time 60 min;
encryption_algorithm 3des;
authentication_algorithm hmac_md5;
compression_algorithm deflate;
}
| Настраиваем файл ключей /usr/local/etc/racoon/psk.txt
# cat /usr/local/etc/racoon/psk.txt
81.84.224.15 blabla_@1G
|
chmod 0600 /usr/local/etc/racoon/psk.txt
| В firewall добавляем следующие правила:
allow udp from 81.84.224.15 to me dst-port 500
allow esp from me to 81.84.224.15
allow esp from 81.84.224.15 to me
| На стороне FreeBSD шлюза все. Теперь переходим к настройке маршрутизатора.
Идем в закладку Advanced дальше в дереве слева выбираем VPN и в появившемся окне кликаем на IPSec, куда и вносим наши данные:
Также не забываем пойти по ссылке Advanced Options и добавить окончательные настройки тунеля:
Применяем все изменения Apply, чтобы активировать сразу же тунель необходимо выбрать параметр Enable after 'Apply' в позицию "Yes" и снова сохранить все настройки.
Чтобы маршрутизатор видел сеть за фрей добавляем роутинг - идем в закладку Advanced дальше в дереве слева выбираем Routing:
Ну вот и все. Чтобы все изменения вступили в силу делаем LogOut и сохраняем настройки.
На фре запускаем racoon
/usr/local/sbin/racoon -F -v -f /usr/local/etc/racoon/racoon.conf
| И также добавляем роутинг на сеть за маршрутизатором
route add 192.168.1.0/24 81.84.224.15
| И смотрим на маршрутизаторе состояние подключения
Как видим соединение установлено. Проверяем пинги и все остальное. Все работает. Каждая сеть видит друг-друга.
размещено: 2007-09-14,
последнее обновление: 2007-09-16,
автор: freeman_tnu
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
Комментарии пользователей [24 шт.]