## Configurazione porte SSH alterative Per aggiungere una nuova porta al servizio SSH è necessario * Abilitare la porta in SELinux, se è attivo. * Aprire la porta nel firewall, se attivo. * Aggiungere la porta alla configurazione di OpenSSH. L'aggiunta di una nuova porta, eventualmente sostitutiva di quella predefinita *22*, ha lo scopo di ridurre la possibilità di violazione del servizio SSH esposto su Internet. Pertanto, le operazioni descritte sono orientate alla configurazione del servizio rispetto all'interfaccia di rete esposta sulla rete considerato ostile, in particoalre Internet. ### Verifica delle porte SSH Usare il comando _netstat_ con l'account _root_: [source,bash] ---- [root@fedserv ~]# netstat -tunlp | grep ssh tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 813/sshd: /usr/sbin tcp6 0 0 :::22 :::* LISTEN 813/sshd: /usr/sbin ---- ### Configurazione SELinux Usare il comando _semanage_ con l'account _root_. .Verifica porte abilitate in SELInux per il servizio SSH [source,bash] ---- [root@fedserv ~]# semanage port -l | grep ssh ssh_port_t tcp 22 ---- .Abilitazione porta alternativa, ad es. 2222 [source,bash] ---- [root@fedserv ~]# semanage port -a -p tcp -t ssh_port_t 2222 # Verifica [root@fedserv ~]# semanage port -l | grep ssh ssh_port_t tcp 2222, 22 ---- .Comando per la rimozione di una porta dall'abilitazione SELinux [source,bash] ---- [root@fedserv ~]# semanage port -d -t ssh_port_t -p tcp 2222 ---- ### Configurazione firewall La configurazione del firewall potrebbe non essere necessaria se la zona attiva sull'interfaccia di rete considerata comprende già la porta da aprire. Si consideri la seguente configurazione predefinita estratta dal mini-pc minis nel quale è installato il software di virtualizzazione. TIP: Il filtro _grep_ seleziona l'output del comando _firewall-cmd_ a partire dalle righe che contengono la paraola _active_ e le successive 13 righe. [source,bash] ---- [camoroso@minis ~]$ firewall-cmd --list-all-zones |grep -A 13 active FedoraWorkstation (active) target: default icmp-block-inversion: no interfaces: enp3s0 sources: services: dhcpv6-client mdns samba samba-client ssh ports: 1025-65535/udp 1025-65535/tcp protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: -- libvirt (active) target: ACCEPT icmp-block-inversion: no interfaces: virbr0 sources: services: dhcp dhcpv6 dns ssh tftp ports: protocols: icmp ipv6-icmp forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: ---- L'output mostra che risultano attive due zone: _FedoraWorkstation_ e _libvirt_. La prima è associata all'interfaccia di rete fisica *enp3s0*; la seconda all'interfaccia virtuale *virtbr0* (bridge) definita dal virtualizzatore per le connessioni fra macchine virtuali. Il caso d'interesse è evidentemente quello che consente l'accesso SSH da Internet, ovvero, in questo caso, all'interfaccia di rete fisica *enp3s0*. La zona attiva su quest'interfaccia, _FedoraWorkStation_ prevede già l'apertura delle porte di valore uguale o superiore a 1025 e, quindi, della porta scelta *2222*. Se la zona attiva sull'interfaccia esterna non prevedesse già l'apertura della porta d'interesse, provvedere all'apertura con i seguenti comandi. .Apertura porta firewall [source,bash] ---- # Configurazione peristente del firewall [root@minis ~]# firewall-cmd --permanent --service="ssh" --add-port="2222/tcp" # Attivazione della configurazione [root@minis ~]# firewall-cmd --reload ----