WPA криптиране със Slackware
юни 13th, 2009
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).
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
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
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 на първия терминал. Може да ви даде насоки къде да търсите решение.
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_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.
Понякога може, а понякога не може да се свържете към аксес пойнт, който си е скрил SSID. Проверете дали вашия аксес пойнт си предава правилно SSID и ако не активирайте тази опция. Няма голям смисъл в това да се крие SSID. Въпреки че се използва криптиране за предаване на пакетите, винаги ще има нужда да се предава информация некриптирано, а едно от нещата, които не могат да се криптират е ESSID. По принцип WPA е достатъчна защита, стига да не си изберете тривиална парола за ключа.
Possibly Related Posts:
- drop_caches
- Конфигуриране на ядрото: Поддръжка на мрежови протоколи
- Конфигуриране на ядрото
- Ограничаване на достъпа до команда в Линукс
- Взимане на част от текст с bash
Filed under: Статии