GNU/Linux >> Tutoriels Linux >  >> Linux

Limiter l'accès SSH par adresse IP

Cet article décrit comment sécuriser l'accès SSH à votre serveur en effectuant les actions suivantes :

  • Empêcher les tentatives de connexion pour des adresses IP spécifiques dans la configuration permissive
  • Autoriser l'accès à des adresses IP spécifiques dans la configuration restrictive

Configuration permissive

La configuration permissive permet l'accès à tout le monde sauf l'adresse IP refusée. Vous pouvez refuser l'accès à des adresses IP spécifiques des manières suivantes :

encapsuleurs TCP

Faites cette configuration dans le fichier /etc/hosts.deny en ajoutant la règle suivante :

# vi /etc/host.deny

Définissez une règle de refus de l'une des manières suivantes :

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

Cette configuration réside dans la configuration des règles de pare-feu du système d'exploitation.

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

Bloquer une adresse IP :

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

Bloquer un segment :

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

Configuration restrictive

Cette configuration permet d'accéder uniquement à des adresses IP spécifiques et supprime tout autre trafic entrant.

encapsuleurs TCP

Tout d'abord, refusez tout le trafic entrant vers SSH dans le fichier /etc/hosts.deny fichier :

# vi /etc/hosts.deny
sshd: ALL

Ensuite, autorisez l'accès aux adresses IP de confiance :

# 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

Pour les tables IP, l'ordre dans lequel vous placez les règles est très important. C'est pourquoi vous devez d'abord configurer les règles d'autorisation, puis la règle de refus.

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

Accepter le trafic d'une adresse IP :

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

Accepter le trafic d'un segment :

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

Définition de la règle de blocage :

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

Comment améliorer les modifications

Vous pouvez revoir vos modifications en exécutant les commandes suivantes selon la configuration restrictive ou permissive :

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

Remarque : Certaines distributions incluent un logiciel de pare-feu par défaut, tel que UFW pour Debian® et le système d'exploitation Ubuntu® et dérivés, Firewalld pour Red Hat® Enterprise Linux® 7 et dérivés.

Configurer ufw pour refuser une adresse IP, un numéro de port et un protocole spécifiques

Pour bloquer une adresse IP sur le port TCP 22 :

# ufw deny proto tcp from 192.168.0.8 to any port 22

Pour bloquer un sous-réseau :

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

Pour lister les règles configurées :

# ufw status numbered

Configurer firewalld pour refuser une adresse IP, un numéro de port et un protocole spécifiques

Sur firewalld, vous pouvez interdire une adresse IP ou un segment, mais cela n'autorisera aucun type de connexion :

Bloquer une adresse IP :

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

Bloquer un segment :

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

C'est pourquoi vous pouvez choisir de mettre sur liste blanche des adresses IP de confiance pour vous connecter au port SSH :

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

Vous devez recharger la configuration de firewalld :

# firewall-cmd --reload

Lister les règles configurées sur le pare-feu :

# firewall-cmd --list-all

Linux
  1. Comment utiliser le tunneling SSH pour accéder aux serveurs restreints

  2. Huit façons de protéger l'accès SSH sur votre système

  3. Comment lire une adresse IP à l'envers ?

  4. Comment créer un nouvel utilisateur avec un accès Ssh ?

  5. Premiers pas avec SSH

Comment pouvons-nous limiter l'accès SSH avec UFW sur Linux Mint 20

Comment désactiver l'accès root SSH sur CentOS 7

Résoudre l'adresse Mac à partir de l'adresse IP sous Linux ?

Accès SSH pour cPanel

Utilisateurs SSH supplémentaires

Résolution de l'adresse MAC à partir de l'adresse IP sous Linux