标签:
安装openssl:
sudo apt-get install openssl sudo apt-get install libssl-dev build-essential zlibc zlib-bin libidn11-dev libidn11
下载wpa_supplicant
wget http://hostap.epitest.fi/releases/wpa_supplicant-2.0.tar.gz tar -xzvf wpa_supplicant-2.0.tar.gz cd wpa_supplicant-2.0 cd wpa_supplicant vi .config
粘贴以下内容保存
#.config # # Uncomment following two lines and fix the paths if you have installed openssl # in non-default location #CFLAGS += -I/usr/local/openssl/include #LIBS += -L/usr/local/openssl/lib # Driver interface for Host AP driver #CONFIG_DRIVER_HOSTAP=y # Driver interface for Agere driver #CONFIG_DRIVER_HERMES=y # Change include directories to match with the local setup #CFLAGS += -I../../hcf -I../../include -I../../include/hcf #CFLAGS += -I../../include/wireless # Driver interface for Prism54 driver # (Note: Prism54 is not yet supported, i.e., this will not work as-is and is # for developers only) #CONFIG_DRIVER_PRISM54=y # Driver interface for ndiswrapper #CONFIG_DRIVER_NDISWRAPPER=y # Driver interface for Atmel driver #CONFIG_DRIVER_ATMEL=y # Driver interface for Broadcom driver #CONFIG_DRIVER_BROADCOM=y # Example path for wlioctl.h; change to match your configuration #CFLAGS += -I/opt/WRT54GS/release/src/include # Driver interface for Intel ipw2100/2200 driver #CONFIG_DRIVER_IPW=y CONFIG_DRIVER_MADWIFI=y # Change include directories to match with the local setup CFLAGS += -I../madwif CONFIG_DRIVER_WEXT=y # Driver interface for FreeBSD net80211 layer (e.g., Atheros driver) #CONFIG_DRIVER_BSD=y #CFLAGS += -I/usr/local/include #LIBS += -L/usr/local/lib # Driver interface for Windows NDIS #CONFIG_DRIVER_NDIS=y #CFLAGS += -I/usr/include/w32api/ddk #LIBS += -L/usr/local/lib # For native build using mingw #CONFIG_NATIVE_WINDOWS=y # Additional directories for cross-compilation on Linux host for mingw target #CFLAGS += -I/opt/mingw/mingw32/include/ddk #LIBS += -L/opt/mingw/mingw32/lib #CC=mingw32-gcc # Driver interface for development testing #CONFIG_DRIVER_TEST=y # Driver interface for wired Ethernet drivers #CONFIG_DRIVER_WIRED=y CONFIG_IEEE8021X_EAPOL=y # EAP-MD5 (automatically included if EAP-TTLS is enabled) CONFIG_EAP_MD5=y # EAP-MSCHAPv2 (automatically included if EAP-PEAP is enabled) CONFIG_EAP_MSCHAPV2=y # EAP-TLS CONFIG_EAP_TLS=y # EAL-PEAP CONFIG_EAP_PEAP=y # EAP-TTLS CONFIG_EAP_TTLS=y # EAP-GTC CONFIG_EAP_GTC=y # EAP-OTP CONFIG_EAP_OTP=y # LEAP CONFIG_EAP_LEAP=y # PKCS#12 (PFX) support (used to read private key and certificate file from # a file that usually has extension .p12 or .pfx) CONFIG_PKCS12=y # Include control interface for external programs, e.g, wpa_cli CONFIG_CTRL_IFACE=y
编译与安装:
make make install
配置并连接路由器:
#! /bin/sh -
insmod /etc/Wireless/RT2870STA/mt7601Usta.ko
wlan_no="ra0"
echo Please choose WiFi connect mode
echo "(1,no_pass),(2,wpa_psk),(3,wpa2_psk)"
read conn_mod
if [ "$conn_mod" = "1" ]
then
#1.1 get essid
echo Welcom to no_pass mode!
iwlist $wlan_no scan | grep ESSID
echo Please choose a essid:
read inputssid
if [ `iwlist $wlan_no scan | grep $inputssid`x != "x" ]
then
echo "input ok!"
#1.2 connect!
iwconfig $wlan_no essid $inputssid
dhclient $wlan_no
fi
echo done
fi
if [ "$conn_mod" = "2" ]
then
#2.1 copy wlan wpa psk config file to /etc/wpa_supplicant/
cp wpa_supplicant.wpa /etc/wpa_supplicant/wpa_supplicant.conf
#2.2 get essid and password phrase
echo Welcom to wpa_psk mode!
iwlist $wlan_no scan | grep ESSID
echo Please choose a essid:
read inputssid
if [ `iwlist $wlan_no scan | grep $inputssid`x != "x" ]
then
echo "input ok!"
echo "please input your password:\c"
read inputpass
ph_pass=`wpa_passphrase $inputssid $inputpass | grep psk= | sed -n 2p | awk -F ‘=‘ ‘{print $2}‘`
echo $ph_pass
#2.3 modify /etc/wpa_supplicant/wpa_supplicant.conf
sed -i "s/my_network/$inputssid/g" /etc/wpa_supplicant/wpa_supplicant.conf
sed -i "s/\"secret_password\"/$ph_pass/g" /etc/wpa_supplicant/wpa_supplicant.conf
#2.4 connect!
wpa_supplicant -B -i $wlan_no -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf
dhclient $wlan_no
fi
echo done
fi
if [ "$conn_mod" = "3" ]
then
#3.1 copy wlan wpa2 psk config file to /etc/wpa_supplicant/
cp wpa_supplicant.wpa2 /etc/wpa_supplicant/wpa_supplicant.conf
#3.2 get essid and password phrase
echo Welcom to wpa2_psk mode!
iwlist $wlan_no scan | grep ESSID
echo Please choose a essid:
read inputssid
if [ `iwlist $wlan_no scan | grep $inputssid`x != "x" ]
then
echo "input ok!"
echo "please input your password:\c"
read inputpass
ph_pass=`wpa_passphrase $inputssid $inputpass | grep psk= | sed -n 2p | awk -F ‘=‘ ‘{print $2}‘`
echo $ph_pass
#3.3 modify /etc/wpa_supplicant/wpa_supplicant.conf
sed -i "s/my_network/$inputssid/g" /etc/wpa_supplicant/wpa_supplicant.conf
sed -i "s/\"secret_password\"/$ph_pass/g" /etc/wpa_supplicant/wpa_supplicant.conf
#3.4 connect!
wpa_supplicant -B -i $wlan_no -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf
dhclient $wlan_no
fi
echo done
fi
配置文件1(wpa_supplicant.wpa).
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
# ap_scan=2 was the one for me you may try 0 or 1 indstead of 2
ap_scan=2
fast_reauth=1
network={
ssid="my_network"
proto=WPA
key_mgmt=WPA-PSK
pairwise=TKIP
group=TKIP
psk="secret_password"
}
配置文件2(wpa_supplicant.wpa2)
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
network={
ssid="my_network"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="secret_password"
}
ap脚本:
#! /bin/sh -
# use ra0 as a gateway
# use wlan0(rtl8192cu) as an AP
wlan_gw_no="ra0"
wlan_no="wlan0"
ifconfig $wlan_no 172.16.0.1/16
sudo iptables -F
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F
gw=`ifconfig | awk ‘BEGIN{FS="\n";RS=""} NR==3 {print $2}‘ | awk ‘{print $2}‘ | awk -F ‘:‘ ‘{print $2}‘`
#sudo iptables -t nat -A POSTROUTING -o $wlan_gw_no -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o $wlan_gw_no -s 172.16.1.0/24 -j SNAT --to-source $gw
iptables -nL -vv -t nat
killall dnsmasq
killall hostapd
ifconfig $wlan_no 172.16.0.1/16
hostapd -B /etc/hostapd/hostapd.conf
/etc/init.d/dnsmasq restart
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo 1 > /proc/sys/net/ipv4/ip_forward
sleep 5
echo dhcp:
ps -e | grep dns
echo hosapd:
ps -e | grep ap
结束
标签:
原文地址:http://www.cnblogs.com/shenerguang/p/4290922.html