mercoledì 1 maggio 2013

Condividere la rete Ethernet attraverso la scheda Wi-Fi del computer. Trasformiamo il PC in un router Wi-Fi




Ciao a tutti

Questa guida è rivolta a chi come me possiede solo una connessione ADSL attraverso cavo Ethernet e vuole creare una rete Wi-Fi condividendo appunto questa connessione Ethernet con la scheda wireless del PC. Come distribuzione io uso Fedora a 64 bit ma credo sia universale (commentate pure se avete dei problemi).
Partiamo con la guida
Per prima cosa dobbiamo verificare che la nostra scheda wireless del notebook supporti la modalità Access Point. Per fare questo diamo questi comandi da terminale  (usare apt-get al posto di yum se si usa una distro come debian, ubuntu, linux mint o derivate da esse)
sudo yum install iw
dopodiché  per verificare bisogna dare il comando
sudo iw list  avremo un output di questo tipo


Available Antennas: TX 0x1 RX 0x3
Configured Antennas: TX 0x1 RX 0x3
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* WDS
* monitor
* mesh point
* P2P-client
* P2P-GO
software interface modes (can always be added):
* AP/VLAN
* monitor

scorrete il testo e se dopo la voce supported interface c'è anche AP come in figura sopra la vostra scheda supporta l'Access Point mode altrimenti no e quindi la guida sarà inutile.


Se la scheda supporta l'AP mode possiamo scaricare i programmi necessari: per fare ciò apriamo il terminale e digitiamo
sudo yum install iptables dnsmasq hostapd        e poi dare invio
nel caso in cui il programma non si trovi nei vostri repository scaricate (facendo attenzione alla vostra architettura a 32 bit o a 64 bit)  iptables a 32 bit e a 64 bitdnsmasq da qua e hostapd a 32 bit da qua mentre a 64 bit da qua.


dopo aver installato correttamente i programmi bisogna personalizzare la rete che stiamo creando: sempre da terminale dare

sudo gedit /etc/hostapd/hostapd.conf


dovrete replicare questo che ho incollato qua sotto cambiando solo PASSWORD e NOME_RETE che appunto saranno il nome della vostra rete e la password per accedere.


# Uncomment these for base WPA & WPA2 support with a pre-shared keywpa=3wpa_key_mgmt=WPA-PSKwpa_pairwise=TKIPrsn_pairwise=CCMP# DO NOT FORGET TO SET A WPA PASSPHRASE!!wpa_passphrase=PASSWORD# Most modern wireless drivers in the kernel need driver=nl80211driver=nl80211# Customize these for your local configuration...interface=wlan0hw_mode=gchannel=6ssid=NOME_RETE


dopodiché sempre da terminale dare

sudo gedit /etc/dnsmasq.conf


e aggiungere queste due righe


interface=wlan0
dhcp-range=10.0.0.5,10.0.0.20,240h



per ultima cosa bisogna creare un piccolo script per automatizzare il tutto. Per crearlo sempre da terminale dare

gedit ~/hotspot

e incollare le seguenti righe


#!/usr/bin/bash
iptables -F
iptables -t nat -A POSTROUTING -o p35p1 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward
ifconfig wlan0 10.0.0.1 netmask 255.255.255.0 up
dnsmasq -d -C /etc/dnsmasq.conf &
sleep 3
hostapd /etc/hostapd/hostapd.conf &

alla terza riga dovrete mettere al posto di p35p1 in nome della vostra interfaccia ethernet che solitamente è eth0 ma per la mia fedora risultava essere p35p1. questo nome potete verificarlo dando da terminale questo comando sudo iwconfig , dovreste avere come risultato 3 nomi: lo, wlan0 e appunto il nome dell'interfaccia ethernet.

tornando allo script, adesso dopo averlo salvato e chiuso bisogna renderlo eseguibile con questo comando
chmod +x ~/hotspot



a questo punto se diamo questo comando da terminale sudo ~/hotspot dovreste aver creato correttamente il vostro hotspot.
se volete creare un lanciatore per evitare di aprire ogni volta il terminale su gnome 3 bisogna fare come segue (testati personalmente su fedora, su ubuntu dovrebbero funzionare ma la certezza non ce l'ho. Se li provate fatemi sapere dai commentate =D ):

1) su -c visudo
2) aggiungere a fine file "nome_utente" ALL=(ALL) NOPASSWD: ~/hotspot
2 bis) per aggiungere la riga bisogna premere i per entrare in modalità insert e poi per salvare e uscire bisogna premere esc e poi :wq e dare invio
3)creare il file Hotspot.desktop in /usr/share/applications con questo comando sudo gedit  /usr/share/applications/Hotspot.desktop e inserire le seguenti righe


[Desktop Entry]
Name=Hotspot
Comment=Condividi la rete internet
Exec=sudo ~/hotspot
Icon=~/Immagini/NOME_IMMAGINE.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Network;Application;
Name[en_US]=Hotspot



N.B. al campo "Icon" bisogna inserire il percorso dell'icona da dare al lanciatore. Ad esempio se scaricate un immagine da internet salvatela nella cartella immagini e inserite il nome al posto di NOME_IMMAGINE.png

se volete potete creare uno script come sopra per spegnere l'hotspot. Questa volta però molto più semplicemente dare
gedit ~/stop_hotspot

e incollare le seguenti righe
#!/usr/bin/bash
killall hostapd
sleep 2
killall dnsmasq


salvate e chiudete. Rendetelo eseguibile con chmod +x ~/stop_hotspot  e poi create un lanciatore seguendo la guida sopra.
Spero di essere stato utile.
Se trovate qualche errore o avete qualche problema commentate pure.

alla prossima guida

Peps