Вторник, 29.09.2026, 14:42
Приветствую Вас Гость

GENER.ORG.UA

Каталог статей

Главная » Статьи » Linux

Настройка Wi-Fi под freeBSD
Типичная картина - есть домашний роутер на FreeBSD, предоставляющий доступ в интернет машинам маленькой домашней локалки. Один из клиентов - лаптоп с wi-fi картой, получающий доступ в сеть через соедиенный с роутером Access Point. Не будем в сто первый раз упоминать про недостатки WEP, а также про то, что часто предлагаемая альтернатива - IPSec-туннель между беспроводным клиентом и шлюзом (роутером). Просто настроим все это.
Пусть клиент имеет адрес 192.168.1.3, внутренний адрес нашего роутера a.k.a. шлюза в интернет - 192.168.1.1, адрес точки доступа (AP) не играет здесь никакой роли - для него все будет прозрачно.
С учетом нашей ситуации (маленькая сеть, один-два беспроводных клиента), мы не будем использовать key exchange демоны (racoon, isakmpd), а пропишем ключевые фразы руками.

Сервер: -------

~# echo "ipsec_enable="YES"" >> /etc/rc.conf
~# cat > /etc/ipsec.conf
# flush previous SAD & SPD
flush;
spdflush;
# Security Association Database
# For ESP
add 192.168.1.1 192.168.1.3 esp 1011 -E 3des-cbc "myveryverysecretpassphrase";
add 192.168.1.3 192.168.1.1 esp 1012 -E 3des-cbc "myveryverysecretpassphrase";
# For AH
add 192.168.1.1 192.168.1.3 ah 1234 -A hmac-md5 "verysecrettoo";
add 192.168.1.3 192.168.1.1 ah 1235 -A hmac-md5 "verysecrettoo";
# Security Policy Database
spdadd 192.168.1.3 0.0.0.0/0 any -P in ipsec esp/tunnel/192.168.1.3-192.168.1.1/require
ah/tunnel/192.168.1.3-192.168.1.1/use;
spdadd 0.0.0.0/0 192.168.1.3 any -P out ipsec esp/tunnel/192.168.1.1-192.168.1.3/require
ah/tunnel/192.168.1.1-192.168.1.3/use;
^D

Если у нас FreeBSD 4.x:

~# reboot

Или, с учетом того, что ipsec стартует нехитро, как можно убедиться из rc.network:

case ${ipsec_enable} in
[Yy][Ee][Ss])
if [ -f ${ipsec_file} ]; then
echo " ipsec: enabled"
setkey -f ${ipsec_file}
else
echo " ipsec: file not found"
fi
;;
esac


просто выполняем:

~# setkey -f /etc/ipsec.conf

В случае FreeBSD 5.x/6.x вообще все просто:

~# /etc/rc.d/ipsec start

Тем самым, мы загрузили правила, указывающие применять протоколы AH (Authention Header) и ESP (Encapsulated Security Payload) для всех пакетов, проходящих через нас от клиента или к нему. Файл состоит из двух частей - описания правил ассоциации (ЧТО использовать) и политики ассоциации (КАК использовать). В нашем случае видно, что использование ESP обязательно (require), тогда как AH - по желанию (use). Парольные фразы - ключи, на основе которых генерируются сессионные ключи для шифрования информации.
Замечу, что если эти действия выполняются удаленно, например, по ssh, с того самого беспроводного клиента, то можно потерять с ним связь, так как он (клиент) еще не настроен. Be careful.

Клиент: -------

В моем случае клиентом также является FreeBSD-машина, возможно, это не так интересно с точки зрения настройки (например, если вы предпочитаете узнать, как настроить Windows NT в качестве клиента), но увы - у меня FreeBSD и на лаптопах тоже.
В этом случае конфигурация клиента будет отличаться только парой записей в ipsec.conf:
# flush previous SA & SP
flush;
spdflush;
# Security Association rules
# For ESP
add 192.168.1.1 192.168.1.3 esp 1011 -E 3des-cbc "myveryverysecretpassphrase";
add 192.168.1.3 192.168.1.1 esp 1012 -E 3des-cbc "myveryverysecretpassphrase";
# For AH
add 192.168.1.1 192.168.1.3 ah 1234 -A hmac-md5 "verysecrettoo";
add 192.168.1.3 192.168.1.1 ah 1235 -A hmac-md5 "verysecrettoo"; # Security Policy rules spdadd 0.0.0.0/0 192.168.1.3 any -P in ipsec esp/tunnel/192.168.1.1-192.168.1.3/require
ah/tunnel/192.168.1.1-192.168.1.3/use;
spdadd 192.168.1.3 0.0.0.0/0 any -P out ipsec esp/tunnel/192.168.1.3-192.168.1.1/require
ah/tunnel/192.168.1.3-192.168.1.1/use;


Нетрудно заметить, что поменялось направление: 0.0.0.0/0 192.168.1.3 стало "IN" (т.е. это означает, что необходимо принимать трафик от всех как зашифрованный, что вполне логично - это будет трафик, отмаршрутизированный шлюзом), а 192.168.1.3 0.0.0.0/0 стало "OUT" (т.е. "шифровать все, что уходит на какой-либо хост от меня", т.к. согласно маршрутизации все пойдет на шлюз).

Убедиться в том, что ни один пакет не остался "голым", можно с помощью tcpdump:

22:10:14.747551 IP 192.168.1.1 > 192.168.1.3: AH(spi=0x000004d2,seq=0x19d3): IP truncated-ip - 68 bytes missing! 192.168.1.1 > 192.168.1.3: ESP(spi=0x000003f3,seq=0x19d3) (ipip-proto-4)
22:10:14.815396 IP 192.168.1.1 > 192.168.1.3: ah
22:10:14.815707 IP 192.168.1.3 > 192.168.1.1: AH(spi=0x000004d3,seq=0x1b18): IP 192.168.1.3 > 192.168.1.1: ESP(spi=0x000003f4,seq=0x1b18) (ipip-proto-4)

Я не до конца понимаю великий смысл строчек про truncated-ip, потери производительности или каких-либо других проблем я не заметил. Возможно, это связано с тем, что на лаптопе я использовал -CURRENT.
Категория: Linux | Добавил: admin (31.03.2008)
Просмотров: 438 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Категории каталога
Windows Vista [33]
Windows XP [12]
Linux [15]
Настройка Windows [6]
Восстановление системы [7]
BIOS [10]
Интернет [10]
Сетевые настройки [1]
Реестр Windows [13]
Обработка видео [102]
Обзор софта [29]
Windows 7 [7]
Информатика и программирование [9]
Форма входа
Поиск
Друзья сайта


Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright GENER © 2026 |