이것은 명령 행에서이 작업을 수행하는 방법을 간략하게 설명하는 꽤 좋은 기사입니다 (약간 구식 인 경우 (2006 년이 지난 경우)).
http://www.linux.com/archive/feed/55617
무선 장치가 제대로 작동한다고 가정하면 브리징 섹션에서 반 쯤쯤 내려갈 수 있습니다.
WPA2 (Wi-Fi Protected Access 버전 2 )는 무선 네트워크 보안을위한 사실상의 표준이되고 있으며 Wi-Fi Alliance 에서 인증 한 모든 새로운 Wi-Fi 제품의 필수 기능입니다 . 우리 모두는 이전 WEP의 보안 약점을 알고 있습니다. 이번에는 그들이 옳았습니다. 다음은 Linux 호스트에서 WPA2 프로토콜을 구현하고 네트워크의 보안 무선 액세스 포인트 (WAP)를 작성하는 방법입니다.
대부분의 소비자 용 상용 WAP는 동일한 간단한 방식으로 작동합니다. 유선 (이더넷) 네트워크 인터페이스와 무선 인터페이스간에 브리지를 만듭니다. 바로 우리가 할 일입니다. WAP 부분은 hostapd에 의해 처리됩니다지원하는 무선 인터페이스를 선택해야합니다. 지원되는 NIC 중에는 Prism 2 / 2.5 / 3, Atheros ar521x 및 Prism GT / Duette / Indigo 칩셋이 있습니다. hostapd 홈페이지에 각 칩셋에 대한 Linux 드라이버 링크와 함께 목록이 있습니다. WAP에 Atheros AR5212 기반 PCI 카드가 설치되어 있으며 hostapd에서 지원합니다. 모든 펜티엄 (또는 최신) 시스템이 작동하지만 일부 PCI 무선 카드가 작동하려면 PCI 2.2가 필요하므로 구입하기 전에 시스템의 마더 보드 사양을 확인하십시오. WAP를 LAN에 연결하기 위해 Linux에서 지원되는 이더넷 인터페이스도 필요합니다. 대부분의 온보드 인터페이스는 정상적으로 작동합니다.
내 설정은 Debian Testing (Etch)을 기반으로하지만 최근 2.6 커널의 모든 GNU / Linux 배포판이 작동합니다. 커널은 802.1d 이더넷 브리징 (CONFIG_BRIDGE) 및 무선 LAN (CONFIG_NET_RADIO)을 지원해야합니다. 대부분의 기본 스톡 커널에는 이러한 기능이 활성화되어 있지만 자신의 커널을 빌드하려면이 옵션을 포함하십시오. hostapd 외에 설치해야 할 다른 패키지는 bridge-utils 및 wireless-tools 입니다. 주요 GNU / Linux 배포판은 이러한 모든 프로그램을위한 바이너리 패키지를 제공하지만 소스에서 빌드하는 것을 선호하는 경우 홈페이지에서 자세한 정보를 찾을 수 있습니다.
두 인터페이스를 연결하기 전에 무선 인터페이스 (내 경우에는 ath0; 설정에 맞게 조정)를 hostap 또는 Master 모드로 설정해야합니다. 일반적으로 이는 iwconfig ath0 모드 마스터를 실행하는 것만 큼 간단하지만 Linux의 WLAN 지원은 아직 표준화되지 않았기 때문에 일부 드라이버에는 추가 구성이 필요할 수 있습니다. Atheros 기반 인터페이스가있는 경우 명령 wlanconfig ath0 destroy; wlanconfig ath0 create wlandev wifi0 wlanmode ap
전에 다음을 실행해야합니다 iwconfig
. 그 후에는 달리기 iwconfig ath0
가 달리기 시작 mode:Master
합니다.
이제 브리지를 만들어 봅시다. 이더넷 인터페이스가 eth0이라고 가정합니다.
ifconfig eth0 0.0.0.0 up
ifconfig ath0 0.0.0.0 up
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 ath0
브리지를 중지하려면 다음을 실행해야합니다.
ifconfig br0 down
ifconfig eth0 0.0.0.0 down
ifconfig ath0 0.0.0.0 down
brctl delif br0 eth0
brctl delif br0 ath0
brctl delbr br0
예를 들어 SSH를 사용하여 네트워크에서 WAP 호스트에 액세스하려는 경우 선택적으로 br0 인터페이스에 IP 주소를 제공 할 수 있습니다. 각 배포판은 네트워크를 구성하는 고유 한 방법을 제공합니다. 데비안 (또는 데비안 기반 배포판 (예 : Ubuntu))을 사용하는 경우 /etc/network/interfaces
파일에 다음을 추가하여 이전 명령을 모두 마무리 할 수 있습니다 .
auto ath0 br0
iface ath0 inet manual
pre-up wlanconfig ath0 destroy
pre-up wlanconfig ath0 create wlandev wifi0 wlanmode ap
post-down wlanconfig ath0 destroy
wireless-mode master
iface br0 inet manual
bridge_ports eth0 ath0
참고 ifupdown
당신이 그것을 위해 별도의 연을 필요가 없습니다 핸들이 자동으로 eth0에 /etc/network/interfaces
. 브릿지가 올바르게 구성되었는지 확인하려면을 실행하십시오 brctl show
. 당신은 다음과 같은 대가를 받아야합니다 :
bridge name bridge id STP enabled interfaces
br0 8000.00032f2481f0 no ath0
eth0
hostapd를 엉망으로 만들기 전에 WPA2에 대한 암호 구가 필요합니다. 모든 암호와 마찬가지로 임의의 암호이므로 추측하기 어렵습니다. 랜덤 패스 문구를 얻는 좋은 방법은 Gibson Research Corp.의 Ultra High Security Password Generator 를 방문 하여 세 번째 비밀번호 (63 개의 임의의 영숫자 (az, AZ, 0-9))를 사용하는 것입니다. 영숫자가 아닌 ASCII 문자 (예 :!, @ 등)를 포함하는 암호가 있으면 유혹적 일 수 있지만 일부 클라이언트 (예 : Windows XP)는 마음에 들지 않습니다.
이제 이름이 지정된 새 텍스트 파일을 만들고 다음 /etc/hostapd/wpa_psk
과 같이 암호 문구를 붙여 넣습니다.
00:00:00:00:00:00 PASSPHRASE
0이있는 첫 번째 부분은 '모든 MAC 주소와 일치'를 의미하며 정확히 그렇게합니다. 각 클라이언트의 MAC 주소와 해당 암호를 사용하여 파일에 새 줄을 추가하여 각 클라이언트에 다른 암호를 사용할 수도 있습니다. 를 실행하여 루트 만 해당 파일에 액세스 할 수 있는지 확인하십시오 chmod 600 /etc/hostapd/wpa_psk
.
이제 hostapd의 기본 구성 파일의 백업을 만들고 /etc/hostapd/hostapd.conf
를 실행하여 참조로 유지하십시오 mv /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.orig
. 새 hostapd.conf 파일을 만들고 다음 줄을 붙여 넣습니다.
interface=ath0
bridge=br0
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=My_Secure_WLAN
#macaddr_acl=1
#accept_mac_file=/etc/hostapd/accept
auth_algs=3
eapol_key_index_workaround=0
eap_server=0
wpa=3
wpa_psk_file=/etc/hostapd/wpa_psk
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
stakey=0
기울임 꼴로 표시된 부분은 설정과 일치하는 정보로 교체하십시오. 특정 클라이언트 만 연결할 수있게하려면 위의 두 줄에서 # 문자를 제거하고 해당 클라이언트의 MAC 주소를에 복사 /etc/hostapd/accept
한 다음 루트로만이 파일에 액세스 할 수 있도록하십시오 (chmod 600). 사용 된 옵션에 대한 자세한 내용은 이전에 만든 백업 파일 (hostapd.conf.orig)의 설명을 읽으십시오.
hostapd 데몬 ( /etc/init.d/hostapd start
)을 시작하고 /var/log/daemon.log
작동하는지 확인 하십시오 . 데몬이 나타나지 않으면 디버그 수준 ( option debug=
hostapd.conf에서)을 4로 높이고 다시 시도하십시오.
이제 클라이언트에서 사용 가능한 무선 네트워크를 검색하면 ESSID가 표시됩니다. Linux 클라이언트에서 WAP에 연결하려면 wpa_supplicant 를 설치 /etc/wpa_supplicant/
하고 다음과 같이 구성 파일 wpa_supplicant.conf (Debian에서 설치됨 )를 작성 해야 합니다 .
update_config=1
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
network={
ssid="My_Secure_WLAN"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
psk="PASSPHRASE"
priority=5
}
설정 및 실행에 맞게 이탤릭체로 된 부분을 다시 교체하십시오 wpa_supplicant -i eth1 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf
( eth1
Wlan 인터페이스 이름으로 대체 하고 카드에 적합한 드라이버로 wext로 바꾸십시오. 자세한 정보는 옵션없이 wpa_supplicant를 실행하십시오). 이 명령은 포 그라운드에서 wpa_supplicant를 시작하고 WAP에 연결을 시도합니다. 출력 결과가 다음과 같으면 모든 설정이 완료된 것입니다.
Trying to associate with 00:11:22:33:44:55 (SSID='My_Secure_WLAN' freq=0 MHz)
Associated with 00:11:22:33:44:55
WPA: Key negotiation completed with 00:11:22:33:44:55 [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to 00:11:22:33:44:55 completed (auth) [id=0 id_str=]
무선 인터페이스에 고정 IP 주소를 제공하거나 DHCP 클라이언트를 실행하고 LAN 내부에 호스트를 핑하여 연결이 작동하는지 확인하십시오.
축하합니다. 사용자 정의가 가능한 무선 액세스 포인트를 구축했습니다. 이 설정은 가정이나 소규모 사무실에서 사용하기에 이상적이지만 RADIUS 서버 또는 더 나은 VPN 인증을 통해 엔터프라이즈에서보다 강력한 기능이 필요합니다.