นี่เป็นบทความที่ค่อนข้างดี (ถ้าเป็นบทความที่ล้าสมัย [หากปี 2549 ล้าสมัย]) ซึ่งสรุปวิธีการทำสิ่งนี้จากบรรทัดคำสั่ง
http://www.linux.com/archive/feed/55617
สมมติว่าอุปกรณ์ไร้สายของคุณทำงานตกลงคุณอาจจะดำดิ่งเข้าไปที่ส่วนเชื่อมต่อประมาณครึ่งทาง
Wi-Fi รุ่น Protected Access 2 ( WPA2 ) จะกลายเป็นมาตรฐาน de facto สำหรับการรักษาความปลอดภัยเครือข่ายไร้สายและคุณลักษณะที่จำเป็นสำหรับผลิตภัณฑ์ Wi-Fi ใหม่ทุกคนได้รับการรับรองโดยWi-Fi Alliance เราทุกคนรู้จุดอ่อนด้านความปลอดภัยของ WEP รุ่นก่อน ครั้งนี้พวกเขาทำให้ถูกต้อง ต่อไปนี้เป็นวิธีการใช้โปรโตคอล WPA2 บนโฮสต์ Linux และสร้างจุดเชื่อมต่อไร้สายที่ปลอดภัย (WAP) สำหรับเครือข่ายของคุณ
WAP เชิงพาณิชย์ระดับผู้บริโภคส่วนใหญ่ทำงานในลักษณะที่เรียบง่ายเหมือนกัน: พวกเขาสร้างสะพานเชื่อมต่อระหว่างเครือข่ายต่อสาย (Ethernet) และเครือข่ายไร้สาย นั่นคือสิ่งที่เราจะทำเช่นกัน ส่วน WAP จะถูกจัดการโดยhostapddaemon ดังนั้นคุณต้องเลือกอินเตอร์เฟสแบบไร้สายที่รองรับ ในบรรดานิคส์ที่รองรับ ได้แก่ Prism 2 / 2.5 / 3, Atheros ar521x และ Prism GT / Duette / Indigo chipsets รายการมีอยู่ในโฮมเพจของ hostapd พร้อมกับลิงก์สำหรับไดรเวอร์ Linux สำหรับแต่ละชิปเซ็ต ฉันมีการ์ด PCI ที่ใช้ Atheros AR5212 ติดตั้งบน WAP ของฉันซึ่งรองรับโดย hostapd แม้ว่าระบบ Pentium ใด ๆ (หรือใหม่กว่า) จะทำงานได้ แต่การ์ดไร้สาย PCI บางรุ่นจำเป็นต้องใช้ PCI 2.2 ในการใช้งานดังนั้นโปรดตรวจสอบข้อมูลจำเพาะของเมนบอร์ดในระบบของคุณก่อนซื้อ คุณจะต้องใช้อินเตอร์เฟส Ethernet ที่ Linux รองรับสำหรับการเชื่อมต่อ WAP ของคุณกับ LAN อินเทอร์เฟซออนบอร์ดส่วนใหญ่จะใช้งานได้ดี
การตั้งค่าของฉันขึ้นอยู่กับการทดสอบ Debian (Etch) แต่การแจกจ่าย GNU / Linux ใด ๆ ที่มีเคอร์เนล 2.6 รุ่นล่าสุดจะทำงานได้ เคอร์เนลต้องรองรับ 802.1d Ethernet Bridging (CONFIG_BRIDGE) และ Wireless LAN (CONFIG_NET_RADIO) เมล็ดสต็อคเริ่มต้นส่วนใหญ่เปิดใช้งานคุณลักษณะเหล่านี้ แต่ถ้าคุณต้องการสร้างเคอร์เนลของคุณเองตรวจสอบให้แน่ใจว่าได้รวมตัวเลือกเหล่านี้แล้ว เพียงแพคเกจอื่น ๆ ที่คุณจะต้องติดตั้งนอกจาก hostapd เป็นสะพาน utilsและWi-Fi เครื่องมือ การกระจาย GNU / Linux ที่สำคัญเสนอแพ็คเกจไบนารีสำหรับโปรแกรมเหล่านี้ แต่ถ้าคุณต้องการสร้างจากแหล่งที่มาคุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับหน้าแรกของพวกเขา
ก่อนที่จะเชื่อมต่ออินเตอร์เฟซทั้งสองเข้าด้วยกันเราจะต้องใส่อินเตอร์เฟสไร้สาย (ในกรณีของฉัน ath0; ปรับให้เข้ากับการตั้งค่าของคุณ) ในโหมด hostap หรือโหมดมาสเตอร์ โดยปกติแล้วนี่จะง่ายเหมือนการรันโหมด iwconfig ath0 Master แต่เนื่องจากการรองรับ wlan ใน Linux ยังไม่ได้มาตรฐานดังนั้นไดรเวอร์บางตัวอาจต้องมีการกำหนดค่าเพิ่มเติม หากคุณมีอินเตอร์เฟสที่ใช้ 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
คุณสามารถเลือกที่จะให้ที่อยู่ IP กับอินเทอร์เฟซ br0 หากคุณต้องการเข้าถึงโฮสต์ WAP จากเครือข่ายโดยใช้ SSH เช่น การแจกจ่ายแต่ละรายการนำเสนอวิธีการกำหนดค่าเครือข่ายของตนเอง ถ้าคุณใช้ Debian (หรือการกระจายที่ใช้ Debian เช่น 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.และใช้รหัสผ่านที่สามที่สร้างขึ้นซึ่งเป็นหนึ่งในตัวอักษร 63 ตัวอักษรและตัวเลขแบบสุ่ม การมีข้อความรหัสผ่านที่มีอักขระ ASCII ที่ไม่ใช่ตัวเลขและตัวอักษร (เช่น!, @, ฯลฯ ) อาจดึงดูด แต่ลูกค้าบางรายเช่น Windows XP ดูเหมือนจะไม่ชอบพวกเขา
ตอนนี้สร้างไฟล์ข้อความใหม่ชื่อ/etc/hostapd/wpa_psk
และวางวลีรหัสผ่านของคุณเป็น:
00:00:00:00:00:00 PASSPHRASE
ส่วนแรกด้วยค่าศูนย์หมายถึง 'จับคู่ที่อยู่ 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
และทำให้ไฟล์นี้สามารถเข้าถึงได้โดย root เท่านั้น (chmod 600) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกที่ใช้อ่านความคิดเห็นในไฟล์สำรองข้อมูลที่คุณสร้างไว้ก่อนหน้านี้ (hostapd.conf.orig)
เริ่ม hostapd daemon ( /etc/init.d/hostapd start
) และตรวจสอบ/var/log/daemon.log
เพื่อตรวจสอบว่ามันใช้งานได้ หาก daemon ไม่เกิดขึ้นให้เพิ่มระดับการดีบัก ( option debug=
ใน hostapd.conf) เป็น 4 แล้วลองอีกครั้ง
ตอนนี้ถ้าคุณสแกนหาเครือข่ายไร้สายที่มีจากไคลเอนต์คุณควรเห็น ESSID ของคุณ ในการเชื่อมต่อ WAP จากไคลเอนต์ Linux คุณจะต้องติดตั้งwpa_supplicantและสร้างไฟล์การกำหนดค่า wpa_supplicant.conf (ใน Debian ติดตั้งใน/etc/wpa_supplicant/
) ดังนี้:
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) และลอง ping โฮสต์ภายใน LAN ของคุณเพื่อตรวจสอบว่าการเชื่อมต่อใช้งานได้
ขอแสดงความยินดีคุณเพิ่งสร้างจุดเชื่อมต่อไร้สายที่สามารถปรับแต่งได้เอง แม้ว่าการตั้งค่านี้เหมาะสำหรับการใช้งานที่บ้านหรือสำนักงานขนาดเล็ก แต่คุณต้องการสิ่งที่แข็งแกร่งกว่าในองค์กรพร้อมการตรวจสอบสิทธิ์กับเซิร์ฟเวอร์ RADIUS หรือ VPN ที่ดียิ่งขึ้น