Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[iptables] Permettre a une machine unique de surfer en toute securite

3 réponses
Avatar
You
Bonjour,

On trouve beaucoup de scripts iptables assez compliqués sur le Net. J'ai
essayé de faire le plus simple possible. Je voudrais sécurisé au maximum
la navigation sur un PC unique en ADSL et refuser tout le reste.

Malheureusement, ça ne fonctionne même pas sous lynx en ligne de commande !

#########################################################################

#!/bin/sh
# Suppression de toutes les chaînes pré-définies de la table *FILTER*
iptables -F
# Suppression de toutes les chaînes utilisateur de la table *FILTER*
iptables -X
# DROP - Par defaut, tous les paquets sont détruits
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Loopback - Autorise l'interface loopback à monologuer
iptables -A OUTPUT -o lo -s loopback/8 -d loopback/8 -j ACCEPT
iptables -A INPUT -i lo -s loopback/8 -d loopback/8 -j ACCEPT

# 53 - Autorise les recherches de DNS@Skynet.be
iptables -A OUTPUT -o ppp0 -d 195.238.2.21/32 -p udp --sport 53 -j
ACCEPT
iptables -A OUTPUT -o ppp0 -d 195.238.2.21/32 -p tcp --sport 53 -j
ACCEPT
# iptables -A OUTPUT -o ppp0 -d 195.238.2.22/32 -p udp --dport 53 -j
ACCEPT
# Lorsque la ligne n'est plus commentée, iptables met beaucoup plus de
# temps a charger la liste (iptables -L)
iptables -A OUTPUT -o ppp0 -d 195.238.2.22/32 -p tcp --dport 53 -j
ACCEPT
iptables -A INPUT -i ppp0 -s 195.238.2.21/32 -p udp --sport 53 -j
ACCEPT
iptables -A INPUT -i ppp0 -s 195.238.2.21/32 -p tcp --sport 53 -j
ACCEPT
iptables -A INPUT -i ppp0 -s 195.238.2.22/32 -p udp --dport 53 -j
ACCEPT
iptables -A INPUT -i ppp0 -s 195.238.2.22/32 -p tcp --dport 53 -j
ACCEPT

# 80,443 - HTTP(s)
iptables -A OUTPUT -o ppp0 -p tcp -m multiport --source-port 80,443 \
-m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp -m multiport --source-port 80,443 \
-m state --state ESTABLISHED -j ACCEPT

# Rajouter éventuellement -s 0/32 ou -d 0/32 (pour préciser mon IP
# dynamique du Net) En supposant, visiblement à tort, que 0 donne toutes
# les adresses possibles et /32, le masque de sous-réseaux pour
# 255.255.255.255 (Internet)

#########################################################################

Je n'ai plus aucun message d'erreur mais la connection reste impossible
... si ce n'est une chiée de insmod NO_REBBOT i810-...o.gz, qui viennent
je pense de mises à jours pour KDE

Je vais essayer maintenant de voir s'il ne me manque pas un peu d'icmp
quelque part... mais je serais dès lors déjà très heureux de recevoir
vos suggestions pour améliorer ce script de manière compréhensives.


Je devrais, plus tard, encore essayer d'affiner avec des syn,ack et
rajouter la couche d'anti-spoof et d'anti-flood. Toutes remarques à ce
sujet sont aussi les bienvenues, tout comme les suggestions de doc (fr-en)

Merci,

Chris.


--
Crosspost sur fr.comp.secu et alt.fr.secu avec FU2 sur ce dernier, non
modéré.

3 réponses

Avatar
Eric Razny
"You" a écrit dans le message de
news:bmu8jv$r2o3n$
On trouve beaucoup de scripts iptables assez compliqués sur le Net. J'ai
essayé de faire le plus simple possible. Je voudrais sécurisé au maximum
la navigation sur un PC unique en ADSL et refuser tout le reste.
Malheureusement, ça ne fonctionne même pas sous lynx en ligne de commande
!


Un peu tard pour moi pour détailler mais :

# 80,443 - HTTP(s)
iptables -A OUTPUT -o ppp0 -p tcp -m multiport --source-port 80,443
-m state --state NEW,ESTABLISHED -j ACCEPT


Ca veut dire que ton ordi peut faire sortir certains paquets
(NEW,ESTABLISHED) s'ils ont comme port SOURCE 80 ou 443.
Il me semble que tu veux dire comme port destination, non? :)


Je vais essayer maintenant de voir s'il ne me manque pas un peu d'icmp
quelque part...


ce serait pas mal, oui! Mais ce n'est pas ça qui te bloque ici.

Accessoirement quand tu as ce genre de problème lance un petit iptables -nvL
avant et après une manip et regarde quels règles ont agies (via les stats
sur les packets[1]). Dans ton cas tu aurais vu que les règles précédentes
n'ont pas "matché" et tu en aurais déduits que ça merde ici.


Eric.

[1] en se souvenant que des paquets non souhaités peuvent aussi venir de
l'extérieur...

Avatar
You
Eric Razny wrote:
"You" a écrit:
Un peu tard pour moi pour détailler mais :

# 80,443 - HTTP(s)
iptables -A OUTPUT -o ppp0 -p tcp -m multiport --source-port 80,443
-m state --state NEW,ESTABLISHED -j ACCEPT


Ca veut dire que ton ordi peut faire sortir certains paquets
(NEW,ESTABLISHED) s'ils ont comme port SOURCE 80 ou 443.
Il me semble que tu veux dire comme port destination, non? :)


Ce chapitre, et c'est un peu normal, n'est pas directement documenté
dans iptables. Je devrais sans doute chercher dans les rfc. C'est du
moins, il me semble, --sport que j'avais trouvé dans la doc. Merci
d'avoir attiré mon attention sur ce point.

Je vais essayer maintenant de voir s'il ne me manque pas un peu d'icmp
quelque part...


ce serait pas mal, oui! Mais ce n'est pas ça qui te bloque ici.


Ca m'aidera beaucoup. Je ne perdrai au moins pas mon temps, pour le
moment avec ça. Je vais essayer de m'occuper de chaque problème un par
un... Un peu à la manière de Andreasson

Accessoirement quand tu as ce genre de problème lance un petit iptables -nvL
avant et après une manip et regarde quels règles ont agies (via les stats
sur les packets[1]). Dans ton cas tu aurais vu que les règles précédentes
n'ont pas "matché" et tu en aurais déduits que ça merde ici.


Je liste, je delete et je rajoute assez facilement maintenant.
Je vais donc essayer de suivre le conseil et voir du côté des stats.

[1] en se souvenant que des paquets non souhaités peuvent aussi venir de
l'extérieur...


De l'intérieur, je suppose ? :-) Je lis assez régulièrement les fils sur
le sujet, je commenterai sans doute mon script avec ce genre de remarques


Encore merci,

Chris.


Avatar
You
Eric Razny wrote:
Accessoirement quand tu as ce genre de problème lance un petit iptables -nvL
avant et après une manip et regarde quels règles ont agies (via les stats
sur les packets). Dans ton cas tu aurais vu que les règles précédentes
n'ont pas "matché" et tu en aurais déduits que ça merde ici.


Voilà, et puis j'ai encore rajouté des -j LOG un peu partout et ça s'est
finalement très bien arrangé. Je vais maintenant essayer d'affiner tout ça.


Chris.