Come abilitare e avviare il server SSH su OPNsense
OpenSSH è uno strumento creato per fornire un accesso remoto sicuro ai dispositivi remoti utilizzando il protocollo SSH. SSH utilizza la crittografia avanzata per i trasferimenti di dati tra le macchine client e server, sia per l'accesso remoto che per il trasferimento di file. Questo livello di sicurezza eliminerà gli intercettatori, i dirottatori e altri tipi di aggressori nella tua rete.
Prerequisiti di installazione
Prima di iniziare con questo articolo, devi soddisfare i seguenti requisiti:
- Avere installato il server OPNsense
- Il tuo dispositivo locale dovrebbe essere in grado di accedere alla dashboard web di OPNsense
- Disponi di un account di accesso OPNsense che sia membro del gruppo amministratori integrato.
Abilita il servizio OpenSSH su OPNsense
OPNsense è noto per essere uno dei migliori firewall e soluzioni di routing open source che possono essere adottati per uso domestico o in un'azienda di piccole e medie dimensioni.
Abbiamo un articolo separato su come installare OPNsense: Come installare OPNSense Firewall su Proxmox VE. Con il firewall attivo e funzionante, accedi al dashboard web.
Una volta entrato nel dashboard, vai a Sistema –> Amministrazione –> Secure Shell.
Seleziona la casella Abilita server OpenSSH e consenti l'accesso dell'utente root. Facoltativamente puoi abilitare il metodo di autenticazione con password, ma questo sarà disabilitato per me poiché preferisco il meccanismo di autenticazione basato su chiave.
Ti consigliamo di consentire al servizio SSH di ascoltare solo su LAN o su qualsiasi altra rete VLAN non esposta al mondo esterno.
Utilizzo della chiave pubblica SSH per accedere
Il protocollo SSH supporta molti metodi di autenticazione. La più utilizzata e allo stesso tempo sicura per le connessioni interattive e automatizzate è l'autenticazione con chiave pubblica. Puoi leggere questa documentazione per saperne di più sul metodo di autenticazione con chiave pubblica.
Il percorso predefinito della tua chiave pubblica SSH è ~/.ssh
. Puoi verificare se disponi delle chiavi elencando i contenuti in questa directory.
$ ls -1 ~/.ssh
config
id_rsa
id_rsa.pub
known_hosts
known_hosts.old
La tua chiave pubblica si chiama id_rsa.pub. Se non ce n'è nel tuo computer, generalo su sistemi basati su Linux/Unix utilizzando i seguenti comandi.
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jmutai/.ssh/id_rsa):
Created directory '/home/jmutai/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jmutai/.ssh/id_rsa
Your public key has been saved in /home/jmutai/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:bgcrnow9O7wKbgeOdJ6kO2CnwPvpW5kGY84rMDv+DPY jmutai@josphat-devops2
The key's randomart image is:
+---[RSA 3072]----+
| |
| |
| |
| |
|. + S |
|=+=+o o. o |
|*BX+.*. + . |
|=B*+*=++ . |
|.=OE+.B= |
+----[SHA256]-----+
Sarà necessario copiare il contenuto del file per utilizzarlo in OPNsense.
cat ~/.ssh/id_rsa.pub
Su macOS puoi copiare il contenuto negli appunti usando pbcopy.
pbcopy <~/.ssh/id_rsa.pub
Gli utenti Linux possono utilizzare xclip.
xclip -sel clip <~/.ssh/id_rsa.pub
Successivamente vai alla console Web OPNsense, quindi trova la sezione Sistema –> Utenti . Seleziona l'utente da modificare utilizzando l'icona matita.
Incolla la chiave copiata per l'utente selezionato. Nel nostro esempio l'utente è root.
Al termine, salva le modifiche.
Test di SSH in OPNsense
Il passaggio finale è testare la connessione SSH a OPNsense dal nostro computer locale.
La sintassi del comando per SSH è.
$ ssh username@OPNsenseIP
Gli utenti Windows possono provare uno degli strumenti nell'articolo Le migliori applicazioni client SSH, Telnet e seriali per sistemi Windows.
$ ssh [email
Warning: Permanently added '192.168.1.1' (ED25519) to the list of known hosts.
Last login: Thu Jan 25 01:05:07 2024 from 192.168.1.151
----------------------------------------------
| Hello, this is OPNsense 23.7 | @@@@@@@@@@@@@@@
| | @@@@ @@@@
| Website: https://opnsense.org/ | @@@" ///@@@
| Handbook: https://docs.opnsense.org/ | )))))))) ((((((((
| Forums: https://forum.opnsense.org/ | @@@/// "@@@
| Code: https://github.com/opnsense | @@@@ @@@@
| Twitter: https://twitter.com/opnsense | @@@@@@@@@@@@@@@
----------------------------------------------
*** fw01.example.io: OPNsense 23.7.12 ***
GuestWifi (vlan020) -> v4: 172.20.40.1/24
IoTDevices (vlan021) -> v4: 172.20.41.1/24
LAN (igb1) -> v4: 192.168.1.1/24
PrivateServers (vlan030) -> v4: 172.20.30.1/24
WAN (igb0) -> v4: a.b.c.d/24
HTTPS: SHA256 66 1B 87 B8 43 2C 15 45 05 57 05 1E 5E FF BB BD
AC A6 DF 50 C9 73 FC A6 D5 88 29 10 A4 16 7B 29
SSH: SHA256 lmQRFUxZjpwargrS5JII5m57XW04q8gE4ZHIrO3Ub0I (ECDSA)
SSH: SHA256 H3emXepr/oufi2zVoVRBWCt5iJM+JTVjtReBpBOlPUc (ED25519)
SSH: SHA256 +vgBRjGF6QyimDHDr9Dcq7aZqxuZGUlEdi//XEVLy8E (RSA)
0) Logout 7) Ping host
1) Assign interfaces 8) Shell
2) Set interface IP address 9) pfTop
3) Reset the root password 10) Firewall log
4) Reset to factory defaults 11) Reload all services
5) Power off system 12) Update from console
6) Reboot system 13) Restore a backup
Enter an option:
Possiamo provare a eseguire un'azione per verificare che funzioni. Ad esempio "12) Aggiornamento dalla console"
Enter an option: 12
Fetching change log information, please wait... done
This will automatically fetch all available updates and apply them.
Proceed with this action? [y/N]: y
Updating OPNsense repository catalogue...
OPNsense repository is up to date.
All repositories are up to date.
Updating OPNsense repository catalogue...
.....
Questa è una conferma che abbiamo abilitato OpenSSH Server su OPNsense e che siamo in grado di accedervi. Il programma client OpenSSH si chiama ssh ed è disponibile sulla maggior parte dei sistemi basati su Linux e Unix. Agli utenti Windows potrebbe essere richiesto di installare strumenti come PuTTY o MobaXterm, che forniscono funzionalità client ssh.
Articoli simili:
- Come installare e configurare il client Tailscale su OPNsense
- Come eseguire Headscale con l'interfaccia utente nel contenitore Docker