Outils pour utilisateurs

Outils du site


netadmin:linux:ufw:exemples:ufw_ipset

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
netadmin:linux:ufw:exemples:ufw_ipset [2021/10/19 16:23] – créée yoannnetadmin:linux:ufw:exemples:ufw_ipset [2022/01/08 18:53] (Version actuelle) – Ajout référence yoann
Ligne 22: Ligne 22:
  
 <code bash> <code bash>
-journaliser le trafic sortant autorisé+Journalise le trafic sortant à destination des machines de l'ensemble canon_mfc
 iptables -A ufw-after-output -m set --match-set canon_mfc dst -p tcp --dport 8000 -j ufw-logging-allow iptables -A ufw-after-output -m set --match-set canon_mfc dst -p tcp --dport 8000 -j ufw-logging-allow
  
-autorise en sortie+Autorise le trafic sortant à destination des machines de l'ensemble canon_mfc
 iptables -A ufw-after-output -m set --match-set canon_mfc dst -p tcp --dport 8000 -j ACCEPT iptables -A ufw-after-output -m set --match-set canon_mfc dst -p tcp --dport 8000 -j ACCEPT
 +
 +# Journalise le trafic provenant des machines de l'ensemble set_autorized_hosts
 +iptables -A ufw-after-input -i eth0 -m set --match-set set_autorized_hosts src -j ufw-logging-allow
 +
 +# Autorise le trafic en provenance des machines de l'ensemble set_autorized_hosts
 +iptables -A ufw-after-input -i eth0 -m set --match-set mgmt src -j ACCEPT
 </code> </code>
  
Ligne 46: Ligne 52:
 </code> </code>
  
-<note warning> + 
-Si l'ipset est modifié après création de la règles les nouvelles IPs ajoutées ne seront pas autorisées contrairement à ce que peut afficher les journaul systèmeIl faut recharger la règles pour que l'ipset modifié soit utilisé par netfilter.  +En cas de problème ou une fois le fonctionnement de la règle confirmé, on peut recharger le pare-feu, les modifications apportées précédemment seront effacées.
-</note>+
  
 <code bash> <code bash>
-# modification du groupe +ufw reload 
-ipset add canon_mfc 192.168.0.218+</code>
  
-# Le contact du nouvel hote échoue, les traces du journal système ne sont pas cohérents +===== Rendre la règle permanente ===== 
-journalctl ---since "minutes ago+ 
--- Logs begin at Wed 2021-06-16 14:39:52 CEST, end at Tue 2021-10-19 18:15:34 CEST. -- +Pour rendre la règle permanenteil faut l'intégrer dans le framework UFW. La règle ne pourra être valide syntaxiquement que si les ensembles existent. Il faut donc que les ensembles ipset soient créés avant. 
-oct. 19 18:15:26 node-7c87 kernel[UFW ALLOW] IN= OUT=enp0s31f6 SRC=192.9.200.14 DST=192.9.200.218 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=291 DF PROTO=TCP SPT=60840 DPT=8000 WINDOW=64240 RES=0x00 SYN URGP=0+ 
 +<code bash> 
 +# rendre executable le script before.init s'il ne l'est pas 
 +chmod +x before.init 
 + 
 +# Sauvegarder les ensembles ipset existants: 
 +ipset save > /etc/ufw/ipsets.save 
 +</code> 
 + 
 +Modifier le fichier ''/etc/ufw/before.init'' pour que les ensembles soient recréés depuis la sauvegarde lors du redémarrage 
 +<file bash before.init> 
 +#!/bin/sh 
 +
 +# before.init: if executable, called by ufw-init. See 'man ufw-framework' for 
 +#              details. Note that output from these scripts is not seen via the 
 +#              the ufw command, but instead via ufw-init. 
 +
 +# Copyright 2013 Canonical Ltd. 
 +
 +#    This program is free software: you can redistribute it and/or modify 
 +#    it under the terms of the GNU General Public License version 3, 
 +#    as published by the Free Software Foundation. 
 +
 +#    This program is distributed in the hope that it will be useful, 
 +#    but WITHOUT ANY WARRANTY; without even the implied warranty of 
 +#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 +#    GNU General Public License for more details. 
 +
 +#    You should have received a copy of the GNU General Public License 
 +#    along with this program.  If not, see <http://www.gnu.org/licenses/>
 +
 +set -e 
 + 
 +case "$1" in 
 +start) 
 +    # create ipsets from definition file 
 +    ipset restore < /etc/ufw/ipsets.save 
 +    ;; 
 +stop) 
 +    # delete all ipsets 
 +    ipset destroy 
 +    ;; 
 +status) 
 +    # optional 
 +    ;; 
 +flush-all) 
 +    # optional 
 +    ;; 
 +*) 
 +    echo "'$1' not supported" 
 +    echo "Usage: before.init {start|stop|flush-all|status}" 
 +    ;; 
 +esac 
 +</file> 
 + 
 +Pour l'exemple présent, on cherche à autoriser le traffic à destination du port managment de certaines impirmantes. Le traffic n'est pas proritaire ou régulier, on va l'intégrer au règles évaluées après les règles utilisateur ufw. Pour cela on modifie le fichier le ''/etc/ufw/after.rules'' 
 + 
 +<file> 
 +# Journalise et autorise le traffic vers l'interface Web de gestion des MFC Canon 
 +-A ufw-after-output -m set --match-set canon_mfc dst -p tcp --dport 8000 -j ufw-logging-allow -m comment --comment "Allow Management Canon MFC" 
 +-A ufw-after-output -m set --match-set canon_mfc dst -p tcp --dport 8000 -j ACCEPT -m comment --comment "Allow Management Canon MFC" 
 +</file> 
 + 
 +On recharge les règles: 
 +<code bash> 
 +ufw reload 
 +</code> 
 + 
 +D'autres machines pourront ainsi être ajoutées à ce groupe sans qu'il soit nécessaire de créer une nouvelle règle ou de recharger les règles existantes. 
 + 
 +<code bash> 
 +# Ajoute une nouvelle machine au groupeLa règle existante s'applique immédiatement à ce nouveau membre 
 +ipset add canon_mfc 192.168.0.42
 </code> </code>
  
 <note warning> <note warning>
-**A retenir: TOUJOURS recharger les règles après modification  d'un ipset.**+Lors de toute modification d'un ensemble, si le comportement obtenu est correct, ne pas oublier de sauvegarder le groupe pour qu'il soit disponible à l'identique après un redémarrage du pare-feu
 </note> </note>
  
-===== Rendre la règle permanente =====+<code bash> 
 +# root 
 +ipset save > /etc/ufw/ipsets.save 
 + 
 +# ou depuis un sudoer 
 +sudo ipset save | sudo tee /etc/ufw/ipsets.save 
 +</code> 
 + 
 + 
 +Pour afficher les règles évaluées après les règles utilisateur auxquelles notre nouvelle règle a été ajoutée: 
 + 
 +<code bash> 
 +ufw show after-rules 
 +</code> 
 + 
 +===== Références =====
  
 +  * https://bugs.launchpad.net/ufw/+bug/1571579
 +  * https://bugs.launchpad.net/ufw/+bug/1571579
 +  * man ufw-framework
  
  
netadmin/linux/ufw/exemples/ufw_ipset.1634660625.txt.gz · Dernière modification : 2021/10/19 16:23 de yoann