Posts tagged ‘slackware wpa’

WPA криптиране със Slackware

WPA криптиране

WPA или Wi-Fi Protected Access е стандарт за криптиране, който се появи, след като стана ясно, че по-стария  WEP (Wired Equivalent Privacy) алгоритъм за криптиране, има сериозни пропуски в сигурността. WEP може да бъде разбит за секунди. WPA не е 100% сигурен, но е доста по трудно да бъде разбит отколкото WEP. Най-важното е да си изберете силна WPA парола за вашия WPA ключ. Методите на разбиване на WPA, които разчитат на атаки с речници, биха успели ако използвате тривиална парола за ключа си.

Конфигурирането на WPA е оказва че е проблемно за някой хора, но не е толкова трудно като разберете какво да конфигурирате. Приемаме, че вече сте си настроили безжичната карта и тя може да работи без криптиране или с WEP.
Не е добра идея да се опитвате да конфигурирате WPA при положение, че не ви е настроен безжичния адаптер. Това би затруднило доста подкарването на WPA поддръжката, ако не тръгне отведнъж.

За да активирате WPA за вашата карта, уверете се се имате инсталиран wpa_supplicant (по принцип е част от инсталацията на Slackware) и отворете файла /etc/wpa_supplicant.conf в любимия ви текстов редактор като потребител root. Това се налага понеже, файла няма права да се вижда от обикновени потребители. Трябва да изглежда горе-долу по тоя начин:

  ctrl_interface=/var/run/wpa_supplicant
  ctrl_interface_group=0
  eapol_version=1
  ap_scan=1
  fast_reauth=1

  network={
        scan_ssid=0
        ssid="your_essid"
        proto=WPA RSN
        key_mgmt=WPA-PSK WPA-EAP
        pairwise=CCMP TKIP
        group=CCMP TKIP
        psk=your_64_hex_characters_long_key
  }

Тук трябва да си въведете вашите стойности за ssid и psk. ssid е същото като ESSID, което ползвате в rc.inet1.conf. psk е споделената фраза (Pre Shared Key).

Има начина да генерирате шестнадесетичната стойност за PSK, ако имате достъп до аксес пойнт които използва парола. Като root, изпълнете:

wpa_passphrase YOURSSID passphrase

като YOURSSID е ESSID на вашият аксес пойнт, а е ascii низът, който сте въвели в WPA-PSK конфигурацията на вашия аксес пойнт. Ще получите изход, който трябва да изглежда по този начин:

network={
    ssid="YOURSSID"
    #psk="passphrase"
    psk=04dffae0172e3a255e5bab6f28ab78cc23d845f3dd8d4a63ba64a37555e2a33b
}

След това трябва да копирате трите реда в секцията network={} от изхода на командата и да ги копирате в секцията network={} в /etc/wpa_supplicant.conf. Не забравяйте да проверите какви са правата на файла! Този файл трябва да е видим само за root.

chmod 600 /etc/wpa_supplicant.conf
Ако вашата имате безжичен интерфейс ath0 то rc.inet1.conf би изглеждал така :

# Config information for ath0 (using dhcp):
IFNAME[1]="ath0"
IPADDR[1]=""
NETMASK[1]=""
USE_DHCP[1]="yes"
DHCP_HOSTNAME[1]="mywirelessbox"

Трябва да добавите два реда за WPA поддръжка:

# Config information for ath0 (using dhcp):
IFNAME[1]="ath0"
IPADDR[1]=""
NETMASK[1]=""
USE_DHCP[1]="yes"
DHCP_HOSTNAME[1]="mywirelessbox"
WLAN_WPA[1]="wpa_supplicant"
WLAN_WPADRIVER[1]="wext"

Стойността ”wext” на променливата WLAN_WPADRIVER означава ”Wireless Extensions”. Това е протокола по който wpa_supplicant и драйвера на безжичната карта комуникират. Wireless Extensions свързва драйверите в ядрото с потребителската програма wpa_supplicant. Преди известно време wpa_supplicant и безжичните драйвери не използваха Wireless Extension, затова в по-старите версии на wpa_supplicant трябва да комуникира с драйвера по негов си протокол.Много лесно може да се разбере какви драйвери (карти) поддържа wpa_supplicant, като просто го изпълним:

wpa_supplicant
wpa_supplicant v0.5.10
Copyright (c) 2003-2008, Jouni Malinen <j@w1.fi> and contributors

...

drivers:
  wext = Linux wireless extensions (generic)
  hostap = Host AP driver (Intersil Prism2/2.5/3)
  atmel = ATMEL AT76C5XXx (USB, PCMCIA)
  ndiswrapper = Linux ndiswrapper
  ipw = Intel ipw2100/2200 driver (old; use wext with Linux 2.6.13 or newer)
  wired = wpa_supplicant wired Ethernet driver

...
След като сме направили нужните промени по конфигурационните файлов,е може да рестартираме безжичния мрежов интерфейс (ath0):

/etc/rc.d/rc.inet1 ath0_restart
Slackware ще „каже“ на wpa_supplicant да използва ”wext” протокола, ако не му окажете драйвер, който да ползва. По принцип този ред

WLAN_WPADRIVER[1]="wext"

може спокойно да бъде пропуснат.

WPA2

WPA2 е смятан за по-сигурен протокол от WPA. Въпреки това, не всички (по-стари) мрежови карти го поддържат, понеже има нужда от доста мощен процесор за криптиране/декриптиране.

wpa_supplicant.conf примерът от предишната секция поддържа и WPA2 криптирани мрежи. В този ред от  wpa_supplicant.conf

  proto=WPA RSN

думите WPA2 и RSN са синоними, така че може да бъде написано още така:

  proto=WPA WPA2

WPA debugging

Ако не можете да си активитате вашата WPA връзка, има няколко начина да проверите какво не е наред. За примера нека да приемем, че вашия мрежов интерфейс се казва ath0.

Уверете се, че интерфейса не е маркиран като down:

/etc/rc.d/rc.inet1 ath0_stop

Стартирайте wpa_supplicant демона като фонов процес:

wpa_supplicant -dw -c/etc/wpa_supplicant.conf -Dwext -iath0

След това на друг терминал активирайте мрежовия интерфейс:

/etc/rc.d/rc.inet1 ath0_start

Наблюдавайте изхода от wpa_supplicant на първия терминал. Може да ви даде насоки къде да търсите решение.

Get a run-time status overview of the supplicant:
Като root изпълнете:

wpa_cli status

за да видите състоянието на wpa_supplicant процеса.Ако имате повече от един безжичен интерфейс, ще трябва да укажете за кой интерфейс искате информация:

wpa_cli -i ath0 status
Променете

DEBUG_ETH_UP="no"

на

DEBUG_ETH_UP="yes"

в /etc/rc.d/rc.inet1.conf и прегледайте съобщенията в /var/log/messages докато конфигурирате интерфейсите. Това също може да ви подскаже къде да търсите решение на проблема.

ВНИМАНИЕ ! с тези опции WEP/WPA ключовете ще бъдат записани като текст!

Асоциирането на WPA може да отнеме доста време.
Стартирайте интерфейса след известно време. Това може да помогне ако на wpa_supplicant му трябва доста време да се асоциира (не restart, а start):

/etc/rc.d/rc.inet1 ath0_start

Тази команда ще остави настоящия wpa_supplicant процес да работи във фон, така че да може да се стартира нов процес за асоцииране. Ако това се случва често може да промените тази стойност в /etc/rc.d/rc.inet1.conf или да я добавите ако я няма.

WLAN_WPAWAIT[?]=30

По-големи стойности също биха помогнали.
ВНИМАНИЕ: Уверете се, че замените въпросителния знак  [?] с номера на интерфейса, който конфогурирате в rc.inet1.conf. Трябва да изглежда по подобен начин :

WLAN_WPAWAIT[1]=30

Ако имате DEBUG_ETH_UP=“yes” ще виждате в ”/var/log/messages” подобни редове:

WPA authentication did not complete, try running '/etc/rc.d/rc.inet1 ath0_start' in a few seconds.
The Access Point is not broadcasting the SSID.
Понякога може, а понякога не може да се свържете към аксес пойнт, който си е скрил SSID. Проверете дали вашия аксес пойнт си предава правилно SSID и ако не активирайте тази опция. Няма голям смисъл в това да се крие SSID. Въпреки че се използва криптиране за предаване на пакетите, винаги ще има нужда да се предава информация некриптирано, а едно от нещата, които не могат да се криптират е ESSID. По принцип WPA  е достатъчна защита, стига да не си изберете тривиална парола за ключа.

Possibly Related Posts: