Ufw

De Banane Atomic
Aller à la navigationAller à la recherche

Liens

Configuration

Once a rule is matched the others will not be evaluated so you must put the specific rules first.
Bash.svg
# lister les règles
ufw status verbose

# lister les commandes qui ont permis d'ajouter des règles
ufw show added

# autoriser les connections tcp sur le port 53
ufw allow 53/tcp comment 'DNS tcp 53'

# autoriser une ip à accéder au port 22 en tcp quelle que soit la destination (any)
ufw allow from 192.168.0.1 to any port 22 proto tcp

# supprimer le règle qui autorise les connections tcp sur le port 53
ufw deny 53/tcp

# lister les régles avec leur numéro
ufw status numbered

# supprimer la règle numéro 2
ufw delete 2

# insérer une règle en position 1
ufw insert 1 allow 53/tcp

# interdire les connections udp sur le port 53
ufw deny 53/udp

# allow any protocol from inside 192.168.0.0/24 LAN
ufw allow from 192.168.0.0/24
# allow incoming rate limited SSH traffic from anywhere
ufw limit ssh

Applications

Bash.svg
# lister les configurations pour les applications (/etc/ufw/applications.d/*)
ufw app list

# appliquer la configuration de l'application [appname]
ufw allow [appname] comment 'tcp xx'
# only for packages from 192.168.0.0/24
ufw allow from 192.168.0.0/24 [appname]
# only for packages to 192.168.0.0/24
ufw allow to 192.168.0.0/24 [appname]

# ne plus appliquer la configuration de l'application [appname]
ufw delete allow [appname]

# update ufw after having modified the [appname] config file
ufw app update [appname]

# display the info on the [appname] config file
ufw app info [appname]

Applications custom

/etc/ufw/applications.d/dnsmasq
[DNS]
title=DNS server
description=DNS server
ports=53

[DHCP]
title=DHCP server
description=DHCP server
ports=67,68/udp
/etc/ufw/applications.d/openvpn
[VPN]
title=VPN server
description=VPN server
ports=1194/udp
/etc/ufw/applications.d/transmission
[Torrent]
title=Torrent server
description=Torrent server
ports=9091/tcp|51413
/etc/ufw/applications.d/amule
[Amule]
title=Amule server
description=Amule server
ports=4662,4711,4712/tcp|4665,4672/udp

Démarrage / status

Ne pas oublier d'ouvrir le port SSH avant de démarrer UFW.
Bash.svg
# démarre/stoppe ufw et l'ajoute/le retire des programmes à lancer au démarrage
ufw enable
ufw disable

# démarre ufw
ufw reload

# redémarrer le firewall
sudo service ufw restart
sudo ufw reload

# lister les régles
ufw status verbose

Règles

/etc/ufw/before.rules
-A ufw-before-input -p 2 -d 224.0.0.1 -j ACCEPT
/etc/ufw/before6.rules
# règle pour autoriser le multicast
-A ufw6-before-input -p icmpv6 --icmpv6-type 130 -s fe80::/10 -j ACCEPT
Bash.svg
ufw deny from 0.0.0.0

Log

Multicast

/var/log/ufw.log
[UFW BLOCK] IN=eth0 OUT= MAC=01:00:5e:00:00:01:e8:b7:48:bb:29:94:08:00 
                         SRC=0.0.0.0
                         DST=224.0.0.1
    LEN=32 TOS=0x00 PREC=0xC0 TTL=1 ID=0 DF PROTO=2 

# depuis le serveur lui-même
SRC=0.0.0.0
# NDP (neighbor discovery protocol) uses 224.0.0.1 to send a packet in multicast
# 224.0.0.0/8 adresses multicast
DST=224.0.0.1

[UFW BLOCK] IN=eth0 OUT= MAC=33:33:00:00:00:01:00:30:18:54:28:2a:86:dd 
                         SRC=fe80:0000:0000:0000:0230:18ff:fe54:282a 
                         DST=ff02:0000:0000:0000:0000:0000:0000:0001 
    LEN=72 TC=0 HOPLIMIT=1 FLOWLBL=0 PROTO=ICMPv6 TYPE=130 CODE=0 

# depuis le serveur lui-même (ipv6 du serveur)
SRC=fe80:0000:0000:0000:0230:18ff:fe54:282a
# NDP (neighbor discovery protocol) uses ff02::1 to send a packet in multicast
DST=ff02:0000:0000:0000:0000:0000:0000:0001
Bash.svg
# ufw ne log plus s'il trouve une règle qui correspond
# il suffit donc d'autoriser ou d'interdire ces flux
sudo ufw deny from 0.0.0.0 to 224.0.0.1
sudo ufw deny from fe80::0230:18ff:fe54:282a to ff02::1

Erreurs

UFW ne se lance pas au démarrage

Utiliser cron

En l'absence de solution, cron peut lancer UFW après un reboot.

crontab
@reboot root ufw enable

Modifier le service UFW

/lib/systemd/system/ufw.service
#Before=network.target
After=network-pre.target  # doesn't work
After=netfilter-persistent.service  # doesn't work

[UFW BLOCK] SRC=192.168.0.254 DST=224.0.0.1

Bash.svg
# [UFW BLOCK] IN=eth0 OUT= MAC=XX:...:XX SRC=192.168.0.254 DST=224.0.0.1 LEN=32 TOS=0x00 PREC=0x80 TTL=1 ID=0 DF PROTO=2

# autoriser
sudo ufw allow in on eth0 from 192.168.0.254 to 224.0.0.1 comment 'Multicast'
# interdire
sudo ufw deny from 192.168.0.254 to 224.0.0.1