nftables et oif

Demande d'aide : c'est ici.
Répondre
olivbarb
Messages : 7
Inscription : 01 mai 2023, 09:31
Status : Hors-ligne

Bonjour,

Je souhaite passer de Iptables à Nftables mais j'ai une question concernant nftables. A quoi sert la ligne "oif". Voici mon nftables et si en sortie je ne mets pas la ligne

Code : Tout sélectionner

oif "enp2s0" accept
impossible d'aller sur le net.

Code : Tout sélectionner

table inet filtre_ipV4_V6 {
	chain entree_V4_V6 {
		type filter hook input priority filter; policy accept;
		ct state invalid drop
		ct state established,related accept
		icmp type echo-reply accept
		drop
	}

	chain sortie_V4_V6 {
		type filter hook output priority filter; policy accept;
		tcp sport 53 accept
		tcp sport 80 accept
		tcp sport 443 accept
		tcp sport 67 accept
		icmp type echo-request accept
		oif "enp2s0" accept
		drop
	}
}
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5854
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

La réponse est dans le man nftables
meta iif, oif, iifname and oifname are used to match the interface a packet arrived on or is about to be sent out on
iif and oif are used to match on the interface index, whereas iifname and oifname are used to match on the interface name. This is not the same —
assuming the rule
│ Keyword │ Description │Type
│iif │ Input interface index │ iface_index │
├──────────┼────────────────────────────────────────┼────────────────────────────┤
│iifname │ Input interface name │ ifname │
├──────────┼────────────────────────────────────────┼────────────────────────────┤
│iiftype │ Input interface type │ iface_type │
├──────────┼────────────────────────────────────────┼────────────────────────────┤
│oif │ Output interface index │ iface_index │
├──────────┼────────────────────────────────────────┼────────────────────────────┤
│oifname │ Output interface name │ ifname │
├──────────┼────────────────────────────────────────┼────────────────────────────┤
│oiftype │ Output interface hardware type │ iface_type │
olivbarb
Messages : 7
Inscription : 01 mai 2023, 09:31
Status : Hors-ligne

Ce n'est pas parce que tu sais utiliser une commande que tu sais à quoi elle correspond.
Je n'ai pas d'erreur d'exécution.
Si je remplace inet par ip OU par ip6 pas de problème mais je ne peux pas utiliser les 2 en même temps !
PascalHambourg
Contributeur
Contributeur
Messages : 930
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

"oif" spécifie l'interface de sortie du paquet dans une règle. La règle 'oif "enp2s0" accept' accepte donc tous les paquets émis par l'interface enp2s0 puisqu'elle ne contient pas d'autre critère.
Il est logique qu'aucune connexion sortante ne soit possible sans cette règle puisque les autres règles de la chaîne de sortie n'acceptent que des paquets ayant un port source correspondant plutôt à un paquet de réponse.

Qu'est censé faire ce jeu de règles ? Si tu veux autoriser les connexions sortantes HTTP et HTTPS et les requêtes DNS et DHCP (et bloquer tout le reste), il faudrait plutôt spécifier le port destination. D'autre part DNS utilise aussi et surtout UDP et DHCP utilise uniquement UDP.

Code : Tout sélectionner

udp dport 53 accept
tcp dport 53 accept
tcp dport 80 accept
tcp dport 443 accept
udp dport 67 accept
olivbarb
Messages : 7
Inscription : 01 mai 2023, 09:31
Status : Hors-ligne

Voici mon nftables.rules qui fonctionne très bien ... IpV4

Code : Tout sélectionner

table inet filtre_ipV4_V6 {
	chain entree_V4_V6 {
		type filter hook input priority filter; policy accept;
		ct state invalid drop
		ct state established,related accept
		icmp type echo-reply accept
		icmpv6 type echo-reply accept
		drop		
	}

	chain sortie_V4_V6 {
		type filter hook output priority filter; policy accept;
		tcp dport 53 accept
		tcp dport 80 accept
		tcp dport 443 accept
		tcp dport 547 accept
		udp dport 547  accept
		icmp type echo-request accept
		icmpv6 type echo-request accept
		ip daddr 192.168.0.254 accept
		drop
	}
}
mais impossible d'obtenir une ip v6

J'ai tout essayé (enfin sauf ce qui fonctionne :icon_eek: ) mais rien ne marche. Vous pourriez m'expliquer pourquoi ? Et éventuellement me dire comment l'améliorer pour une plus grande sécurité

Pour info je suis derrière une freebox
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 5054
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Salut @olivbarb ,
Je te suggère d'ouvrir un nouveau topic. Ici tu n'obtiendras pas de réponse (le sujet du post est très vague...).
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
PascalHambourg
Contributeur
Contributeur
Messages : 930
Inscription : 05 août 2016, 20:25
Status : Hors-ligne

Répondu dans le nouveau sujet. Au passage, ce jeu de règles n'est globalement pas fameux.
Répondre