25 мая 2008 г.

wifi-рутер под Ubuntu

Статья о том, как создать wifi-рутер и соединить в беспроводную сеть компьютеры под ОС Ubuntu с применением WPA2. Для этого используются hostapd и wpa_supplicant.

Сперва, на компьютере, который будет исполнять функции рутера, устанавливаем hostapd:

sudo aptitude install hostapd

Далее исправляем файл /etc/hostapd/hostapd.conf на следующее:

---- начало

interface=ath0
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=--1
logger_stdout_level=2
debug=0
ctrl_interface_group=0
macaddr_acl=0
# deny_mac_file=/etc/hostapd.deny
auth_algs=3
eapol_key_index_workaround=0
eap_server=0
dump_file=/tmp/hostapd.dump
ssid=l

wpa=3
wpa_psk=e0addadafc577b0365bd209cfee63dfa5b600c73c97e6892acc10f4ca7f76907
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP

---- конец

где wpa_psk ваш секретный ключ, которые можно сгенерировать командой: wpa_passphrase ssid password - где ssid и password заменить вашими, в примере используются l и ffffffff соответственно.

Также укажите верно имя вашего интерфейса.

В файл /etc/rc.local прописываем автозапуск hostapd: hostapd /etc/hostapd/hostapd.conf &

На машинах-клиентах рутера проделаем следуеющее, а именно сначала установим программу-клиент для сетей WPA и WPA2:

sudo aptitude install wpasupplicant

и создадим файл настроек /etc/wpa_supplicant.conf:

---- начало

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
ssid="l"
#psk="ffffffff"
scan_ssid=1
proto=RSN
key_mgmt=WPA-PSK
pairwise=TKIP CCMP
group=TKIP CCMP

psk=
e0addadafc577b0365bd209cfee63dfa5b600c73c97e6892acc10f4ca7f76907

}

---- конец

Также в файл /etc/network/interfaces прописываем под нужным интерфейсом дополнительные строки:

---- начало

pre-up wpa_supplicant -Bw -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf
post-down killall -q wpa_supplicant

---- конец

где madwifi, используемый для карт atheros, может быть заменён на нужный вам, к примеру wext для большинства других карт, в частности broadcom, а ath0 - нужный интерфейс.

Перезапускаем hostapd c параметрами на сервере и интерфейс на клиенте, пользуемся.

Только не забудьте прописать ip на машинах в настройках в файле /etc/network/interfaces

Если возникнут вопросы или иные непонимания, смело читаем соответствующием маны.