Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/07/2009, à 13:08

rosco

probleme iptables

salut a tous

j'aurai besoin de votre expérience en firewall (iptables bien sur) voila.

je me suis fait un petit serveur avec un pc, que j'ai installer ubuntu 9.04 avec ceci.Je voudrai faire un firewall.
j'ai trouvé bien de config sur le iptables mais sa marche pas comme je veux.

voici mon fichier de config iptables:

#!/bin/sh
# /etc/network/if-pre-up.d/iptables-start
# Script qui démarre les règles de filtrage "iptables"
# Formation Debian GNU/Linux par Alexis de Lattre
# http://formation-debian.via.ecp.fr/

# REMISE à ZERO des règles de filtrage
iptables -F
iptables -t nat -F


# DEBUT des "politiques par défaut"

# Je veux que les connexions entrantes soient bloquées par défaut
iptables -P INPUT DROP

# Je veux que les connexions destinées à être forwardées
# soient acceptées par défaut
iptables -P FORWARD ACCEPT

# Je veux que les connexions sortantes soient acceptées par défaut
iptables -P OUTPUT ACCEPT

# FIN des "politiques par défaut"


# DEBUT des règles de filtrage

# Pas de filtrage sur l'interface de "loopback"
iptables -A INPUT -i lo -j ACCEPT

# J'accepte le protocole ICMP (i.e. le "ping")
iptables -A INPUT -p icmp -j ACCEPT

# J'accepte le protocole IGMP (pour le multicast)
iptables -A INPUT -p igmp -j ACCEPT

# J'accepte les packets entrants relatifs à des connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Décommentez les deux lignes suivantes pour que le serveur FTP éventuel
# soit joignable de l'extérieur
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

# Décommentez la ligne suivante pour que le serveur SSH éventuel
# soit joignable de l'extérieur
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Décommentez la ligne suivante pour que le serveur de courrier éventuel
# soit joignable de l'extérieur
#iptables -A INPUT -p tcp --dport 25 -j ACCEPT

# Décommentez les deux lignes suivantes pour que le serveur de DNS éventuel
# soit joignable de l'extérieur
#iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#iptables -A INPUT -p udp --dport 53 -j ACCEPT

# Décommentez la ligne suivante pour que le serveur Web éventuel
# soit joignable de l'extérieur
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# Décommentez les deux lignes suivantes pour que le serveur CUPS éventuel
# soit joignable de l'extérieur
#iptables -A INPUT -p tcp --dport 631 -j ACCEPT
#iptables -A INPUT -p udp --dport 631 -j ACCEPT

# Décommentez les deux lignes suivantes pour que le serveur Samba éventuel
# soit joignable de l'extérieur
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p udp --dport 139 -j ACCEPT

# Décommentez la ligne suivante pour que des clients puissent se connecter
# à l'ordinateur par XDMCP)
#iptables -A INPUT -p udp --dport 177 -j ACCEPT

# Décommentez la ligne suivante pour que l'odinateur puisse se connecter
# par XDMCP à une machine distante)
#iptables -A INPUT -p tcp --dport 6001 -j ACCEPT

# Décommentez la ligne suivante pour pouvoir recevoir des flux VideoLAN
# (ce sont des flux UDP entrants sur le port 1234)
#iptables -A INPUT -p udp --dport 1234 -j ACCEPT

# Décommentez la ligne suivante pour pouvoir recevoir des annonces SAP
# (ce sont des annonces de session multicast)
#iptables -A INPUT -p udp -d 224.2.127.254 --dport 9875 -j ACCEPT

# Décommentez les 3 lignes suivantes pour pouvoir utiliser GnomeMeeting
#iptables -A INPUT -p tcp --dport 30000:33000 -j ACCEPT
#iptables -A INPUT -p tcp --dport 1720 -j ACCEPT
#iptables -A INPUT -p udp --dport 5000:5006 -j ACCEPT

# La règle par défaut pour la chaine INPUT devient "REJECT"
# (il n'est pas possible de mettre REJECT comme politique par défaut)
iptables -A INPUT -j REJECT

# FIN des règles de filtrage


# DEBUT des règles pour le partage de connexion (i.e. le NAT)

# Décommentez la ligne suivante pour que le système fasse office de
# "serveur NAT" et remplacez "eth0" par le nom de l'interface connectée
# à Internet
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Si la connexion que vous partagez est une connexion ADSL, vous
# serez probablement confronté au fameux problème du MTU. En résumé,
# le problème vient du fait que le MTU de la liaison entre votre
# fournisseur d'accès et le serveur NAT est un petit peu inférieur au
# MTU de la liaison Ethernet qui relie le serveur NAT aux machines qui
# sont derrière le NAT. Pour résoudre ce problème, décommentez la ligne
# suivante et remplacez "eth0" par le nom de l'interface connectée à
# Internet.
#iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o eth0 --clamp-mss-to-pmtu

# FIN des règles pour le partage de connexion (i.e. le NAT)


# DEBUT des règles de "port forwarding"

# Décommentez la ligne suivante pour que les requêtes TCP reçues sur
# le port 80 de l'interface eth0 soient forwardées à la machine dont
# l'IP est 192.168.0.3 sur son port 80 (la réponse à la requête sera
# forwardée au client)
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80

# FIN des règles de "port forwarding"

mon réseau est configuré comme sa:

internt=serveur=switch=client ubuntu ou windows

moi je dit que la configuration de iptables est pas bonne car je peux me connecté a mon serveur FTP sur un autre port qui est pas ouvet puis au jeux urban terror sur le port 27960 qui est pas ouvert dans la config et je peux toujours faire de la webcam.

moi je veux que iptables bloquer le flux de la webcan puis tout les autre port que j'ai pas besoin??
Sa faire a quoi la section FORWARD??
voila aider moi

Hors ligne

#2 Le 19/07/2009, à 13:20

blahnotblahblah

Re : probleme iptables

moi j'crois que lorsque des outils existent pour se simplifier la tâche, faut les utiliser, voilà pourquoi je te propose d'utiliser  ufw   et son IHM  gufw
deux paquets à trouver dans synaptic

big_smile


proverbe ashanti: "Quand la maison brûle, on ne perd pas de temps à pérorer".

Hors ligne

#3 Le 19/07/2009, à 20:08

Laurent_16

Re : probleme iptables

Bonjour,
Peux tu nous donner plus de précision sur ton réseau ?
Apparemment tu as récupéré cette conf toute prête sur Internet.
Donc mes questions pour être sûr de ton architecture réseau :
Tu as au minimum 2 cartes réseaux sur ta machine dont une avec une interface pour le réseau LAN connecté à ton switch, l'autre avec une interface externe  (IP externe de ton fai) branché sur ton modem ?
Si c'est bien le cas, je te conseillerais dans un premier temps de gérer uniquement le nat sans activer le filtrage IP et voir si tu peux sortir sur internet :
ping 72.14.221.99 depuis ton serveur
si OK
ping 72.14.221.99 sur une machine se situant derrière le NAT
si OK c'est que ton NAT est bon, tu peux te lancer dans la configuration du filtrage

En ce qui concerne le filtrage, je te conseillerais de taper des commandes manuellement de ton Shell pour bien comprendre le fonctionnement d'Iptables bien que ce ne soit pas horriblement compliqué.

Pour le peu que j'en sais, le Forward permet d'appliquer tes réglages sur ce qui va traverser ton poste : Savoir dans quelle mesure ça s'applique, je ne sais pas, et je n'ai pas cette architecture pour le tester.

N'hésites pas à me tenir au courant, je suis intéressé justement smile

Dernière modification par Laurent_16 (Le 19/07/2009, à 20:28)

Hors ligne

#4 Le 23/07/2009, à 15:01

ranmax

Re : probleme iptables

Puisque le sujet est actif, je vais pas en ouvrir un nouveau.

Je vais tenter d'être le plus clair possible smile

Voila, j'ai une box qui va directement sur un routeur wifi et de là plusieurs connexions: un serveur, un mobile, un pc portable, un pc et 2 nabaztagtag (les lapins).

Mon seul est unique problème se borne à la configuration de mon serveur (ssh+web+fichiers - à venir ftps) qui de base fontionne (normal vu que tout est open) mais dès que j'applique les recommandations trouvé sur le net dans différents tutoriaux .. rien ne va plus.

En premier lieu, j'avais fait un iptables assez basique:

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:snpp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:webmin
ACCEPT     icmp --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     icmp --  anywhere             anywhere            state NEW,RELATED,ESTABLISHED

Mais cette configuration bloque les mises à jours et installation d'apt-get.

J'ai donc continué à chercher et lire ce que je pouvais trouver.

J'en suis venu à faire un script pour la réinstallation du serveur, script que je corrige au fur et à mesure de mes essais sauf que là ... je ne sais pas comment faire fonctionner la machine.

Voici l'iptables qui en résulte:

# Vider les tabbles actuelles
iptables -F
iptables -X

# Interdire toute connexion entrante sortante
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Autoriser Loopback
iptables -t filter -A OUTPUT -o lo -s 127.0.0.1/0 -d 127.0.0.1/0 -j ACCEPT
iptables -t filter -A INPUT  -i lo -s 127.0.0.1/0 -d 127.0.0.1/0 -j ACCEPT

# Samba - Bluetower vers BlackTower
iptables -t filter -A INPUT -p tcp --dport 135 -s 192.168.1.110 -j ACCEPT  |
iptables -t filter -A INPUT -p udp --dport 137 -s 192.168.1.110 -j ACCEPT |   110 c'est
iptables -t filter -A INPUT -p udp --dport 138 -s 192.168.1.110 -j ACCEPT |  le serveur
iptables -t filter -A INPUT -p tcp --dport 139 -s 192.168.1.110 -j ACCEPT  |
iptables -t filter -A INPUT -p tcp --dport 445 -s 192.168.1.110 -j ACCEPT  |

iptables -t filter -A OUTPUT -p tcp --dport 135 -s 192.168.1.210 -j ACCEPT  |
iptables -t filter -A OUTPUT -p udp --dport 137 -s 192.168.1.210 -j ACCEPT | 210 c'est
iptables -t filter -A OUTPUT -p udp --dport 138 -s 192.168.1.210 -j ACCEPT |  le pc
iptables -t filter -A OUTPUT -p tcp --dport 139 -s 192.168.1.210 -j ACCEPT  |
iptables -t filter -A OUTPUT -p tcp --dport 445 -s 192.168.1.210 -j ACCEPT  |

# Setting de base pour connexion
iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 10000 -j ACCEPT
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT

# Autorise les connexions avec internet uniquement si elles sont initialisées parles process locaux
iptables -t filter -A OUTPUT -o eth1 -s 10.0.0.1  -d 0.0.0.0/0 -p all -m state --state ! INVALID           -j ACCEPT
iptables -t filter -A INPUT  -i eth1 -s 0.0.0.0/0 -d 10.0.0.1  -p all -m state --state RELATED,ESTABLISHED -j ACCEPT

Je sais que ce qui cause le problème se sont les "DROP" ... je sais aussi que les règles sont là pour faire les exceptions mais ce que je ne sais pas c'est comment faire fonctionner les règles?
(a savoir, un partage Samba uniquement avec un pc et une administration Webmin et Putty)

Lorsque le programme s'écrit ou s'exécute, il y a t'il un ordre particulier ou alors tout est permis? .... Je veux dire par là que le fait de tout fermer au début (via le DROP) n'interdit il pas tout le reste? Faut il le faire à la fin?

... merci de m'éclaircir car là, je chercher et essaye depuis quelques jours et sèche.
(à savoir que l'idée vient d'apparaitre en lisant un autre post, je n'ai pas encore testé le fait de mettre les "DROP" à la fin)

Dernière modification par ranmax (Le 23/07/2009, à 15:08)


Il est difficile d'attraper un chat noir dans une pièce sombre, surtout s'il n'y est pas.
http://www.ranmaxime.com

Hors ligne

#5 Le 23/07/2009, à 20:40

Laurent_16

Re : probleme iptables

Bonsoir,

Par rapport à ta commande iptables -L, je t'ai mis en caractère gras ce qui me semble incohérent :

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www


Tu acceptes tous les protocoles de n'importe qui vers ton interface entrante ????
tes exceptions ACCEPT n'ont donc plus aucun interêt

ACCEPT     all  --  anywhere             anywhere

ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:snpp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:webmin
ACCEPT     icmp --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Inutile car ta policy par défaut est une autorisation implicite
ACCEPT     icmp --  anywhere             anywhere            state NEW,RELATED,ESTABLISHED


Voilà ce que je te propose :


Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  loopback/24          anywhere
ACCEPT     all  --  192.168.1.0/24       anywhere
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTAB
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:snpp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:webmin

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination



J'ai mis les commentaires également

Chain INPUT (policy DROP)
target     prot opt source               destination

En premier lieu, tu dois spécifier ton interface loopback, certaines applis comme Samba écoute par défaut sur cette interface
ACCEPT     all  --  loopback/24          anywhere


A adapter selon ce que tu désires, mais disons que tu autorises tout car tu fais confiance à ton LAN
ACCEPT     all  --  192.168.1.0/24       anywhere



Tu autorises tes paquets à revenir, je suppose qu'il fait un contrôle du numéro de séquence de ton paquet TCP et comme ça il peut définir si c'est bien toi qui a initié la connexion
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTAB 


                                                                         
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:webmin
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:snpp

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Dernière modification par Laurent_16 (Le 23/07/2009, à 21:07)

Hors ligne

#6 Le 23/07/2009, à 20:54

Laurent_16

Re : probleme iptables

Lorsque le programme s'écrit ou s'exécute, il y a t'il un ordre particulier ou alors tout est permis?
.... Je veux dire par là que le fait de tout fermer au début (via le DROP) n'interdit il pas tout le reste? Faut il le faire à la fin?

Il y'a deux choses importantes à tenir compte :
Ta politique par défaut et tes exceptions
La politique par défaut pourrait indiquer la dernière ligne de ta chaine.

Exemple tu souhaites autoriser le port 80 à tout le monde
accept tcp anywere anywere 80

Le fait que tu indiques la policy par défaut en DROP signifie que tu vas bloquer tout le reste

Dernière modification par Laurent_16 (Le 23/07/2009, à 21:09)

Hors ligne

#7 Le 24/07/2009, à 14:33

ranmax

Re : probleme iptables

Merci de m'éclaire, je vois une partie du problème et aujourd'hui j'ai enfin réalisé que l'ordre de la séquence iptables à une importance et qu'il faut bien mettre les fermeture à la fin (DROP).

Maintenant je suis reparti avec une base plus saine et fonctionnel, je peux désormais faire mes apt-get update par contre, j'aimerais bien comprendre comment ne plus avoir ce que tu mets en valeur Laurent_16:
ACCEPT     all  --  anywhere             anywhere

En fait, je n'arrive pas à comprendre comment ne pas avoir cette ligne avec mon iptables de base (je rajouterais Samba plus tard, une chose à la fois):

#remises a zero des regles de filtrage
    iptables -F
    iptables -X
    iptables -t nat -F

# Accepter les connexions sortantes
    iptables -P OUTPUT ACCEPT
   
# Autoriser le loopback
    iptables -t filter -A OUTPUT -o lo -s 127.0.0.1/0 -d 127.0.0.1/0 -j ACCEPT
    iptables -t filter -A INPUT  -i lo -s 127.0.0.1/0 -d 127.0.0.1/0 -j ACCEPT

# Autorise les connexions avec internet uniquement si elles sont initialisées parles process locaux
    iptables -t filter -A OUTPUT -o eth0 -s 192.168.1.1  -d 0.0.0.0/0 -p all -m state --state ! INVALID           -j ACCEPT
    iptables -t filter -A INPUT  -i eth0 -s 0.0.0.0/0 -d 192.168.1.1  -p all -m state --state RELATED,ESTABLISHED -j ACCEPT
   
# Accepter les paquets entrants relatifs a des connexions deja etablies
    iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
   
# ouverture connexion SSH
    iptables -A INPUT -i eth0 -p tcp -m tcp --dport ssh -j ACCEPT
   
# ouverture liaison internet
    iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
   
# Ouverture liaison avec Webmin
    iptables -A INPUT -p tcp -i eth0 --dport 10000 -j ACCEPT
   
# accepter les connexion dns
    iptables -A INPUT -i eth0 -p udp -m udp -s 194.2.0.20 --sport 53 -d 0/0 -j ACCEPT
    iptables -A INPUT -i eth0 -p udp -m udp -s 194.2.0.50 --sport 53 -d 0/0 -j ACCEPT
    iptables -A INPUT -i eth0 -p udp -m udp -s 192.168.1.1 --sport 53 -d 0/0 -j ACCEPT
   
# fermeture des portes - ajouter "#" lors de test réseau
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
   
# ouverture de tout lors de test avec le réseau - retirer les "#"
#    iptables -P OUTPUT ACCEPT
#    iptables -P INPUT ACCEPT
#    iptables -P FORWARD ACCEPT

Merci de ta patience.


Il est difficile d'attraper un chat noir dans une pièce sombre, surtout s'il n'y est pas.
http://www.ranmaxime.com

Hors ligne

#8 Le 24/07/2009, à 14:38

Laurent_16

Re : probleme iptables

Bonjour ranmax,

Je ne suis pas sûr de comprendre ta demande :
j'aimerais bien comprendre comment ne plus avoir ce que tu mets en valeur Laurent_16:
ACCEPT     all  --  anywhere             anywhere

En fait, tu souhaites enlever manuellement tes entrées éronnées ?

Si c'est le cas, tu as 2 façons d'enlever les régles dans tes chaines.
La première la plus simple est de vider totalement tes chaines :
iptables -P INPUT ACCEPT (tu remets ta policy en ACCEPT, pour pas te couper les pattes si tu l'administres depuis SSH)
iptables -F INPUT  (tu vides ta tables)
Après, tu recrées proprement tes règles et ensuite tu réappliques ta policy par défaut en DROP.

La deuxième plus affinée, serait d'enlever manuellement ta ligne. Tu affiches d'abord le numéro de tes lignes utilisés :
iptables -L --line-numbers
Chain INPUT (policy DROP)
num  target     prot opt source               destination
1    ACCEPT     all  --  loopback/24          anywhere
2    ACCEPT     all  --  10.25.3.0/24       anywhere
3    ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
4    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp-data
5    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
6    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
7    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
8    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:webmin
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Je souhaite par exemple enlever la ligne 4 et 5, je fais donc un
iptables -D INPUT 4
iptables -D INPUT 5

Mes 2 lignes vont disparaitre :

iptables -L --line-numbers
Chain INPUT (policy DROP)
num  target     prot opt source               destination
1    ACCEPT     all  --  loopback/24          anywhere
2    ACCEPT     all  --  10.25.3.0/24       anywhere
3    ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
4    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
5    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
6    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:webmin
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination


Si tu veux encore affiner les choses,tu peux te servir des aides fournis :
iptables -h ou un man iptables

Dernière modification par Laurent_16 (Le 24/07/2009, à 16:16)

Hors ligne

#9 Le 24/07/2009, à 14:46

ranmax

Re : probleme iptables

Tu as du voir que j'avais changé ma politique iptables via le fichier iptable.

Cela dit, si ça me permet de sécuriser mon serveur, tant mieux sauf que comme tu le démontres et que je vois encore lorsque je fais un iptables -L, il apparait cette règle dont je ne suis pas l'auteur:


Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Et c'est certain qu'avec cette règle, je ne vais pas aller loin.

Dernière modification par ranmax (Le 24/07/2009, à 14:47)


Il est difficile d'attraper un chat noir dans une pièce sombre, surtout s'il n'y est pas.
http://www.ranmaxime.com

Hors ligne

#10 Le 24/07/2009, à 15:08

Laurent_16

Re : probleme iptables

Ok, j'ai réedité ma réponse, ça doit t'apparaître juste au dessus wink

Hors ligne

#11 Le 24/07/2009, à 15:16

ranmax

Re : probleme iptables

WAW!! trop cool, on peut même virer des lignes.
Décidément ... iptables est vraiment excellent.
Donc, avec ceci, je peux enlever les lignes .. mais est ce que ça tient dans le fichier iptables ou au prochain démarrage il faudra refaire la commande?

et après, je te jure, j'arrête tongue


Il est difficile d'attraper un chat noir dans une pièce sombre, surtout s'il n'y est pas.
http://www.ranmaxime.com

Hors ligne

#12 Le 24/07/2009, à 15:18

Laurent_16

Re : probleme iptables

j'ai enfin réalisé que l'ordre de la séquence iptables à une importance et qu'il faut bien mettre les fermeture à la fin

En effet, l'ordre de tes lignes est importante, par contre quand tu dis les fermetures à la fin, c'est la policy par défaut qui détermine si à la fin j'autorise tout ou je bloque tout.
Ceci dit, dans les faits tu peux tout a fait appliquer tes policy par défaut au début et créer tes règles ensuite, le risque que tu as, c'est de te couper les pattes si tu n'es pas physiquement devant la machine comme ça a pu m'arriver cool

Hors ligne

#13 Le 24/07/2009, à 15:20

ranmax

Re : probleme iptables

oui, ça m'arrive tout le temps ... heureusement que la machine est à l'étage du dessous smile


Il est difficile d'attraper un chat noir dans une pièce sombre, surtout s'il n'y est pas.
http://www.ranmaxime.com

Hors ligne

#14 Le 24/07/2009, à 15:21

Laurent_16

Re : probleme iptables

Il n'y a aucun problème Ranmax, l'intérêt d'utiliser un forum est pour justement échanger les acquis des uns et des autres. A mon goût, c'est aussi ça l'esprit Linux. (j'aurai du faire philo...)
Après le redémarrage de ta machine, en effet tes règles vont disparaître, tu dois donc faire un script qui va bien, et de l'appliquer au démarrage de ta machine

Hors ligne

#15 Le 24/07/2009, à 15:25

ranmax

Re : probleme iptables

je vais redémarrer plusieurs fois la machine pour être certains du numéro à effacer et je le mettrais dans le script wink
Merci encore.


Il est difficile d'attraper un chat noir dans une pièce sombre, surtout s'il n'y est pas.
http://www.ranmaxime.com

Hors ligne

#16 Le 24/07/2009, à 15:30

Laurent_16

Re : probleme iptables

Je te conseillerais de faire un script propre en enlevant tes mauvaises lignes dans ton script directement

Hors ligne

#17 Le 24/07/2009, à 15:33

ranmax

Re : probleme iptables

Un script propre?
... je pensais avoir une idée de ce que j'allais faire mais tu me poses le doute.
Qu'entends tu par un script propre?


Il est difficile d'attraper un chat noir dans une pièce sombre, surtout s'il n'y est pas.
http://www.ranmaxime.com

Hors ligne

#18 Le 24/07/2009, à 15:36

Laurent_16

Re : probleme iptables

Quelle est ton idée Ranmax ?

Hors ligne

#19 Le 24/07/2009, à 15:43

ranmax

Re : probleme iptables

je pensais inclure les commande dans le script iptables dans /etc/init.d/ puisqu'il commence à chaque démarrage. Sinon, faire un script à part avec les commandes et le rendre exécutable puis les mettre dans le démarrage.

Bref ... là, je vais encore fouiller le net pour tout faire au propre.


Il est difficile d'attraper un chat noir dans une pièce sombre, surtout s'il n'y est pas.
http://www.ranmaxime.com

Hors ligne

#20 Le 24/07/2009, à 16:02

Laurent_16

Re : probleme iptables

je pensais inclure les commande dans le script iptables dans /etc/init.d/ puisqu'il commence à chaque démarrage
C'est ce que je ferais en effet, mais le fait de faire ça :
je vais redémarrer plusieurs fois la machine pour être certains du numéro à effacer et je le mettrais dans le script n'est pas nécessaire si tu refais un script avec les bonnes lignes directement

Hors ligne

#21 Le 25/07/2009, à 07:38

ranmax

Re : probleme iptables

En fait, j'aime pas les doutes et je detesterais effacer une de mes requête par un numéro de position qui change.
Bon, de ce que j'ai vu, ça reste cohérent (oui, je débarque et ne connais linux qu'à travers des interfaces graphique ... je découvre encore la ligne de commande tongue)

Donc je vais les mettre dans l'iptables, tout simplement.
Merci encore et au plaisir big_smile


Il est difficile d'attraper un chat noir dans une pièce sombre, surtout s'il n'y est pas.
http://www.ranmaxime.com

Hors ligne

#22 Le 25/07/2009, à 09:53

Laurent_16

Re : probleme iptables

ranmax a écrit :

En fait, j'aime pas les doutes et je detesterais effacer une de mes requête par un numéro de position qui change.
Bon, de ce que j'ai vu, ça reste cohérent (oui, je débarque et ne connais linux qu'à travers des interfaces graphique ... je découvre encore la ligne de commande tongue)

Donc je vais les mettre dans l'iptables, tout simplement.
Merci encore et au plaisir big_smile

Apparemment, je n'ai pas été clair, je pense qu'un script de ce genre devrait te convenir :

#!/bin/bash
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -X
iptables -A INPUT -s 127.0.0.0/24 -j ACCEPT
iptables -A INPUT -p all -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT

iptables -P INPUT DROP

copies ce code dans un fichier texte,
rends le éxecutable : chmod u+x firewall.sh

et surtout testes le via la commande sh firewall.sh

Une fois que tu as validé qu'il soit fonctionnel, édites le fichier /etc/rc.local et ajoutes la path de ton script

Dernière modification par Laurent_16 (Le 25/07/2009, à 09:57)

Hors ligne

#23 Le 25/07/2009, à 10:07

NooP

Re : probleme iptables

Bonjour,

Quelques précisions sur la création d'un script IPTABLES :

On effectue, dans l'ordre :

Nettoyage, Mise en place de la politique par défaut, Mise en place des règles de filtrage, et enfin, rejet de toutes les connexions.

Ceci afin que la politique par défaut soit active le plus tôt possible. Car sur certaines machines, les règles peuvent mettre un certain temps à s'appliquer, et dans le cas que vous montrez au dessus, la machine est totalement ouverte tans que le script n'est pas arrivé à sa fin. Et si jamais ton script contient une règle iptables non valide, il ne se déroulera pas jusqu'au bout, et laissera ta machine non protégée.

Exemple de script pour une machine directement connectée à internet :

#!/bin/bash

# Ne pas toucher cette ligne
MODE="RUN"

# Décommenter la variable ci dessous (MODE="DEBUG") pour logguer tous les paquets
# en fin de règles. Commenter lorsque votre script est fonctionnel.
MODE="DEBUG"

# Nettoyage
iptables -F
iptables -Z
iptables -X

# Police par défaut
iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  DROP

# Local
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Service SSH
iptables -N SSH
iptables -A INPUT -i eth0 -m state --state NEW -j SSH
iptables -A SSH   -j LOG  --log-level debug --log-prefix "[INPUT_ETH0_SSH] "
iptables -A SSH   -p tcp --dport 22 -j ACCEPT

# Anti Spoofing
iptables -N SPOOF
iptables -A INPUT -i eth0 -s 10.0.0.0/8        -j SPOOF
iptables -A INPUT -i eth0 -s 172.16.0.0/12     -j SPOOF
iptables -A INPUT -i eth0 -s 192.168.0.0/16    -j SPOOF
iptables -A SPOOF -j LOG  --log-level debug --log-prefix "[INPUT_ETH0_SPOOF] "
iptables -A SPOOF -j DROP

# Autorisations de la machine
iptables -A INPUT  -i eth0 -m state --state ESTABLISHED,RELATED     -j ACCEPT
iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Securisation du script
#
# Ici, nous loggons tout ce qui n'a pas ete traite par le script au dessus
# et nous DROPPONS. Il est préférable de mettre en commentaires les
# lignes '-j LOG' quand votre script est fonctionnel afin de ne pas surcharger
# les logs de la machine.
#
iptables -N LOGINPUT
iptables -A INPUT    -j LOGINPUT
if [ ${MODE} == "DEBUG" ]; then
  iptables -A LOGINPUT -j LOG --log-level debug --log-prefix "[INPUT_DROP] "
fi
iptables -A LOGINPUT -j DROP

iptables -N LOGFORWARD
iptables -A FORWARD    -j LOGFORWARD
if [ ${MODE} == "DEBUG" ]; then
  iptables -A LOGFORWARD -j LOG --log-level debug --log-prefix "[FORWARD_DROP] "
fi
iptables -A LOGFORWARD -j DROP

iptables -N LOGOUTPUT
iptables -A OUTPUT    -j LOGOUTPUT
if [ ${MODE} == "DEBUG" ]; then
  iptables -A LOGOUTPUT -j LOG --log-level debug --log-prefix "[OUTPUT_DROP] "
fi
iptables -A LOGOUTPUT -j DROP

/!\ ATTENTION /!\

La règle Anti Spoofing est concue pour une machine avec une ip publique directement sur l'interface 'eth0'. c'est a dire une IP du style 80.xx.xx.xx. Cette règle bloquera tout si jamais vous êtes derrière une LiveBox ou autre donnant comme ip à votre PC une adresse dans la plage 192.168.x.x.

Plus de documentation sur iptables : http://www.linux-france.org/prj/inetdoc … -tutorial/

Dernière modification par NooP (Le 27/07/2009, à 10:41)


Votez Macron, vous l'aurez dans le fion !

Hors ligne

#24 Le 25/07/2009, à 10:16

Laurent_16

Re : probleme iptables

NooP a écrit :

Bonjour,

Quelques précisions sur la création d'un script IPTABLES :

On effectue, dans l'ordre :

Nettoyage, Mise en place de la politique par défaut, puis Mise en place des règles de filtrage.

Ceci afin que la politique par défaut soit active le plus tôt possible. Car sur certaines machines, les règles peuvent mettre un certain temps à s'appliquer, et dans le cas que vous montrez au dessus, la machine est totalement ouverte tans que le script n'est pas arrivé à sa fin.

C'est vrai, mais l'exécution d'un script comme ça ne doit pas prendre plus d'une seconde, et je préfère ne pas perdre la main sur ma connexion

Hors ligne

#25 Le 25/07/2009, à 10:19

NooP

Re : probleme iptables

Faux ...

Quand ton script contiendra plus de lignes, ou bien si jamais tu l'appliques juste au moment où tu as un 'cron' qui tourne, ton script peut mettre bien plus d'une seconde pour s'appliquer. De plus, dans ton cas, tu ne perds pas la main '1 seconde' de plus qu'avec mon script ...

J'ai une machine pas très puissante, avec plein de règles iptables, et le script mets près de 8 secondes pour se dérouler.
Si jamais cette machine effectue un job en même temps, je peux arriver à plus de 30 secondes...
On parle de protéger la machine, et dans ce cas, il ne faut rien négliger.

Et si jamais ton script contient une règle iptables non valide ou une erreur, il ne se déroulera pas jusqu'au bout, et laissera ta machine non protégée.

Dernière modification par NooP (Le 25/07/2009, à 10:25)


Votez Macron, vous l'aurez dans le fion !

Hors ligne