La verdad que no me decidÃa a compartir este script por su dudosa utilidad para los demás. Me he decidido a ello una vez piponazo me hubo animado a compartirlo. Pero como ya me habÃa pasado varias veces que el querido Network Manager, cuando conectaba a una red, me devolvÃa una y otra vez el cuadro de conexión para indicar la contraseña, pues decidà hacerme un script de conexión para acceder a las redes por las que suelo deambular, simplemente escribiendo ./conexion y eligiendo una opción.
Especialmente útiles me parecen el caso de conexión a una wifi con WPA (Network Manager en muchas ocasiones y en mi propia red, no conseguÃa conectarse) y el caso de conexión a redes Eduroam, que van bastante bien y equiparables a la velocidad de la red de la Universidad.
Sin más, paso a describiros las particularidades del invento, comentando dónde están las lÃneas de las DNS y demás que hay que cambiar.
El caso de conexión a una LAN por cable, por ejemplo, lo utilizo en la Universidad cuando se cae la Wifi. Retiro un cable de algún equipo de un aula (mirando antes su IP en una pegatina adosada a la torre) y a navegar. Lógicamente este trozo de código te pide la IP. Si conectáis algún equipo a un cable, ésta es la opción a utilizar. Lo que se deberÃa cambair entonces con respecto a mi código serÃa la lÃnea de netmask 255.255.255.0, cambiándola por la máscara de red de la red a la que vayáis a conectar, y las DNS de la misma red, en la lÃnea que dice nameserver 150.214.110.3. Como algo excepcional, si la puerta de enlace de esa red, no termina en «1», deberéis modificar la lÃnea gateway $num1″.»$num2″.»$num3″.1, cambiando el «1» del final.
1)
echo "Dame IP: "
read IP
# para el interfaces
echo auto lo >> $interfaz
echo -e iface lo inet loopback"n" >> $interfaz
echo iface eth0 inet static >> $interfaz
echo address $IP >> $interfaz
echo netmask 255.255.255.0 >> $interfaz
num1=$(echo $IP | cut -d . -f1);
num2=$(echo $IP | cut -d . -f2);
num3=$(echo $IP | cut -d . -f3);
echo -e gateway $num1"."$num2"."$num3".1""n" >> $interfaz
echo iface ath0 inet dhcp >> $interfaz
echo -e wireless-essid uconet"n" >> $interfaz
# para el resolv.conf, PON AQUÃ? TU DNS
echo search uco.es >> $dns
echo -e nameserver 150.214.110.3"n" >> $dns
sudo mv interfaces /etc/network/interfaces
sudo mv resolv.conf /etc/resolv.conf
sudo ifdown eth0
sudo ifdown ath0
sudo /etc/init.d/networking restart
sudo ifup eth0
;;
En el caso de conexión a la wifi de una LAN casera con algoritmo WPA o WPA2, se modifica la lÃnea ssid=»ENIGMA» (tened cuidado con las barras para que reconozca las comillas) por el nombre de vuestra red Wifi. Además, debeis obtener la contraseña encriptada utilizada para conectar a vuestra red, escribiendo:
wpa_passphrase nombre_red contraseña
Os devuelve una serie de numerajos que irÃan en la lÃnea de psk=23d5113aa1a1bafe614f827b5a2f867464125e13438a9b (obviamente lo he alterado un poco :P). El resto de cosas a cambiar son la lÃnea wireless_essid ENIGMA (a sustituir por el nombre de vuestra red) y la linea que dice pre-up wpa_supplicant -B -qq -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf, en la que deberéis cambiar el driver que indica la opción -D (en mi caso, el driver de mi portátil Acer es madwifi). Por último, la DNS que me proprciona mi router la indico en la lÃnea nameserver 192.168.2.1, vosotros deberéis indicar la vuestra.
2)
# para el interfaces
echo auto lo >> $interfaz
echo -e iface lo inet loopback"n" >> $interfaz
echo -e "network={" >> $supplicant
echo -e "ssid="ENIGMA"" >> $supplicant
echo -e "key_mgmt=WPA-PSK" >> $supplicant
echo -e "psk=23d5113aa1a1bdfe19519b8c02545bdafe614f827b5a2f867464125e13438a9b" >> $supplicant
echo -e "}" >> $supplicant
sudo rm /etc/wpa_supplicant.conf
sudo mv wpa_supplicant.conf /etc/wpa_supplicant.conf
echo auto ath0 >> $interfaz
echo iface ath0 inet dhcp >> $interfaz
echo wireless_essid ENIGMA >> $interfaz
echo pre-up wpa_supplicant -B -qq -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf >> $interfaz
echo post-down killall -q wpa_supplicant >> $interfaz
# para el resolv.conf
echo -e nameserver 192.168.2.1"n" >> $dns
sudo mv interfaces /etc/network/interfaces
sudo mv resolv.conf /etc/resolv.conf
sudo ifdown eth0
sudo ifdown ath0
sudo /etc/init.d/networking restart
;;
El caso de conexión a la Wifi de la Universidad es muy simple. Simplemente debéis cambiar del código del caso 3) el wireless-essid y las DNS en nameserver.
3)
# para el interfaces
echo auto lo >> $interfaz
echo -e iface lo inet loopback"n" >> $interfaz
echo iface ath0 inet dhcp >> $interfaz
echo -e wireless-essid uconet"n" >> $interfaz
# para el resolv.conf
echo search uco.es >> $dns
echo -e nameserver 150.214.110.3"n" >> $dns
sudo mv interfaces /etc/network/interfaces
sudo mv resolv.conf /etc/resolv.conf
sudo ifdown eth0
sudo ifdown ath0
sudo /etc/init.d/networking restart
sudo ifup ath0
;;
El caso de conexión a la red Eduroam (que converge muchas universidades y entidades) es algo más complejo pero hay poco que cambiar. Sólo debéis modificar el campo identity="micorreo@uco.es", modificándolo por el correo de vuestra Universidad adscrita a EduRoam, el password="pass-en-claro" en el que ponéis, tal cual, la contraseña de vuestra cuenta de correo y, por último, las DNS de la Universidad en la que estáis modificando el campo nameserver.
4)
echo auto lo >> $interfaz
echo -e iface lo inet loopback"n" >> $interfaz
echo -e "network={" >> $supplicant
echo -e "ssid="eduroam"" >> $supplicant
echo -e "key_mgmt=WPA-EAP" >> $supplicant
echo -e "proto=WPA" >> $supplicant
echo -e "eap=TTLS" >> $supplicant
echo -e "anonymous_identity="anonymous@uco.es"" >> $supplicant
echo -e "identity="micorreo@uco.es"" >> $supplicant
echo -e "password="pass-en-claro"" >> $supplicant
echo -e "priority=2" >> $supplicant
echo -e "phase2="auth=PAP"" >> $supplicant
echo -e "}" >> $supplicant
sudo rm /etc/wpa_supplicant.conf
sudo mv wpa_supplicant.conf /etc/wpa_supplicant.conf
echo -e auto ath0"n" >> $interfaz
echo iface ath0 inet dhcp >> $interfaz
echo wireless_essid eduroam >> $interfaz
echo pre-up wpa_supplicant -B -qq -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf >> $interfaz
echo post-down killall -q wpa_supplicant >> $interfaz
# para el resolv.conf
echo -e nameserver 150.214.110.3"n" >> $dns
sudo mv interfaces /etc/network/interfaces
sudo mv resolv.conf /etc/resolv.conf
sudo ifdown eth0
sudo ifdown ath0
sudo /etc/init.d/networking restart
;;
Eso es todo, aquà os dejo el script de conexión completo. Espero que os sirva a alguno. No olvidéis darle permisos de ejecución con chmod +x conexion.
ADVERTENCIA: A veces, se pelea con Network Manager. Yo incluso he eliminado Network Manager y me conecto con mi script. Cuando estoy cerca de una nueva red, simplemente copio y pego un caso y modifico los parámetros de la nueva red y ya tengo otra opción más. Actualmente voy por 6 opciones.
P.D: El nombre del post es tan largo y raro para que los motores de búsqueda hagan de las suyas 😛 😉
Neonigma
Sé el primero en valorar positivamente