La necessitat
La capacitat d’accedir directament a les dades del nostre servidor des de qualsevol lloc influeix directament en el temps de resposta al problema que se’ns ha pogut presentar. Així no és necessària una persona al centre que ens faci de pont per accedir a les dades.
Així la necessitat és obtenir una consola gràfica directament al servidor només arrencant un ordinador portàtil.
La idea
El portàtil arranca una connexió 3G, es crea un VPN al firewall i s’inicia una sessió al servidor.
Els requisits
- Un ordinador portàtil amb connexió 3G integrada. S’ha optat per el HP Mini 5102.
- Tarja de telefonia mòbil amb transmissió de dades 3G activada i sense poder fer cridades a altres números de telèfon ja que la petició de PIN ha d’estar desactivada.
La sol·lució
Sistema operatiu
Instal·lem el sistema operatius GNU/Linux. El motiu, encara que ja tinguem les llicències de Windows 7 Home Starter, és la d’adquirir un antivirus apart que incrementarà el cost econòmic. A part d’intentar reduir el temps d’inici de sessió de l’equip i tenir millor control sobre la màquina.
La distribució elegida és la Ubuntu 11.04. S’ha escollit aquesta ja que aquesta versió ja inclou els mòduls de la tarja 3G especifica, amb versions anteriors no el varem poder configurar.
Cream un usuari user3g que serà el que farà la connexió.
Connexió 3G
Instal·lem el paquet gobi-loader. De la còpia que tinguem del SO Windows extreim la carpeta c:\Program Files\QUALCOMM\Images/HP. Dintre aquesta carpeta hi ha vàries subcarpetes amb fitxers amb els mateixos noms. Depenent de la companyia telefònica que tinguem contractada elegim uns o altres.
Per saber quin elegir http://www.thinkwiki.org/wiki/Talk:Qualcomm_Gobi_2000 . En el meu cas he elegit 0/UQCN.mbn UMTS/amss.mbn i UMTS/apps.mbn
S’han de copiar a la carpeta nova /lib/firmware/gobi
Reiniciam
Al “connection manager” cream una nova connexió mòbil elegint el proveïdor Vodafone. El nom de la connexió ha de començar amb “auto ” i activar l’opció “connectar automàticament”.
Connexió VPN al tallafocs
Per a crear la connexió VPN al tallafocs, el nostre cas un Sonicwall, instal·lam el paquets openswan i ipsec-tools.
Modificam els fitxers de configuració /etc/ipsec.secrets i /etc/ipsec.conf així com diu el document
http://www.sonicwall.com/app/projects/file_downloader/document_lib.php?t=TN&id=230&dl=1
El nostre ordinador portàtil anirà canviant d’IP cada vegada que el connectem a la xarxa mòbil per això feim:
Cream el fitxer /etc/ipsec.conf.orig i a on posam la IP de l’ordinador escrivim IPLOCAL
Cream un script VPN.sh amb permisos d’execució a tothom que cada vegada crei el fitxer /etc/ipsec.conf amb la IP local correcte.
#!/bin/bash FILE=/etc/ipsec.conf FILE_ORIG=$FILE.orig IP=`ifconfig | grep "inet addr:" | grep -v "127.0.0." | sed 's/:/ /' | awk '{print $3}'` if [ -f $FILE_ORIG ]; then echo "OK: File $FILE_ORIG exists." # echo "IP=$IP" rm $FILE sed "s/LOCALIP/$IP/g" $FILE_ORIG > $FILE service ipsec restart sleep 1 ipsec auto --add connexio ipsec auto --up connexio else echo "ERROR: File $FILE does not exist." exit fi
En la creació de la VPN ens demana cada vegada l’usuari i el password i el que volem és evitar-ho. Per tant instal·lam el paquet expect i expect-dev i executem des de /home:
autoexpect /home/VPN.sh
Ens demanarà l’usuari i password per a crear la connexió al tallafocs que quedarà dins el fitxer /home/script.exp i li donam permisos d’execució al /etc/sudoers de la forma
user3g ALL=(ALL:ALL) NOPASSWD: /home/script.exp
Visualització de l’escriptori
La comanda per l’accés rpd al servidor és
rdesktop -u "" 192.168.0.50 -f -a 16 -k es
Ho posam tot junt
Cream un script amb permisos d’execució a tothom que faci:
- Esperam que la tarja 3G estigui disponible.
- Cream la connexió 3G si no es fa automàticament amb la comanda nmcli
- Cream la connexió VPN al tallafocs.
- Executam la comanda de connexió RDP
#!/bin/bash date WHO=`whoami` if [ "$WHO" == "administrador" ]; then echo "" exit 0 fi COUNT=1 UP=`nmcli dev | grep ttyUSB1 | wc -l` while [ $UP -eq 0 ] do sleep 1 let "COUNT+=1" if [ $COUNT -eq 25 ]; then exit 1 fi UP=`nmcli dev | grep ttyUSB1 | wc -l` echo "Wait UP" done STATUS=`nmcli dev | grep ttyUSB1 | awk '{print $3}'` echo ESTAT=$STATUS COUNT=1 while [ $COUNT -lt 5 ] do case $STATUS in "connected" ) break ;; "connecting" ) echo "Wait" sleep 5 ;; "" ) echo "Disabled." exit 1 ;; * ) echo "Try to connect" nmcli nm wwan on nmcli con up id "auto Vodafone" esac echo "" STATUS=`nmcli dev | grep ttyUSB1 | awk '{print $3}'` echo $COUNT ESTAT=$STATUS let "COUNT+=1" done if [ "$STATUS" == "connected" ]; then echo "VPN" sudo /home/script.exp echo "rdesktop" ping -c 1 192.168.0.50 if [ $? -eq 0 ]; then rdesktop -u "" 192.168.0.50 -f -a 16 -k es else echo "Can't connect to server" exit 3 fi else exit 2 fi exit 0
Donam permisos d’execució a aquest script a l’usuari:
user3g ALL=(ALL:ALL) NOPASSWD: /home/start.sh
Altres personatlitzacions
L’usuari user3g farà l’inici de sessió automàticament sense demanar la seva contrasenya. Modificam el fitxer /etc/gdm/custom.conf
[daemon] AutomaticLoginEnable=false AutomaticLogin=user3g TimedLoginEnable=true TimedLogin=user3g TimedLoginDelay=1 DefaultSession=xsession
En cas de que l’ordinador només tingui aquesta finalitat, mourem tots els fitxers de /usr/share/xsession a una subcarpeta nova excepte xsession.desktop, així només es podrà executar l’script creat. El contingut d’aquest fitxer serà:
[Desktop Entry] Encoding=UTF-8 Name=User Defined Session Comment=Custom ~/.xsession script Exec=default X-Ubuntu-Gettext-Domain=gdm
Cream el fitxer /home/user3g/.xsession amb el següent codi.
#/bin/bash gnome-terminal -x /home/start.sh sudo /sbin/halt
I donam permisos al aquest usuari per poder executar l’aturada com a root modificant el fitxer /etc/sudoers
user3g ALL=(ALL:ALL) NOPASSWD: /sbin/halt
La conclusió
Tenim un ordinador portàtil que als 80 segons després del seu inici tenim connexió al servidor sense haver d’escriure cap contrasenya ni executar programes manualment.
Salu2 a ∀