Документация по ОС FreeBSD Понедельник, 06.05.2024, 15:44
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Работа с железом

Hotspot на FreeBSD [2008]
Попала в руки сетевая Planet WL-3560, решил сделать дома безпроводную точку доступа. Собственно готовой документации не нашёл, собирал по крупинкам в интернете - попытаюсь изложить

Имеем:
1) Freebsd свежепроинсталенная
(настраивалось на 6.2, думаю на ветке 6 и 7 будет работать)
2) Карточку PCI Planet чип Atheros- распозналась как ath

3) Канал в мир (наш IP 192.168.100.3, шлюз провайдера 192.168.100.1, днс провайдера 192.168.100.1)


Цель:
настроить точку доступа на FreeBSD для выхода беспроводных устройств в мир

1.Настройка карты
Вставив карточку в PCI-слот она не обнаружилась - это нормально (ядро у меня "пожмаканое" - стараюсь оставлять только то что надо), ведь нам надо собрать ядро для поддержки данных устройств (можно конечно модулями, но это не "тру"),соответственно создаём конфиг для нового ядра, в обязательном порядке включаем опции bpf (для DHCP сервера)
Не забудьте включить в конфиг вашу сетевую!!!!
#cd /usr/src/sys/i386/conf/
#cat WIFI
machine i386
cpu I686_CPU
ident WIFI

options SCHED_4BSD # 4BSD scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options NFSCLIENT # Network Filesystem Client
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_GPT # GUID Partition Tables.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
device apic # I/O APIC
device acpi

# Bus support.
device pci

# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device atapicd # ATAPI CDROM drives
options ATA_STATIC_ID # Static device numbering

# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard

device vga # VGA video card driver

# syscons is the default console driver, resembling an SCO console
device sc
device agp # support several AGP chipsets

# Add suspend/resume support for the i8254.
device pmtimer

# Serial (COM) ports
device sio # 8250, 16[45]50 based serial ports

# Parallel port
device ppc
device ppbus # Parallel port bus (required)

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device rl # RealTek 8129/8139
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
device dc
device lnc

# Pseudo devices.
device loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device ppp # Kernel PPP
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device gif # IPv6 and IPv4 tunneling

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.

#Включаем Фаерволы
device bpf # Berkeley packet filter
options HZ=1000
options TCP_DROP_SYNFIN
options SC_DISABLE_REBOOT
device pf
device pflog
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
options DEVICE_POLLING
options IPFIREWALL # включаем поддержку ipfw
options IPFIREWALL_DEFAULT_TO_ACCEPT # политика по умолчанию - ACCEPT
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPDIVERT
options DUMMYNET #enable dummynet operation
options NETGRAPH
options NETGRAPH_BPF
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE
options NETGRAPH_SOCKET
options NETGRAPH_TCPMSS

# именно тут мы включаем поддержку вайфайного железа и способов шифрования
device wlan
device wlan_acl
device wlan_ccmp
device wlan_wep
device ath
device ath_hal
device ath_rate_sample
device wlan_tkip
device wlan_xauth

Сразу сделаю оговорку, у меня в ядро включен фаер и IPFW и PF. Зачем их два, спросите Вы. Всё просто: PF для ната, а IPFW для шейпера и фильтрации. Хотя будет работать и отдельно каждый из них. Так у меня исторически сложилось....
Компилируем и устанавливаем наше ядро
# config WIFI
Kernel build directory is ../compile/WIFI
Don't forget to do ``make cleandepend; make depend''
#cd ../compile/WIFI
#make depend
#make && make install

Процесс не быстрый - идём пить чай
После того как ядро установилось, перегружаемся уже с новым ядром
#uname -a
FreeBSD home.lan 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Sun Nov 16 15:53:25 UTC 2008 
 mak_v_@home.lan:/usr/src/sys/i386/compile/WIFI i386

Из листинга ifconfig видим что карточка определилась как ath0
Далее есть несколько путей:
1) точка доступа без шифрования и ключей (публичная сеть)
2) точка доступа с авторизацией и шифрованием


Если делаем простую точку доступа без шифрования  - достаточно добавить в rc.conf
ifconfig_ath0="inet 172.16.16.1 netmask 0xffffff00 ssid FREE \
 mode 11g wepmode off mediaopt hostap"

можно переходить к настройке DHCP

Если точка с шифрованием и авторизацией, то читаем этот пункт до конца
Есть несколько способов организации аутентификации и шифрования, я рассмотрю лишь частичный пример, если хотите покопать поглубже  - хандбука в помошь....

Создадим файл hostapd.conf, в нём будут настройки нашей точки доступа ( wifi карты )
#cat /etc/hostapd.conf
interface=ath0 #интерфейс на котором работает
driver=bsd 
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=4
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
ssid=FREE ##имя точки доступа
wpa=3 #параметры шифрования
wpa_pairwise=CCMP
wpa_passphrase=12345678 #ключ сети который вы будете вводить при подключении 
#парился долго с кол-вом символов
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP


В rc.conf добавляем строки c с настройками сетевых карт (xl0 - смотрит на провайдера, ath0 - наша wifi-карточка) и автозапуском настроек точки доступа. Безпроводные клиенты будут жить в сети 172.16.16.0/24 (можете произвольно указать).

#cat /etc/rc.conf
ifconfig_xl0="inet 192.168.100.3 netmask 255.255.255.0"
ifconfig_ath0="inet 172.16.16.1 netmask 255.255.255.0 mediaopt hostap"
hostapd_enable="YES"
defaultrouter="192.168.100.1"

2.DHCP сервер
Устанавливаем из портов
 #cd /usr/ports/net/isc-dhcp3-server
#make install clean

в опциях сборки я выбрал только DHCP_PARANOIA, DHCP_JAIL,  OPENSSL_BASE, OPENSSL_PORT
в /etc/rc.conf добавляем следующие строки
dhcpd_enable="YES"
dhcpd_flags="-q" # отключаем вывод копирайта и прочего при старте dhcpd
dhcpd_ifaces="ath0" # сетевой интерфейс на котором будет работать dhcpd

Создадим конфигурационный файл для DHCP сервера:
#cat /usr/local/etc/dhcpd.conf
default-lease-time 600; # время аренды по умолчанию
max-lease-time 7200; # максимальное время аренды
authoritative; # единственный DHCP сервер в сети
ddns-update-style interim; # динамический стиль обновления DNS
log-facility local7; #
subnet 172.16.16.0 netmask 255.255.255.0 { # подсеть в которой будем выдавать адреса
range 172.16.16.2 172.16.16.100; # интервалы ip адресов на выдачу клиентам
option routers 172.16.16.1; # адрес маршрутизатора в Интернет - IP wifi-карты
option domain-name-servers 192.168.100.1; # адрес DNS сервера провайдера
}
#для хостов которым требуются постоянные ip адреса создаем следующие записи
host Mynotebook { # имя хоста
hardware ethernet 00:c0:9f:1e:64:92; # MAC адрес сетевой карты хоста
fixed-address 172.16.16.3; # ip адрес для этого хоста
}
host Sheff {
hardware ethernet 00:a0:cc:c9:5c:7d;
fixed-address 172.16.16.4;
}
#Остальные клиенты будут получать свободные адреса из указанных диапазонов.

Теперь у нас есть настроенная точка доступа, при подключении к которой дхцп сервер будет выдавать настройки клиентам

3.НАТ
осталось "выпустить" трафик в мир
Идем править фаервол на предмет NAT
Я использую для ната PF, если вы используете IPFW либо что-то другое (IPF,IPNAT,etc...) внесите в конфигурацию соответствующее правило для NATа на внешнем интерфейсе трафика от вайфайной сети
#cat /etc/pf.conf
nat on xl0 from 172.16.16.0/24 to any -> 192.168.100.3
pass quick all

Последнее, добавляем в rc.conf (маршрутизировать пакеты, включить PF, указываем путь к файлу фаервола)
gateway_enable="YES"
pf_enable="YES"
pf_rules="/etc/pf.conf"

Перегружаемся, подключаемся с какого-нибудь беспроводного устройства, вводим ключ сети, который в hostapd.conf (12345678)....вуаля !!!



Источник: http://www.lissyara.su/?id=1806
Категория: Работа с железом | Добавил: oleg (25.11.2008) | Автор: mak_v_
Просмотров: 1343 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024