Iptables+android

netstat est une commande locale qui ne génère aucun trafic réseau (sauf pour la résolution des adresses si on ne l’empêche pas avec l’option -n).

nmap ne marchera pas bien si tu bloques les paquets qu’il envoie ou ceux qu’il attend en réponse (qui dépendent du type de scan).

Pas tout-à-fait. L’état NEW doit être avec --dport (paquet aller).

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 ?

Oui.

Oui. L’interface est br0. -i est seulement l’option pour spécifier l’interface d’entrée.

Non puisque c’est un paquet entrant. Le port source est le port du client.

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

Oui, c’est correct.

:slight_smile:

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 :wink:).[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.

autoriser le ping sur le LAN :

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.

comprends pas :
conntrack -L
bash: conntrack : commande introuvable

Pourtant :
# apt-cache policy iptables
iptables:
Installé : 1.6.0+snapshot20161117-6
Candidat : 1.6.0+snapshot20161117-6
Table de version :
*** 1.6.0+snapshot20161117-6 500
500 http://ftp.fr.debian.org/debian stable/main i386 Packages
100 /var/lib/dpkg/status

Mais :
# apt-cache policy conntrack
conntrack:
Installé : (aucun)
Candidat : 1:1.4.4+snapshot20161117-5
Table de version :
1:1.4.4+snapshot20161117-5 500
500 http://ftp.fr.debian.org/debian stable/main i386 Packages

Conntrack n’est donc plus dans le paquet ‘iptables’ ?

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.

Je pensais qu’il faisait partie de ‘iptables’.

Peu importe, le paquet n’est pas dans les dépôts stretch. Je n’ai qu’un ‘tar.bz’ sur le site.

apt show conntrack

https://packages.debian.org/stretch/conntrack

# 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.

Cette ligne là signifie bien qu’il le paquet conntrack est dans ce dépôt ?

[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.

Installé : (aucun)
Candidat : 1:1.4.4+snapshot20161117-5