Краткое интро: данную статью я держал скопипизженной давно, и не знал что она ГАВНО! Когда наконец сам столкнулся - понял что и как,и теперь я переписываю на базе оригинала статьи уже свой манул. Основанный на моем тяжком опыте настройки)) Описанное далее уже мой личный опыт)

Имеем след.интерфейсы:
eth0 – сетевушка, подключенная в локальную сеть.
eth2 – сетевушка, подключенная в "инет" сеть.
wlan1 – wi-fi карточка, которая будет выполнять роль точки доступа.

В Debian 6 уже стоит нужное нам ядро с нужными нам драйверами. Поэтому ставим только binutils:

apt-get install binutils

Далее ставим из репозиториев пакеты, которые нам понадобяться для точки доступа:

apt-get install hostapd libnl1 wireless-tools libiw30 linux-backports-modules-wireles

Далее устанавливаем утилиты моста. Обязательно!:

apt-get install bridge-utils

и настраиваем сетевой мост со всеми интерфейсами:

nano /etc/network/interfaces

у меня он выглядет так:

auto lo
iface lo inet loopback

auto eth2
allow-hotplug eth2
iface eth2 inet static
address 172.хх.хх.44
netmask 255.255.0.0
gateway 172.хх.0.1

#auto eth0
#allow-hotplug eth0
#iface eth0 inet static
#address 192.168.1.1
#netmask 255.255.255.0
#gateway 192.168.1.1

post-up /etc/nat

auto br0
iface br0 inet static

address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
bridge_ports eth0 wlan1

Тут мы видем что настройки еht0 закомментированы - то есть их там считай что нет. Как такового сетевого интерфейса eth0 теперь в системе не будет.Вместо него будет общий br0. Учтите это! То есть если у вас какой нить dnsmasq настроен на работу на карте eth0, то теперь надо поменять его в конфиге на br0! И т.д. Забудьте теперь про eth0))

Далее, конфигурируем точку доступа:

nano /etc/hostapd/hostapd.conf

Замечу что файл будет пустой. Мы его первый раз создаем с нуля) Теперь пишем в него такие настройки:

interface=wlan1
bridge=br0
driver=nl80211
ssid=RUSUA Wi-Fi
country_code=US
hw_mode=g
channel=4
macaddr_acl=0
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_passphrase=пароль
wpa_pairwise=TKIP CCMP
ieee80211n=1
wme_enabled=1
ht_capab=[HT40+]

Теперь многим на заметку расскажу что же оно все значит(сам по крупинкам собирал по этим вашим интернетам):

interface - имя сетевого интерфейса wi-fi в системе; bridge - указываем что вафля у нас в мосте,не сама по себе; driver - обязательно именно nl80211 и ничего другого,иначе не будет работать!; ssid - имя нашей сети,которое будет видно всем соседям; country_code - это по задумкам буржуев должно регулировать мощность излучения...Но мы то с вами знаем)); hw_mode - режим точки доступа. a,b,g; channel - номер радио канала; macaddr_acl - фильтр по МАС адресам. 0 - выключено; wpa - какой из протоколов WPA(1), WPA2(2) или оба(3);wpa_passphrase - пароль на сеть;wpa_pairwise - протокол шифрования пароля. Пишите как у меня);ieee80211n- N-режим 1-вкл, 0-выкл.Если не указать - выкл;wme - wireless multimedia extension); ht_capab - преамбула коротка, или длинная.Сам толком не знаю чо оно)

Далее в /etc/default/hostapd в пункте раскомментируем и допишим вот этот пункт: DAEMON_CONF="/etc/hostapd/hostapd.conf"

Разрешим пропуск трафика. В файлике /etc/sysctl.conf раскоментируем строку: net.ipv4.ip_forward=1

Но вообще у меня например в файле /etc/network/interfaces в конце дописана строка запуска скриптов при загрузке системы: post-up /etc/nat. И там уже у меня есть команда разрешения форвардинга пакетов, и правила iptables и т.д.  Вот пример содержания скрипта /etc/nat(кста обязательно должен иметь аттрибут Исполнимый!):

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -i br0 -o eth2 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.1.0/24 -j MASQUERADE
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A INPUT -m state --state INVALID -j DROP

Тут мы сразу прописываем правила iptables для того,что б наш мост успешно работал с точкой доступа. Имхо удобно и просто.

Про DHCP cервер писать не буду. Для этого отдельная статья. Да и там просто все.

Кстати, столкнулся с тем, что при подключении к точке доступа, ПК производит несколько попыток и отключается. В логах сервера вот типа такого:

Feb  1 00:17:19 rusua hostapd: wlan1: STA 1c:65:9d:f9:ef:ed IEEE 802.11: authenticated
Feb  1 00:17:19 rusua hostapd: wlan1: STA 1c:65:9d:f9:ef:ed IEEE 802.11: associated (aid 1)
Feb  1 00:17:22 rusua hostapd: wlan1: STA 1c:65:9d:f9:ef:ed IEEE 802.11: deauthenticated due to local deauth request
Feb  1 00:17:24 rusua hostapd: wlan1: STA 1c:65:9d:f9:ef:ed IEEE 802.11: authenticated
Feb  1 00:17:24 rusua hostapd: wlan1: STA 1c:65:9d:f9:ef:ed IEEE 802.11: associated (aid 1)
Feb  1 00:17:24 rusua hostapd: wlan1: STA 1c:65:9d:f9:ef:ed WPA: received EAPOL-Key 2/4 Pairwise with unexpected replay counter
Feb  1 00:17:27 rusua hostapd: wlan1: STA 1c:65:9d:f9:ef:ed IEEE 802.11: deauthenticated due to local deauth request
Feb  1 00:17:29 rusua hostapd: wlan1: STA 1c:65:9d:f9:ef:ed IEEE 802.11: authenticated
Feb  1 00:17:29 rusua hostapd: wlan1: STA 1c:65:9d:f9:ef:ed IEEE 802.11: associated (aid 1)

Решение нашел не сразу, но помогло. Вот оно :

ath9k это имя вашего драйвера. Выполним комманду:

modprobe ath9k nohwcrypt=1

и все заработало!

 

2 комментария

  1. avatar Ansilent:

    Следует так же упомянуть, что этот ман применим не для всех Wi-Fi адаптеров, т.к. на все чипсеты поддерживают режим АР. Инфу о возможности запуска адаптера в режиме АР нужно смотреть на сайте http://wireless.kernel.org/en/users/Drivers




    0



    0
  2. Согласен. Хорошее замечание) Хотя вроде как процент адаптеров,без поддержки режима АР крайне мал - тем более тут мы юзаем полноценную внутреннюю карту, а не какой нить USB свисток)




    0



    0

Добавить комментарий

%d такие блоггеры, как: