wpa_supplicant 를 사용하기 위해 먼저 모듈을 입력해줘야 한다.
/etc/conf.d/net 파일을 열어서 wpa_suplicant 모듈을 추가해주고 wireless 드라이버도 제대로 잡아준다.
webterror ~ # cat /etc/conf.d/net # This network configuration was written by net-setup config_eth0="dhcp" modules_wlan0="wpa_supplicant" wpa_supplicant_wlan0="-Dwext" wpa_timeout_wlan0="60"
wpa_supplicant_wlan0=”-Dwext” 의 내용은 드라이버를 적용시켜주는 것인데, wpa_supplicant -h 명령어로 확인할수 있다.
drivers: wext = Linux wireless extensions (generic) nl80211 = Linux nl80211/cfg80211 hostap = Host AP driver (Intersil Prism2/2.5/3) atmel = ATMEL AT76C5XXx (USB, PCMCIA) ndiswrapper = Linux ndiswrapper (deprecated; use wext) ipw = Intel ipw2100/2200 driver (old; use wext with Linux 2.6.13 or newer) wired = Wired Ethernet driver ralink = Ralink Wireless Client driver options: -b = optional bridge interface name -B = run daemon in the background -c = Configuration file -C = ctrl_interface parameter (only used if -c is not) -i = interface name -d = increase debugging verbosity (-dd even more) -D = driver name (can be multiple drivers: nl80211,wext) -g = global ctrl_interface -K = include keys (passwords, etc.) in debug output -t = include timestamp in debug messages -h = show this help text -L = show license (GPL and BSD) -o = override driver parameter for new interfaces -O = override ctrl_interface parameter for new interfaces -p = driver parameters -P = PID file -q = decrease debugging verbosity (-qq even less) -u = enable DBus control interface -v = show version -W = wait for a control interface monitor before starting -N = start describing new interface example: wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
위에서 설명한대로 wext 드라이버는 리눅스 일반 드라이버라고 설명되어 있다. 따라서 이것으로 설정한다.
wext = Linux wireless extensions (generic)
드라이버를 설정하였으니, 이제 무선랜 정보를 입력해주자.
아래처럼 먼저 wireless 를 검색해서 주변의 AP 정보를 받아오자.
webterror ~ # iwlist wlan0 scan wlan0 Scan completed : Cell 01 - Address: C8:6C:87:15:E8:53 Channel:1 Frequency:2.412 GHz (Channel 1) Quality=61/70 Signal level=-49 dBm Encryption key:on ESSID:"tffc888" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s Mode:Master Extra:tsf=00000002aac8237b Extra: Last beacon: 10ms ago IE: Unknown: 000774666663383838 IE: Unknown: 010882848B962430486C IE: Unknown: 030101 IE: Unknown: 2A0102 IE: Unknown: 2F0102 IE: Unknown: 32040C121860 IE: Unknown: DD090010180203F0040000 IE: WPA Version 1 Group Cipher : TKIP Pairwise Ciphers (1) : TKIP Authentication Suites (1) : PSK IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00
IE:xxxx 어쩌고 저쩌고 하는 부분이 암호화 설정관련 정보이다. 위의 내용대로라면 WPA를 사용하고 인증슈츠는 PSK 라고 설명되어있는데, 나도 잘 모른다.
먼저 PSK를 받아와야 하는데 아래의 스크립트를 사용하여 받아오면 된다.
webterror ~ # wpa_passphrase tffc888 > /etc/wpa_supplicant/wpa_supplicant.conf
이후, 아래에 커서가 깜박거리는데 이부분에 해당 AP의 비밀번호를 입력해주면 자동으로 스크립트가 추가된다.
/etc/init.d/net.wlan0 restart 를 하면 제대로 작동될것이다.!! ^^
wpa_supplicant에 대해서 자세히 써넣은 내용
필요한 소프트웨어
wireless-tools, wpa_supplicant, dhcpcd
iwconfig명령으로 사용 가능한 무선랜 카드 장치 이름 확인할 수 있다. wlan0이 무선 랜카드 임을 알 수 있다.
$ iwconfig
lo no wireless extensions.
wlan0 IEEE 802.11bgn Mode:Managed Access Point: Not-Associated
Tx-Power=0 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
sit0 no wireless extensions.
eth0 no wireless extensions.
유선 랜 장치를 비활성화하고 무선 랜 장치를 활성화 한다.
$ ifconfig eth0 down
$ ifconfig wlan0 up
연결 가능한 무선 공유기의 ssid 이름 및 무선 보안 여부를 확인해야 함.
$ iwlist wlan0 scanning
…………………..
Encryption key:on <-- 무선 보안 사용 중임
ESSID:"ssid_name" <-- ssid 이름
.......................
IE: WPA Version 1 <-- 무선 보안 정보
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
.......................
wpa_supplicant 명령을 사용하려면 wpa_supplicant.conf가 필요하다.
이를 위해 우선 psk키를 생성한다.
$ wpa_passphrase ssid_name > /etc/wpa_supplicant/wpa_supplicant.conf
password 입력 후 엔터
입력한 password가 psk로 바꿔어 진 것을 확인 할 수 있다.
$ cat /etc/wpa_supplicant/wpa_supplicant.conf
# reading passphrase from stdin
network={
ssid=”ssid_name”
#psk=”입력한 password”
psk=”생성된 psk”
}
생성된 파일 wpa_supplicant.conf에 추가 정보를 입력한다.
# reading passphrase from stdin
network={
ssid=”ssid_name”
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
psk=”생성된 psk”
}
유선 랜 장치를 중지시키고
ifconfig eth0 down
무선 랜 장치를 활성화 한다.
ifconfig wlan0 up
ssid가 ssid_name인 공유기에 연결한다
$ iwconfig wlan0 essid “ssid_name”
$ wpa_supplicant -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf &
[1] 1920
CTRL-EVENT-SCAN-RESULTS
Trying to associate with 00:00:00:00:00:00 (SSID=’ssid_name’ freq=2412 MHz)
Associated with 00:00:00:00:00:00
WPA: Key negotiation completed with 00:00:00:00:00:00 [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED – Connection to 00:00:00:00:00:00 completed (auth) [id=0 id_str=]
ip를 dhcp로 할당 받는다
$ dhcpcd wlan0 &
[2] 1923
wlan0: dhcpcd 4.0.15 starting
wlan0: broadcasting for a lease
wlan0: offered 192.168.0.2 from 192.168.0.1
wlan0: acknowledged 192.168.0.2 from 192.168.0.1
wlan0: checking 192.168.0.2 is available on attached networks
wlan0: leased 192.168.0.2 for 864000 seconds
또는 수동으로 ip를 설정하려면
$ ifconfig wlan0 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255
$ route add default gw 192.168.0.1 wlan0
$ echo nameserver 192.168.0.1 > /etc/resolv.conf <--DNS 서버 설정
인터넷 사용가능 여부 테스트
$ ping google.com
PING google.com (74.125.127.147) 56(84) bytes of data.
64 bytes from pz-in-f147.1e100.net (74.125.127.147): icmp_seq=1 ttl=48 time=135 ms
참고
Wireless LAN with WPA (AES)
http://www.izawalab.com/blog/?p=622
Gentoo Linux x86 Handbook
http://www.gentoo.org/doc/en/handbook/h ... t=4&chap=4