The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Установка и настройка маршрутизатора удаленного филиала компании. (vpn cisco freebsd gif tunnel ipsec)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: vpn, cisco, freebsd, gif, tunnel, ipsec,  (найти похожие документы)
From: one@sysadmins.ru Newsgroups: email Date: Mon, 9 Dec 2003 14:31:37 +0000 (UTC) Subject: Установка и настройка маршрутизатора удаленного филиала компании. Оригинал: http://npo.businessgrad.ru/~alexey/freebsd.html Установка и настройка маршрутизатора удаленного филиала компании на основе FreeBSD e-mail: one@sysadmins.ru Задача: установить и настроить машрутизатор, имеющий защищенный с помощью IPsec туннель с головным офисом (маршрутизатор Cisco) и имеющий выход в Интернет через собственного провайдера. Устанавливаем FreeBSD 4.8 на машину с двумя сетевыми платами, определяем в настройках конфигурации сетевых плат: rl0: 213.85.11.100/27 - подключение к провайдеру rl1: 192.168.100.1/24 - подключение к локальной сети филиала задаем в файле /etc/resolv.conf адреса днс-серверов провайдера. В файле /etc/rc.conf прописываем путь по умолчанию: defaultrouter="213.85.11.97" Убеждаемся в наличии Интернета. ping www.rambler.ru Если все работает, идем дальше. cd /sys/i386/conf cp GENERIC MYKERN ee MYKERN Переконфигурируем ядро. Намнеобходима поддержка: options IPFIREWALL options IPDIVERT ; для работы NAT'а и файрволла options IPSEC options IPSEC_ESP options IPSEC_DEBUG ; для работы IPSEC pseudo-device gif ; для работы туннеля Убрав все лишнее из ядра, и немного его поднастроив, делаем команды: cd /usr/src make buildkernel KERNCONF=MYKERN make installkernel KERNCONF=MYKERN Если ядро установилось нормально, добавляем в /etc/rc .conf строки: firewall_enable="YES" firewall_type="/etc/firewall.conf" natd_enable="YES" natd_flags="-u -d -a 213.85.11.100" ; включение динамического НАТирования на внешний адрес 213.85.11.100 всех пакетов с адресами незарегестрированных сетей (192.168.х.х, 172.16.х.х, 10.х.х.х) gateway_enable="YES" Внимание: необходимо отдавать себе отчет, что настройку файрволла лучше производить с физической консоли, иначе вы рискуете оказаться отключенным от консоли правилом по умолчанию 65535 deny all from any to any. Редактируем файл /etc/firewall.conf: ; заворачивать в демон ната все пакеты из внутренней сети add 100 divert natd all from 192.168.100.0/24 to any out recv rl1 xmit rl0 ; заворачивать в демон все пакеты, пришедшие снаружи не с адресов нашей сети (головного офиса) add 200 divert natd all from not 192.168.0.0/16 to 213.85.11.100 recv rl0 add 65000 allow all from any to any Перезагружаемся. Проверям с клиентской машины - ping www.rambler.ru NAT работает, запросы успешно проходят через роутер и возвращаются обратно. Если не так, можно запустить natd с ключом -v и наблюдать на консоли отладочную информацию. Настало время делать туннель. Убеждаемся, что с роутера пингуется наша циска в центральном офисе: ping 80.31.234.98 В файл rc .conf прописываем параметры туннеля: gif_interfaces="gif0" gifconfig_gif0="213.85.11.100 80.31.234.98" ifconfig_gif0="inet 192.168.5.2 192.168.5.1 netmask 255.255.255.252" Осталось внести маршрутную информацию о сети офиса: route add -net 192.168.10 -netmask 255.255.255.0 192.168.5.2 Я прописываю эту команду в файл /etc/rc.local для автоматического выполнения при загрузке. Вы также можете использовать динамическую маршрутизацию. На стороне циски прописываем: interface Tunnel70 description test-tunnel1 ip address 192.168.5.1 255.255.255.252 tunnel source FastEthernet0/0.9 (или IP-адресцисковскогоинтерфейса) tunnel destination 213.85.11.100 tunnel mode ipip в конфигурационном режиме циски делаем: iproute 192.168.100.0 255.255.255.0 Tunnel70 , т.е. направляем в туннель весь трафик, относящийся к подсети филиала. Туннель должен работать. Однако вот незадача: все исходящие из интерфейса rl 0 пакеты идут на обработку демону natd , который их отбрасывает, потому что они имеют адрес назначения из невнешней сети. Добавляем в /etc/firewall.confтакие строки: add 10 allow ip from 192.168.0.0/16 to 192.168.0.0/16 add 20 allowipfrom 80.31.234.98 to 213.85.11.100 делаем ipfw flush && ipfw /etc/firewall Проверяем настройку правил файроволла: ipfw list 0010 allow ip from 192.168.0.0/16 to 192.168.0.0/16 0020 allow ip from 80.31.234.98 to 213.85.11.100 0100 divert natd all from 192.168.100.0/24 to any out recv rl1 xmit rl0 0200 divert natd all from not 192.168.0.0/16 to 213.85.11.100 recv rl0 65000 allow all from any to any 65535 deny ip from any to any Пингуем с роутера: ping 192.168.5.1, все ок Пингуем с клиентской машины ping 192.168.10.1 и ping www.rambler.ru Туннель установился и работает. Осталось его зашифровать. В FreeBSD необходимо установить программу raccoon. Можно собрать из портов: cd /usr/ports/security/raccoon make make install Либо установить из пакаджей. /stand/sysinstall - configure - packages. Я предпочел второй вариант. Прописываем в rc.conf: ipsec_enable="YES" Создаем файл /etc/ipsec.conf: flush; spdflush; spdadd 213.85.11.100 80.31.234.98 any -P out ipsec esp/transport/213.85.11.100-80.31.234.98/require; spdadd 80.31.234.98 213.85.11.100 any -P in ipsec esp/transport/80.31.234.98-213.85.11.100/require; Заходим в /usr /local/etc/raccoon. Видим там несколько файлов примеров конфигурации. Создаем новый файл psk.txt в котором всего одна строка: 80.31.234.98 secret_phrase Делаем файл конфигурации cp raccoon.conf.dist raccoon.conf Редактируем его: path include "/usr/local/etc/racoon" ; path pre_shared_key "/usr/local/etc/racoon/psk.txt" ; log notify; 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 ::1 [7000]; #isakmp 202.249.11.124 [500]; #admin [7002]; # administrative's port by kmpstat. #strict_address; # required all addresses must be bound. } timer { counter 5; # maximum trying count to send. interval 20 sec;# maximum interval to resend. persend 1; # the number of packets per a send. phase1 30 sec; phase2 15 sec; } remote anonymous { exchange_mode main,aggressive; doi ipsec_doi; situation identity_only; my_identifier user_fqdn "sakane@kame.net"; peers_identifier user_fqdn "sakane@kame.net"; nonce_size 16; lifetime time 1 min; # sec,min,hour initial_contact on; support_mip6 on; proposal_check obey; # obey, strict or claim proposal { lifetime time 3600 sec; # sec,min,hour encryption_algorithm des; hash_algorithm md5; authentication_method pre_shared_key ; dh_group 1 ; } } sainfo anonymous { pfs_group 1; lifetime time 3600 sec; encryption_algorithm des ; authentication_algorithm non_auth; compression_algorithm deflate ; } запускаем raccoon строкой: raccoon -v -f /usr/local/etc/raccoon/raccoon.conf -l /var/log/raccoon.log Просматриваем лог на предмет подозрительностей. Если таковых нет, прописывем эту команду в автозапуске /etc/ rc .local (можно убрать ключ -v, чтобы уменьшить количество сообщений от демона) Конфигурация ipsec на cisco: crypto isakmp policy 1 (или другой номер) hash md5 authentication pre-share lifetime 3600 crypto isakmp key secret_phrase address 213.85.11.100 crypto ipsec transform-set test_trans esp-des esp-md5-mac mode transport crypto map test_map 1 (или другой номер) ipsec-isakmp set peer 213.85.11.100 set transform-set test_trans set pfs group1 match address 133 access-list 133 permit ip host 80.31.234.98 host 213.85.11.100 Interface tunnel 70 crypto map test_map Interface FastEthernet 0/0.9 crypto map test_map Проверяем работу туннеля и НАТа обычными способами: ping, tracert в сторону офиса и Интернета.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру