# Installation d'un pare-feu J'ai utilisé depuis toujours **iptables** *brut*. Ayant lu beaucoup de bien de **ufw**, je vais tenter une installation de ce dernier. Après usage, il s'avère difficile de configurer **fail2ban** avec **ufw**. Je vais quand même laisser la doc de configuration de **ufw**, tout en préférant utiliser **iptables**. ## Installation de iptables **Iptables** est installé automatiquement. Nous allons rajouter le paquet **iptables-persistent** pour assurer le lancement automatique de nos règles à l'allumage de la machine. root@atom:/home/ericadmin# apt install iptables-persistent Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait The following additional packages will be installed: netfilter-persistent Les NOUVEAUX paquets suivants seront installés : iptables-persistent netfilter-persistent 0 mis à jour, 2 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 19,5 ko dans les archives. Après cette opération, 79,9 ko d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer ? [O/n] o Réception de:1 http://deb.debian.org/debian stretch/main amd64 netfilter-persistent all 1.0.4+nmu2 [8 792 B] Réception de:2 http://deb.debian.org/debian stretch/main amd64 iptables-persistent all 1.0.4+nmu2 [10,7 kB] 19,5 ko réceptionnés en 0s (198 ko/s) Préconfiguration des paquets... Sélection du paquet netfilter-persistent précédemment désélectionné. (Lecture de la base de données... 36713 fichiers et répertoires déjà installés.) Préparation du dépaquetage de .../netfilter-persistent_1.0.4+nmu2_all.deb ... Dépaquetage de netfilter-persistent (1.0.4+nmu2) ... Sélection du paquet iptables-persistent précédemment désélectionné. Préparation du dépaquetage de .../iptables-persistent_1.0.4+nmu2_all.deb ... Dépaquetage de iptables-persistent (1.0.4+nmu2) ... Paramétrage de netfilter-persistent (1.0.4+nmu2) ... Created symlink /etc/systemd/system/multi-user.target.wants/netfilter-persistent.service → /lib/systemd/system/netfilter-persistent.service. update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u1) ... Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ... Paramétrage de iptables-persistent (1.0.4+nmu2) ... root@atom:/home/ericadmin# Nous obtenons donc 2 fichiers de configuration, /etc/iptables/rules.v4 et /etc/iptables/rules.v6. En listant ces fichiers, aucune règle n'est encore enregistrée: tout passe, en entrée et en sortie. Ces fichiers sont mis à jour grâce aux commandes suivantes. iptables-save > /etc/iptables/rules.v4 ip6tables-save > /etc/iptables/rules.v6 Les commandes disponibles pour **netfilter-persistent** sont les suivantes: * systemctl start netfilter-persistent * systemctl stop netfilter-persistent * systemctl restart netfilter-persistent * systemctl stop netfilter-persistent * systemctl status netfilter-persistent Exemples d'utilisation suivant l'état de **netfilter-persistent**: root@atom:/home/ericadmin# systemctl stop netfilter-persistent root@atom:/home/ericadmin# systemctl status netfilter-persistent ● (**point en rouge**) netfilter-persistent.service - netfilter persistent configuration Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sun 2018-02-11 13:50:22 CET; 13s ago Process: 1629 ExecStop=/usr/sbin/netfilter-persistent stop (code=exited, status=1/FAILURE) Process: 1525 ExecStart=/usr/sbin/netfilter-persistent start (code=exited, status=0/SUCCESS) Main PID: 1525 (code=exited, status=0/SUCCESS) févr. 11 13:42:02 atom systemd[1]: Starting netfilter persistent configuration... févr. 11 13:42:02 atom netfilter-persistent[1525]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start févr. 11 13:42:02 atom netfilter-persistent[1525]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start févr. 11 13:42:02 atom systemd[1]: Started netfilter persistent configuration. févr. 11 13:50:22 atom systemd[1]: Stopping netfilter persistent configuration... févr. 11 13:50:22 atom netfilter-persistent[1629]: Automatic flush disabled; use '/usr/sbin/netfilter-persistent flush' févr. 11 13:50:22 atom systemd[1]: netfilter-persistent.service: Control process exited, code=exited status=1 févr. 11 13:50:22 atom systemd[1]: Stopped netfilter persistent configuration. févr. 11 13:50:22 atom systemd[1]: netfilter-persistent.service: Unit entered failed state. févr. 11 13:50:22 atom systemd[1]: netfilter-persistent.service: Failed with result 'exit-code'. root@atom:/home/ericadmin# root@atom:/home/ericadmin# systemctl start netfilter-persistent root@atom:/home/ericadmin# systemctl status netfilter-persistent ● (**point en vert**) netfilter-persistent.service - netfilter persistent configuration Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2018-02-11 13:51:09 CET; 2s ago Process: 1629 ExecStop=/usr/sbin/netfilter-persistent stop (code=exited, status=1/FAILURE) Process: 1641 ExecStart=/usr/sbin/netfilter-persistent start (code=exited, status=0/SUCCESS) Main PID: 1641 (code=exited, status=0/SUCCESS) févr. 11 13:51:09 atom systemd[1]: Starting netfilter persistent configuration... févr. 11 13:51:09 atom netfilter-persistent[1641]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start févr. 11 13:51:09 atom netfilter-persistent[1641]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start févr. 11 13:51:09 atom systemd[1]: Started netfilter persistent configuration. root@atom:/home/ericadmin# Pour sauver des règles “entrées à la main”, tapez: root@atom:/home/ericadmin# service netfilter-persistent save [....] Saving netfilter rules...run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save done. root@atom:/home/ericadmin# ou root@atom:/home/ericadmin# iptables-save > /etc/iptables/rules.v4 root@atom:/home/ericadmin# ip6tables-save > /etc/iptables/rules.v6 ## Configuration des règles iptables Nous allons les configurer avec un script donné par Nicolargo: [Site de NicoLargo](https://blog.nicolargo.com/2013/06/ma-methode-pour-gerer-les-regles-iptables.html) #! /bin/sh ### BEGIN INIT INFO # Provides: PersonalFirewall # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Personal Firewall # Description: ### END INIT INFO # programme iptables IPV4 et IPV6 IPT=/sbin/iptables IP6T=/sbin/ip6tables # Les IPs IPMAISON=192.168.111.150 IP6MAISON=fe80::1e6f:65ff:fe92:dd1f # fonction qui démarre le firewall do_start() { # Efface toutes les règles en cours. -F toutes. -X utilisateurs $IPT -t filter -F $IPT -t filter -X $IPT -t nat -F $IPT -t nat -X $IPT -t mangle -F $IPT -t mangle -X # $IP6T -t filter -F $IP6T -t filter -X # Il n'y a pas de NAT en IPV6 #$IP6T -t nat -F #$IP6T -t nat -X $IP6T -t mangle -F $IP6T -t mangle -X # stratégie (-P) par défaut : bloc tout l'entrant le forward et autorise le sortant $IPT -t filter -P INPUT DROP $IPT -t filter -P FORWARD DROP $IPT -t filter -P OUTPUT ACCEPT # $IP6T -F INPUT $IP6T -F FORWARD $IP6T -X # Loopback $IPT -t filter -A INPUT -i lo -j ACCEPT $IPT -t filter -A OUTPUT -o lo -j ACCEPT # $IP6T -t filter -A INPUT -i lo -j ACCEPT $IP6T -t filter -A OUTPUT -o lo -j ACCEPT # ICMP $IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT $IPT -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT # Permettre à une connexion ouverte de recevoir du trafic en entrée $IPT -t filter -A INPUT -m state --state ESTABLISHED -j ACCEPT # $IP6T -t filter -A INPUT -m state --state ESTABLISHED -j ACCEPT $IP6T -A INPUT -p icmpv6 --icmpv6-type neighbor-solicitation -j ACCEPT $IP6T -A INPUT -p icmpv6 --icmpv6-type neighbor-advertisement -j ACCEPT $IP6T -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT $IP6T -A INPUT -j ACCEPT $IP6T -A INPUT -p icmpv6 --icmpv6-type router-solicitation -j ACCEPT $IP6T -P INPUT DROP $IP6T -A FORWARD -m state --state ESTABLISHED -j ACCEPT $IP6T -A FORWARD -p icmpv6 --icmpv6-type echo-request -j ACCEPT $IP6T -A FORWARD -i br0 -j ACCEPT $IP6T -A FORWARD -i br1 -o sit_sixxs -j ACCEPT $IP6T -P FORWARD DROP # DNS:53 # /!\ Il faut autoriser le DNS AVANT de déclarer des hosts sinon pas de résolution de nom possible $IPT -t filter -A INPUT -p tcp --dport 53 -j ACCEPT $IPT -t filter -A INPUT -p udp --dport 53 -j ACCEPT # DNS:53 $IP6T -t filter -A INPUT -p tcp --dport 53 -j ACCEPT $IP6T -t filter -A INPUT -p udp --dport 53 -j ACCEPT # DNS:953 # /!\ Il faut autoriser le DNS AVANT de déclarer des hosts sinon pas de résolution de nom possible $IPT -t filter -A INPUT -p tcp --dport 953 -j ACCEPT $IPT -t filter -A INPUT -p udp --dport 953 -j ACCEPT # $IP6T -t filter -A INPUT -p tcp --dport 953 -j ACCEPT $IP6T -t filter -A INPUT -p udp --dport 953 -j ACCEPT # accepte tout d'une ip en TCP (de la maison) $IPT -t filter -A INPUT -p tcp -s $IPMAISON -j ACCEPT $IP6T -t filter -A INPUT -p tcp -s $IP6MAISON -j ACCEPT # ssh $IPT -t filter -A INPUT -p tcp --dport 22 -j ACCEPT $IPT -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT # $IP6T -t filter -A INPUT -p tcp --dport 22 -j ACCEPT $IP6T -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT #NTP out $IPT -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT $IP6T -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT # # HTTP + HTTPS Out # $IPT -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT # $IPT -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT # $IP6T -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT # $IP6T -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT # # HTTP + HTTPS In # $IPT -t filter -A INPUT -p tcp --dport 80 -j ACCEPT # $IPT -t filter -A INPUT -p tcp --dport 443 -j ACCEPT # $IP6T -t filter -A INPUT -p tcp --dport 80 -j ACCEPT # $IP6T -t filter -A INPUT -p tcp --dport 443 -j ACCEPT # # Mail SMTP:25 # $IPT -t filter -A INPUT -p tcp --dport 25 -j ACCEPT # $IPT -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT # $IP6T -t filter -A INPUT -p tcp --dport 25 -j ACCEPT # $IP6T -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT # # Mail SMTP:587 # $IPT -t filter -A INPUT -p tcp --dport 587 -j ACCEPT # $IPT -t filter -A OUTPUT -p tcp --dport 587 -j ACCEPT # $IP6T -t filter -A INPUT -p tcp --dport 597 -j ACCEPT # $IP6T -t filter -A OUTPUT -p tcp --dport 587 -j ACCEPT # # Mail IMAP:143 # $IPT -t filter -A INPUT -p tcp --dport 143 -j ACCEPT # $IPT -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT # $IP6T -t filter -A INPUT -p tcp --dport 143 -j ACCEPT # $IP6T -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT # # Mail IMAPS:993 # $IPT -t filter -A INPUT -p tcp --dport 993 -j ACCEPT # $IPT -t filter -A OUTPUT -p tcp --dport 993 -j ACCEPT # $IP6T -t filter -A INPUT -p tcp --dport 993 -j ACCEPT # $IP6T -t filter -A OUTPUT -p tcp --dport 993 -j ACCEPT # # Mail 465 # $IPT -t filter -A INPUT -p tcp --dport 465 -j ACCEPT # $IPT -t filter -A OUTPUT -p tcp --dport 465 -j ACCEPT # $IP6T -t filter -A INPUT -p tcp --dport 465 -j ACCEPT # $IP6T -t filter -A OUTPUT -p tcp --dport 465 -j ACCEPT # echo "firewall started [OK]" } # fonction qui arrête le firewall do_stop() { # Efface toutes les règles $IPT -t filter -F $IPT -t filter -X $IPT -t nat -F $IPT -t nat -X $IPT -t mangle -F $IPT -t mangle -X # $IP6T -t filter -F $IP6T -t filter -X #$IP6T -t nat -F #$IP6T -t nat -X $IP6T -t mangle -F $IP6T -t mangle -X # remet la stratégie $IPT -t filter -P INPUT ACCEPT $IPT -t filter -P OUTPUT ACCEPT $IPT -t filter -P FORWARD ACCEPT # $IP6T -t filter -P INPUT ACCEPT $IP6T -t filter -P OUTPUT ACCEPT $IP6T -t filter -P FORWARD ACCEPT # echo "firewall stopped [OK]" } # fonction status firewall do_status() { # affiche les règles en cours clear echo Status IPV4 echo -- $IPT -L -n -v echo echo -- echo echo status IPV6 echo -- $IP6T -L -n -v echo } case "$1" in start) do_start # quitte sans erreur exit 0 ;; stop) do_stop # quitte sans erreur exit 0 ;; restart) do_stop do_start # quitte sans erreur exit 0 ;; status) do_status # quitte sans erreurs exit 0 ;; *) # Si on ne tape ni "start" ni "stop"... on affiche une erreur echo "Usage: /etc/init.d/firewall {start|stop|restart|status}" # quitte le script avec un etat "en erreur" exit 1 ;; esac Explications: Création de 4 chaînes pour faciliter les opérations: # iptables -N TCP # iptables -N UDP # ip6tables -N TCP # ip6tables -N UDP On est sur un serveur, pas un routeur, donc, on interdit la règle FORWARD: # iptables -P FORWARD DROP # ip6tables -P FORWARD DROP On autorise tout en sortie: # iptables -P OUTPUT ACCEPT # ip6tables -P OUTPUT ACCEPT Nous allons accepter les connexions déjà établies: # iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT # ip6tables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT En entrée, on commence par interdire tout; on ouvrira les ports suivantles besoins: # iptables -P INPUT DROP # ip6tables -P INPUT DROP Autorisation des connexions **loopback** (internes): # iptables -A INPUT -i lo -j ACCEPT # ip6tables -A INPUT -i lo -j ACCEPT Nous allons interdire les paquets marqués **INVALID**; il faudra auparavant accepter les paquets **ICMPv6 Neighbor Discovery** qui apparaissent invalides: #iptables -A INPUT -p 41 -j ACCEPT #ip6tables -A INPUT -p 41 -j ACCEPT # iptables -A INPUT -m conntrack --ctstate INVALID -j DROP # ip6tables -A INPUT -m conntrack --ctstate INVALID -j DROP Pour IPV6, il faut rajouter la règle suivante qui permet de faire passer le protocol de découverte des ordinateurs sur le même réseau: # ip6tables -A INPUT -s fe80::/10 -p ipv6-icmp -j ACCEPT L'adresse fe80:: est l'adresse ipv6 valable uniquement sur le réseau local. On accepte les paquets **ping**: # iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT # ip6tables -A INPUT -p icmpv6 -m conntrack --ctstate NEW -j ACCEPT On peut maintenant accepter les nouveaux paquets entrants. Les connexions entrantes doivent commencer avec un paquet **SYNC**. Elles seront rejetées si ce n'est pas le cas: # iptables -A INPUT -p udp -m conntrack --ctstate NEW -j UDP # iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP # ip6tables -A INPUT -p udp -m conntrack --ctstate NEW -j UDP # ip6tables -A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP On rejette les paquets du protocole **icmp unreachable** # iptables -A INPUT -j REJECT --reject-with icmp-proto-unreachable # iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset # ip6tables -A INPUT -p ipv6-icmp --icmpv6-type 128 -m conntrack --ctstate NEW -j ACCEPT # ip6tables -A INPUT -p tcp -j REJECT --reject-with tcp-reset Pour IPV6, nous pouvons rajouter un filtrage pour le "kernel reverse path filter": # ip6tables -t raw -A PREROUTING -m rpfilter -j ACCEPT # ip6tables -t raw -A PREROUTING -j DROP On accepte les paquets **ssh** sur le port 22 (changez ce port si vous avez configuré vos ports différemment) # iptables -A TCP -p tcp --dport 22 -j ACCEPT # ip6tables -A TCP -p tcp --dport 22 -j ACCEPT Règles pour le DNS et NTP (ports 53 et 41) # iptables -A INPUT -p udp -m state --state ESTABLISHED --sport 53 -j ACCEPT # iptables -A OUTPUT -p udp -m state --state NEW,ESTABLISHED --dport 53 -j ACCEPT # iptables -A INPUT -p tcp -m state --state ESTABLISHED --sport 53 -j ACCEPT # iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED --dport 53 -j ACCEPT # iptables -A INPUT -p udp -m state --state ESTABLISHED --sport 123 -j ACCEPT # iptables -A OUTPUT -p udp -m state --state NEW,ESTABLISHED --dport 123 -j ACCEPT La même chose pour IPV6: # ip6tables -A INPUT -p udp -m state --state ESTABLISHED --sport 53 -j ACCEPT # ip6tables -A OUTPUT -p udp -m state --state NEW,ESTABLISHED --dport 53 -j ACCEPT # ip6tables -A INPUT -p tcp -m state --state ESTABLISHED --sport 53 -j ACCEPT # ip6tables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED --dport 53 -j ACCEPT # ip6tables -A INPUT -p udp -m state --state ESTABLISHED --sport 123 -j ACCEPT # ip6tables -A OUTPUT -p udp -m state --state NEW,ESTABLISHED --dport 123 -j ACCEPT Nous pouvons maintenant lister nos règles. Nous allons commencer par IPV4: Listons les règles actuelles, ensuite ajoutons 2 règles et sauvons celles-ci, puis listons le résultat. Vous pouvez faire de même pour toutes les règles. root@atom:/etc/iptables# cat rules.v4 # Generated by iptables-save v1.6.0 on Sun Feb 11 14:27:32 2018 *filter :INPUT ACCEPT [491:50774] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [267:23983] COMMIT # Completed on Sun Feb 11 14:27:32 2018 root@atom:/etc/iptables# iptables -N TCP root@atom:/etc/iptables# iptables -N UDP root@atom:/etc/iptables# service netfilter-persistent save [....] Saving netfilter rules...run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables save done. root@atom:/etc/iptables# cat rules.v4 # Generated by iptables-save v1.6.0 on Sun Feb 11 14:28:24 2018 *filter :INPUT ACCEPT [13:888] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [8:944] :TCP - [0:0] :UDP - [0:0] COMMIT # Completed on Sun Feb 11 14:28:24 2018 Ne pas oublier de valider la règle d'acceptation des connexions existantes AVANT d'entrer la règle INPUT DROP sinon, vous perdez toute connexion avec votre serveur :). Il suffit de répéter pour les autres règles puis pour IPV6. Nous obtenons donc les règles suivantes: Pour IPV4: root@atom:/etc/iptables# cat rules.v4 # Generated by iptables-save v1.6.0 on Sun Feb 11 15:33:41 2018 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [105:27592] :TCP - [0:0] :UDP - [0:0] -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate INVALID -j DROP -A INPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT -A INPUT -p udp -m conntrack --ctstate NEW -j UDP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP -A INPUT -j REJECT --reject-with icmp-proto-unreachable -A INPUT -p tcp -j REJECT --reject-with tcp-reset -A TCP -p tcp -m tcp --dport 22 -j ACCEPT COMMIT # Completed on Sun Feb 11 15:33:41 2018 root@atom:/etc/iptables# Pour IPV6: root@atom:/etc/iptables# cat rules.v6 # Generated by ip6tables-save v1.6.0 on Sun Feb 11 15:33:41 2018 *raw :PREROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A PREROUTING -m rpfilter -j ACCEPT -A PREROUTING -j DROP COMMIT # Completed on Sun Feb 11 15:33:41 2018 # Generated by ip6tables-save v1.6.0 on Sun Feb 11 15:33:41 2018 *filter :INPUT DROP [1:144] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] :TCP - [0:0] :UDP - [0:0] -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p ipv6 -j ACCEPT -A INPUT -m conntrack --ctstate INVALID -j DROP -A INPUT -p udp -m conntrack --ctstate NEW -j UDP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP -A INPUT -p tcp -j REJECT --reject-with tcp-reset -A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 128 -m conntrack --ctstate NEW -j ACCEPT -A OUTPUT -p ipv6-icmp -j ACCEPT -A TCP -p tcp -m tcp --dport 22 -j ACCEPT COMMIT # Completed on Sun Feb 11 15:33:41 2018 root@atom:/etc/iptables# ## Test DNS et du serveur de temps (avec iptables actif) root@atom:/home/ericadmin# nslookup www.gnome.org Server: 192.168.111.254 Address: 192.168.111.254#53 Non-authoritative answer: www.gnome.org canonical name = proxy.gnome.org. Name: proxy.gnome.org Address: 209.132.180.168 Name: proxy.gnome.org Address: 209.132.180.180 root@atom:/home/ericadmin# timedatectl status Local time: dim. 2018-04-01 12:26:57 CEST Universal time: dim. 2018-04-01 10:26:57 UTC RTC time: dim. 2018-04-01 10:26:58 Time zone: Europe/Paris (CEST, +0200) Network time on: yes NTP synchronized: yes RTC in local TZ: no Ça fonctionne. Il faut re-tester la connectivité en IPV4 et IPV6 1. Serveur -> extérieur 2. Extérieur -> serveur On peut utiliser l'adresse **ipv6.google.com** pour vérifier la connexion IPV6 en dehors du réseau local.