wpa_supplicant를 이용한 무선랜 설정

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

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다