Linux/Wifi

From Omnia
Revision as of 15:16, 19 December 2014 by Kenneth (talk | contribs) (Created page with "== Common Tasks == Wireless interface tools: ifconfig # set interface ip address and up/down state iwconfig # configure wireless settings (SSID, key, mode) iwlist # s...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Common Tasks

Wireless interface tools:

ifconfig  # set interface ip address and up/down state
iwconfig  # configure wireless settings (SSID, key, mode)
iwlist    # scan wireless
dhclient  # dhcp client

Set ESSID:

iwconfig [interface] essid [essid]
iwconfig eth1 essid toast

Set managed mode:

# note: interface may need to be down to change (ifconfig eth1 down)
iwconfig eth1 mode Managed

Set WEP key:

iwconfig eth1 key 0123-4567-89
iwconfig eth1 key off

WPA:

# type password, hit enter
wpa_passphrase [SSID] >> /etc/wpa_supplicant/wpa_supplicant.conf

network={
        ssid="testnetwork"
        #psk="testpassword"
        psk=ed5b87ba31bf9d6611576f94c57e848696005ea2d5743baab976a48ed11d1b2a
}
# start wpa_supplicant daemon
wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0 -D madwifi
# debug mode:
wpa_supplicant -c wpa.conf -i wlan0 -d

DHCP client:

dhclient [interface]  # get DHCP address
dhclient -r [interface]  # release DHCP address
dhclient [interface] -H [hostname]  # get DHCP address and set hostname

Other examples:

iwconfig wlan0 mode managed
iwpriv wlan0 set AuthMode=WPAPSK
iwpriv wlan0 set EncrypType=TKIP
iwpriv wlan0 set WPAPSK="AP's wpa-preshared key"
iwconfig wlan0 essid "AP's SSID"

Scan:

iwlist [interface] scan

Common wireless interfaces:

eth1, wlan0, ath0

madwifi

See madwifi

Wireless WEP Authentication

Shared WEP key:

iwconfig ath0 key <yourkey>

# operating in a restricted, shared-key environment
iwpriv ath0 authmode 2

# operating in open system key (which is often considered more secure)
iwpriv ath0 authmode 1

Connecting to AP

Connecting to an open AP:

iwconfig ath0 essid "eddie"
iwconfig ath0 ap 00:06:25:E8:3A:05

Connect to first available open AP:

iwconfig ath0 ap any
iwconfig ath0 ap auto

Connecting with DHCP

DHCP Connection:

dhclient ath0
dhcpcd ath0

Connect without DHCP

ifconfig ath0 <IP address> netmask <netmask> up

route add default gw <gateway hostname>
route add default gw <gateway address>

vi /etc/resolv.conf
 search t0e.org
 nameserver 10.10.10.1

CentOS interface setup

/etc/sysconfig/network-scripts/ifcfg-ath0

DEVICE=ath0
BOOTPROTO=dhcp
HWADDR=00:0F:20:95:6A:9A
ONBOOT=no
DHCP_HOSTNAME=kencent

Ubuntu interface setup

/etc/network/interfaces:

iface lo inet loopback
    auto lo

iface eth0 inet dhcp

iface wlan0 inet manual
allow-hotplug wlan0
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp


Connecting to an AP with WEP

using shared WEP key:

iwpriv ath0 authmode 2

using open WEP key (which is often considered more secure):

iwpriv ath0 authmode 1

Specify WEP key:

iwconfig ath0 key <wep key (in hex)>
iwconfig ath0 key <s:ASCII string of key>

Connecting to an AP with WPA

Make PSK:

wpa_passphrase My_WPA_Protected_AP_ESSID "Some_Decent_PassPhrase_of_up_64_Characters" >> /etc/wpa_supplicant.conf

Edit /etc/wpa_supplicant.conf and add the lines into the network section created above:

    key_mgmt=WPA-PSK
#    proto=WPA
   proto=RSN

Uncomment the proto=WPA line (and comment out the RSN line) to enable WPA. Leave as is for WPA2 (stronger encryption).

Secure:

chmod 640 /etc/wpa_supplicant.conf

Full example:

modprobe ath_pci # if running pre-r1408 Madwifi code, then also: wlanconfig ath0 create wlandev wifi0 wlanmode sta
iwconfig ath0 essid "My_WPA_Protected_AP_ESSID"
ifconfig ath0 192.168.0.100 up
/usr/local/bin/wpa_supplicant -dd -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf 

See if connected:

iwconfig ath0

Automate wpa_supplicant:

#!/bin/sh
modprobe ath_pci  (If running pre-r1408 Madwifi code, then also: wlanconfig ath0 create wlandev wifi0 wlanmode sta)
iwconfig ath0 essid "My_WPA_Protected_AP_ESSID"
ifconfig ath0 192.168.0.100 up
wpa_supplicant -Bw -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf

old note:

wpa_supplicant -Bw -Dwext -iath0 -c/etc/wpa_supplicant.conf

# if you are using a Linux version smaller than 2.6.14
wpa_supplicant -Bw -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf


References:

wifi init.d

#!/bin/sh
#
# chkconfig: - 99 01
# description: Starts and stops the Wireless
#
# lock:    /var/run/wifi
# config:  /etc/sysconfig/wifi
# config:  /etc/wpa_supplicant.conf


# Source function library.
if [ -f /etc/init.d/functions ] ; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
  . /etc/rc.d/init.d/functions
else
  exit 1
fi

# /etc/sysconfig/wifi
# WIFI_SSID=ssid
# WIFI_DHCP=yes
# WIFI_AUTH=wpa|wep
if [ ! -e /etc/sysconfig/wifi ] ; then
  echo "ERROR: /etc/sysconfig/wifi is missing"
  exit 1
else
  . /etc/sysconfig/wifi
fi

# WPA
# wpa_passphrase "My_WPA_Protected_AP_ESSID" "Some_Decent_PassPhrase_of_up_64_Characters" >> /etc/wpa_supplicant.conf


LOCKFILE=/var/run/wifi

case "$1" in
  start)
    echo -n "Starting wifi: "
    if [ -e $LOCKFILE ] ; then
      echo -n "Wifi already running"
      failure ; echo ; exit 1
    fi
    touch $LOCKFILE
    modprobe ath_pci
    iwconfig ath0 essid "${WIFI_SSID}"
    if [ "${WIFI_AUTH}" = "wpa" ] ; then
      wpa_supplicant -Bw -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf
    else
      echo -n "code not written yet!"
      failure ; echo ; exit 1
    fi
    if [ "${WIFI_DHCP}" = "yes" ] ; then
      dhclient ath0 &> /dev/null
      if [ "$?" != "0" ] ; then
        echo -n "unable to obtain ip address!"
        failure ; echo ; exit 1
      fi
    else
      echo "code not written yet!"
      failure ; echo ; exit 1
    fi
    success ; echo ; exit 0
    ;;
  stop)
    echo -n "Stopping wifi:"
    rm -f $LOCKFILE
    dhclient -r ath0 &>/dev/null
    killall wpa_supplicant &>/dev/null
    modprobe -r ath_pci
    success ; echo ; exit 0
    ;;
  restart)
        $0 stop
        $0 start
        ;;
  status)
    if [ -e $LOCKFILE ] ; then
      echo "Wifi is running"
      exit 1
    else
      echo "Wifi is stopped"
      exit 1
    fi
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|status}"
    exit 2
esac

Notes

Restart network:

service network restart

Shut down madwifi:

ifconfig ath0 down
ifconfig wifi0 down


iwconfig ath0 mode master
iwconfig ath0 essid paradiso
iwconfig ath0 channel 9
iwpriv ath0 mode 2
ifconfig ath0 up

References:

WPA with Linux

wpa_passphrase YOURSSID yourpassphrase > /etc/wpa_supplicant.conf
chmod 640 /etc/wpa_supplicant.conf
wpa_supplicant -Bw -Dwext -iath0 -c/etc/wpa_supplicant.conf
# or use -Dmadwifi instead of -Dwext

References: