Script IPTABLES

Fermé
slisko - 18 nov. 2008 à 11:28
 slisko - 21 nov. 2008 à 10:15
Bonjour,

bon déja je dois commencer par avouer que je suis un gros gros noob en la matière!

je voudrais sécuriser ma machine avec IPTABLES, donc je fais un script pour ça, est ce que vous pourriez m'aider a corriger les erreurs et a améliorer mon script?

donc il s'agit d'une machine d'un lan derrière une freebox.

sur cette station il y a un serveur FTP, APACHE, TOMCAT, SSH.

donc ce que j'ai commencé à faire:

#!/bin/sh
Iptables –I INPUT –p tcp --dport 80 –j ACCEPT
Iptables –I INPUT –p tcp --dport 8080 –j ACCEPT
Iptables –I INPUT –p tcp --dport 20:21 –j ACCEPT
Iptables –I INPUT –p tcp --dport 22 –j ACCEPT

Iptables –I OUTPUT –p tcp --dport 80 –j ACCEPT
Iptables –I OUTPUT –p tcp --dport 5900 –j ACCEPT

iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

voila alors j'hesite sur un point, le traffic sortant, j'ai mis le défaut sur DROP mais du coup je vais devoir autoriser toute mes applis en sortie genre amsn skype les clients ftp, le ports netbios etc...

est-ce que si je place ça sur ACCEPT en défaut je cours un gros risque?

j'ai par défaut accepté tout le traffic sur mon lan puisque c'est une zone de confiance.

voila j'attends vos avis et corrections.

Merci pour votre aide
A voir également:

8 réponses

je me permets de faire une petite mise à jour.

en fait j'ai mis en place ces règles là, finallement j'ai opter pour un libre traffic des paquets sortants.

j'ai donc lancé mon script, fait un iptables -L, j'ai bien règles que j'ai mis en place.

j'ai fait un iptables-save, et j'ai ajouté IPTABLES en default au rc.

qd je démarre, je lance un iptables -L, j'ai bien la bonne configuration de sauvée, mais par contre impossible de me connecter à distance sur les ports filtré, genre ssh ftp etc...

quelqu'un saurait me dire pourquoi?

merci,
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
19 nov. 2008 à 16:35
Depuis chez toi ou depuis ailleurs vers chez toi?
0
ah merci!

je commençais à desespérer !

alors en fait de l'exterieur vers chez moi impossible de se connecter !

alors j'ai fais ce script là:

#!/bin/sh


iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X


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


iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT


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


iptables -A INPUT -m state --state NEW -p tcp --dport 20:21 -j ACCEPT

iptables -A INPUT -m state --state NEW -p tcp --dport 2244 -j ACCEPT

iptables -A INPUT -m state --state NEW -p tcp --dport 8080 -j ACCEPT

iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

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

j'ai executé le script, ensuite j'ai fais iptables -L et j'obtiens ça:

Chain INPUT (policy DROP)
target prot opt source destination
fail2ban-SSH tcp -- anywhere anywhere tcp dpt:22
ACCEPT all -- anywhere anywhere
ACCEPT all -- 192.168.0.0/24 anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere state NEW tcp dpts:ftp-data:ftp
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:22
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http-alt
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http

Chain FORWARD (policy DROP)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere 192.168.0.0/24

Chain fail2ban-SSH (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere

ensuite je lance iptables mais le script d'init me dit de d'abord creer des regles puis les sauvegarder, donc ben les règles c'etait fait donc j'ai fait iptables-save, j'ai ajouté iptables au rc au démarrage.

je reboot je relance un iptables -L et j'ai bien mes règles! par contre de l'exterieur impossible d'attaquer ma machine en ssh en ftp ou en apache...

et la je sèche completement! qu'est ce que je peux faire?

merci de ton aide
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
20 nov. 2008 à 11:12
je reboot je relance un iptables -L et j'ai bien mes règles! par contre de l'exterieur impossible d'attaquer ma machine en ssh en ftp ou en apache...

Et dis moi entre ta machine et l'extérieur, ya un modem? Il est en mode routeur?
0
merci pour ta réponse,

ben oui en fait si tu veux, le pc est dans un LAN derrière une freebox en mode routeur.

tout marchait tres bien, je pouvais me connecter a distance depuis n'importe quelle station distante.

mais simplement j'ai constaté des tentatives de brute force dans les log, sur les accès SSH.

donc je me suis dis que je devais être plus restrictif et plus sécuriser ma machine en utilisant SSH+FAIL2BAN.

avant ça, rien n'était filtré.

et maintenant le filtrage m'empeche de passer, mais je ne sais pas pourquoi.

peut etre que les regles ne sont pas dans le bon ordre ou pas la bonne syntaxe, je n'ai fait aucune modif de peur d'empirer la situation, j'ai toujours les meme règles que dans le post au dessus.
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
20 nov. 2008 à 11:34
Faudrait quand même que tu tente de faire toc toc sur ta machine pour voir.
Faudrait que tu te procures nmap et que tu fasses un petit test de l'extérieur (ou même de chez toi).

nmap -sS ton_addresse
-
Le gâteau est un mensonge!
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
20 nov. 2008 à 11:35
Mieux, si tu veux pas te prendre la tête, va là https://www.grc.com/x/ne.dll?bh0bkyd2 clique sur proceed et clique sur all service port.
Et raconte moi la couleur des jolis carrés qu'il te dessine :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ok merci pour l'info,

actuellement je suis sur mon lieu de travail donc je n'ai pas accès a ma station, meme a distance du coup ^^

je ferai le test ce soir, je ne sais pas a quoi correspond ton lien, je n'y ai pas accès a travers mon proxy.

si c'est un scanner de port, j'ai deja fait un NMAP de mon IP publique et tout les ports sont flagués comme filtrés.
0
alors j'ai suivi ton lien donc en fait oui c'est bien un scanner de ports, le résultat:

GRC Port Authority Report created on UTC: 2008-11-20 at 17:24:25

Results from scan of ports: 0-1055

0 Ports Open
2 Ports Closed
1054 Ports Stealth
---------------------
1056 Ports Tested

NO PORTS were found to be OPEN.

Ports found to be CLOSED were: 21, 80

Other than what is listed above, all ports are STEALTH.

TruStealth: FAILED - NOT all tested ports were STEALTH,
- NO unsolicited packets were received,
- A PING REPLY (ICMP Echo) WAS RECEIVED

donc tout verts sauf 2 bleus :)

alors pourquoi les ports ou j'ai specifié ACCEPT et sur les lequels il y a des services qui tournent sont ils fermés...
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
21 nov. 2008 à 01:01
Ports found to be CLOSED were: 21, 80

Est ce que ton routeur redirige bien vers le bon ordinateur au niveau du nat?
Et, certes c'est con mais on ne sait jamais, apache et ton serveur ftp sont bien démarrés?
0
oui le nat est bien configuré, les services sont bien lancé je peux me connecter en local sur ma machine.

tout fonctionnait très bien avant que j'ajoute IPTABLES.

je vois que toi aussi ça te laisse perplexe, je suis sur que c'est pas grand chose qui empeche que ça marche, je lis de la doc sur IPTABLES depuis hier mais je n'ai pas encore trouvé mon erreur.
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
21 nov. 2008 à 10:03
C'est quand même étrange.
Port fermé = ports accessible mais pas de service à l'écoute sur ce port.
Si tu viens de faire ça depuis chez toi, soit ta box ne redirige pas bien les ports, soit tu n'as pas de service à l'écoute. Mais là ce n'est pas un problème lié à tes règles de firewall (pour simuler un port fermé avec iptables on utilise REJECT au lieu de drop, et tu n'as aucune règle comme ça.)

D'ailleurs commence tes tests avec apache, le protocole ftp est un peu chiant entre le mode actif et passif....


Ah non attends chuis bête!
Je crois que le soucis est là:
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT 

Quand un paquet vient de l'extérieur (ton ip publique) pour se connecter à un port il faut que tu lui répondes. Or cette règle n'est pas suffisante.
Si 80.2.3.4 se connecte chez toi, la réponse sera filtrée.
Met ton OUTPUT en ACCEPT par défaut pour voir.
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
21 nov. 2008 à 10:06
AH ben non il est en accept :-/
0
alors en fait par rapport au 1er post la haut il y a eu des changements comme expliqué un peu plus bas.

Finallement la default policy en output est ACCEPT

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere 192.168.0.0/24

si je ne dis pas de betises:

iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT

ça ne s'applique qu'au reseau local.

et dans le cas ou 80.1.2.3 veut se connecter par exemple en SSH.

pour moi les règles qui s'appliquent sont:

Iptables –I INPUT –p tcp --dport 22 –j ACCEPT

puis

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

puisque la connexion sera établie.

et comme de toute façon j'ai bien

iptables -P OUTPUT ACCEPT

normalement la requête ne devrait pas être filtrée en sortie.

donc la normalement ça réponds bien à ta question? c'est bien ce que tu voulais savoir?

merci en tout cas pour ton aide c'est tres gentil de ta part.
0