J’ai corrigé mais un truc m’échappe encore désolé.
On est du point de vue de la machine serveur u du LAN ? Parce que iptables est sur le seveur. Donc pour moi on établit les règles à partir de là. C’est comme cela que je comprends ta réponse :
Donc du point de vue du serveur, le paquet qui vient du LAN est entrant par la chaine INPUT et l’interface -i br0 ? Le port source est celui qui est sur le serveur ? Donc le port ssh ?
Par définition dans les connexions tcp/udp, j’ai lu que le port choisit par le client pour envoyer un paquet au serveur était aléatoire. Seul le port du serveur est connu. Donc dans la règle ci-dessus INPUT, je ne dois pas spécifier le port source du client puisque je ne le connais pas ! Je ne peux spécifier que le port du serveur, que je connais, ou rien. Donc
iptables - A INPUT -p tcp --dport 2222 -m state --state NEW,ESTABLISHED -j ACCEPT
et du coup, pour le paquet sortant, le port source est celui du serveur :
iptables -A OUTPUT -p tcp --sport 2222 -m state --state ESTABLISHED -j ACCEPT
J’entends bien mais que faut-il ouvrir dans Netfilter pour que nmap fonctionne ?Je ne vois pas quelles règles l’empêcherait de fonctionner;
Lorsque je recherche comment bloquer ‘nmap’, j’ai une foule de règles à entrer dans Netfilter. Or ce n’est pas mon cas. Qu’est-ce qui pourrait l’empêcher de fonctionner ?
Cela dépend du type de scan mais idéalement, il faudrait tout autoriser en entrée et en sortie.
Pour certains types de scan nmap peut envoyer des paquets anormaux qui pourraient être bloqués par des règles iptables et fausser les résultats du scan.
Pour un scan TCP SYN classique (-sS), il faut autoriser le ping ICMP en sortie, les connexions TCP en sortie sur tous les ports scannés et les messages d’erreur ICMP liés en retour. Pour un scan ping (-sP), le ping ICMP en sortie.
Pour le ping
iptables -A INPUT -p icmp --icmp-type echo-request -m state --state RELATED -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -m state --state RELATED -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m state --state RELATED -j ACCEPT
Ahrf…t’en remets une sacrée couche ! Tu m’as perdu !! [quote=“PascalHambourg, post:88, topic:74898”]
idéalement, il faudrait tout autoriser en entrée et en sortie.
[/quote]
iptables -A INPUT -p icmp -m state --state RELATED -j ACCEPT
iptables -A OUTPUT -p icmp -m state --state RELATED -j ACCEPT
Je ne comprends pas ce que tu veux dire ; mes connaissances ne sont pas suffisantes je pense. Ou mon cerveau est trop petit (bien plus probable d’ailleurs ).[quote=“toto69, post:90, topic:74898”]
Pour un scan TCP SYN classique (-sS)
[/quote]
iptables -A OUTPUT -p icmp -m state --state RELATED -j ACCEPT
ou autre chose sur la base de ce que je connais :
iptables -A INPUT -p icmp -i br0 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p icmp -o br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
C’est loin de tout autoriser, et très insuffisant. Tout autoriser, c’est accepter tous les paquets entrant ou sortant par l’interface considérée.
Non. Autoriser le ping en sortie, cela consiste à accepter
les paquets ICMP de type echo-request dans l’état NEW en sortie sur l’interface considérée,
les paquets ICMP de type echo-reply dans l’état ESTABLISHED en entrée sur l’interface considérée.
Et bien sûr les paquets ICMP de types d’erreur vus plus haut dans l’état RELATED en entrée, mais ça c’est valable dans tous les cas, pas seulement pour nmap.
Les seuls paquets ICMP dans l’état RELATED sont ceux des types d’erreur. Les paquets ICMP de type requête/réponse comme ceux utilisés par ping sont dans les états NEW et ESTABLISHED, comme des connexions classiques.
iptables -A OUTPUT -p icmp -o br0 --icmp-type echo-request -m state --state NEW -j ACCEPT
iptables -A INPUT -p icmp -i br0 --icmp-type echo-reply -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type parameter-problem -m state --state RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type parameter-problem -m state --state RELATED -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type parameter-problem -m state --state RELATED -j ACCEPT
Ta seconde règle accepte les paquets sortants de réponse aux pings, en supposant que les paquets de requête entrants correspondant ont été acceptés par une autre règle, sinon elle n’aura aucun paquet à accepter.
Qu’y a-t-il à comprendre ? Le paquet/programme conntrack n’est pas installé et n’a jamais fait partie d’iptables à ma connaissance. Pour l’utiliser, il faut l’installer.
# apt show conntrack
Package: conntrack
Version: 1:1.4.4+snapshot20161117-5
Priority: optional
Section: net
Source: conntrack-tools
Maintainer: Arturo Borrero Gonzalez <arturo@debian.org>
Installed-Size: 100 kB
Depends: libc6 (>= 2.7), libmnl0 (>= 1.0.3-4~), libnetfilter-conntrack3, libnfnetlink0
Homepage: http://conntrack-tools.netfilter.org/
Tag: admin::monitoring, implemented-in::c, interface::commandline,
network::firewall, protocol::ip, role::program, security::firewall,
use::monitor
Download-Size: 33,0 kB
APT-Sources: http://ftp.fr.debian.org/debian stable/main i386 Packages
Description: Program to modify the conntrack tables
conntrack is a userspace command line program targeted at system
administrators. It enables them to view and manage the in-kernel
connection tracking state table.
[quote=“toto69, post:96, topic:74898”]le paquet conntrack n’est pas dans les dépôts stretch
[/quote]Peux-tu expliquer ta démarche pour affirmer que conntrack n’est pas dans les dépôts ?
=> ce n’est pas parce-que tu n’as pas installé le paquet conntrack qu’il n’est pas disponible dans les dépôts Debian.