---
title: "Comment bloquer une adresse IP sur son VPS Linux ?"
description: "Bloquez une adresse IP sur votre VPS Winheberg avec UFW, firewalld ou iptables selon votre distribution, et découvrez comment identifier les IPs suspectes."
category: vps
subcategory: vps-linux
icon: tabler:file-text
date: 2026-07-24
author: Winheberg
slug: "bloquer-ip-vps-linux"
order: 14
image: /statics/images/docs/fr/vps-linux/bloquer-ip-vps-linux.webp
tags: [vps, sécurité, ufw, firewalld, iptables]
keywords: [bloquer ip vps, ufw bloquer adresse ip, firewalld rich rule, iptables drop ip, sécurité vps linux]
link_en: "/en/docs/vps-linux/block-ip-linux-vps"
---

## Contexte

Vous gérez un **VPS Winheberg** et vous avez repéré une adresse IP suspecte dans vos logs ? Un bot qui spamme votre formulaire de contact, un script qui tente de se connecter en SSH des centaines de fois, ou simplement un visiteur indésirable que vous voulez écarter ? Bloquer une IP sur votre VPS est une opération **simple et efficace** qui prend moins d'une minute.

Ce guide vous présente les trois méthodes les plus utilisées pour bloquer une IP sur un VPS Linux, selon le pare-feu installé sur votre système.

## Prérequis

- Un **VPS Winheberg** en service avec un accès root en SSH
- L'IP (ou la plage d'IP) que vous souhaitez bloquer, identifiée dans vos logs

## Quelle méthode choisir selon votre distribution ?

Le choix de l'outil dépend du pare-feu déjà installé sur votre VPS.

::MdTable{caption="Pare-feu recommandé selon votre distribution" variant="default" striped}
| Distribution | Pare-feu recommandé |
|---|---|
| Ubuntu | UFW |
| Debian | UFW (installable) |
| AlmaLinux, Rocky Linux, Fedora | firewalld |
| Toutes distributions, dont Alpine | iptables |
::

- **UFW** est le pare-feu par défaut sur **Ubuntu**, et le plus simple à utiliser. Il est aussi facilement installable sur Debian
- **firewalld** est le pare-feu par défaut sur **AlmaLinux, Rocky Linux et Fedora**. Il offre une gestion avancée par zones
- **iptables** est l'outil bas niveau qui fonctionne **sur toutes les distributions Linux**, y compris **Alpine**. C'est la solution universelle si vous n'avez pas envie d'installer un pare-feu en plus

> [!TIP]
> Utilisez le pare-feu déjà installé sur votre système plutôt que d'en empiler plusieurs. Mélanger UFW et iptables manuels peut créer des conflits difficiles à diagnostiquer.

## Bloquer une IP selon votre pare-feu

:::MdTabs
::MdTab{label="UFW (Ubuntu, Debian)"}
UFW (*Uncomplicated Firewall*) est de loin la solution la plus simple. La syntaxe est claire et lisible.

### Installer UFW (si ce n'est pas déjà fait)

Sur Ubuntu, UFW est généralement déjà installé. Sur Debian, ajoutez-le avec cette commande.

```bash
apt install ufw -y
```

### Bloquer une IP unique

Pour bloquer une adresse IP précise.

```bash
ufw deny from 203.0.113.42
```

Remplacez `203.0.113.42` par l'IP que vous voulez bloquer. La règle est appliquée immédiatement.

### Bloquer toute une plage d'IP

Si vous voulez bloquer un bloc complet (par exemple toute une plage utilisée par un attaquant), utilisez la notation CIDR.

```bash
ufw deny from 203.0.113.0/24
```

Cette commande bloque les 256 adresses de `203.0.113.0` à `203.0.113.255`.

### Bloquer une IP uniquement sur un port

Si vous voulez bloquer une IP uniquement pour un service spécifique (par exemple, l'empêcher d'accéder au SSH mais lui laisser le port 80).

```bash
ufw deny from 203.0.113.42 to any port 22
```

### Vérifier les règles actives

Pour voir toutes les règles UFW en place.

```bash
ufw status numbered
```

Vous verrez quelque chose comme.

```
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] Anywhere                   DENY        203.0.113.42
[ 2] 22/tcp                     ALLOW       Anywhere
```

### Supprimer une règle de blocage

Pour retirer une règle, utilisez son numéro.

```bash
ufw delete 1
```

Ou directement en spécifiant l'IP.

```bash
ufw delete deny from 203.0.113.42
```
::
::MdTab{label="firewalld (AlmaLinux, Rocky, Fedora)"}
firewalld est le pare-feu par défaut sur l'écosystème Red Hat. Il fonctionne par zones et avec des règles riches (rich rules) pour le filtrage par IP.

### Bloquer une IP unique

Pour bloquer une adresse IP avec firewalld, on utilise une rich rule.

```bash
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.42" reject'
firewall-cmd --reload
```

L'option `--permanent` rend la règle persistante après un redémarrage. `firewall-cmd --reload` applique les changements.

### Bloquer toute une plage d'IP

Pour bloquer un bloc CIDR complet.

```bash
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/24" reject'
firewall-cmd --reload
```

### Bloquer une IP uniquement sur un port

Pour bloquer une IP uniquement sur le port SSH (22).

```bash
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.42" port port="22" protocol="tcp" reject'
firewall-cmd --reload
```

### Vérifier les règles actives

Pour voir toutes les rich rules en place.

```bash
firewall-cmd --list-rich-rules
```

### Supprimer une règle de blocage

Pour retirer une règle, utilisez `--remove-rich-rule` avec exactement la même syntaxe que pour l'ajout.

```bash
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="203.0.113.42" reject'
firewall-cmd --reload
```

> [!TIP]
> `reject` renvoie un paquet d'erreur à l'expéditeur, tandis que `drop` ignore silencieusement les paquets. `drop` est généralement préférable face à des attaquants pour ne pas leur confirmer que le port est filtré.
::
::MdTab{label="iptables (toutes distributions, dont Alpine)"}
`iptables` est l'outil bas niveau de gestion du pare-feu Linux. Il fonctionne sur toutes les distributions sans installation supplémentaire, sauf Alpine où il faut l'installer.

### Sur Alpine, installer iptables

```bash
apk add iptables
```

### Bloquer une IP unique

Pour bloquer une adresse IP en entrée.

```bash
iptables -A INPUT -s 203.0.113.42 -j DROP
```

L'action `DROP` ignore silencieusement les paquets venant de cette IP. Pour renvoyer une erreur à l'expéditeur, utilisez `REJECT` à la place.

### Bloquer toute une plage d'IP

```bash
iptables -A INPUT -s 203.0.113.0/24 -j DROP
```

### Bloquer une IP uniquement sur un port

Pour bloquer une IP seulement sur le port SSH.

```bash
iptables -A INPUT -s 203.0.113.42 -p tcp --dport 22 -j DROP
```

### Vérifier les règles actives

```bash
iptables -L INPUT -n -v --line-numbers
```

Vous verrez quelque chose comme.

```
Chain INPUT (policy ACCEPT)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 DROP       all  --  *      *       203.0.113.42         0.0.0.0/0
```

### Supprimer une règle de blocage

Pour retirer une règle, utilisez son numéro de ligne (visible avec `--line-numbers`).

```bash
iptables -D INPUT 1
```

### Rendre les règles persistantes

Par défaut, les règles iptables sont perdues au redémarrage. Pour les conserver, vous devez les sauvegarder.

**Sur Debian et Ubuntu**

```bash
apt install iptables-persistent -y
netfilter-persistent save
```

**Sur AlmaLinux, Rocky Linux et Fedora**

Si vous utilisez iptables au lieu de firewalld, installez le service de sauvegarde.

```bash
dnf install iptables-services -y
service iptables save
```

**Sur Alpine Linux**

```bash
/etc/init.d/iptables save
rc-update add iptables
```

> [!IMPORTANT]
> Si vous ne sauvegardez pas les règles, vos blocages disparaîtront au prochain redémarrage du VPS.
::
:::

## Comment trouver l'IP à bloquer ?

Avant de bloquer une IP, il faut d'abord savoir laquelle bloquer. Voici les sources les plus courantes.

### Dans les logs SSH

Pour voir les tentatives de connexion SSH récentes et identifier les IPs malveillantes.

```bash
# Debian, Ubuntu
journalctl -u ssh -n 100 | grep "Failed password"

# AlmaLinux, Rocky, Fedora
journalctl -u sshd -n 100 | grep "Failed password"

# Alpine
tail -n 100 /var/log/messages | grep "Failed password"
```

### Dans les logs d'un serveur web

Pour identifier les IPs qui spamment votre site (Nginx en exemple).

```bash
tail -n 1000 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head
```

Cette commande affiche les 10 IPs les plus actives sur les 1000 dernières requêtes. Une IP qui apparaît des centaines de fois est probablement un bot ou un attaquant.

### Vérifier la réputation d'une IP

Avant de bloquer, vous pouvez vérifier la réputation d'une IP sur des services en ligne comme [AbuseIPDB](https://www.abuseipdb.com/) ou [VirusTotal](https://www.virustotal.com/). Si l'IP est signalée par de nombreux utilisateurs, le blocage est généralement justifié.

> [!WARNING]
> Ces services ne sont pas infaillibles. Une IP peut être signalée à tort, ou avoir été utilisée par un attaquant dans le passé puis réattribuée à un utilisateur légitime (cas fréquent avec les IP dynamiques des FAI, les VPN partagés, ou les sorties Tor). Avant de bloquer une plage entière, vérifiez vos propres logs pour confirmer que l'IP a bien un comportement suspect chez vous. Ne vous fiez pas uniquement à AbuseIPDB pour bloquer.

## Une approche plus automatisée, CrowdSec

Si vous voulez bloquer automatiquement les IPs qui attaquent votre serveur, sans avoir à les chercher à la main, nous recommandons l'installation de **CrowdSec**. Il analyse les logs en temps réel, détecte les comportements malveillants et bloque les IPs automatiquement. C'est aussi une alternative moderne à Fail2Ban.

Pour en savoir plus, consultez notre guide sur la sécurisation d'un VPS Linux qui couvre l'installation complète de CrowdSec.

## Besoin d'aide ?

Si vous avez bloqué votre propre IP par accident (oui, ça arrive 😅) et que vous n'arrivez plus à vous connecter à votre VPS, notre équipe est là. Ouvrez un ticket dans le département **Technique** depuis votre espace client et renseignez le champ **Produit lié** avec le VPS concerné, nous pouvons vous aider à accéder à votre serveur via la console de secours pour annuler le blocage.

Vous savez maintenant comment bloquer une IP sur votre VPS Linux quel que soit votre système 🛡️
