Dans cet article, je vais vous montrer comment configurer le pare-feu UFW sur Ubuntu 18.04. Dans Ubuntu, le pare-feu par défaut est UFW, abréviation de Uncomplicated FireWall . Il existe depuis la version d'Ubuntu 18.04 et a été conçu pour simplifier la configuration d'iptables qui était assez complexe.
Lors de l'utilisation de n'importe quel système d'exploitation, un pare-feu est l'une des caractéristiques les plus importantes à prendre en compte en ce qui concerne la sécurité de votre système. Un pare-feu est un bouclier ou une barrière qui existe entre votre PC et Internet et bloque le trafic non autorisé comme l'accès à distance à votre système et aide à vous protéger contre les codes malveillants qui traversent constamment Internet. Un pare-feu peut être matériel ou logiciel. Un pare-feu matériel est un système de pare-feu autonome qui est placé dans le réseau pour ajouter une couche de protection en contrôlant le flux de trafic vers et depuis le réseau, ainsi qu'en bloquant l'accès des utilisateurs aux sites indésirables. Un pare-feu logiciel est intégré aux systèmes d'exploitation tels que Linux et Windows et aide à protéger votre système contre les attaques externes.
A lire aussi :
- Comment activer, refuser, autoriser et supprimer des règles sur le pare-feu Ubuntu UFW
Installation d'UFW
Par défaut, Ubuntu 18.04 est livré avec ufw installé. Cependant, pour les systèmes antérieurs, vous devez exécuter la commande ci-dessous
apt-get install ufw
Pour vérifier si ufw est en cours d'exécution, exécutez
systemctl status ufw
S'il est en cours d'exécution, vous devriez obtenir le résultat ci-dessous
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enab
Active: active (exited) since Tue 2018-04-10 22:03:30 UTC; 4min 1s ago
Process: 376 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SU
Main PID: 376 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CPU: 0
CGroup: /system.slice/ufw.service
Apr 10 22:03:30 ip-172-31-41-251 systemd[1]: Started Uncomplicated firewall.
Warning: Journal has been rotated since unit was started. Log output is incomple
Pour vérifier s'il est actif ou inactif, exécutez
ufw status
S'il est inactif, vous obtiendrez la sortie ci-dessous
Status: inactive
Pour activer UFW avec l'ensemble de règles par défaut exécuté
ufw enable
Pour désactiver l'exécution du pare-feu
ufw disable
Configuration des règles ufw par défaut
Pour configurer des règles par défaut qui autorisent tous les protocoles sortants, connectez-vous en tant que root et exécutez
ufw default allow outgoing
Sortie
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)
Pour refuser toutes les connexions entrantes, exécutez
ufw default deny incoming
Sortie
Default outgoing policy changed to 'deny'
(be sure to update your rules accordingly)
Les commandes ci-dessus autoriseront toutes les connexions sortantes et refuseront ou bloqueront toutes les connexions entrantes.
À ce stade, vous voudrez peut-être activer le pare-feu, mais avant cela, autorisez d'abord ssh. Cela empêche la déconnexion du serveur puisque nous avons spécifié le refus de toutes les connexions entrantes plus tôt.
Pour autoriser ssh, exécutez
ufw allow 22/tcp
Sortant
Skipping adding existing rule
Skipping adding existing rule (v6)
l'accès ssh peut également être autorisé par le nom du service,
ufw allow ssh
Si vous souhaitez supprimer l'exécution de la règle
ufw delete allow 22/ssh
Pour refuser un service par nom run
ufw deny service-name
Par exemple
ufw deny ssh
Pour voir tous les services qui peuvent être autorisés ou refusés dans le système, consultez le /etc/services
fichier.
cat /etc/services | less
Exemple de sortie
ftp-data 20/tcp
ftp 21/tcp
fsp 21/udp fspd
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp
telnet 23/tcp
smtp 25/tcp mail
time 37/tcp timserver
time 37/udp timserver
rlp 39/udp resource # resource location
nameserver 42/tcp name # IEN 116
whois 43/tcp nicname
tacacs 49/tcp # Login Host Protocol (TACACS)
tacacs 49/udp
re-mail-ck 50/tcp # Remote Mail Checking Protocol
re-mail-ck 50/udp
domain 53/tcp # Domain Name Server
domain 53/udp
Démarrage du pare-feu ufw
Pour activer le pare-feu, connectez-vous en tant que root et exécutez la commande suivante :
ufw enable
Vous pouvez être invité avec l'avertissement suivant
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Si vous sélectionnez oui, vous obtiendrez la sortie ci-dessous
Firewall is active and enabled on system startup
Le pare-feu est maintenant actif et il démarrera à chaque démarrage. Nous pouvons revoir les règles de pare-feu :
ufw status
La sortie affichera maintenant l'état du pare-feu ainsi que les services/ports autorisés
Sortie
ufw status active
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22 ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
Autoriser les connexions dans ufw
Vous pouvez facilement autoriser la connexion entrante sur le port/la plage, le nom de l'application, l'adresse IP/le sous-réseau dans ufw.
Découvrez les exemples ci-dessous.
a) Autoriser les applications par nom ou numéro de port/plage
ufw allow service-name
OU
ufw allow port/tcp
Par exemple
ufw allow ssh or ufw allow 22/tcp
ufw allow ftp or ufw allow 21/tcp
sudo ufw autorise 1500:2000/tcp
b) Autorise l'adresse IP/les sous-réseaux
Les commandes ci-dessous permettent les connexions à partir d'adresses IP ou de sous-réseaux spécifiques et nous pouvons également utiliser des numéros de port spécifiques.
Pour autoriser les connexions à partir d'une adresse IP spécifique
ufw allow from 10.200.20.45
Pour spécifier une adresse IP autorisée à se connecter à un port spécifique, exécutez
ufw allow from 10.200.20.45 to any port 22
Ce qui précède permet uniquement à l'adresse IP 10.200.20.45 de se connecter via ssh
Pour autoriser un certain sous-réseau d'adresses IP à se connecter au système, utilisez la notation CIDR pour spécifier un masque de réseau
ufw allow from 192.168.1.0/24
Ce qui précède permet aux IP de 192.168.1 à 192.168.1.254 de se connecter au système
Vous pouvez également spécifier le port de destination du sous-réseau
ufw allow from 192.168.1.0/24 to any port 22
Cela implique que les IP de 192.168.1 à 192.168.1.254 peuvent se connecter au système via le port 22 qui est ssh.
c) Autoriser par le nom de l'interface
Si nous devons autoriser les connexions via le nom de l'interface, c'est possible
ufw allow in on eth0 to any port 80
Comment refuser les connexions dans ufw
Par défaut, ufw est configuré pour refuser toutes les connexions entrantes.
a) Adresse IP / sous-réseau
Si nous voulons bloquer l'accès à une adresse IP spécifique, nous pouvons le faire en suivant la commande :
ufw deny from 192.168.1.15
Cela bloquera toutes les connexions entrantes de l'hôte avec l'adresse IP 192.168.1.15
Ensuite, bloquons tout le sous-réseau :
ufw deny from 150.165.125.0/24
Cela bloquera toutes les connexions provenant de ce sous-réseau.
b) Refuser les ports et l'application
Refuser un port ou un service
ufw deny 80/tcp
OU
ufw deny http
sudo ufw deny 1500:2000/tcp * Cela refusera les plages de ports *
Suppression et suivi des règles
Lorsque vous ajoutez de nombreuses règles, vous pouvez mieux les suivre en affichant leurs numéros. Vous pouvez obtenir des nombres avec la commande suivante :
ufw status numbered
Sortie
ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 22 ALLOW IN Anywhere
[ 3] 80/tcp ALLOW IN Anywhere
[ 4] 53/tcp ALLOW IN Anywhere
[ 5] 22/tcp (v6) ALLOW IN Anywhere (v6)
[ 6] 22 (v6) ALLOW IN Anywhere (v6)
[ 7] 80/tcp (v6) ALLOW IN Anywhere (v6)
[ 8] 53/tcp (v6) ALLOW IN Anywhere (v6)
Disons que nous voulons supprimer les règles numéro 2. Nous le faisons en suivant la commande :
ufw delete 2
Remarque :
Après la suppression de la deuxième règle dans le pare-feu, la règle 3 sera désormais la nouvelle règle 2. Donc, si vous souhaitez supprimer la règle 3 actuelle, vous supprimerez en utilisant le numéro 2.
ufw delete allow http
Réinitialiser les règles
Si vous n'êtes pas satisfait des règles actuelles et que vous souhaitez tout recommencer, vous pouvez le faire en exécutant
ufw reset
Journalisation et rechargement
Pour activer la journalisation, utilisez la commande suivante :
ufw logging on
Si vous souhaitez désactiver la journalisation pour une raison quelconque (non recommandée), vous pouvez utiliser cette commande :
sudo ufw déconnexion
Les journaux sont par défaut dans /var/log/ufw.log
Pour les voir en temps réel, utilisez tail -f comme ceci :
tail -f /var/log/ufw.log /pre>
You will see all actions of firewall in that file. If you need to reload firewall for some reason, because you changed some config files manually, use following command.
ufw reload
Si vous voulez voir les règles ajoutées récemment
ufw show added
Fichiers de configuration UFW
Pour la plupart des scénarios, vous pouvez utiliser les commandes du terminal, mais dans certains cas, vous souhaiterez modifier directement les fichiers de configuration. L'ufw possède plusieurs fichiers de configuration, à savoir :
/etc/ufw/before.rules
/etc/ufw/before6.rules
Ces deux fichiers contiennent des règles qui sont évaluées avant toutes les règles que vous avez ajoutées par les commandes ufw. Donc, si vous voulez qu'une règle soit appliquée en premier, vous la voulez ici. Le premier fichier est pour ipv4 et le second pour v6
/etc/ufw/after.rules
/etc/ufw/after6.rules
Celles-ci sont évaluées après les règles de commande ufw. Ils sont bons à utiliser si vous souhaitez remplacer une règle et l'appliquer quoi qu'il arrive. Encore une fois, deux fichiers, pour deux versions du protocole IP actuellement utilisées.
/etc/default/ufw
Ici, nous avons des modules de noyau utilisés par ufw, ainsi que d'autres paramètres généraux. Vous pouvez modifier n'importe lequel de ces fichiers de configuration uniquement en tant que root, et vous pouvez utiliser n'importe quel éditeur de texte que vous aimez.
Évitez d'ajouter des règles en double
Ensuite, observons le mécanisme contre les règles en double. Nous allons d'abord ouvrir le port 101
sudo ufw allow 100
Notez que la commande sans protocole comme ci-dessus ouvre les ports UDP et TCP. Exécutons donc à nouveau la même commande pour voir ce qui se passe
ufw allow 100
Sortie
Skipping adding existing rule
Skipping adding existing rule (v6)
Cela ne nous permet pas d'ajouter une règle de duplication. C'est bien, mais il y a toujours une chance que nous puissions ajouter une règle de duplication, par cette série de commandes :
ufw allow 101/udp
ufw allow 101/tcp
Après avoir autorisé TCP et UDP sur le port 101, nous pouvons toujours ajouter le port 101 ouvert pour tous les protocoles et il s'agit d'une règle en double car le port 101 est ouvert deux fois, une fois pour chaque protocole et une fois pour tous.
ufw allow 101
Cela laisse place à l'erreur et ce n'est généralement pas une bonne pratique. Nous devons annuler les trois commandes avec la commande ufw delete si nous voulons revenir à la valeur par défaut pour le port 101.
Pour fermer un port, vous exécutez les mêmes commandes, mais à la place allow, tapez deny.
Dans cet article, nous avons couvert l'utilisation d'UFW qui est un pare-feu simple utilisé pour autoriser ou restreindre le trafic. C'est un pare-feu très puissant pour réguler le trafic vers votre système. N'hésitez pas à essayer les commandes sur votre système.