Comment bloquer l'accès SSH et FTP à une plage d'adresses IP et réseau spécifique sous Linux


En règle générale, nous utilisons tous souvent les services SSH et FTP pour accéder aux serveurs distants et aux serveurs privés virtuels. En tant qu'administrateur Linux, vous devez savoir comment bloquer les accès SSH et FTP à une plage IP ou réseau spécifique sous Linux afin de renforcer davantage le bit de sécurité.

  1. 25 Hardening Security Tips for Linux Servers
  2. 5 Useful Tips to Secure and Protect SSH Server

Ce tutoriel vous montrera comment bloquer les accès SSH et FTP à une adresse IP particulière et/ou à une plage de réseaux du serveur CentOS 6 et 7. Ce guide a été testé sur les versions CentOS 6.x et 7.x , mais il fonctionnera probablement sur d'autres distributions Linux telles que Debian, Ubuntu, SUSE/openSUSE, etc.

Nous le ferons de deux manières. La première méthode utilise IPTables / firewallD et la deuxième utilise des TCP à l'aide de hosts.allow et le fichier hosts.deny .

Reportez-vous aux guides suivants pour en savoir plus sur IPTables et Firewalld.

  1. Basic Guide on IPTables (Linux Firewall) Tips / Commands
  2. How To Setup an Iptables Firewall to Enable Remote Access to Services in Linux
  3. How to Configure ‘FirewallD’ in RHEL/CentOS 7 and Fedora 21
  4. Useful ‘FirewallD’ Rules to Configure and Manage Firewall in Linux

Vous savez maintenant ce que sont IPTables , FirewallD et ses bases.

Méthode 1: bloquer l'accès SSH et FTP à l'aide d'IPTables / FirewallD

Voyons maintenant comment bloquer les accès SSH et FTP à une adresse IP spécifique (par exemple 192.168.1.100 ) et/ou à une plage réseau (par exemple, 192.168.1.0/24 ) Utilisation de IPtables sur les versions RHEL/CentOS/Scientific Linux 6.x et de FirewallD sous CentOS 7.x.

--------------------- 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

Pour prendre en compte de nouvelles règles, vous devez utiliser la commande suivante.

# service iptables save         [On IPtables Firewall]
# firewall-cmd --reload         [On FirewallD]

Maintenant, essayez de SSH le serveur à partir de l'hôte bloqué. Veuillez noter qu'ici 192.168.1.150 correspond à l'hôte bloqué.

# ssh 192.168.1.150

Vous devriez voir le message suivant.

ssh: connect to host 192.168.1.150 port 22: Connection refused

Pour débloquer ou activer l'accès SSH, accédez au serveur distant et exécutez la commande suivante:

--------------------- 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

Enregistrez les modifications en utilisant suivant pour accéder à votre serveur via SSH.

# service iptables save         [On IPtables Firewall]
# firewall-cmd --reload         [On FirewallD]

En règle générale, les ports par défaut pour FTP sont 20 et 21 . Donc, pour bloquer tout le trafic FTP en utilisant IPTables, exécutez la commande suivante:

--------------------- 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

Pour prendre en compte de nouvelles règles, vous devez utiliser la commande suivante.

# service iptables save         [On IPtables Firewall]
# firewall-cmd --reload         [On FirewallD]

Essayez maintenant d'accéder au serveur à partir de l'hôte bloqué ( 192.168.1.100 ), à l'aide de la commande suivante:

# ftp 192.168.1.150

Vous recevrez un message d'erreur comme ci-dessous.

ftp: connect: Connection refused

Pour débloquer et réactiver l'accès FTP, exécutez:

--------------------- 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

Enregistrez les modifications avec la commande:

# service iptables save         [On IPtables Firewall]
# firewall-cmd --reload         [On FirewallD]

Maintenant, essayez d’accéder au serveur via FTP:

# ftp 192.168.1.150

Entrez votre nom d'utilisateur et votre mot de passe 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> 

Méthode 2: bloquer l'accès SSH et FTP à l'aide de wrappers TCP

Si vous ne souhaitez pas utiliser IPTables ou FirewallD , alors les wrappers TCP constituent le meilleur moyen de bloquer les accès SSH et FTP à un serveur spécifique. IP et/ou une gamme de réseau.

OpenSSH et FTP sont compilés avec le support des wrappers TCP, ce qui signifie que vous pouvez spécifier quels hôtes sont autorisés à se connecter sans toucher votre pare-feu dans les deux fichiers importants suivants:

  1. /etc/hosts.allow
  2. /etc/hosts.deny

Comme son nom l'indique, le premier fichier contient les entrées des hôtes autorisés et le second contient les adresses des hôtes bloqués.

Par exemple, bloquons les accès SSH et FTP à l’hôte dont l’adresse IP est 192.168.1.100 et la portée du réseau 192.168.1.0 . Cette méthode est identique pour les séries CentOS 6.x et 7.x. Et, bien sûr, cela fonctionnera sur d'autres distributions telles que Debian, Ubuntu, SUSE, openSUSE, etc.

Ouvrez le fichier /etc/hosts.deny et ajoutez les adresses IP ou la plage du réseau que vous souhaitez bloquer, comme indiqué ci-dessous.

##### 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

Enregistrez et quittez le fichier.

Maintenant, redémarrez les services sshd et vsftpd pour prendre en compte les nouvelles modifications.

--------------- 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]

Maintenant, essayez de SSH le serveur ou d'un hôte bloqué.

# ssh 192.168.1.150

Vous verrez le résultat suivant:

ssh_exchange_identification: read: Connection reset by peer

Maintenant, essayez d'envoyer le serveur par FTP ou depuis un hôte bloqué.

# ftp 192.168.1.150

Vous verrez le résultat suivant:

Connected to 192.168.1.150.
421 Service not available.

Pour débloquer ou réactiver les services SSH et FTP, modifiez le fichier hosts.deny , mettez en commentaire toutes les lignes, puis relancez les services vsftpd et sshd.

Conclusion

C'est tout pour le moment. Pour résumer, nous avons appris aujourd’hui comment bloquer une adresse IP spécifique et une plage réseau à l’aide des enveloppeurs IPTables, FirewallD et TCP. Ces méthodes sont assez faciles et simples.

Même un administrateur novice de Linux peut le faire en quelques minutes. Si vous connaissez d'autres moyens de bloquer les accès SSH et FTP, n'hésitez pas à les partager dans la section des commentaires. Et n'oubliez pas de partager nos articles sur tous vos réseaux sociaux.