Đây là một bài viết khá hay (nếu hơi lỗi thời [nếu năm 2006 đã lỗi thời]) trong đó nêu ra cách thực hiện điều này từ dòng lệnh.
http://www.linux.com/archive/feed/55617
Giả sử thiết bị không dây của bạn hoạt động tốt, có lẽ bạn có thể lặn ngay tại phần cầu nối khoảng một nửa.
Wi-Fi Protected Access phiên bản 2 ( WPA2 ) đang trở thành tiêu chuẩn thực tế để bảo mật mạng không dây và là tính năng bắt buộc đối với tất cả các sản phẩm Wi-Fi mới được Liên minh Wi-Fi chứng nhận . Chúng ta đều biết những điểm yếu về bảo mật của người tiền nhiệm của nó, WEP; lần này họ đã hiểu đúng. Dưới đây là cách triển khai giao thức WPA2 trên máy chủ Linux và tạo điểm truy cập không dây an toàn (WAP) cho mạng của bạn.
Hầu hết các WAP thương mại cấp tiêu dùng hoạt động theo cùng một cách đơn giản: chúng tạo ra một cầu nối giữa giao diện mạng có dây (Ethernet) và không dây. Đó chính xác là những gì chúng ta sẽ làm quá. Phần WAP sẽ được xử lý bởi hostapddaemon, vì vậy bạn phải chọn một giao diện không dây mà nó hỗ trợ. Trong số các NIC được hỗ trợ có những loại có chipset Prism 2 / 2.5 / 3, Atheros ar521x và Prism GT / Duette / Indigo; một danh sách có sẵn trên trang chủ của hostapd, cùng với các liên kết cho trình điều khiển Linux cho mỗi chipset. Tôi có thẻ PCI dựa trên Atheros AR5212 được cài đặt trên WAP của tôi, được hỗ trợ bởi hostapd. Mặc dù mọi hệ thống Pentium (hoặc mới hơn) sẽ hoạt động, một số thẻ không dây PCI yêu cầu PCI 2.2 để hoạt động, vì vậy hãy đảm bảo kiểm tra thông số kỹ thuật của bo mạch chủ của hệ thống trước khi mua. Bạn cũng sẽ cần một giao diện Ethernet được Linux hỗ trợ để kết nối WAP của bạn với mạng LAN; hầu hết các giao diện trên tàu sẽ hoạt động tốt.
Thiết lập của tôi dựa trên Kiểm tra Debian (Etch), nhưng mọi bản phân phối GNU / Linux có nhân 2.6 gần đây sẽ hoạt động. Hạt nhân phải hỗ trợ Cầu nối Ethernet 802.1d (CONFIG_BRIDGE) và LAN không dây (CONFIG_NET_RADIO). Hầu hết các kernel stock mặc định đều có các tính năng này được kích hoạt, nhưng nếu bạn muốn xây dựng kernel của riêng mình, hãy đảm bảo bao gồm các tùy chọn này. Các gói khác duy nhất bạn cần cài đặt, ngoài hostapd, là các công cụ cầu nối và các công cụ không dây . Các bản phân phối GNU / Linux chính cung cấp các gói nhị phân cho tất cả các chương trình này, nhưng nếu bạn muốn xây dựng chúng từ nguồn, bạn có thể tìm thêm thông tin về trang chủ của chúng.
Trước khi kết nối hai giao diện với nhau, chúng ta phải đặt giao diện không dây (trong trường hợp của tôi là ath0; điều chỉnh nó để phù hợp với thiết lập của bạn) ở chế độ hostap hoặc Master. Thông thường, điều này đơn giản như khi chạy iwconfig ath0 mode Master, nhưng vì hỗ trợ wlan trong Linux chưa được chuẩn hóa, một số trình điều khiển có thể cần cấu hình bổ sung. Nếu bạn có giao diện dựa trên Atheros, bạn cũng cần chạy như sau: wlanconfig ath0 destroy; wlanconfig ath0 create wlandev wifi0 wlanmode ap
trước iwconfig
lệnh. Sau đó, chạy iwconfig ath0
sẽ trở lại mode:Master
, trong số những người khác.
Bây giờ hãy tạo cầu. Chúng tôi sẽ giả sử rằng giao diện Ethernet là 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
Và để dừng cầu, bạn nên chạy:
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
Bạn có thể tùy chọn cung cấp địa chỉ IP cho giao diện br0 nếu bạn muốn truy cập máy chủ WAP từ mạng, sử dụng ví dụ SSH. Mỗi phân phối cung cấp cách riêng để cấu hình mạng; nếu bạn sử dụng Debian (hoặc bất kỳ bản phân phối dựa trên Debian nào, chẳng hạn như Ubuntu), bạn có thể kết thúc tất cả các lệnh trước đó bằng cách thêm các mục sau vào /etc/network/interfaces
tệp của mình :
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
Lưu ý rằng ifupdown
tự động xử lý eth0, vì vậy bạn không cần một khổ thơ riêng cho nó /etc/network/interfaces
. Để xác minh rằng cây cầu được cấu hình đúng, hãy chạy brctl show
. Bạn sẽ nhận được một cái gì đó như thế này trở lại:
bridge name bridge id STP enabled interfaces
br0 8000.00032f2481f0 no ath0
eth0
Trước khi bắt đầu gây rối với hostapd, chúng ta cần một cụm từ cho WPA2. Như với tất cả các mật khẩu, nó nên là ngẫu nhiên và do đó khó đoán. Một cách hay để có được một cụm từ ngẫu nhiên là truy cập Trình tạo mật khẩu bảo mật cực cao của Gibson Research Corp và sử dụng mật khẩu thứ ba mà nó tạo ra - mật khẩu có tiêu đề 63 ký tự ngẫu nhiên (az, AZ, 0-9). Có một cụm mật khẩu bao gồm các ký tự ASCII không phải là số (ví dụ !, @, V.v.) có thể rất hấp dẫn, nhưng một số khách hàng - cụ thể là Windows XP - dường như không thích chúng.
Bây giờ hãy tạo một tệp văn bản mới có tên /etc/hostapd/wpa_psk
và dán cụm mật khẩu của bạn dưới dạng:
00:00:00:00:00:00 PASSPHRASE
Phần đầu tiên với các số không có nghĩa là 'khớp tất cả các địa chỉ MAC' và thực hiện chính xác điều đó. Bạn cũng có thể sử dụng các cụm mật khẩu khác nhau cho mỗi khách hàng bằng cách nối thêm một dòng mới vào tệp với địa chỉ MAC của từng khách hàng và cụm mật khẩu của nó. Hãy chắc chắn rằng chỉ root mới có quyền truy cập vào tập tin đó bằng cách chạy chmod 600 /etc/hostapd/wpa_psk
.
Bây giờ hãy tạo một bản sao lưu của tệp cấu hình chính của hostapd /etc/hostapd/hostapd.conf
và giữ nó làm tài liệu tham khảo bằng cách chạy mv /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.orig
. Tạo một tệp hostapd.conf mới và dán các dòng sau vào đó:
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
Thay thế các phần in nghiêng bằng thông tin phù hợp với thiết lập của bạn. Nếu bạn muốn chỉ cho phép các máy khách cụ thể kết nối, hãy xóa ký tự # khỏi hai dòng trên và sao chép địa chỉ MAC của các máy khách đó /etc/hostapd/accept
và làm cho tệp này chỉ có thể truy cập bằng root (chmod 600). Để biết thêm thông tin về các tùy chọn được sử dụng, hãy đọc các nhận xét trong tệp sao lưu mà bạn đã tạo trước đó (hostapd.conf.orig).
Bắt đầu hostapd daemon ( /etc/init.d/hostapd start
) và kiểm tra /var/log/daemon.log
để xác minh rằng nó hoạt động. Nếu daemon không xuất hiện, hãy tăng mức độ gỡ lỗi ( option debug=
trong hostapd.conf) lên 4 và thử lại.
Bây giờ nếu bạn quét các mạng không dây có sẵn từ máy khách, bạn sẽ thấy ESSID của mình. Để kết nối với WAP từ máy khách Linux, bạn cần cài đặt wpa_supplicant và tạo tệp cấu hình, wpa_supplicant.conf (trong Debian, được cài đặt /etc/wpa_supplicant/
) như sau:
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
}
Một lần nữa thay thế các phần in nghiêng để khớp với thiết lập và chạy của bạn wpa_supplicant -i eth1 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf
(thay thế eth1
bằng tên giao diện wlan và wext bằng trình điều khiển thích hợp cho thẻ của bạn; chạy wpa_supplicant mà không có bất kỳ tùy chọn nào để biết thêm thông tin). Lệnh này bắt đầu wpa_supplicant ở nền trước và cố gắng kết nối với WAP. Nếu đầu ra trông như sau, bạn đã thiết lập xong:
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=]
Cung cấp địa chỉ IP tĩnh cho giao diện không dây của bạn (hoặc chạy ứng dụng khách DHCP) và thử ping máy chủ trong mạng LAN của bạn để xác minh rằng kết nối hoạt động.
Xin chúc mừng, bạn vừa xây dựng cho mình một điểm truy cập không dây tùy biến cao. Mặc dù thiết lập này lý tưởng cho việc sử dụng tại nhà hoặc văn phòng nhỏ, bạn cần một thứ gì đó mạnh mẽ hơn trong doanh nghiệp, với xác thực với máy chủ RADIUS, hoặc thậm chí tốt hơn, VPN.