Quasi ogni personal computer (laptop o desktop) che soddisfa i requisiti minimi di hardware può eseguire il sistema operativo server Linux. Non sorprende che molte persone impostino i loro server domestici su alcuni vecchi ma ancora funzionanti personal computer per l’auto-apprendimento o progetti collaterali.
Una delle opzioni comuni per eseguire un server Linux a casa è quella di accedere al server tramite una rete domestica Wi-Fi esistente. Il software di installazione del server Linux, in generale, non include pacchetti di supporto per la rete wireless, quindi si affida all’utente per abilitare la connessione Wi-Fi.
In questo post, vi mostrerò i passaggi per impostare e configurare l’accesso Wi-Fi utilizzando WPA supplicant e netplan su Ubuntu Server 20..04 senza una connessione ethernet cablata.
Siccome il server non ha una connessione ethernet cablata, è necessario scaricare il pacchetto WPA supplicant (wpasupplicant) e due delle sue dipendenze (libnl-route-3-200, libpcsclite1) su un’altra macchina con una connessione internet, quindi trasferirli sul server utilizzando una chiavetta/un’unità esterna.
wpasupplicant: supporto client per WPA e WPA2 (IEEE 802.11i).
http://mirrors.kernel.org/ubuntu/pool/main/w/wpa/wpasupplicant_2.9-1ubuntu4_amd64.deb
libnl-route-3-200: libreria per gestire le prese netlink – interfaccia route.
http://mirrors.kernel.org/ubuntu/pool/main/libn/libnl3/libnl-route-3-200_3.4.0-1_amd64.deb
libpcsclite1: middleware per accedere ad una smart card usando PC/SC (libreria).
http://mirrors.kernel.org/ubuntu/pool/main/p/pcsc-lite/libpcsclite1_1.8.26-3_amd64.deb
Potete usare il seguente comando per scaricare i pacchetti se anche un’altra macchina sta eseguendo Ubuntu Server 20..04 e non ha installato il pacchetto WPA supplicant:
sudo apt install -y --download-only wpasupplicant
I file deb di wpasupplicant e le sue dipendenze sono scaricati nella seguente directory per impostazione predefinita:
/var/cache/apt/archives/
Se la macchina sta eseguendo Ubuntu Server 20.04 ma ha già installato il pacchetto WPA supplicant, è possibile utilizzare dpkg-repack per ricreare i file deb:
sudo apt install -y dpkg-repack
sudo dpkg-repack wpasupplicant libnl-route-3–200 libpcsclite1
Ora, copiate questi tre file deb sulla vostra unità flash/esterna.
Step 2: Installare il pacchetto WPA Supplicant
Trovare il nome del dispositivo per l’unità flash/esterna (es. chiavetta USB) dopo averla inserita nel server:
sudo fdisk -f
Un disco flash USB è solitamente elencato in:
/dev/sdb1
Crea una nuova directory e monta il disco flash/esterno:
sudo mkdir /media/usb
sudo mount -t vfat /dev/sdb1 /media/usb
Installare il pacchetto WPA supplicant e le sue dipendenze:
cd /media/usb
sudo dpkg -i libnl-route-3–200_3.4.0–1_amd64.deb \
libpcsclite1_1.8.26–3_amd64.deb \
wpasupplicant_2.9–1ubuntu4_amd64.deb
Step 3: Trovare il nome dell’interfaccia wireless
Il kernel Linux elenca i nomi delle interfacce di rete tramite link simbolici in /sys/class/net
, mentre le interfacce di rete wireless sono chiamate wlp2s0
wlp3s0
e così via:
ls /sys/class/net | grep -i wlp
Ci sono molte opzioni alternative per trovare l’interfaccia wireless in Linux. Ne elenco alcuni esempi qui sotto:
# Use ip command: ip link or ip addr
ip link show | grep -i wlp | awk -F: '{print $2}' | xargs
ip addr show | grep -i wlp | awk -F: '{print $2}' | xargs# Use iw tool
iw dev | awk '$1=="Interface" {print $2}'# Use lshw to check wireless adapters
sudo lshw -C network \
| awk '/Wireless interface/,/logical name/ {print $3}' \
| tail -1
Passo 4: Creare un file di configurazione NetPlan
Per configurare netplan, fare una copia del file di configurazione esistente, quindi crearne uno nuovo sotto /etc/netplan/
con estensione .yaml
:
sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00.bak
sudo vim /etc/netplan/00-installer-config.yaml
Per permettere all’interfaccia wireless chiamata wlp2s0
di ottenere un indirizzo IP tramite DHCP, modificare il file YAML come segue:
network:
ethernetes: {}
wifis:
wlp2s0:
dhcp4: true
optional:true
access-points:
"network_ssid_name":
password: "**********"
version: 2
renderer: networkd
Per impostare invece un indirizzo IP statico:
network:
ethernetes: {}
wifis:
wlp2s0:
dhcp4: no
dhcp6: no
optional:true
addresses:
gateway4: 192.168.1.1
nameservers:
addresses:
access-points:
"network_ssid_name":
password: "**********"
version: 2
renderer: networkd
Regolare il nome dell’interfaccia wireless, l’indirizzo IP statico, il gateway, i name server e l’SSID/password Wi-Fi come richiesto.
Nota le dichiarazioni chiave optional: true
che permettono l’avvio senza aspettare che queste interfacce si attivino completamente.
Passo 5: Applicare la configurazione di Netplan
Una volta finito di modificare il file YAML di netplan, genera la configurazione del backend da esso e controlla se la configurazione fornita soddisfa gli standard definiti:
sudo netplan --debug generate
Se tutto è in ordine, applica la configurazione fornita per l’uso:
sudo netplan apply
Ora, riavviare il server:
sudo reboot
Note finali
Se il nome dell’interfaccia wireless non viene visualizzato, l’adattatore wireless potrebbe non essere stato riconosciuto come dispositivo di rete del server. Potete andare sul sito di aiuto di Ubuntu per ottenere informazioni specifiche per la risoluzione dei problemi:
https://help.ubuntu.com/stable/ubuntu-help/net-wireless-troubleshooting-hardware-check.html.en
Il file netplan YAML è molto pignolo riguardo l’indentazione, la spaziatura e l’assenza di tabulazioni. Vedi il seguente link per ulteriore aiuto:
https://netplan.io/examples
Assicurati di inserire il corretto SSID Wi-Fi e la password nel file netplan YAML. Il comando netplan apply
avrà successo, ma l’interfaccia wireless non sarà attiva se si fornisce un SSID Wi-Fi o una password errati.
Grazie per aver letto!