Документация по ОС FreeBSD
Суббота, 15.11.2025, 22:33
Главная
Регистрация
Вход
Приветствую Вас
Гость
|
RSS
Меню сайта
Главная страница
Новости в мире Unix
NEW
Каталог файлов
NEW
Установка и настройка
Ports & Packages
cvs
Безопасность
Работа с железом
X Window
Multimedia
Man pages
Net
Apache
DNS
FTP
Mail
Samba
Squid
SSH
VPN
РРР
Shell
IPFW
Tips'n'tricks
RFC
Книги по FreeBSD
Темы экзамена BSDA
Гостевая книга
Форум на bsdportal.ru
Каталог сайтов
Самый свежий софт
Каталог ссылок
Категории каталога
Apache
[58]
DNS
[25]
FTP
[27]
Mail
[74]
Samba
[24]
Squid
[46]
SSH
[23]
VPN
[35]
РРР
[20]
Net
[173]
Главная
»
Статьи
»
Сеть
»
Net
FreeBSD IPSEC: Racoon + сертификаты X.509 + сертификаты X.509 (Часть 1)
Введение
Это краткое руководство описывает процесс настройки racoon на использование сертификатов X.509 вместо предопределенных ключей.
Сертификаты
Создание CA
Прежде всего, стоит загрузить несколько файлов с одного из указанных мест:
http://www.camulus.org/openssl/ca/
http://www.sial.org/howto/openssl/ca/
На всякий случай, копии файлов привожу в Приложении А.
После загрузки Makefile и openssl.cnf, вероятнее всего, потребуется редактирование файла openssl.cnf для того, чтобы изменить имена ответственных лиц и наименование организации. Также стоит поместить их в отдельный каталог, например, ssl.
После редактирования openssl.cnf, выполните:
make init
Если вам интересно, то make init делает следующее:
test ! -f serial
mkdir crl newcerts private
chmod go-rwx private
echo '01' > serial
touch index
openssl req -nodes -config openssl.cnf -days 1825 -x509 -newkey rsa -out ca-cert.pem -outform PEM
Создание сертификата X.509
Теперь, когда мы имеем CA, мы можем создавать сертификаты для машин, образующих туннель. Вместо
hostX рекомендую указывать имя вашей машины.
Сгенерируем частный ключ:
openssl genrsa -out hostX.key
Генерируем сертификат:
openssl req -new -nodes -key hostX.key -out hostX.csr
Используем Makefile:
make sign
Теперь у нас имеется подписанный нами же сертификат X.509. Необходимо повторить эти действия для всех имеющихся у нас машин.
Если одолело любопытство по поводу того, что делает make sign, то это следущее:
openssl ca -batch -config openssl.cnf -in hostX.csr -out hostX.cert
Создаем туннель
Для примера, мы будем использовать фиктивные IP адреса 3.3.3.3 и 4.4.4.4 вместо "реальных" IP. Для наших туннельных оконечных точек, мы будем использовать 10.1.1.1 на машине 3.3.3.3 и 10.1.2.1 на машине 4.4.4.4.
На
машине
3.3.3.3:
ifconfig gif0 create
ifconfig gif0 tunnel 3.3.3.3 4.4.4.4
ifconfig gif0 inet 10.1.1.1 10.1.2.1
Соответственно, необходимо прописать и на машине 4.4.4.4.
Маршрутизация
В этом примере, мы имеем две конечные точки нашего туннеля. Пусть одной из них будет вторичный сервер DNS, а второй точкой будет маршрутизатор, на котором выполняется NAT для локальной сети. Естественным нашим желанием будет обеспечить доступность DNS сервера из локальной сети, для чего на нем (имеющем адрес 4.4.4.4) необходимо выполнить:
route add -net 172.16 -interface gif0
Возможно, вам придется изменить префикс, например, для большого количества сетей используются сети 192.168.х.х . Больше никаких маршрутов прописывать нигде не придется, так как NAT у нас уже сконфигурирован необходимым образом на маршрутизацию пакетов из внутренней сети.
Проверка туннеля перед использованием IPSEC
Нижеследущее предполагает наличие разрешающих правил на пакетном фильтре. Вам необходимо разрешить пакеты IP-в-IP (в /etc/protocols это ipencap). С DNS сервера (4.4.4.4) выполняем:
ping 172.16.0.100
И, соответственно, с ping 172.16.0.100:
ping 10.1.2.1
Если что-то не работает, то давайте подумаем, где мы могли совершить ошибку. Отталкивайтесь от следующего:
Вы правильно сконфигурировали интерфейс gif?
Вы прописали статический маршрут на сервере DNS?
IPSEC
Конфигурация ядра
Для шифрования пакетов нам необходима поддержка IPSEC на уровне ядра. Удостовериться в этом и добавить, при необходимости, можно, имея исходные тексты ядра.
Скопируем файл конфгурации ядра GENERIC под некоторым именем:
cp /usr/src/sys/i386/conf/GENERIC
/usr/src/sys/i386/conf/FRANK-N-BEANS
Добавим в файл следущие строки:
options
IPSEC
#IP security
options
IPSEC_ESP
#IP security (crypto; define w/ IPSEC)
options
IPSEC_DEBUG
#debug for IP security
Компилируем и устанавливаем новое ядро:
cd /usr/src && make KERCONF=FRANK-N-BEANS buildkernel && make KERNCONF=FRANK-N-BEANS installkernel && reboot
Конфигурация Racoon для использования сертификатов X.509
Сначала, необходимо перенести сертификаты (ca-cert.pem, hostX.key, hostX.cert) на машину, на которой они будут находиться, в каталог /usr/local/etc/racoon/cert. Внесите соответствующие изменения в racoon.conf и замените адреса удаленных точек, на используемые вами. Нижеследущая конфигурация используется на машине с NAT:
remote 10.1.2.1
{
exchange_mode main,aggressive;
doi ipsec_doi;
situation identity_only;
my_identifier asn1dn;
peers_identifier asn1dn;
verify_identifier on;
certificate_type x509 "hostX.cert" "hostX.key";
nonce_size 16;
lifetime time 1 min;
# sec,min,hour
support_mip6 on;
proposal_check strict;
# obey, strict or claim
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method rsasig ;
dh_group 2 ;
}
}
Убедитесь, что прописан правильный путь к сертификатам:
path certificate "/usr/local/etc/racoon/cert";
Укажем racoon, где находится сетрификат CA, ca-cert.pem:
ln -s ca-cert.pem `openssl x509 -noout -hash -in ca-cert.pem`.0
Создаем записи SPD
В заключение, нам необходимо создать правила IPSEC, которые будут передаваться ядру. Прописать их надо на каждом конце туннеля. Вот что должно быть помещено в /etc/ipsec.conf:
flush;
spdflush;
spdadd 10.1.2.1/32 10.1.1.1/32 any -P in
ipsec esp/tunnel/10.1.2.1-10.1.1.1/require;
spdadd 10.1.1.1/32 10.1.2.1/32 any -P out ipsec esp/tunnel/10.1.1.1-10.1.2.1/require;
spdadd 172.16.0.0/16 10.1.2.1/32 any -P out ipsec esp/tunnel/10.1.1.1-10.1.2.1/require;
spdadd 10.1.2.1/32 172.16.0.0/16 any -P in ipsec esp/tunnel/10.1.2.1-10.1.1.1/require;
Запуск
IPSEC
из
/etc/rc.conf
cloned_interfaces="gif0"
gif_interfaces="gif0"
gifconfig_gif0="3.3.3.3 4.4.4.4"
ifconfig_gif0="inet 10.1.1.1 10.1.2.1"
racoon_enable="YES"
racoon_flags="-f /usr/local/etc/racoon/racoon.conf"
ipsec_enable="YES"
Для второй машины просто измените IP адреса.
Часть 2
Категория:
Net
| Добавил:
oleg
(14.11.2007)
Просмотров:
1315
| Рейтинг:
0.0
/
0
|
- Оценить -
Отлично
Хорошо
Неплохо
Плохо
Ужасно
Всего комментариев:
0
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация
|
Вход
]
Форма входа
Друзья сайта
Google+
Copyright MyCorp © 2025