GNU/Linux >> Linux Esercitazione >  >> Linux

Limita l'accesso SSH in base all'indirizzo IP

Questo articolo descrive come proteggere l'accesso SSH al tuo server eseguendo le seguenti azioni:

  • Impedisci tentativi di accesso per indirizzi IP specifici nella configurazione permissiva
  • Consenti l'accesso per indirizzi IP specifici nella configurazione restrittiva

Configurazione permissiva

La configurazione permissiva consente l'accesso a tutti tranne l'indirizzo IP negato. Puoi negare l'accesso a indirizzi IP specifici nei seguenti modi:

wrapper TCP

Effettua questa configurazione nel file /etc/hosts.deny aggiungendo la seguente regola:

# vi /etc/host.deny

Imposta una regola di rifiuto in uno dei seguenti modi:

sshd: Bad_IP_address
sshd: 192.168.0.8

sshd: Bad_Segment/CIDR
sshd: 192.168.0.0/24

sshd: Bad_IP_address, Bad_IP_address
sshd: 192.168.0.3, 192.168.0.4

iptables

Questa configurazione risiede nella configurazione delle regole del firewall del sistema operativo.

# iptables -A INPUT -s "BAD_IP" -p tcp --dport SSH_Port -j DROP

Blocca un indirizzo IP :

# iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j DROP

Blocca un segmento :

# iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j DROP

Configurazione restrittiva

Questa configurazione consente l'accesso solo a indirizzi IP specifici e interrompe altro traffico in entrata.

wrapper TCP

Innanzitutto, nega tutto il traffico in entrata a SSH in /etc/hosts.deny file:

# vi /etc/hosts.deny
sshd: ALL

Quindi, consenti l'accesso agli indirizzi IP affidabili:

# vi /etc/hosts.allow
sshd: Trusted_IP_address
sshd: 192.168.0.8

sshd: Trusted_Segment/CIDR
sshd: 192.168.0.0/24

sshd: Trusted_IP_address, Trusted_IP_address
sshd: 192.168.0.3, 192.168.0.4

iptables

Per le tabelle IP, l'ordine in cui metti le regole è molto importante. Ecco perché devi configurare prima le regole di autorizzazione e poi la regola di negazione.

# iptables -A INPUT --source Trusted_IP -p tcp --dport SSH_PORT  -j ACCEPT

Accettazione del traffico da un IP:

# iptables -A INPUT --source 192.168.0.8 -p tcp --dport 22 -j ACCEPT

Accettazione del traffico da un segmento:

# iptables -A INPUT --source 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT

Impostazione della regola di blocco:

iptables -A INPUT -p tcp --dport 22 -j DROP

Come migliorare le modifiche

Puoi rivedere le tue modifiche eseguendo i seguenti comandi a seconda della configurazione restrittiva o permissiva:

# cat /etc/hosts.deny
# cat /etc/hosts.allow
# iptables -L

Nota: Alcune distribuzioni includono software firewall predefinito, come UFW per Debian® e il sistema operativo Ubuntu® e derivati, Firewalld per Red Hat® Enterprise Linux® 7 e derivati.

Configura ufw per negare IP, numero di porta e protocollo specifici

Per bloccare un indirizzo IP sulla porta TCP 22:

# ufw deny proto tcp from 192.168.0.8 to any port 22

Per bloccare una sottorete:

# ufw deny proto tcp from 192.168.0.0/24 to any port 22

Per elencare le regole configurate:

# ufw status numbered

Configura firewalld per negare un indirizzo IP, un numero di porta e un protocollo specifici

Su firewalld puoi bannare un indirizzo IP o un segmento, ma non consentirà nessun tipo di connessione:

Blocca un indirizzo IP:

# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.0.8' reject"

Blocca un segmento:

# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.0.0/24' reject"

Ecco perché potresti scegliere di inserire nella whitelist indirizzi IP affidabili per la connessione alla porta SSH:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.20" port protocol="tcp" port="22" accept'

Devi ricaricare la configurazione del firewalld:

# firewall-cmd --reload

Elenca le regole configurate sul firewall:

# firewall-cmd --list-all

Linux
  1. Come utilizzare il tunneling SSH per accedere a server con restrizioni

  2. Otto modi per proteggere l'accesso SSH sul tuo sistema

  3. Ssh:limitare un utente Ssh/scp/sftp a una directory?

  4. Come creare un nuovo utente con accesso Ssh?

  5. Limita l'accesso SSH a client specifici in base all'indirizzo IP

Come possiamo limitare l'accesso SSH con UFW su Linux Mint 20

Come disabilitare l'accesso SSH root su CentOS 7

Risolvere l'indirizzo Mac dall'indirizzo IP in Linux?

Accesso SSH per cPanel

Utenti SSH aggiuntivi

Risoluzione dell'indirizzo MAC dall'indirizzo IP in Linux