Ricerca nel sito web

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.

  1. 25 suggerimenti per rafforzare la sicurezza per i server Linux
  2. 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.

  1. Guida di base su IPTables (Firewall Linux) Suggerimenti/comandi
  2. Come configurare un firewall Iptables per abilitare l'accesso remoto ai servizi in Linux
  3. Come configurare "FirewallD" in RHEL/CentOS 7 e Fedora 21
  4. 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:

  1. /etc/hosts.allow
  2. /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.