Recherche de site Web

Comment bloquer l'accès SSH et FTP à une plage 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 l'accès SSH et FTP à une plage IP ou réseau spécifique sous Linux afin de renforcer davantage la sécurité.

  1. 25 conseils de renforcement de la sécurité pour les serveurs Linux
  2. 5 conseils utiles pour sécuriser et protéger le serveur SSH

Ce didacticiel vous montrera comment bloquer l'accès SSH et FTP à une adresse IP particulière et/ou une plage réseau sur les serveurs 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 et SUSE/openSUSE, etc.

Nous le ferons de deux manières. La première méthode utilise IPTables/firewallD et la deuxième méthode utilise des wrappers 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. Guide de base sur les astuces/commandes IPTables (pare-feu Linux)
  2. Comment configurer un pare-feu Iptables pour activer l'accès à distance aux services sous Linux
  3. Comment configurer « FirewallD » dans RHEL/CentOS 7 et Fedora 21
  4. Règles « FirewallD » utiles pour configurer et gérer le pare-feu sous Linux

Vous savez maintenant ce que sont IPTables et FirewallD et leurs bases.

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

Voyons maintenant comment bloquer l'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). en utilisant IPtables sur les versions RHEL/CentOS/Scientific Linux 6.x et FirewallD sur CentOS 7.x.

Bloquer ou désactiver l'accès 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

Pour appliquer les 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é. N'oubliez pas 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

Débloquer ou activer l'accès SSH

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 ce qui suit pour accéder à votre serveur via SSH.

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

Bloquer ou désactiver l'accès FTP

Généralement, les ports par défaut pour FTP sont 20 et 21. Ainsi, pour bloquer tout le trafic FTP à l'aide d'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 appliquer les nouvelles règles, vous devez utiliser la commande suivante.

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

Maintenant, essayez d'accéder au serveur depuis l'hôte bloqué (192.168.1.100), avec la commande :

ftp 192.168.1.150

Vous recevrez un message d’erreur semblable à celui ci-dessous.

ftp: connect: Connection refused

Débloquer ou activer l'accès FTP

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 des wrappers TCP

Si vous ne voulez pas vous embêter avec IPTables ou FirewallD, alors les Wrappers TCP constituent le meilleur moyen de bloquer l'accès SSH et FTP à un emplacement spécifique. IP et/ou une gamme de réseau.

OpenSSH et FTP sont compilés avec la prise en charge 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 l'accès SSH et FTP à l'hôte qui a l'adresse IP 192.168.1.100 et la plage réseau 192.168.1.0. Cette méthode est la même 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 réseau suivantes 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 sur le serveur ou depuis 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 de FTP depuis le serveur 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 et commentez toutes les lignes, puis redémarrez 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 et une plage réseau spécifiques à l'aide des wrappers IPTables, FirewallD et TCP. Ces méthodes sont assez simples et directes.

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