# [Pare-feu] UFW

## Introduction

Le pare-feu **UFW** pour **Uncomplicated Firewall** est une surcouche à iptables qui permet de mettre en place des règles de pare-feu sur un système Linux en ligne de commande. Une version GUI de cette application a été implémentée (GUFW).

[![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2024-01/scaled-1680-/yKaimage.png)](https://wiki.neopipe.fr/uploads/images/gallery/2024-01/yKaimage.png)

## Source

- [Documentation officielle Ubutnu sur UFW](https://doc.ubuntu-fr.org/ufw)

## Installation

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

## Manuel

#### Afficher les règles en place

```bash
ufw status [verbose]
```

#### Définir une politique par défaut

- **Autoriser le trafic entrant** suivant les règles par défaut :

```bash
ufw default allow
```

- **Refuser le trafic entrant** suivant les règles par défaut :

```bash
ufw default deny
```

- **Autoriser le trafic sortant** suivant les règles par défaut :

```bash
ufw default allow outgoing
```

- **Refuser le trafic sortant** suivant les règles par défaut :

```bash
ufw default deny outgoing
```

#### Ajout de règle de trafic entrant

- Syntaxe de règle des flux entrants :

```bash
ufw [allow|deny] [PORT]/[TCP|UDP]
```

<span style="text-decoration: underline;">Exemple :</span>

```bash
ufw allow 22/tcp
```

#### Ajout de règle de trafic sortant

- Syntaxe de règle des flux sortants :

```bash
ufw [allow|deny] outgoing [PORT]/[TCP|UDP]
```

<span style="text-decoration: underline;">Exemple :</span>

```bash
ufw allow outgoing 80/tcp
```

#### Activer le pare-feu

```bash
ufw enable
```

#### Désactiver le pare-feu

```bash
ufw disable
```

## Politique ICMP

Par défaut, UFW ne prend pas en charge la gestion de flux ICMP. Cependant, il est possible d'ajouter des règles iptables dans le fichier de configuration **/etc/ufw/before.rule** pour gérer ces flux.

#### Autoriser le ping entrant (actif par défaut)

```
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
```

#### Autoriser le ping sortant (inactif par défaut)

```
# ok icmp codes for OUTPUT
-A ufw-before-output -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-output -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-output -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-output -p icmp --icmp-type echo-request -j ACCEPT
```