For Linux to deployable to an end user in an enterprise environment a couple of things need to happen. First they need to be able to log in whether they can see the server to authenticate or not. We still have an Active Directory domain here in Orion so I needed to allow windows users to be able to cache their credentials. Assuming winbind is setup and authenticating you simply need to add a setting to smb.conf, a setting to pam and finally restart samba. Here’s a script that will do it for you.
echo "winbind offline logon = yes" >> /etc/samba/smb.conf
echo "[global]
cached_login = yes" >> /etc/security/pam_winbind.conf
/etc/init.d/winbind restart
Then you can log in once, logout, disconnect from the network and test to ensure that you can authenticate offline.
The second thing that is needed is for the end user to be able to manage their wireless connection. Most of the hardware I get to deploy Linux on is older and mainly because of the ability to streamline the OS. This is the case with desktop deployment anyway, however almost all servers I implement are Linux. With old hardware I like to use lightweight utilities so wpa supplicants build in gui makes sense to use. However it cannot access the service as a normal user. We will use sudo for this and make a Desktop shortcut to lauch it.
#install the software needed
#Debian
apt-get -y install sudo wpagui
#Gentoo
emerge -va sudo wpa_supplicant
#allow all user to run wpa_gui with sudo and no password
echo"ALL ALL = NOPASSWD:/usr/sbin/wpa_gui" >> /etc/sudoers
#Create the Desktop folder in skeleton if it doesn't exist already
mkdir /etc/skel/Desktop
#Create the Desktop launcher for wpa
cd /etc/skel/Desktop
echo "[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=sudo /usr/sbin/wpa_gui
Name[en_US]=Wireless Tool
Icon[en_US]=/usr/share/pixmaps/wpa_gui.xpm" > Wireless.desktop
Finally you’ll want to configure the wireless card and default network or networks. To do this first generate the psk for your SSID using wpa_passphrase:
austin@stilsuit:~$ wpa_passphrase YOUR_SSID
# reading passphrase from stdin
your_password
network={
ssid="YOUR_SSID"
#psk="your_password"
psk=7678b7cf3fa74dac4f7f75a33c9f32782bf001c4b39571885215800338befcd6
}
Then on a Debian System you will edit /etc/network/interfaces and add something like the following:
auto wlan0
iface wlan0 inet dhcp
wpa-ssid YOUR_SSID
wpa-psk 7678b7cf3fa74dac4f7f75a33c9f32782bf001c4b39571885215800338befcd6
# force WPA-PSK TKIP
wpa-key_mgmt WPA-PSK
wpa-proto WPA
wpa-pairwise TKIP
wpa-group TKIP
If you are on a Gentoo System you’ll need to edit /etc/conf.d/net:
modules=( "wpa_supplicant" )
wpa_supplicant_wlan0="-Dwext"
wpa_timeout_wlan0=15
and /etc/wpa_supplicant/wpa_supplicant.conf:
# The below line not be changed otherwise we refuse to work
ctrl_interface=/var/run/wpa_supplicant
# Ensure that only root can read the WPA configuration
ctrl_interface_group=0
# Let wpa_supplicant take care of scanning and AP selection
ap_scan=1
network={
ssid="YOUR_SSID"
#psk="your_password"
psk=7678b7cf3fa74dac4f7f75a33c9f32782bf001c4b39571885215800338befcd6
}
Now you should be able to have anyone use the wpa_gui and have a shortcut on their desktop. Well the shortcut is in the skeleton file so only new homes will get it copied over.