Digression Installation parefeu (iptables & ip6tables) "pour les nuls"

Ca dépend peut être de ce dont les gens ont besoin ?

Non pas du tout c’est le script du début de thread avec une tentative de ne plus avoir le problème du stop juste après un clean. Il ne définie aucune règle de filtrage. C’est juste parce que ça me gênait de voir une script avec un tel problème et pour faire mumuse avec du sh :stuck_out_tongue:

Non, bien sûr qu’il ne définit aucune règle de filtrage, mais ce que je voulais dire, c’est que le comportement consistant à restaurer le “préclean” au stop n’est pas forcément le comportement que certains peuvent souhaiter, ou le contraire. Ton script est donc une alternative utile, et comme tu le dis, c’est toujours une bonne chose de multiplier les exemples de scripting shell.

problème de pérennité iptables :
installé un parefeu sur une ETCH non serveur, exactement identique à celui présenté en tête.
Tt fonctionne parfaitement MAIS … quand je reboute la machine et que je veux vérifier si mon parefeu est effectif en tapant :

ricardo@etch-hda1:~$ sudo iptables-save retour à l’invite :unamused:
idem avec

je tape

puis, de nouveau :

là, j’ai le rslt attendu :

# Generated by iptables-save v1.3.6 on Fri Apr 11 01:22:58 2008 *filter :INPUT DROP [0:0] etc, etc..
les trois fichiers concernés sont bien présents au départ :
/etc/config_parefeu
/etc/init.d/mon_parefeu
/etc/iptables-save

QUESTION : malgré l’absence de réponse à la commande
iptables-save
suis-je “couvert” :question:

A priori, pas au boot (avant d’avoir fait ton restore toi même).
Tu es sûr que le script mon_parefeu est bien activé pour s’executer au boot ?
Que dit ls -l /etc/rc*.d/mon_parefeu ?
Est ce que mon_parefeu est bien exécutable ?

Ce que tu peux faire, c’est mettre une ligne echo “Mise en place du parefeu” juste aprés la ligne ‘start’), pour regarder vensuite dans les logs si le message apparait.

[quote=“ricardo”]QUESTION : malgré l’absence de réponse à la commande
iptables-save
suis-je “couvert” :question: [/quote]
Le mieux pour voir les rêgles actuelles de ton parfeu c’est

# iptables -L :wink:

[quote=“MisterFreez”][quote=“ricardo”]QUESTION : malgré l’absence de réponse à la commande
iptables-save
suis-je “couvert” :question: [/quote]
Le mieux pour voir les rêgles actuelles de ton parfeu c’est

Bien sûr, je n’y avais pas pensé. :unamused:
SUPER ! :cry:

[code]ricardo@etch-hda1:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ricardo@etch-hda1:~$

[/code]

[quote=“mattotop”]A priori, pas au boot (avant d’avoir fait ton restore toi même).
Tu es sûr que le script mon_parefeu est bien activé pour s’executer au boot ?
Que dit ls -l /etc/rc*.d/mon_parefeu ?
Est ce que mon_parefeu est bien exécutable ?

Ce que tu peux faire, c’est mettre une ligne echo “Mise en place du parefeu” juste aprés la ligne ‘start’), pour regarder vensuite dans les logs si le message apparait.[/quote]
rc*.d, il ne dit rien mais

ricardo@etch-hda1:~$ ls -l /etc/init.d/mon_parefeu -rwxr-xr-x 1 root root 1246 2008-04-09 15:00 /etc/init.d/mon_parefeu
le script est bien exécutable et c’est un copié/collé de celui de ce fil :

[code]#!/bin/sh

chargement/déchargement d’iptables

case “$1” in
’start’)
/sbin/iptables-restore < /etc/config_parefeu
RETVAL=$?
;;
‘stop’)
/sbin/iptables-save > /etc/config_parefeu
RETVAL=$?
;;
‘clean’)

clean le parefeu pendant que la machine tourne

ça peut être une faille de sécurite si on l’exécute lors de l’extinction avant l’arrêt des interfaces

pensez à refaire un start après sinon la sauvegarde se fera automatiquement à l’extinction

/sbin/iptables -t filter -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
/sbin/iptables -t raw -F
/sbin/iptables -t filter -P INPUT ACCEPT
/sbin/iptables -t filter -P OUTPUT ACCEPT
/sbin/iptables -t filter -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
/sbin/iptables -t mangle -P PREROUTING ACCEPT
/sbin/iptables -t mangle -P OUTPUT ACCEPT
/sbin/iptables -t mangle -P POSTROUTING ACCEPT
/sbin/iptables -t mangle -P FORWARD ACCEPT
/sbin/iptables -t mangle -P INPUT ACCEPT
/sbin/iptables -t raw -P OUTPUT ACCEPT
/sbin/iptables -t raw -P PREROUTING ACCEPT
RETVAL=$?
;;
‘restart’)
$0 stop && $0 start
RETVAL=$?
;;
*)
echo "Usage: $0 { start | stop | restart | clean}"
RETVAL=1
;;
esac
exit $RETVAL [/code]

EDIT :

comment savoir ?

Et la réponse à ipatbles -L signifie une bonne configuration/protection ?

C’est de l’humour ou quoi ? :laughing:
config : oui
protection : tt est à ACCEPT donc = aucune. :open_mouth:

C’est de l’humour ou quoi ? [/quote]
Ben c’est iptables pour les nuls ce fil de discussion, non ?
Mais j’avoue que j’ai regardé comme ça, sans me poser plus de questions… :blush:

[quote=“ricardo”]
config : oui
protection : tt est à ACCEPT donc = aucune. :open_mouth:[/quote]
Bon, c’est vrai. C’était une évidence !
Qu’est que doit renvoyer l’exécution de la commande pour une bonne protection ?

[quote=“sebiseb”]
Qu’est que doit renvoyer l’exécution de la commande pour une bonne protection ?[/quote]
Ben au minimu, INPUT doit être à DROP avec des règles qui transforment ce “drop” en ACCEPT pour certains ports seulement.
FORWARD est aussi à DROP chez moi et seul OUTPUT est à ACCEPT pour tout.

@ MATT :
ds le script, la ligne

'start') /sbin/iptables-restore < /etc/config_parefeu
qui est censée ouvrir la parapluie
est ptet modifiable pour se rapprocher de la commande manuelle, en :

à condition, d’avoir créé auparavant

Car, il me semble, que config_parefeu est généré par iptables-save, Non :question:

EDIT :
je me rends compte que je dis une connerie car à la fin du script, le parefeu est remis à blanc.

oublies cette histoire de iptables-save au lieu de config_parefeu, c’est juste que chez moi, j’ai nommé comme ça mon fichier de sauvegarde.
Si ls -l /etc/rc*.d/mon_parefeu ne donne rien, c’est qu’il n’est pas programmé pour se lancer au boot comme je le soupçonnais.
Un simple update-rc.d mon_parefeu default devrait suffire à le faire démarrer au boot, c’est tout.

[quote=“mattotop”]Si ls -l /etc/rc*.d/mon_parefeu ne donne rien, c’est qu’il n’est pas programmé pour se lancer au boot comme je le soupçonnais.
Un simple update-rc.d mon_parefeu default devrait suffire à le faire démarrer au boot, c’est tout.[/quote]Bizarre, à moi que je n’ai oublié de le faire mais la ligne est écrite ds mes fiches

update-rc.d mon_parefeu default 19 21

et en général, je suis bêtement.
je refais et je reviens ici en edit pour confirmation.

EDIT :
Bingo !
j’avais dû oublier de taper cette ligne. :unamused:
À la casse le Ricardo, j’vous dis. :smt021

Regarde le miens :

[code]18:04:49@debian:~$ sudo iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all – anywhere anywhere
DROP all – anywhere anywhere state INVALID
DROP tcp – anywhere anywhere state NEW,RELATED tcp flags:!FIN,SYN,RST,PSH,ACK,URG/SYN
ACCEPT all – anywhere anywhere state RELATED,ESTABLISHED
REJECT tcp – anywhere anywhere tcp dpt:auth reject-with tcp-reset

Chain FORWARD (policy DROP)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination[/code]
Je refuse tout ce qui rentre ou qui essaie de transiter par mon ordinateur (transiter c’est si mon PC servirais de connexion internet à un réseau).
J’accepte tout ce qui sort.

J’autorise les entrée uniquement quand c’est une réponse à une connexion sortante ou une connexion en rapport à une connexion sortante. Enfin il y a une rêgle pour être un peu plus strict avec les connexions entrantes.

Si tu veut te configurer ton firewall, n’hésite pas à pomper des rêgles de quelqu’un sur internet ou ici (mais ne pioche pas un peu partout sans savoir, car il faut qu’il y ai une cohérence entre tes rêgles).

Merci pour les conseils, je vais m’y atteler sérieusement.

[quote=“MisterFreez”]
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all – anywhere anywhere
DROP all – anywhere anywhere state INVALID
DROP tcp – anywhere anywhere state NEW,RELATED tcp flags:!FIN,SYN,RST,PSH,ACK,URG/SYN
ACCEPT all
– anywhere anywhere state RELATED,ESTABLISHED
REJECT tcp – anywhere anywhere tcp dpt:auth reject-with tcp-reset

Chain FORWARD (policy DROP)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination[/code]
car il faut qu’il y ai une cohérence entre tes rêgles).[/quote] :laughing: :laughing: :laughing:
il me semble qu’en matière de cohérence, tu as un peu faux, non ?
à quoi servent ces lignes de DROP quand la règle générale les “drope” déjà ?
Ça ne fait pas dble fonction :question:
pour le RELATED,ESTABLISHED, je crois qu’il n’y a pas besoin du “all” et que tcp suffit.

AMA, voilà le minimum pour une machine NON serveur (difficile de se passer du 80 qui gère http et www :

iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
ensuite, si tu n’arrives pas à obtenir qq chose, tu te renseignes du port et tu le rajoutes.

non ricardo: si tu acceptes ce qui entre sur ton port 80, c’est pour laisser des gens venir sur un éventuel serveur web, mais pour un pur client, tu n’as pas besoin d’ouvrir le port 80.
Par contre, si tu as un service ssh pour l’administration à distance, tu peux plutot ouvrir le port TCP/22, ça peut être utile.