Per realizzare l'HUB è necessario un PC due interfacce di rete LAN ed una WiFi.
Di seguito verrà descritta la procedura per la creazione di un HUB con due porte LAN ed una interfaccia WiFi.
Avere due interfacce di rete LAN potrebbe essere utile nel caso in cui, ad esempio, si decidesse
di installare videocamere di sorveglianza via cavo ( utilizzando uno switch se necessario ).
Sarà necessario verificare che la scheda di rete WiFi che intendete utilizzare supporti la modalità MASTER o AP-Mode.
Se per realizzare l'HUB avete scelto di utilizzare un PC Intel NUC verificate che la scheda di rete supporti la modalità
Master o AP-Mode.
Se la modalità non è supportata dalla vostra scheda dovrete sostituirla o aggiungerne una che supporti tale funzionalità.
Installare Ubuntu Server scaricando l'immagine ISO per PC AMD64 ( non ARM )
Scarica
Creare un supporto di avvio ( chiavetta USB ) utilizzando BALENAETCHER:
Scarica
Scaricare il client SSH putty:
Scarica
Durante l'installazione di Ubuntu abilitare il SERVER SSH.
Una volta installato il software server e dopo aver riavviato il PC avrete a dispozione il terminale.
Accedere al server effettuando il login
Aggiornare la lista dei pacchetti:
sudo apt update
Aggiornare il software:
sudo apt upgrade
Il servizio Modem Manager potrebbe influire negativamente con il server Home Assistant
inoltre ne impedisce l'installazione.
Verificare se il pacchetto ModemManager è installato:
apt list modemmanager
Installato:
Listing... Done
modemmanager/bionic-updates 1.10.0-1~ubuntu18.04.2 amd64 [installed]
N: There is 1 additional version. Please use the '-a' switch to see it
Listing... Done
modemmanager/bionic-updates 1.10.0-1~ubuntu18.04.2 amd64
N: There is 1 additional version. Please use the '-a' switch to see it
Installare i pacchetti ifupdown e bridge-utils
sudo apt install ifupdown
sudo apt install bridge-utils
Manuale Ubuntu:
Manuale Ubuntu Interfacce di rete
Modificare il file /etc/network/interfaces. Copiare la configurazione ed incollarla nel file.
NB: Le righe che iniziano con il carattere # sono commenti e non vengono
considerate come istruzioni dal software
sudo nano /etc/network/interfaces
Salvare il file CTRL+O:
Confermare di voler salvare il file INVIO:
Chiudere l'editor nano CTRL+X:
Netplan è il nuovo servizio per la gestione delle interfacce di rete e sostituisce il servizio
Network Manager.
Arrestare il servizio Netplan:
sudo systemctl stop systemd-networkd.socket systemd-networkd networkd-dispatcher systemd-networkd-wait-online
sudo systemctl disable systemd-networkd.socket systemd-networkd networkd-dispatcher systemd-networkd-wait-online
sudo systemctl mask systemd-networkd.socket systemd-networkd networkd-dispatcher systemd-networkd-wait-online
sudo apt --assume-yes purge nplan netplan.io
Avvio del servizio networking;
sudo systemctl unmask networking
sudo systemctl enable networking
sudo systemctl restart networking
Le interfacce di rete saranno gestite da ifupdown...
Verificare se il pacchetto network-manager è installato:
apt list network-manager
Installato:
Listing... Done
network-manager/bionic-updates 1.10.6-2ubuntu1.4 amd64 [installed]
N: There are 2 additional versions. Please use the '-a' switch to see them.
Listing... Done
network-manager/bionic-updates 1.10.6-2ubuntu1.4 amd64
N: There are 2 additional versions. Please use the '-a' switch to see them.
Se Network Manager non è installato passare alla sezione: Risoluzione dei nomi di domnio ( DNS )
Ubuntu Bionic Beaver (18.04) utilizza un proprio client resolver SYSTEMD-RESOLVED.SERVICE(8)
è necessario aggiungere l'indirizzo del server DNS al file /etc/systemd/resolved.conf
sudo nano /etc/systemd/resolved.conf
DNS=8.8.8.8 8.8.4.4
Salvare il file CTRL+O:
Confermare di voler salvare il file INVIO:
Chiudere l'editor nano CTRL+X:
Riavviare il servizio systemd-resolved:
sudo systemctl restart systemd-resolved
Test risoluzione dei nomi:
nslookup www.google.com
Salvare il file CTRL+O:
Confermare di voler salvare il file INVIO:
Chiudere l'editor nano CTRL+X:
Modificare il file /etc/sysctl.conf:
NB: Le righe che iniziano con il carattere # sono commenti e non vengono
considerate come istruzioni dal software
sudo nano /etc/sysctl.conf
Elimiare il carattere # commento alla riga come mostrato di seguito e verificare che il valore
dopo il simbolo = sia 1
net.ipv4.ip_forward=1
Salvare il file CTRL+O:
Confermare di voler salvare il file INVIO:
Chiudere l'editor nano CTRL+X:
Per verificare che l'IP FORWADING sia abilitato sarà necessario riavviare il server:
sudo reboot
sysctl net.ipv4.ip_forward
La risposta dovrà essere:
net.ipv4.ip_forward = 1
Arrestare il servzio Uncomplicated Firewall:
sudo systemctl disable ufw
Disinstallare il Firewall:
sudo apt -y purge ufw
Hostapd creerà il nuovo Access Point AP
Wireless Access Point
Installare i pacchetti:
sudo apt install wireless-tools
sudo apt install hostapd
Modificare il file /etc/hostapd/hostapd.conf
NB: Le righe che iniziano con il carattere # sono commenti e non vengono
considerate come istruzioni dal software
sudo nano /etc/hostapd/hostapd.conf
Specificare il nome del nuovo Access Point:
ssid=Home_Assistant, o vostra scelta
Specificare la password:
wpa_passphrase=PASSWORD
La potenza del segnale radio ed i canali disponibili sono gestiti dalle
diverse nazioni. Impostate la vostra nazione utilizzando i codici Country code (ISO/IEC 3166-1)
riportati in questa lista:
Codici nazioni - Country codes
country_code=IT o country_code=US o country_code=FR ecc
Salvare il file CTRL+O:
Confermare di voler salvare il file INVIO:
Chiudere l'editor nano CTRL+X:
A questo punto potrebbe essera utile eseguire un test di Hostapd:
Hostapd
Senza informazioni di debug ( avviare prima senza debug ):
sudo hostapd /etc/hostapd/hostapd.conf
Con informazioni di debug, se necessario:
sudo hostapd -d /etc/hostapd/hostapd.conf
Se tutto funziona correttamente il nuovo Access Point verrà creato, verificate
che esista la nuova rete WiFi. Se tenterete di connettervi alla nuova rete vedrete
apparire, sullo schermo, alcune inforamzioni ma non vi sarà possibile connettervi alla nuova rete
per ora.
Terminate Hostapd premendo CRTL+C
Per fare in modo che l'Access Point venga creato automaticamente all'avvio dell'HUB
midificare il file /etc/default/hostapd:
sudo nano /etc/default/hostapd
Trovare la riga DAEMON_CONF. Se è presente il simbolo di commento # all'inizio
della riga rimuoverlo e modificare il valore impostandolo come segue:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Salvare il file CTRL+O:
Confermare di voler salvare il file INVIO:
Chiudere l'editor nano CTRL+X:
Abilitare hostapd ad essere utilizzato come sevizio:
sudo systemctl unmask hostapd
Abilitare il servizio hostapd:
sudo systemctl enable hostapd
Avviare il servizio hostapd:
sudo systemctl start hostapd
Verificare che il servizio hostapd sia in funzione:
sudo systemctl status hostapd --no-pager
Da questo momento in poi il nuovo AP verrà creato automaticamente all'avvio dell'HUB
e vi sarà possibile individuare il nuovo AP controllando l'elenco delle reti WiFi disponibili
da PC, da Smartphone o da altri dispositivi.
Installare il server DHCP isc-dhcp-server:
sudo apt install isc-dhcp-server -y
Modificare il file /etc/default/isc-dhcp-server :
NB: Le righe che iniziano con il carattere # sono commenti e non vengono
considerate come istruzioni dal software
sudo nano /etc/default/isc-dhcp-server
Modifcare il valore di INTERFACESv4 specficando br0
INTERFACESv4="br0"
Salvare il file CTRL+O:
Confermare di voler salvare il file INVIO:
Chiudere l'editor nano CTRL+X:
Modificare il file /etc/dhcp/dhcpd.conf:
NB: Le righe che iniziano con il carattere # sono commenti e non vengono
considerate come istruzioni dal software
E' possibile cancellare completamente il contenuto e sostituirlo con la configurazione
riportata di seguito, modificare solo le righe seguenti, aggiungere il simbolo di commento #
alle righe esistenti ed aggiungere la configurazione riportata di seguito:
sudo nano /etc/dhcp/dhcpd.conf
Salvare il file CTRL+O:
Confermare di voler salvare il file INVIO:
Chiudere l'editor nano CTRL+X:
Riavviare il server DHCP:
sudo systemctl restart isc-dhcp-server
Controllare lo stato del server:
sudo systemctl status isc-dhcp-server --no-pager
Se il servizio è attivo l'output sarà simile a:
● isc-dhcp-server.service - ISC DHCP IPv4 server
Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-04-02 07:37:07 UTC; 5h 28min ago
Docs: man:dhcpd(8)
Main PID: 1266 (dhcpd)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/isc-dhcp-server.service
└─1266 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/dhcp/dhcpd.conf
Riavviate l'HUB
sudo reboot
Verificare che il servizio Hostapd è in funzione:
sudo systemctl status hostapd.service --no-pager
Se il servizio è attivo l'output sarà simile a:
● hostapd.service - Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator
Loaded: loaded (/lib/systemd/system/hostapd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-04-02 07:37:07 UTC; 5h 23min ago
Process: 1287 ExecStart=/usr/sbin/hostapd -P /run/hostapd.pid -B $DAEMON_OPTS ${DAEMON_CONF} (code=exited, status=0/SUCCESS)
Main PID: 1375 (hostapd)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/hostapd.service
└─1375 /usr/sbin/hostapd -P /run/hostapd.pid -B /etc/hostapd/hostapd.conf
Se il servizio è attivo l'output sarà simile a:
● isc-dhcp-server.service - ISC DHCP IPv4 server
Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-04-02 07:37:07 UTC; 5h 28min ago
Docs: man:dhcpd(8)
Main PID: 1266 (dhcpd)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/isc-dhcp-server.service
└─1266 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/dhcp/dhcpd.conf
I pacchetti destinati alla rete WAN ( internet ) non possono ancora essere instradati
verso di essa.
Per poter essere instradati sarà necessario specificare una nuova ROUTE con NAT.
sudo iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
Ora collegandosi all'HUB ( Access Point dell'HUB ) sarà possibile accedere ad Internet.
La nuova route però deve essere salvata altrimenti ad ogni riavvio dovrà essere reinserita:
Installare il pacchetto iptables-persistent
sudo apt install iptables-persistent
Durante l'installazion di iptables-persistent vi verrà richiesto il permesso di salvare le regole
attive, rispondere SI alle richieste.
( OPZIONALE ) Salvataggio manuale delle regole:
sudo netfilter-persistent save
Vedere le regole iptables in uso:
netstat -rn
route -n
ip route
Riavviate l'HUB con:
sudo reboot
Il vostro server Ubuntu è dotato di funzionalità di routing ed è un vero Access Point.
Prima di installare Docker-ce e Home Assistant testate il solo router.
Collegandovi al nuovo Access Point sarà possibile navigare normalmente.