Raspberry PI come access point: l'esempio dell'AP usato al non-corso

Da raspibo.
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.

Questa e' la cronaca dell'installazione dell'AP usato al non corso.

1. Ho creato una SD con raspian, come solito con dd.

2. Alla prima accensione ho fatto le solite configurazioni: esteso il file system, messo la password dell'utente pi, messo la timezone, settato la tastiera (io uso solo tastiere US, ma voi mettetela italiana, se no non corrispondono i tasti), etc. Ho anche messo la memoria video al minimo (visto che questo Rasberry PI tipicamente funzionera' senza video)

3. Dopo il reboot ho attaccato il Rasberry alla mia rete locale e installato hostap e dnsmasq

sudo aptitude update
sudo aptitude upgrade
sudo aptitude install hostapd hostap-utils dnsmasq
sudo aptitude clean

(questi comandi aggiornano l'intero sistema e installano hostap e dnsmasq)

3bis. Nel caso specifico ho messo una password di root e eliminato l'utente pi dalla lista dei sudoer per fare in modo che l'utente pi fosse un semplice utente senza accesso come amministratore. Non e' necessario se volete solo fare un AP e non volete che gli utenti facciano ssh al Raspberry PI.

4. configurate hostap. Editate il file /etc/hostapd/hostapd.conf in modo che abbia il seguente contenuto:

interface=wlan0
ssid=RASPIBO
hw_mode=g
channel=6
auth_algs=1
wmm_enabled=0

Ovviamente potete cambiare cio' che volete, per esempio l'ESSID sara' il nome della rete che compare ai vostri utenti wireless e per il canale potete scegliere quello meno affollato. Notate che a seconda del driver utilizzato la vostra interfaccia wi-fi potrebbe non essere wlan0.

5. configurate l'attivazione automatica della rete. Questo e' il mio file /etc/network/interfaces:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet static
        address 192.168.42.1
        netmask 255.255.255.0
        hostapd /etc/hostapd/hostapd.conf

Notate che wlan0 ha un indirizzo statico e si attiva automaticamente come access point alla partenza.

6. Occorre configurare il forwarding/masquerading dei pacchetti ip in modo che il traffico dalla wi-fi venga instradato su eth0 Io ho cambiato /etc/rc.local aggiungendo queste righe:

echo -n "Starting IP Masquerading"
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "."

7. Occorre configurare dnsmasq per fare da server dhcp e forwarder per il dns. Il file /etc/dnsmasq.conf ha le seguenti righe non commentate:

interface=wlan0
dhcp-range=192.168.42.5,192.168.42.254,255.255.255.0,12h
dhcp-option=option:router,192.168.42.1

(potete anche mettere come /etc/dnsmasq.conf un file con queste sole tre righe).

8. direi che ci sia tutto. Nel mio caso la chiavetta USB/interfaccia Wi-Fi ha uno spunto notevole e quindi se la inserisco a Raspi acceso mi si resetta il sistema. Quindi io ho spento il raspi (comando halt), inserito la chiavetta Wi-Fi e reinserito lo spinotto dell'alimentazione.

utente halt per spegnere

Per consentire uno spegnimento facile ho creto l'utente halt privo di password che spegne la macchina.

Passo 1: consentire l'accesso ssh a utenti senza password. Occorrono due operazioni: cambiare la riga di /etc/ssh/sshd_config da:

  PermitEmptyPasswords no

in

  PermitEmptyPasswords yes

... ma purtroppo non basta. Occorre convincere anche PAM. E allora in /etc/pam.d/common-auth occorre cambiare:

  auth    [success=1 default=ignore]      pam_unix.so nullok_secure

in

  auth    [success=1 default=ignore]      pam_unix.so nullok

(togliere secure, che richiede il login da console).

Passo 2: Fate ripartire ssh. (se no il cambio pdi configurazione sara' attivo solo al prossimo boot).

  service ssh restart

Passo 3 Create l'utente halt (alias di root con shell /sbin/halt). In /etc/passwd occorre aggiungere la riga:

  halt::0:0:halt:/root:/sbin/halt

E' tutto.