RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
В этой статье я покажу как настроить IPSec между двумя удаленными серверами FreeBSD. Для чего это нужно? Например, есть у Вас (и у меня) главный офис предприятия в каком-то городе и есть в этого предприятия филиалы или предприятия в других городах. Значит нужно между этими филиалами, офисами и предприятиями организовать постоянную связь, чтобы локальные сети этих точек были соединены и данные между ними были зашифрованы (т.к. соединение происходит через Интернет). Вот для этого служит IPSec, с помощью которого можно сделать этот канал зашифрованным.
И так, IPsec (сокращение от IP Security) — набор протоколов для обеспечения защиты данных, передаваемых по межсетевому протоколу IP, позволяет осуществлять подтверждение подлинности и/или шифрование IP-пакетов. IPsec также включает в себя протоколы для защищённого обмена ключами в сети Интернет.
Для организации канала передачи данных с шифрованием нам нужно:
1. Два системных блока (по одному с каждой стороны) с двумя сетевыми картами в каждом и с ОС FreeBSD;
2. Широкополосный (желательно) Интернет;
3. Прямые руки
Ядро в FreeBSD должно быть пересобрано с этими параметрами:
192.168.1.130 – удаленная фряха (тут обычно реальный IP который виден через интернет);
192.168.2.130 – текущая фряха.
В файл psk.txt вставляем IP удаленной машины и пароль (через пробел):
192.168.1.130 password
Далее необходимо в каталоге /etc создать два файла:
AVTO# touch ipsec.conf AVTO# touch ipfw.rules
В файл ipsec.conf вставляем это (без переносов):
spdadd 192.168.2.130/32 192.168.1.130/32 ipencap -P out ipsec esp/tunnel/192.168.2.130-192.168.1.130/require; spdadd 192.168.1.130/32 192.168.2.130/32 ipencap -P in ipsec esp/tunnel/192.168.1.130-192.168.2.130/require;
В файл ipfw.rules необходимо вставить правила разрешающие ipsec "общаться" между собой. В моем случае это выглядит так:
${fw} add allow icmp from any to any via gif0 ${fw} add allow ipencap from 192.168.1.130 to me ${fw} add allow ipencap from me to 192.168.1.130 ${fw} add allow esp from me to 192.168.1.130 ${fw} add allow esp from 192.168.1.130 to me ${fw} add allow udp from me 500 to 192.168.1.130 500 via rl1 ${fw} add allow udp from 192.168.1.130 500 to me 500 via rl1
И так-же правила которые будут разрешать обмениваться пакетами внутри тоннеля между подсетями которые мы объединяем:
${fw} add allow all from 192.168.200.0/24 to 192.168.201.0/24 via gif0 ${fw} add allow all from 192.168.201.0/24 to 192.168.200.0/24 via gif0
То-же самое делаем на второй машине с тем отличием, что нужно поменять айпишки в конфигурационных файлах. У меня на второй машине, как видно из конфигов, айпишка 192.168.1.130 и локальный 192.168.201.10, значит вместо 192.168.2.130 я ставлю 192.168.1.130, вместо 192.168.1.130 - 192.168.2.130, вместо 192.168.200.200 - 192.168.201.10 и наоборот…..
Напоминаю, что это конфиги взяты из реально работающих серверов и они рабочие 100%.
В следующей статье будет немного теории и практики….