Handbook:PPC/Networking/Wireless/ko
도입부
리눅스에서의 무선 네트워크는 보통 꽤 간단합니다. WiFi를 설정하는 방식에는 그래픽 클라이언트, 텍스트 형식 인터페이스, 명령행 인터페이스 세가지가 있습니다.
가장 쉬운 방법이라면 데스크톱 환경을 설치했을 경우 그래픽 클라이언트를 사용하는 방법입니다. wicd와 NetworkManager와 같은 대부분의 그래픽 클라이언트에서는 자체적으로 설명이 잘 되어 있습니다. 간단하게 가리키고 누르는 인터페이스를 제공하여 사용자가 짧은 시간안에 네트워크를 구성할 수 있게 해줍니다.
NetworkManager와 wicd에는 메인 그래픽 인터페이스와 텍스트 형식 인터페이스 유틸리티를 함께 제공합니다.
ncurses
USE 플래그를 넣고 net-misc/networkmanager 또는 net-misc/wicd 꾸러미를 이머지하십시오. nmtui 또는 wicd-curses 유틸리티는 X 또는 Wayland 기반 데스크톱 환경을 사용하지 않지만 설정 파일을 직접 편집하지 않고 쉽게 사용할 수 있는 도구를 원하는 이에게 일부 도움을 줍니다.무선 네트워크는 명령줄에서 몇가지 설정 파일을 편집하는것만으로도 설정할 수 있습니다. 설정에 약간의 시간이 필요하지만 다운로드하고 설치할 꾸러미의 수는 적습니다. 그래픽 클라이언트는 대부분 자체적으로 설명이 되어 있습니다만(무려 홈페이지에 도움이 되는 스크린샷도 있음), 대신 명령줄 환경에 중점을 두겠습니다.
명령줄 기반 무선 네트워크 설정을 지원하는 도구는 net-wireless/iw, net-wireless/wireless-tools, net-wireless/wpa_supplicant 세가지가 있습니다. 물론 이들 중 net-wireless/wpa_supplicant를 권장합니다. 기억해야 할 중요한 점은 무선 네트워크 설정은 전체 설정 기반이며, 인터페이스 기반이 아닙니다.
net-wireless/wireless-tools의 차기 버전 net-wireless/iw 프로그램은 대부분의 카드와 드라이버를 지원합니다만 WPA 전용 액세스 포인트에는 연결하지 못합니다. 무선 네트워크에서 WEP 암호화만을 지원하거나 완전히 개방된 네트워크라면, net-wireless/iw 꾸러미가 다른 꾸러미에 비해 단순함을 넘어 제격입니다.
일부 무선 네트워크 카드는 기본적으로 비활성 상태입니다. 이를 활성화하려면 하드웨어 문서를 참고하십시오. 일부 카드는 rfkill 프로그램으로 활성화할 수 있습니다. 이 경우 rfkill list 명령으로 존재하는 카드를 살펴보신 후, rfkill unblock INDEX 명령으로 무선 네트워크 기능을 활성화 하십시오. 그렇지 않으면 무선 네트워크 카드를 버튼, 스위치, 특수 키 조합을 활용하여 랩톱에서 활성화해야합니다.
WPA supplicant
WPA supplicant 프로젝트에서는 WPA를 활성화한 액세스 포인트에 연결할 수 있도록 하는 꾸러미를 제공합니다.
root #
emerge --ask net-wireless/wpa_supplicant
wpa_supplicant가 동작하려면 커널에서 CONFIG_PACKET을 활성화해야합니다. 현재 커널에서 활성화했는지 보려면, 다음을 시도하십시오:
root #
zgrep CONFIG_PACKET /proc/config.gz
root #
grep CONFIG_PACKET /usr/src/linux/.config
USE 플래그 설정에 따라 wpa_supplicant를 KDE에 멋지게 붙을 Qt4로 작성한 그래픽 인터페이스로 설치할 수 있습니다. Qt5로 작성한 그래픽 인터페이스 프로그램을 띄우려면 net-wireless/wpa_supplicant 꾸러미에 대해
USE="qt5"
를 활성화하십시오.다음 /etc/conf.d/net을 설정하여 wireless-tools 보다 wpa_supplicant 모듈이 우선하도록 설정하십시오(둘다 설치했다면 wireless-tools가 기본입니다).
# Prefer wpa_supplicant over wireless-tools
modules="wpa_supplicant"
host-ap 드라이버를 사용할 때 wpa_supplicant를 올바르게 사용할 수 있으려면 카드를 관리 모드로 설정해야 합니다. /etc/conf.d/net에서
iwconfig_eth0="mode managed"
로 설정하시면 됩니다.다음 wpa_supplicant 자체를 설정하십시오(액세스 포인트를 어떻게 보안처리할지에 따라 조금 어려울 수 있습니다). 아래 예제에서는 wpa_supplicant에 딸려오는 /usr/share/doc/wpa_supplicant-<version>/wpa_supplicant.conf.gz 내용을 취해 단순화했습니다.
# The below line not be changed otherwise wpa_supplicant refuses to work
ctrl_interface=/var/run/wpa_supplicant
# Ensure that only root can read the WPA configuration
ctrl_interface_group=0
# Let wpa_supplicant take care of scanning and AP selection
ap_scan=1
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
network={
ssid="simple"
psk="very secret passphrase"
# The higher the priority the sooner we are matched
priority=5
}
# Same as previous, but request SSID-specific scanning (for APs that reject
# broadcast SSID)
network={
ssid="second ssid"
scan_ssid=1
psk="very secret passphrase"
priority=2
}
# Only WPA-PSK is used. Any valid cipher combination is accepted
network={
ssid="example"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
priority=2
}
# Plaintext connection (no WPA, no IEEE 802.1X)
network={
ssid="plaintext-test"
key_mgmt=NONE
}
# Shared WEP key connection (no WPA, no IEEE 802.1X)
network={
ssid="static-wep-test"
key_mgmt=NONE
# Keys in quotes are ASCII keys
wep_key0="abcde"
# Keys specified without quotes are hex keys
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
}
# Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key
# IEEE 802.11 authentication
network={
ssid="static-wep-test2"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
auth_alg=SHARED
}
# IBSS/ad-hoc network with WPA-None/TKIP
network={
ssid="test adhoc"
mode=1
proto=WPA
key_mgmt=WPA-NONE
pairwise=NONE
group=TKIP
psk="secret passphrase"
}
무선 네트워크 도구
초기 설정 및 관리 모드
무선 도구 프로젝트en에서는 기본 무선 네트워크 인터페이스를 WEP 보안 수준으로 설정하는 일반적인 수단을 제공합니다. WEP 보안이 형편없는 방식이긴 하지만, 여전히 전세계에서 일반적으로 사용합니다.
무선 도구 설정은 몇가지 주요 변수로 처리합니다. 아래의 예제 설정 파일은 필요한 모든 내용을 설명했습니다. 참고해둘 사항은 설정을 하지 않으면 "완전히 비암호화한 액세스 포인트에 연결"함을 의미합니다. 무선 네트워크 도구는 언제든 어떤 시스템에든 연결 시도를 진행합니다.
root #
emerge --ask net-wireless/wireless-tools
현재 무선 네트워크 스택 도구는 net-wireless/iw지만, 새 명령에 net-misc/netifrc는 동작하지 않습니다. netifrc를 사용할 때는 net-wireless/wireless-tools를 사용해야 합니다. 자세한 내용은 변수 이름 문서를 참고하십시오.
# Prefer iwconfig over wpa_supplicant
modules="iwconfig"
# Configure WEP keys for Access Points called ESSID1 and ESSID2
# You may configure up to 4 WEP keys, but only 1 can be active at
# any time so we supply a default index of [1] to set key [1] and then
# again afterwards to change the active key to [1]
# We do this incase you define other ESSID's to use WEP keys other than 1
#
# Prefixing the key with s: means it's an ASCII key, otherwise a HEX key
#
# enc open specified open security (most secure)
# enc restricted specified restricted security (least secure)
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"
# The below only work when we scan for available Access Points
# Sometimes more than one Access Point is visible so we need to
# define a preferred order to connect in
preferred_aps="'ESSID1' 'ESSID2'"
AP 선택 세부 설정
AP 선택을 세밀하게 설정할 몇가지 추가 옵션을 넣을 수 있습니다만 필요하진 않습니다.
시스템을 설정하는 방법중 하나는 선호하는 AP에만 접속할 수 있게 하는 방법입니다. 기본적으로 모든 설정대로 돌아가지 않고 wireless-tools가 비암호화 액세스 포인트에 연결할 수 있다면 그렇기 진행합니다. associate_order 변수로 제어할 수 있습니다. 아래의 표를 통해 값 목록과 처리 방식을 설명하겠습니다.
값 | 설명 |
---|---|
any | 기본 동작 |
preferredonly | 선호 목록에서 나타나는 AP에만 연결 |
forcepreferred | AP가 검색해서 나타나지 않을 경우 선호 순서대로 AP에 강제 연결 |
forcepreferredonly | AP를 검색하지 않음 - 대신 다른 AP에도 순서대로 연결 시도 |
forceany | forcepreferred와 동일하며 존재하는 다른 AP에도 연결 |
blacklist_aps와 unique_ap 선택도 있습니다. blacklist_aps는 preffered_aps와 비슷하게 동작합니다. unique_aps는 두번째 무선 네트워크 인터페이스가 첫번째 인터페이스와 마찬가지로 동일한 액세스 포인트에 연결할 수 있는지 여부인 yes와 no 값입니다.
# Sometimes you never want to connect to certain access points
blacklist_aps="'ESSID3' 'ESSID4'"
# If you have more than one wireless card, you can say if you want
# to allow each card to associate with the same Access Point or not
# Values are "yes" and "no"
# Default is "yes"
unique_ap="yes"
애드혹 또는 마스터 모드
관리 모드에서 액세스 포인트 연결에 실패했을 경우 시스템을 ad-hoc 노드로 설정하려면 이 항목을 대체 수단으로 사용하십시오:
adhoc_essid_eth0="This Adhoc Node"
ad-hoc 네트워크에 연결하거나 master 모드로 시스템을 구동하여 자체를 액세스포인트로 만들 수 있습니다.
# Set the mode - can be managed (default), ad-hoc or master
# Not all drivers support all modes
mode_eth0="ad-hoc"
# Set the ESSID of the interface
# In managed mode, this forces the interface to try and connect to the
# specified ESSID and nothing else
essid_eth0="This Adhoc Node"
# We use channel 3 if you don't specify one
channel_eth0="9"
채널 선택에 관련된 중요한 자료는 NetBSD 문서에서 찾을 수 있는 BSD 무선랜 문서(en)입니다. 14개의 채널이 존재하는데 1-11 채널을 북아메리카에서 합법적으로 쓸 수 있고, 1-13 채널은 유럽에서 쓸 수 있으며 10-13 채널은 프랑스, 14번 채널은 일본에서만 쓸 수 있습니다. 의심이 간다면 무선 네트워크 카드 또는 액세스 포인트에 딸려오는 문서를 참고하십시오. 선택한 채널이 액세스 포인트의 채널과 동일한지(또는 다른 카드가 ad-hoc 네트워크 상태인지) 확인하십시오. 북아메리카와 대부분의 유럽 지역에서 판매하는 카드 기본 값은 3입니다. 프랑스에서 판매하는 카드 기본값은 11이며 일본에서 판매하는 카드 기본값은 14입니다.
무선 네트워크 도구 문제 해결
무선 네트워크를 띄우는데 드라이버 또는 환경 문제가 있기 때문에 이에 대해 도움을 줄 몇가지 변수가 있습니다. 시도해 볼 변수에 대한 내용을 아래의 표로 정리했습니다.
변수 | 기본값 | 설명 |
---|---|---|
iwconfig_eth0 | iwconfig에 무얼 전달하는지에 대한 자세한 내용은 iwconfig 맨 페이지를 보십시오 | |
iwpriv_eth0 | iwpriv에 무얼 전달하는지에 대한 자세한 내용은 iwpriv 맨 페이지를 보십시오 | |
sleep_scan_eth0 | 0 | 검색을 시도하기 전에 대기할 초단위 시간입니다. 드라이버/펌웨어를 사용할 수 있기 전에 활성 시간이 더 필요한 경우 이 설정값이 필요합니다. |
sleep_associate_eth0 | 5 | 어떤 액세스 포인트에서 다른 액세스 포인트로 이동할 때 기다릴 초 단위 시간 |
associate_test_eth0 | MAC | 어떤 드라이버는 연결을 시도하거나 연결을 잃었을 때 잘못된 MAC 주소를 초기화 하지 못합니다. 일부 드라이버는 연결을 시도하거나 연결을 잃었을 때, 연결 품질 정보를 초기화 하지 못하기도 합니다. MAC, 연결 품질 정보를 포함한 설정을 유효화합니다. |
scan_mode_eth0 | 어떤 드라이버는 ad-hoc 모드에서 검색해야 합니다. 따라서 검색에 문제가 있으면 여기서 ad-hoc으로 설정하십시오 | |
iwpriv_scan_pre_eth0 | 검색을 시도하기 전 인터페이스에 iwpriv 명령을 보냅니다. 자세한 내용은 iwpriv 맨 페이지를 살펴보십시오. | |
iwpriv_scan_post_eth0 | 검색이 끝난 후 인터페이스에 iwpriv 명령을 보냅니다. 자세한 내용은 iwpriv 맨 페이지를 살펴보십시오. |
ESSID별 네트워크 설정 정의
이 절에서, ESSID를 기반으로 한 네트워크 설정 방법을 알려드리겠습니다. 예를 들어 ESSID ESSID1로 설정한 무선 네트워크에서 고정 IP 주소를 사용하고 ESSID ESSID2에서는 DHCP를 사용한다고 하겠습니다.
wpa_supplicant 뿐만 아니라 wireless-tools에 대해서도 유효합니다
변수 이름 문서를 참고하십시오.
config_ESSID1="192.168.0.3/24 brd 192.168.0.255"
routes_ESSID1="default via 192.168.0.1"
config_ESSID2="dhcp"
fallback_ESSID2="192.168.3.4/24"
fallback_route_ESSID2="default via 192.168.3.1"
# We can define nameservers and other things too
# NOTE: DHCP will override these unless it's told not to
dns_servers_ESSID1="192.168.0.1 192.168.0.2"
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="search.this.domain search.that.domain"
# You override by the MAC address of the Access Point
# This handy if you goto different locations that have the same ESSID
config_001122334455="dhcp"
dhcpcd_001122334455="-t 10"
dns_servers_001122334455="192.168.0.1 192.168.0.2"