Outils pour utilisateurs

Outils du site


netadmin:nftables:exemples:nft_configuration_initiale_serveur_debian

Différences

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

Lien vers cette vue comparative

netadmin:nftables:exemples:nft_configuration_initiale_serveur_debian [2024/07/09 10:16] – créée yoannnetadmin:nftables:exemples:nft_configuration_initiale_serveur_debian [2024/07/09 12:06] (Version actuelle) yoann
Ligne 8: Ligne 8:
  
 <file conf nftables.conf> <file conf nftables.conf>
 +#!/usr/sbin/nft -f
  
 +flush ruleset
 +
 +define DEBIAN_UPDATE_SERVERS = {
 +  199.232.170.132,  # debian.map.fastlydns.net
 +  151.101.2.132,    # security.debian.org
 +  193.55.175.161    # debian.univ-tlse2.fr
 +}
 +
 +define DEBIAN_NTP_SERVERS = {
 +  51.38.81.135,   # 0.debian.pool.ntp.org
 +  51.38.113.118,
 +  51.68.180.114,
 +  194.57.169.1
 +}
 +
 +table ip ipfilter {
 +  comment "Firewall"
 +
 +  set resolvers {
 +    type ipv4_addr
 +    comment "Resolveurs DNS de confiance"
 +    elements = {
 +      8.8.8.8,
 +      8.8.4.4
 +    }
 +  }
 +set managers {
 +    type ipv4_addr
 +    comment "Administrateurs systeme et reseau"
 +    elements = {
 +      192.168.0.12,
 +      192.168.1.33,
 +      192.168.0.123
 +    }
 +  }
 +
 +  set update_servers {
 +    type ipv4_addr
 +    comment "Serveurs de mises a jour systeme et applications"
 +    elements = { $DEBIAN_UPDATE_SERVERS }
 +  }
 +
 +  set ntp_servers {
 +    type ipv4_addr
 +    comment "Serveurs de synchronisation du temps"
 +    elements = {
 +      $DEBIAN_NTP_SERVERS 
 +    }
 +  }
 +
 +  chain inbound {
 +    comment "Filtrage des paquets entrants"
 +    type filter hook input priority filter; policy drop;
 +
 +    # Suppression des paquets non conformes
 +    ct state invalid counter drop
 +
 +    # Accepte tous paquets en lien avec un trafic explicitement autorisé
 +    ct state established, related counter accept
 +
 +    # Pas de restriction sur le trafic entrant sur la boucle locale
 +    iif "lo" counter accept comment "Accepte le trafic local sur l'interface loopback"
 +
 +    # Supprime les nombreuses sollicitations netbios sans journalisation
 +    iif "lan0" udp dport {137, 138 } ip daddr 192.9.200.255 counter drop comment "Elimine les paquets netbios"
 +        #
 +    # Supprime les nombreuses sollicitations multicast DNS
 +    iif "lan0" udp dport 5353 ip daddr 224.0.0.251 counter drop comment "Elimine les paquets mDNS"
 +
 +    # Les hotes du groupe "managers" sont autorisés a se connecter en SSH
 +    iif "lan0" ct state new tcp dport 22 ip saddr @managers log level notice prefix "[FW] [ACCEPT] [RID=16] " counter accept comment "Accepte les connexions SSH pour les membres de managers"
 +
 +    # Accepte mais limite les requête echo ICMP
 +    icmp type echo-request limit rate 5/second log prefix "[FW] [ACCEPT] [RID=17] " level notice counter accept comment "Autorise ICMP echo entrant"
 +
 +    # Tout trafic entrant non explicitement autorisé est journalisé et rejeté
 +    log prefix "[FW] [REJECT] [RID=666] " counter packets 0 bytes 0 reject comment "Rejette tout trafic entrant non explicitement autorise"
 +  }
 +
 +  chain outbound {
 +    comment "Filtrage des paquets sortants"
 +    type filter hook output priority filter; policy drop;
 +
 +    # Accepte tous les paquets en lien avec un trafic explicitement autorisé
 +    ct state established,related counter accept comment "Accepte tout paquet en lien avec le trafic autorise"
 +
 +    # Pas de restriction concernant le trafic sortant par la boucle locale
 +    oif "lo" counter accept comment "Accepte le trafic local sur l'interface loopback"
 +
 +    # Accepte et journalise les requêtes DNS à destination des résolveurs de confiance
 +    ct state new ip daddr @resolvers udp dport 53 log prefix "[FW] [ACCEPT] [RID=28] " level notice counter accept comment "Autorise trafic DNS vers resolveurs de confiance"
 +
 +    ct state new ip daddr @resolvers tcp dport 53 log prefix "[FW] [ACCEPT] [RID=26] " level notice counter accept comment "Autorise trafic DNS vers resolveurs de confiance"
 +
 +    # Accepte et journalise le trafic a destination des serveurs de mise à jour système
 +    ct state new ip daddr @update_servers tcp dport { 80, 443 } log prefix "[FW] [ACCEPT] [RID=32] " level notice counter accept comment "Autorise le trafic Web a destination des serveurs de mise a jour"
 +
 +    # Autorise le trafic NTP vers serveurs NTP de confiance
 +    ct state new ip daddr @ntp_servers udp dport 123 log prefix "[FW] [ACCEPT] [RID=55] " level notice counter accept comment "Autorise NTP vers serveur mairie"
 +
 +    # Autorise client DHCP (DHCPDISCOVER) pour autc-configuration des interfaces locales
 +    #ct state new udp dport 67 counter accept comment "Autorise trafic DHCP"
 +
 +    # Accepte mais limite les requête echo ICMP sortantes
 +    icmp type echo-request limit rate 5/second log prefix "[FW] [ACCCEPT] [RID=61] " level notice counter accept comment "Autorise ICMP echo sortant"
 +
 +    # Tout trafic sortant non explicitement autorisé est journalisé et rejeté
 +    log prefix "[FW] [REJECT] [RID=667] " counter packets 0 bytes 0 reject comment "Rejette tout trafic sortant non explicitement autorise"
 +  }
 +
 +  chain forward {
 +    type filter hook forward priority filter; policy drop;
 +
 +    # Transmets tout paquet en relation avec un trafic explicitement autorisé en forwarding
 +    ct state established,related counter accept comment "Transfert les trafics des connexions explicitement autorisees"
 +
 +    # Journalise et rejette tout transfert non explicitement autorisé
 +    log prefix "[FW] [REJECT] [RID=668] " counter reject comment "Refuse toute transmission non explicitement autorisee"
 +  }
 +}
 </file> </file>
netadmin/nftables/exemples/nft_configuration_initiale_serveur_debian.1720520213.txt.gz · Dernière modification : 2024/07/09 10:16 de yoann