BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: Чт 26 янв, 2006 4:48 pm 
Не в сети
Newsmaker

Зарегистрирован: Пт 20 янв, 2006 12:25 pm
Сообщения: 2
Откуда: Самара
Создание шифрованного VPN туннеля во FreeBSD
Вам потребовалось объединить доп. офис и главное отделение, но с обоих сторон есть только выход в интернет. К тому же желательно, чтобы это соединение было хорошо защищено. Итак, приступим! :)
Что нам необходимо: (минимально)
2 машинки (166 MMX, 32 Mb оперативки, 2 сетевых карты, 1GB винт)
Значит так, первое что нам необходимо - ставим FreeBSD ;-) далее ставим коллекцию портов.

Исходим из таких адресов на шлюзах:
Шлюз #1.
Внешний IP (смотрящий в инет) - xxx.xxx.xxx.xxx
Внутренний IP (смотрящий в сеть) - 192.168.1.1
Внутренняя сеть - 192.168.1.0/24
Шлюз #2
Внешний IP (смотрящий в инет) - yyy.yyy.yyy.yyy
Внутренний IP (смотрящий в сеть) - 192.168.2.1
Внутренняя сеть - 192.168.2.0/24

Приступим.
Для начала добавим в ядро поддержку IPSEC, Firewall. На обоих шлюзах пересобираем ядро - идем в каталог /usr/src/sys/i386/conf и даем команду:
cp GENERIC my
Теперь редактируем файл ?my? и добавляем в него строки:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET
options TCP_DROP_SYNFIN
options IPSEC
options IPSEC_ESP
options IPSTEALTH
pseudo-device gif
попутно отключаем устройства, которые не присутствуют в вашей системе, делается это обычным комментированием.
Примечание: для старых версий FreeBSD надо еще добавить количество gif интерфейсов, к примеру вот так:
pseudo-device gif 4

Пересобираем ядро: в каталоге /usr/src/sys/i386/conf даем команду
config my
Если все в порядке, идем в каталог /usr/src/sys/i386/compile, иначе штудируем файл ?my? и повторяем попытку... Будем считать, что все хорошо :) далее даем команды:
make depend
make
make install

Сейчас мы создадим туннель между двумя сетями:

Шлюз #1:
ifconfig gif0 create tunnel xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy
ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 255.255.255.255 mtu 1450
route add 192.168.2.0 192.168.2.1

Шлюз #2:
ifconfig gif0 create tunnel yyy.yyy.yyy.yyy xxx.xxx.xxx.xxx
ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 255.255.255.255 mtu 1450
route add 192.168.1.0 192.168.1.1

Сделаем скрипт, который будет нам автоматически создавать туннель при загрузке. Создадим файл gif.sh и впишем в него команды выше. Далее дадим на него права:
chmod 100 gif.sh
И положим в каталог /usr/local/etc/rc.d (если он не существует - просто создадим этот каталог). Теперь каждый раз при старте системы будут выполняться команды создания туннеля :)
Можем попробовать пропинговать другую сеть. Компьютеры видят друг друга, общие ресурсы доступны, но это соединение еще не защищено. Теперь этим и займемся!
Добавим в файл (на обоих шлюзах он будет одинаковый) /etc/rc.conf параметры отвечающие за запуск IPSEC и Firewall:

ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"
gateway_enable="YES"
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_logging="YES"
Далее создадим файл /etc/ipsec.conf, в который пишем следующее:
Шлюз #1.

spdadd xxx.xxx.xxx.xxx/32 yyy.yyy.yyy.yyy/32 ipencap -P out ipsec esp/tunnel/xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy/require;
spdadd yyy.yyy.yyy.yyy/32 xxx.xxx.xxx.xxx/32 ipencap -P in ipsec esp/tunnel/yyy.yyy.yyy.yyy-xxx.xxx.xxx.xxx/require;
Шлюз #2.

spdadd yyy.yyy.yyy.yyy/32 xxx.xxx.xxx.xxx/32 ipencap -P out ipsec esp/tunnel/yyy.yyy.yyy.yyy-xxx.xxx.xxx.xxx/require;
spdadd xxx.xxx.xxx.xxx/32 yyy.yyy.yyy.yyy/32 ipencap -P in ipsec esp/tunnel/xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy/require;
Осталось только поставить и настроить racoon, который будет заниматься
обменом ключей.

На обоих шлюзах:
cd /usr/ports/security/racoon
make install

Правим файл конфигурации /usr/local/etc/racoon/racoon.conf. Единственное, что там нужно сделать - раскомментировать строку и вписать внешний IP адрес шлюза:
listen
{
isakmp xxx.xxx.xxx.xxx [500];
}

Далее нам требуется задать пароль для установления сессии. Правим файл usr/local/etc/racoon/psk.txt:
#Шлюз 1.
yyy.yyy.yyy.yyy password:)

#Шлюз 2.
xxx.xxx.xxx.xxx password:)

Запускаем racoon:
/usr/local/sbin/racoon -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon

Теперь нам нужно разрешить трафик по нашему туннелю. Это делается правкой файла /etc/rc.firewall:

fwcmd="/sbin/ipfw"
${fwcmd} -f flush

${fwcmd} add pass all from any to any via gif0
${fwcmd} add pass udp from xxx.xxx.xxx.xxx to yyy.yyy.yyy.yyy isakmp
${fwcmd} add pass udp from yyy.yyy.yyy.yyy to xxx.xxx.xxx.xxx isakmp
${fwcmd} add pass esp from xxx.xxx.xxx.xxx to yyy.yyy.yyy.yyy
${fwcmd} add pass esp from yyy.yyy.yyy.yyy to xxx.xxx.xxx.xxx
${fwcmd} add pass ipencap from xxx.xxx.xxx.xxx to yyy.yyy.yyy.yyy
${fwcmd} add pass ipencap from yyy.yyy.yyy.yyy to xxx.xxx.xxx.xxx

Вот и все. Остается собственно только перегрузить шлюзы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт 27 янв, 2006 2:12 pm 
Не в сети
Newsmaker
Аватара пользователя

Зарегистрирован: Пт 05 мар, 2004 9:34 am
Сообщения: 754
Откуда: Новосибирск
Зачем повторяться ...
ИМХО Если есть что дополнить, то лучше исправить вот это

http://www.bsdportal.ru/kb.php?mode=article&k=84


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн 26 мар, 2007 7:38 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс 05 фев, 2006 11:33 pm
Сообщения: 516
Откуда: Санкт-Петербург
2 машинки (166 MMX, 32 Mb оперативки, 2 сетевых карты, 1GB винт)

Ну такой раритет рабочий еще поискать надо вначале .. так что вначале ищем и нарываем. И до кучи дистрибутив портов будет не меньше 400 метров на винте при распаковке... и короче собираться ничего на 1гб винте не будет((( сочувтсвую(( минимум 3.2 ((

Значит так, первое что нам необходимо - ставим FreeBSD

для этого уходим куда нить пить пиво или в гараж кому что роднее ...
делаем что-нить дня три четыре ... пока в офисе все отжигают))
или блин в офисе дня на четыре поселиться))
Надо однозначно что нить получше... даже на Celeron 2 300 одно только ядро часа четыре собирается... чего тут говорить... а то нубы побегут в комиссионку в надежде на pI 166MMX и нифига у них не выйдет.

Минимум Celeron II 300 для каких-либо сборок пересборок...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт 27 мар, 2007 10:13 am 
Не в сети

Зарегистрирован: Ср 07 мар, 2007 7:29 am
Сообщения: 89
mono_s писал(а):
2 машинки (166 MMX, 32 Mb оперативки, 2 сетевых карты, 1GB винт)

Ну такой раритет рабочий еще поискать надо вначале .. так что вначале ищем и нарываем. И до кучи дистрибутив портов будет не меньше 400 метров на винте при распаковке... и короче собираться ничего на 1гб винте не будет((( сочувтсвую(( минимум 3.2 ((

Значит так, первое что нам необходимо - ставим FreeBSD

для этого уходим куда нить пить пиво или в гараж кому что роднее ...
делаем что-нить дня три четыре ... пока в офисе все отжигают))
или блин в офисе дня на четыре поселиться))
Надо однозначно что нить получше... даже на Celeron 2 300 одно только ядро часа четыре собирается... чего тут говорить... а то нубы побегут в комиссионку в надежде на pI 166MMX и нифига у них не выйдет.

Минимум Celeron II 300 для каких-либо сборок пересборок...

Хм.. что это за ядро такое, для сборки которого требуется 2 часа на 2 гигагерцах?
вполне работало на 150 пентиуме с 1гиговым винтом, на котором мирно сосуществовали Win98 и FreeBSD 4.3. и ядро даже компилилось. не за 15-30 минут, конечно, как на 2 гигагерцовом селероне, но в пару часов вполне укладывалось..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн 02 апр, 2007 10:46 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вс 05 фев, 2006 11:33 pm
Сообщения: 516
Откуда: Санкт-Петербург
Сорри за флуд я имелл ввиду селерон второго поколения 300 мегагерц (по народному пень второй) ну такой еще слотовый не сокетный даже... а не сел 2300 ...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: arrowdodger, Bing [Bot], Google [Bot], Majestic-12 [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика