Firewall - debian

Je le copie dans le fichier directement ?

Tu copies ton script dans le répertoire.
Sinon, pour créer les liens pour le lancement d’un script au démarrage, il faut utiliser update-rc.d :wink:

Autant pour moi pour le fichier… je suis un poil fatigué… :blush:

Une fois de plus, merci beaucoup BobX !!!

petite remarque que je viens de lire à propos d’iptables (dans un article linux mag sur la convention netfilter):
l’execution d’un script composé de commandes successives iptables est rapidement super lent a executer (en fonction du nombre de règles, les performances chuttent vite), car chaque ajout de règle necessite le recalcul de toutes les tables de routage netfilter du noyau.
Alors qu’un chargement de fichier avec iptables-restore ne fabrique qu’une fois les tables de routages paquet du noyau.
8)
ceci etant dit, c’est pour diminuer le downtime, parceque c’est pas souvent qu’on redémarre, sous nux :laughing:

[quote=“BobX”]Tu copies ton script dans le répertoire.
Sinon, pour créer les liens pour le lancement d’un script au démarrage, il faut utiliser update-rc.d :wink:[/quote]

Alors, j’ai copié le fichier dans le répertoire /etc/network/if-up.d/ et au redémarrage, les qq règles n’étaient pas lancées…

Du coup j’ai utilisé update-rc.d et nickel !!

Merci !!

Besoin d’aide car je ne suis pas sûr d’avoir tt compris .
Voilà mon iptables -L et je voudrais savoir si c’est une passoire ou si c’est à peu près valable :

[code]Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all – anywhere anywhere
local-internet all – anywhere anywhere

Chain FORWARD (policy DROP)
target prot opt source destination
local-internet all – anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all – anywhere anywhere

Chain local-internet (2 references)
target prot opt source destination
ACCEPT all – anywhere anywhere state NEW
ACCEPT all – anywhere anywhere state RELATED,ESTABLISHED
[/code] Merci

Il ne serait pas plutot judicieux de refuser tout et ensuite d’accepter seulement ce dont tu as besoin???

Je n’ai fait que rentrer le fichier proposé par Truston et recopié sur ce m^ fil un peu plus haut par Stonfi.
Comme je n’arrive pas à me mettre ds la tête ce système de firewall, je ne sais pas ce qu’il faut accepter.
Si je refuse tt ce qui entre, comment je vais savoir ce qu’il me faut mettre comme “accept” ?
Merci de ton aide car là, je suis nullissime :blush:
Plus je lis d’exemples, moins je comprends.

Ash: Mais par défaut, il est bien “tout fermé” (sauf l’OUTPUT, mais ca, c’est pas grave).
Ricardo: Sauf que comme il y a comme première règle ACCEPT d’anywhere vers anywhere en premier, ca revient à tout laisser entrer sur ta machine. A virer donc.
Ensuite, la chaine local-internet, elle aussi va tout accepter, mais c’est moins évident. Pour résumer, il faut virer la chaine accept pour le state new, car elle accepte qu’une machine exterieure initie une communication entrante, alors qu’elle ne devrait accepter comme communication entrante QUE ce qui est en relation ou en interconnection (c’est à dire les retour d’information sur des canaux uniquement initiés par ta pomme).
Bon, Ricardo, ca dépend de ce que tu veux faire et de ta config, mais pars plutot sur une config filter INPUT/DROP FORWARD/DROP OUTPUT/ACCEPT, qui blinde tout en te permettant de surfer, même si ça bloque aussi le p2p, l’accés à un eventuel site web ou ftp hébergé sur ta machine ET le partage éventuel de connection. Aprés, on te dira ou faire des petits trous dans la cuirasse.
A ce sujet, je ne sais pas si tu as un partage, parcequ’il manque la table nat (iptables -t nat -L). Et il faut savoir qu’il y a une table ‘mangle’ et je crois qu’on peut en plus en fabriquer des à soi. C’est d’ailleurs pour cela que l’interface parefeu du noyau qui s’appelait ipchains est devenu iptables.
Tout ça pour dire qu’une config iptables COMPLETE s’obtient plus facilement en donnant le résultat d’iptables-save

Faisant un peu trop confiance a mon gout a mon routeur firewall, et ayant envie de regarder de plus pres iptables. Je te propose de regarder à ca tout les deux avec l’aides de tout le monde bien sur.

Je vais lire le topic et complete ce mess apres (inutile d’en faire un autre le flood c’est mal :laughing: :laughing: )

:blush: :blush: :blush:
Si tu laisse juste en INPUT/DROP, ça va te bloquer la reponse des sites web que tu visites…
Pour ouvrir le retour des informations que tu demandes, il faut ajouter une règle ACCEPT pour les state ESTABLISHED/RELATED dans la chaine INPUT, ce que je disais à propos de la chaine local-internet.
Tu veux que je me résume sous forme de script ? :laughing:

Matt, je sais que tu n’es pas trop pour le tutos d’alexis et c’est pourquoi je pose la question il montre un script de regles iptables voir people.via.ecp.fr/~alexis/format … l#AEN11126 tu en pense quoi :question:

0/il ne parle pas d’iptables-save ou iptables-restore qui sont pourtant super utiles en particulier pour restaurer l’état du pare feu au boot: c’est 5 fois plus rapide de restaurer une config que d’executer un script mettant le pare feu dans le même état.
1/il oublie de flusher la table mangle, et j’ai relu la doc, il y a en plus une table ‘raw’ que je ne connaissais pas: iptables -t filter -F iptables -t nat -F iptables -t mangle -F iptables -t raw -F
c’est vrai que mangle n’est pas trés utilisée, mais si quelqu’un s’est amusé à modifier les paquets à la volée par exemple en leur mettant tous un ttl de 1 et qu’on oublie de la flusher, on peut chercher des jours pourquoi des paquets ne vont jamais plus loin que le lan en ping, ou des gentilles blagues comme ça…
à noter que le ‘-t filter’ peut être omis dans tous les cas car c’est la table par défaut, mais pour la clarté, je continuerais à le mettre.

2/ce qui rentre il bloque: OK. Mais pourquoi accepter les paquets qui traversent la machine ? pour laisser le loopback causer avec l’exterieur ? mais ça n’arrive jamais… à priori, on bloque ! pour ce qui part, c’est pas forcément la peine de se restreindre, je suis d’accord. iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT ACCEPT
le loopback (l’interface virtuelle interne), c’est normal.# Pas de filtrage sur l'interface de "loopback" iptables -t filter -A INPUT -i lo -j ACCEPT
ouvrir le ping est à éviter pour ne pas attirer les floppées de tentatives d’intrusion en ssh: comme ce sont des robots qui pinguent avant d’attaquer, autant ne pas répondre au pings.
l’IGMP: mais qui ici va faire de la diffusion video temps réel sur son réseau…
à part ça: le seul truc vraiment obligatoire, c’est le retour des connections établies (retour des pages web par exemple) ou liées (connections de données par lesquels passent les dl ftp, par exemple).

# J'accepte les packets entrants relatifs à des connexions déjà établies iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
ce qui peut se résumer, dans un iptables-save en:[code]# Generated by iptables-save v1.3.1 on Tue Dec 6 15:41:47 2005
*filter
:INPUT DROP [29:4936]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [7:511]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT

Completed on Tue Dec 6 15:41:47 2005

[/code]
qu’il suffit de mettre dans un fichier ‘iptables.mini’, et restaurer quand on en a besoin avec ‘iptables-restore <iptables.mini’…

Pour ce qui est de cette partie du tutoriel, je trouve qu’ADL est égal à lui même: explicatif et complet… :smiling_imp:

C’est bien ce que je pensais, cette ligne est un non sens avec le “policy Drop” du début. je suis content, c’est donc que je suis moins nul que je ne le craignais.

Non, si par partage on entend plusieurs ordi en réseau, je suis seul avec un seul ordi.
Je ne joue pas sur le Net et je ne pense pas me servir d’autres choses que : naviguer, courriéler (verbe du 1er groupe :wink: ), imprimer par l’intermédiare de Cups, si ça a une importance, Jabber aussi.

Ah OUIIIIIIIIIIIIIIIIIII, avec plaisir., est-ce ça que je dois entrer, si oui, explication des nombres bien venue ( [29:4936] ):

[code]ce qui peut se résumer, dans un iptables-save en:
Code:

Generated by iptables-save v1.3.1 on Tue Dec 6 15:41:47 2005

*filter
:INPUT DROP [29:4936]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [7:511]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT

Completed on Tue Dec 6 15:41:47 2005

qu’il suffit de mettre dans un fichier ‘iptables.mini’, et restaurer quand on en a besoin avec ‘iptables-restore <iptables.mini’… [/code]

Donc si je comprend bien, il me faut faire un script de ce genre pour une navigation correcte et le mettre dans /etc/network/if-pre-up.d/iptables-start

[code]#!/bin/sh

Script de démarrage iptables

Initialisation

iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F
iptables -t raw -F

Règles par défault

iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT ACCEPT

Autorisation de loopback (logique)

iptables -t filter -A INPUT -i lo -j ACCEPT

Refuser le ping

iptables -A INPUT -p icmp -j DROP

Autorisation des connections déjà établies

iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Autorisation acces FTP

iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

Autorisation acces SSH

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Autorisation access APACHE:80

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Autorisations GAIM/Transfert de fichier

iptables -A INPUT -p tcp --dport 1863 -j ACCEPT
iptables -A INPUT -p tcp --dport 6891:6900 -j ACCEPT
[/code]
Voila ce que me donne iptables-save

[code]# Generated by iptables-save v1.3.3 on Tue Dec 6 20:32:28 2005
*raw
:PREROUTING ACCEPT [1617:1016663]
:OUTPUT ACCEPT [1276:235569]
COMMIT

Completed on Tue Dec 6 20:32:28 2005

Generated by iptables-save v1.3.3 on Tue Dec 6 20:32:28 2005

*mangle
:PREROUTING ACCEPT [1617:1016663]
:INPUT ACCEPT [1383:939069]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1276:235569]
:POSTROUTING ACCEPT [1276:235569]
COMMIT

Completed on Tue Dec 6 20:32:28 2005

Generated by iptables-save v1.3.3 on Tue Dec 6 20:32:28 2005

*nat
:PREROUTING ACCEPT [5029:1657380]
:POSTROUTING ACCEPT [1617:97636]
:OUTPUT ACCEPT [1617:97636]
COMMIT

Completed on Tue Dec 6 20:32:28 2005

Generated by iptables-save v1.3.3 on Tue Dec 6 20:32:28 2005

*filter
:INPUT DROP [1:576]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:fail2ban-ssh - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1863 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 6891:6900 -j ACCEPT
COMMIT

Completed on Tue Dec 6 20:32:28 2005

[/code]

Non c’est le contraire: iptables-restore est beaucoup plus rapide que l’execution d’une série de règles. Sur une machine perso, ca n’a pas d’importance, mais quand on en arrive à des machines de routage complexe avec des temps de chargement qui se comptent en dizaine de secondes…
Une logique d’install, celle retenue pour le fonctionnement du script init webmin-iptables par exemple, c’est d’avoir un start qui fasse un iptables-restore d’un fichier de sauvegarde et un stop qui fait l’iptables-save dans ce même fichier: toutes les retouches que tu fais à la volée sur ton iptables se retrouvent alors sauvegardées automatiquement.
Mais tu peux garder ton script pour initialiser une première fois ton iptables (je n’ai pas eu le temps de le regarder en detail) :blush:

bon, sinon, dans le détail, ça m’a l’air cohérent.
A part que ce n’est pas la peine de bloquer SPECIFIQUEMENT le ping, puisqu’il est déjà droppé par la policy par defaut de l’INPUT.

Si mes règles sont cohérentes tant mieux c’est ce que je cherchais a avoir :slightly_smiling:
Pour le ping, j’ai essayer de me pinger sans la regles et je reussissait (pas sur 127.0.0.1 mais bien sur mon ip) c’est pour ca que j’ai rajouter cette regles.

Gaim n’étant pas tous le temps lancé je souhaiterais savoir si il existe une règles particuliere qui autorise donc le port 1863 seulement quand gaim est lancé? Je pose la question car j’ai pas vraiment trouvé :confused:

Je n’ai pas tout saisi par contre au niveau iptables-restore.
Si j’ai bien compris au démarrage je créé un script qui lance un iptables-restore pour le réseaux et quand j’arrete le pc je lance un deuxieme script qui fait un iptables-save.
Et je peux garder mon script pour une initialisation mais apres il ne sert plus a rien.

Ainsi si je fait des changements dans mes regles iptables je sauvegarde tout ca automatiquement a l’extinction du pc et si jamais j’ai vraiment de gros probleme je peux revenir sur mon script de base pour restaurer tout ca?

[quote=“MattOTop”]Non c’est le contraire: iptables-restore est beaucoup plus rapide que l’execution d’une série de règles. Sur une machine perso, ca n’a pas d’importance, mais quand on en arrive à des machines de routage complexe avec des temps de chargement qui se comptent en dizaine de secondes…
Une logique d’install, celle retenue pour le fonctionnement du script init webmin-iptables par exemple, c’est d’avoir un start qui fasse un iptables-restore d’un fichier de sauvegarde et un stop qui fait l’iptables-save dans ce même fichier: toutes les retouches que tu fais à la volée sur ton iptables se retrouvent alors sauvegardées automatiquement.
Mais tu peux garder ton script pour initialiser une première fois ton iptables (je n’ai pas eu le temps de le regarder en detail) :blush:[/quote]

Pas bête pour les perfs. Par contre, souvent lorsque l’on a des machines avec des filtrages complexes, et des données communes entre les différents firewall (adresses de réseau, adresses de machines…) on passe souvent par un outil qui facilite la tâche, notament fwbuilder. Par contre, le résultat de la complilation est un script ne passant pas par iptables-save ou iptables-restore, il éxiste des outils qui font ça?
De plus, j’ai peur qu’avec la solution iptables-saves, ça devienne rapidement très compliqué à gérer puisqu’il est impossible de commenter les régles, plutôt génant si on a un firewall complexe.

Ash: je parlais d’un même script init (si tu ne connais pas, regardes comment ils sont fait dans /etc/init.d/ et révises update-rc.d. Avec un peu de chance, tu as peut être même un skeletton dans init.d qui peut te servir de modèle pour en fabriquer un.
Concernant ton ping, etant donné que ta règle est en drop, tu ne dois pas pouvoir plus pinger maintenant qu’avant ta règle :wink:

BobX: absolument d’accord avec toi quand aux commentaires. Pour ce qui est de la cohabitation avec un outil d’administration, ca dépend comment ca marche, c’est peut être incompatible…

J’ai juste lu des perfs comparées trés parlantes, et j’ai adopté une stratègie de modelage pour mes parefeux. Mais c’est vrai que je n’ai jamais utilisé de “wrapper” iptables…
J’utilise des scripts (commentés) quand j’ai besoin de retoucher et de mettre mon parefeu dans un état donné, mais aprés, je laisse mes tables en l’etat, et je fais confiance à mes scripts init pour le restaurer dans l’etat ou je l’ai mis…