Come bloccare l'accesso SSH e FTP a specifici IP e intervalli di rete in Linux
In genere tutti utilizziamo spesso i servizi SSH e FTP per accedere ai server remoti e ai server privati virtuali. In qualità di amministratore Linux, devi essere consapevole di come bloccare l'accesso SSH e FTP a specifici IP o intervalli di rete in Linux per rafforzare ulteriormente la sicurezza.
- 25 suggerimenti per rafforzare la sicurezza per i server Linux
- 5 consigli utili per proteggere e proteggere il server SSH
Questo tutorial ti mostrerà come bloccare l'accesso SSH e FTP a un particolare indirizzo IP e/o un intervallo di rete nei server CentOS 6 e 7. Questa guida è stata testata sulle versioni CentOS 6.x e 7.x, ma probabilmente funzionerà su altre distribuzioni Linux come Debian, Ubuntu e SUSE/openSUSE ecc.
Lo faremo in due metodi. Il primo metodo utilizza IPTables/firewallD e il secondo metodo utilizza wrapper TCP con l'aiuto di hosts.allow e il file hosts.deny.
Fare riferimento alle seguenti guide per saperne di più su IPTables e Firewalld.
- Guida di base su IPTables (Firewall Linux) Suggerimenti/comandi
- Come configurare un firewall Iptables per abilitare l'accesso remoto ai servizi in Linux
- Come configurare "FirewallD" in RHEL/CentOS 7 e Fedora 21
- Regole utili di "FirewallD" per configurare e gestire il firewall in Linux
Ora sai cosa sono IPTables e FirewallD e le sue nozioni di base.
Metodo 1: bloccare l'accesso SSH e FTP utilizzando IPTables/FirewallD
Vediamo ora come bloccare l'accesso SSH e FTP ad uno specifico IP (ad esempio 192.168.1.100) e/o intervallo di rete (ad esempio 192.168.1.0/24) utilizzando IPtables su versioni RHEL/CentOS/Scientific Linux 6.x e FirewallD su CentOS 7.x.
Blocca o disabilita l'accesso SSH
--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j REJECT
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport ssh -j REJECT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j REJECT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j REJECT
Per rendere effettive le nuove regole, è necessario utilizzare il comando seguente.
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Ora prova a SSH il server dall'host bloccato. Tieni presente che qui 192.168.1.150 è l'host bloccato.
ssh 192.168.1.150
Dovresti vedere il seguente messaggio.
ssh: connect to host 192.168.1.150 port 22: Connection refused
Sblocca o abilita l'accesso SSH
Per sbloccare o abilitare l'accesso SSH, vai al server remoto ed esegui il seguente comando:
--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j ACCEPT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport ssh -j ACCEPT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j ACCEPT
Salva le modifiche utilizzando quanto segue per accedere al tuo server tramite SSH.
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Blocca o disabilita l'accesso FTP
In genere, le porte predefinite per FTP sono 20 e 21. Quindi, per bloccare tutto il traffico FTP utilizzando IPTables, esegui il seguente comando:
--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j REJECT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j REJECT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 20,21 -j REJECT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 20,21 -j REJECT
Per rendere effettive le nuove regole, è necessario utilizzare il comando seguente.
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Ora prova ad accedere al server dall'host bloccato (192.168.1.100), con il comando:
ftp 192.168.1.150
Riceverai un messaggio di errore simile a quello riportato di seguito.
ftp: connect: Connection refused
Sblocca o abilita l'accesso FTP
Per sbloccare e riattivare l'accesso FTP, eseguire:
--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j ACCEPT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j ACCEPT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 20,21 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 20,21 -j ACCEPT
Salva le modifiche con il comando:
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Ora prova ad accedere al server tramite FTP:
ftp 192.168.1.150
Inserisci il tuo nome utente e password ftp.
Connected to 192.168.1.150.
220 Welcome to TecMint FTP service.
Name (192.168.1.150:sk): tecmint
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Metodo 2: bloccare l'accesso SSH e FTP utilizzando i wrapper TCP
Se non vuoi scherzare con IPTables o FirewallD, allora i wrapper TCP sono il modo migliore per bloccare l'accesso SSH e FTP a uno specifico IP e/o un intervallo di rete.
OpenSSH e FTP sono compilati con il supporto dei wrapper TCP, il che significa che puoi specificare quali host possono connettersi senza toccare il firewall nei seguenti due file importanti e sono:
- /etc/hosts.allow
- /etc/hosts.deny
Come suggerisce il nome, il primo file contiene le voci degli host consentiti e il secondo contiene gli indirizzi degli host bloccati.
Ad esempio, blocchiamo l'accesso SSH e FTP all'host che ha l'indirizzo IP 192.168.1.100 e l'intervallo di rete 192.168.1.0. Questo metodo è lo stesso per le serie CentOS 6.xe 7.x. E, naturalmente, funzionerà su altre distribuzioni come Debian, Ubuntu, SUSE, openSUSE ecc.
Apri il file /etc/hosts.deny
e aggiungi i seguenti indirizzi IP o intervallo di rete che desideri bloccare come mostrato di seguito.
##### To block SSH Access #####
sshd: 192.168.1.100
sshd: 192.168.1.0/255.255.255.0
##### To block FTP Access #####
vsftpd: 192.168.1.100
vsftpd: 192.168.1.0/255.255.255.0
Salvare ed uscire dal file.
Ora riavvia il servizio sshd e vsftpd per rendere effettive le nuove modifiche.
--------------- For SSH Service ---------------
service sshd restart [On SysVinit]
systemctl restart sshd [On SystemD]
--------------- For FTP Service ---------------
service vsftpd restart [On SysVinit]
systemctl restart vsftpd [On SystemD]
Ora prova ad accedere tramite SSH al server o da un host bloccato.
ssh 192.168.1.150
Vedrai il seguente output:
ssh_exchange_identification: read: Connection reset by peer
Ora prova a eseguire l'FTP sul server o da un host bloccato.
ftp 192.168.1.150
Vedrai il seguente output:
Connected to 192.168.1.150.
421 Service not available.
Per sbloccare o abilitare nuovamente i servizi SSH e FTP, modifica il file hosts.deny e commenta tutte le righe e infine riavvia i servizi vsftpd e sshd.
Conclusione
È tutto per ora. Per riassumere, oggi abbiamo imparato come bloccare un indirizzo IP e un intervallo di rete specifici utilizzando IPTables, FirewallD e wrapper TCP. Questi metodi sono piuttosto semplici e diretti.
Anche un amministratore Linux alle prime armi può farlo in un paio di minuti. Se conosci altri modi per bloccare l'accesso SSH e FTP, sentiti libero di condividerli nella sezione commenti. E non dimenticare di condividere i nostri articoli su tutti i tuoi social network.