View previous topic :: View next topic |
Author |
Message |
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Sat Apr 15, 2006 10:44 am Post subject: [IPtables] Bloquer tout sauf 3 services |
|
|
bonjour !
Certaine le save peut etre deja, je susi en ce moment sur un projet d'une espece de gros active directory mais en linux sous gentoo, et il faudrai une fonction de firewalling sur ce serveur : en gros j'aimerai bloquer tout les port sauf le ftp, http et ssh
esque vous pourriez me donné les regles
(en fait le pojet st a rendre dans 6 jour et il reste plein d'autre truc a faire et je n'ai pas trop le temps de chercher alors que si il y a des habitué ici ca va leur prendre 5s )
merci beaucoup beaucoup ! |
|
Back to top |
|
|
PabOu Veteran
Joined: 11 Feb 2004 Posts: 1088 Location: Namur - Belgium
|
Posted: Sat Apr 15, 2006 12:11 pm Post subject: |
|
|
pour pouvoir faire ca, on a besoin de quelques renseignements supplémentaires.
Les ports, ce sont les ports en entrée (serveur http, ftp et ssh) ou en sortie (station de travail) ?
pour effacer toute config déjà existante (c'est mieux de le faire au début, et ca coute rien ;))
- F = --flush (vider les tables de règles)
- X = --delete-chain (supprimer d'éventuelles chaînes personnelles)
Code: |
iptables -F # -t filter implicite
iptables -X # -t filter implicite
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
|
les règles par défaut, pour TOUT bloquer (quand aucune autre règle ne s'applique ce sont celles-ci qui interviennent) c'est ca :
Code: |
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
|
on autorise tout pour la boucle locale (l'interface lo qui à l'ip 127.0.0.1) parceque sinon c'est une source à problèmes :
Code: |
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
|
pour la suite, j'assume que eth0 est l'interface réseau sur laquelle iptables va travailler, tcp le protocole utilisé, et j'utilise le port 80 mais tu remplaces par ce que t'as besoin (sauf ftp c'est plus délicat car ca utilise plusieurs ports selon le mode que tu veux utiliser (passif/actif)).
Atention, ces règles nécessitent des supports spéciaux dans le kernel (et en règle générale si tu veux utiliser iptables tu dois l'activer dans ton kernel)
pour autoriser un port en entrée et leurs réponses en sortie :
Code: |
iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state ! INVALID -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -o eth0 -m state --state RELATED, ESTABLISHED -j ACCEPT
|
pour autoriser un port en sortie et leurs réponses en entrée :
Code: |
iptables -A OUTPUT -o eth0 -p tcp --sport 1024: --dport 80 -m state --state ! INVALID -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 1024: --sport 80 -m state -- state RELATED, ESTABLISHED - j ACCEPT
|
il y a encore plein d'autres choses possibles : anti-flood, logs, QoS, forwarding, etc...
lorsqu'on fait un firewall, on oublie parfois des choses importantes, comme par exemple autoriser les requetes DNS _________________ Mangez du poulet ! |
|
Back to top |
|
|
man in the hill Veteran
Joined: 15 Dec 2005 Posts: 1552 Location: Madinina
|
|
Back to top |
|
|
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Sat Apr 15, 2006 4:41 pm Post subject: |
|
|
ah la vache c pas aussi simple que ce que je croyais ^^
bon merci je vais regarder ca ^^ |
|
Back to top |
|
|
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Mon Apr 17, 2006 8:14 am Post subject: |
|
|
alalala je galere trop ...
en fait le PC en question servira de passerelle entre un réseau local (sur eth0) et intenet (sur eth1)
il devra s'occuper de faire un partage de connection et d'autorisé en entrée sorti uniquement http ftp et ssh (ainsi que DNS bien sur !)
voila PabOu si tu peux m'aider |
|
Back to top |
|
|
creuvard Apprentice
Joined: 14 May 2004 Posts: 211 Location: Bordeaux
|
Posted: Mon Apr 17, 2006 10:02 am Post subject: |
|
|
Salut
As-tu lie la doc http://www.gentoo.org/doc/fr/home-router-howto.xml ?
Sinon voila quelques liens a regarder:
https://forums.gentoo.org/viewtopic-t-355178-highlight-firewall.html
https://forums.gentoo.org/viewtopic-t-439422-highlight-firewall.html
Sinon voila une ébauche de script iptables.
Code: |
#!/bin/bash
LAN="eth0"
WAN="eth1"
iptables -X
iptables --table filter --flush
iptables --table filter --delete-chain
iptables --table nat --flush
iptables --table nat --delete-chain
iptables --table mangle --flush
iptables --table mangle --delete-chain
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
#########################################
#-Politique par default on détruit tout-#
#########################################
iptables --table filter --policy INPUT DROP
iptables --table filter --policy OUTPUT DROP
iptables --table filter --policy FORWARD DROP
###################################################
#-Mise en place de lo (réseau virtuel localhost)--#
###################################################
#Autorise l'interface loopback à dialoguer avec elle-même
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
###################################
###################################
## Spécifiquation des services ##
###################################
###################################
#1) On autorise le LAN a faire des requette DNS
iptables --append FORWARD --in-interface $WAN -o $LAN --protocol udp --source-port 53 -j ACCEPT
iptables --append FORWARD --in-interfac $LAN -o $WAN --protocol udp --destination-port 53 -j ACCEPT
iptables --append FORWARD --in-interface $WAN -o $LAN --protocol tcp --source-port 53 -j ACCEPT
iptables --append FORWARD --in-interfac $LAN -o $WAN --protocol tcp --destination-port 53 -j ACCEPT
###############################
#-Connexions a Internet (www)-#
###############################
#1) Aurorise le LAN à faire des requettes HTTP
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 443 -m state --state ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 443 -m state --state NEW,ESTABLISHED -j ACCEPT
##################
#-Connection FTP-#
##################
#Autorisation pour le LAN de traverser le routeur
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 21 -m state --state ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 20 -m state --state ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 1024: -m state --state ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
##################
#-Connection SSH-#
##################
# Ouverture pour le serveur ssh
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp -m state --state NEW --destination-port 22 -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp -m state --state ESTABLISHED --source-port 22 -j ACCEPT
|
Voila à peut près ce que cela devrait donner.
Avec ce script ta bécanne ne sert qu'a router les paquets, elle ne pex pas accéder à l'extérieur.
Si tu veux qu'elle y accéde il faut rajouter des règles en INPUT et OUTPUT
C'est a vérifier car je l'ai fait vit e fait
Last edited by creuvard on Wed Apr 19, 2006 11:15 am; edited 1 time in total |
|
Back to top |
|
|
yesi Guru
Joined: 25 Oct 2004 Posts: 331
|
Posted: Mon Apr 17, 2006 10:16 am Post subject: |
|
|
je crois que c'est plus facile de comprendre si tu t'y lances un peu dans la documentation( juste l'essentiel) et puis regarder les exemples d'iptables de certains qui t'aideront à les assimiler...
parce que pour la passerelle, c'est juste Code: |
## police par défaut
iptables -P FORWARD DROP
## on active le forward
echo 1 > /proc/sys/net/ipv4/ip_forward
## on autorise le reseau a envoyer des donnees sur internet
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
## DNS
iptables -A FORWARD -i eth1 -o eth0 -p udp --sport 53 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p udp --dport 53 -j ACCEPT
##on autorise ce que l'on veut seulement:
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m multiport --sports 21,22,80,443 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp -m multiport --dports 21,22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
|
ps: si je dis des conneries, on me corrigera, n'est-ce pas? rassurez-moi!
edit: au temps pour moi d'être lent... |
|
Back to top |
|
|
man in the hill Veteran
Joined: 15 Dec 2005 Posts: 1552 Location: Madinina
|
|
Back to top |
|
|
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Mon Apr 17, 2006 11:29 am Post subject: |
|
|
Merci Beaucoup !!
je vais potasser tout ca quand j'aurai lus de probleme avec mon samba ^^ |
|
Back to top |
|
|
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Tue Apr 18, 2006 8:57 pm Post subject: |
|
|
Voila j'ai fait mon truc !!!
je vous le donne
Code: | #!/bin/bash
LAN="eth0"
WAN="eth1"
iptables -X
iptables --table filter --flush
iptables --table filter --delete-chain
iptables --table nat --flush
iptables --table nat --delete-chain
iptables --table mangle --flush
iptables --table mangle --delete-chain
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
#########################################
#-Politique par default on détruit tout-#
#########################################
iptables --table filter --policy INPUT DROP
iptables --table filter --policy OUTPUT DROP
iptables --table filter --policy FORWARD DROP
###################################################
#-Mise en place de lo (réseau virtuel localhost)--#
###################################################
#Autorise l'interface loopback à dialoguer avec elle-même
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
###################################
###################################
## Spécifiquation des services ##
###################################
###################################
#1) On autorise le LAN a faire des requette DNS (+serveur DNS local)
iptables --append FORWARD --in-interface $WAN -o $LAN --protocol udp --source-port 53 -j ACCEPT
iptables --append FORWARD --in-interfac $LAN -o $WAN --protocol udp --destination-port 53 -j ACCEPT
iptables --append FORWARD --in-interface $WAN -o $LAN --protocol tcp --source-port 53 -j ACCEPT
iptables --append FORWARD --in-interfac $LAN -o $WAN --protocol tcp --destination-port 53 -j ACCEPT
iptables -A INPUT -i $LAN --protocol udp --source-port 53 -j ACCEPT
iptables -A INPUT -i $LAN --protocol tcp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol tcp --destination-port 53 -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol ucp --destination-port 53 -j ACCEPT
iptables -A INPUT -i $WAN --protocol udp --source-port 53 -j ACCEPT
iptables -A INPUT -i $WAN --protocol tcp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o $WAN --protocol tcp --destination-port 53 -j ACCEPT
iptables -A OUTPUT -o $WAN --protocol ucp --destination-port 53 -j ACCEPT
###############################
#-Connexions a Internet (www)-#
###############################
#1) Aurorise le LAN à faire des requettes HTTP
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 443 -m state --state ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 443 -m state --state NEW,ESTABLISHED -j ACCEPT
##########################################
#-Connexions a l'interface d'admin (www)-#
##########################################
#1) Aurorise le LAN à faire des requettes HTTP
iptables -A INPUT -i $LAN --protocol tcp --source-port 80 -j ACCEPT
iptables -A INPUT -i $LAN --protocol tcp --destination-port 80 -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol tcp --destination-port 80 -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol tcp --source-port 80 -j ACCEPT
##################
#-Connection FTP-#
##################
#Autorisation pour le LAN de traverser le routeur
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 21 -m state --state ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 20 -m state --state ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 1024: -m state --state ESTABLISHED -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
###########################
#-Connexions a ldap (www)-#
###########################
#1) Aurorise le LAN à faire des requettes HTTP
iptables -A INPUT -i $LAN --protocol tcp --source-port 686 -j ACCEPT
iptables -A INPUT -i $LAN --protocol tcp --destination-port 686 -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol tcp --destination-port 686 -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol tcp --source-port 686 -j ACCEPT
##################
#-Connection SSH-#
##################
# Ouverture pour le serveur ssh
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp -m state --state NEW --source-port 22 -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp -m state --state ESTABLISHED --destination-port 22 -j ACCEPT
iptables -A INPUT -i $LAN --protocol tcp --source-port 22 -j ACCEPT
iptables -A INPUT -i $LAN --protocol tcp --destination-port 22 -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol tcp --destination-port 22 -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol tcp --source-port 22 -j ACCEPT |
bon bin j'ai pas trop compris l'interet des NEW et ESTABLISHED (sham on me) mais ca marche bien comme ca
merci de votre aide |
|
Back to top |
|
|
creuvard Apprentice
Joined: 14 May 2004 Posts: 211 Location: Bordeaux
|
Posted: Tue Apr 18, 2006 9:33 pm Post subject: |
|
|
Salut
J'ai pas eut le temps de regarder de prés ton script.
Mais pour les NEWS et ESTABLISHED voila en gros comment ca marche:
ESTABLISHED =>La connection est établie et a vue les paquets ont transités dans les deux directions. (En gros c'est une réponse a une requette par exemple HTTP tu l'as demander donc c'est normale de la laisser rentrer)
NEW =>Le paquet amorce une nouvelle connexion.
RELATED =>Le paquet amorce une nouvelle connexion qui est apparenté à une connexion existante.
INVALID =>Le paquet ne semble appartenir a aucune des connexions suivies.
En gros lol |
|
Back to top |
|
|
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Tue Apr 18, 2006 11:21 pm Post subject: |
|
|
woua c'est vraiment puissant iptable ! je cherchais un truc a l'epoque ou j'etait sous windows et j'ai pas trouvé ... j'ai l'impression qu'il n'as pas d'equivalant !!
super puissant !!
encore merci a la comunauté tout entiere et a chacun des individu qui la compose |
|
Back to top |
|
|
babykart Guru
Joined: 08 Oct 2004 Posts: 415
|
Posted: Wed Apr 19, 2006 2:35 am Post subject: |
|
|
un p'tit + là.... _________________ >> Gentoo-FR <<
----- |
|
Back to top |
|
|
PabOu Veteran
Joined: 11 Feb 2004 Posts: 1088 Location: Namur - Belgium
|
Posted: Wed Apr 19, 2006 6:13 am Post subject: |
|
|
Anthyme wrote: | woua c'est vraiment puissant iptable ! je cherchais un truc a l'epoque ou j'etait sous windows et j'ai pas trouvé ... j'ai l'impression qu'il n'as pas d'equivalant !! |
Et encore, ce n'est que le bout de l'iceberg :) hihi ! ;)
Pour ton script, oublie pas d'activer l'ip forwarding (avec un cat dans son entrée dans proc ou bien dans le fichier sysctl.conf), sinon le partage de la connexion risque de ne pas bien fonctionner.
J'ai pas compris pourquoi tu autorises le LAN à accéder au serveur DNS si tu l'autorise déjà à accéder aux DNS sur internet ? Est-ce que tu impléments un cache DNS sur ton lan (autre machine que le firewall avec ce script iptables) avec des règles particulières juste pour ton domaine ? et puis je pense que tu as un problème au niveau des ports.. un --source-port combiné à un INPUT.. ce serait plutôt --destination-port (-dport). et l'inverse également pour le OUTPUT+dport qui doit devenir OUTPUT+sport.
Une connexion client n'utilise (théoriquement) jamais de port inférieur à 1024, donc le port 53 ne sera jamais utilisé par un client :p par contre c'est le port de ton serveur ;)
Meme problème pour l'interface d'admin ET pour ldap, tu as mis 4 lignes, dont 2 sont inutiles car c'est le même problème. Ces lignes inutiles sont des trous potentiels de sécurité.
pour tes requetes www, tu n'utilises pas le RELATED... (pour info : ! INVALID == tout ce qui n'est pas INVALID, donc en somme, les 3 autres qui sont NEW, RELATED, ESTABLISHED)
pour les connexions FTP, les 2 dernieres lingnes correspondent à un transfert PASSIF. Ce mode n'est pas applicable derriere un routeur sauf si tu routes les ports utilisés.. mais il n'y a pas moyen de savoir de quels ports il s'agit car c'est choisi dynamiquement (à partir de 1024). Et enfin, pour ftp, il ne faut pas oublier que tu as besoin de ip_conntrack_ftp dans ton kernel (c'est un module netfilter/iptables)
Et pour terminer, le dernier point : SSH.
Là, je ne suis pas sur de ce que tu as voulu faire, mais une fois de plus, je suis certain qu'il y a encore une fois (voire 2) la même erreur (la même que pour ldap, interface admin, etc.. )
Les 2 premieres lignes pour SSH.. t'as voulu faire quoi ?
Là, tu autorises INTERNET à contacter un serveur SSH qui se trouve sur ton LAN, derriere le routeur... en te trompant de ports avec la confusion source/destination comme précédemment. Ou bien tu ne t'es pas trompé pour ces ports, mais alors tu t'es trompé dans les --state
Je suis fort confus de ce que tu as dit : "mais ca marche bien comme ca". Tu es sur ? :s _________________ Mangez du poulet ! |
|
Back to top |
|
|
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Wed Apr 19, 2006 8:37 am Post subject: |
|
|
en fait j'avais tester que la connexion ssh au server (c un peu soft je c mais il etait tard ^^)
sinon les 2 premiere lignes du SSH c'est creuvard qui me les a passé mais je crois qu'elle sont inversé (le but etant de donnée l'accessibilité de SSH a internet)
voila j'ai modifié et ca donne ca :
Code: | #!/bin/bash
LAN="eth0"
WAN="eth1"
iptables -X
iptables --table filter --flush
iptables --table filter --delete-chain
iptables --table nat --flush
iptables --table nat --delete-chain
iptables --table mangle --flush
iptables --table mangle --delete-chain
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
#########################################
#-Politique par default on détruit tout-#
#########################################
iptables --table filter --policy INPUT DROP
iptables --table filter --policy OUTPUT DROP
iptables --table filter --policy FORWARD DROP
###################################################
#-Mise en place de lo (réseau virtuel localhost)--#
###################################################
#Autorise l'interface loopback à dialoguer avec elle-même
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
###################################
###################################
## Spécifiquation des services ##
###################################
###################################
#1) On autorise le LAN a faire des requette DNS (+serveur DNS local)
iptables --append FORWARD --in-interface $WAN -o $LAN --protocol udp --source-port 53 -j ACCEPT
iptables --append FORWARD --in-interfac $LAN -o $WAN --protocol udp --destination-port 53 -j ACCEPT
iptables --append FORWARD --in-interface $WAN -o $LAN --protocol tcp --source-port 53 -j ACCEPT
iptables --append FORWARD --in-interfac $LAN -o $WAN --protocol tcp --destination-port 53 -j ACCEPT
iptables -A INPUT -i $LAN --protocol udp --destination-port 53 -j ACCEPT
iptables -A INPUT -i $LAN --protocol tcp --destination-port 53 -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol tcp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol tcp --source-port 53 -j ACCEPT
iptables -A INPUT -i $WAN --protocol udp --destination-port 53 -j ACCEPT
iptables -A INPUT -i $WAN --protocol tcp --destination-port 53 -j ACCEPT
iptables -A OUTPUT -o $WAN --protocol tcp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o $WAN --protocol tcp --source-port 53 -j ACCEPT
###############################
#-Connexions a Internet (www)-#
###############################
#1) Aurorise le LAN à faire des requettes HTTP
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 80 -m state --state ! INVALID -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 80 -m state --state ! INVALID -j ACCEPT
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 443 -m state --state ! INVALID -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 443 -m state --state ! INVALID -j ACCEPT
##########################################
#-Connexions a l'interface d'admin (www)-#
##########################################
#1) Aurorise le LAN à faire des requettes HTTP
iptables -A INPUT -i $LAN --protocol tcp --destination-port 80 -m state --state ! INVALID -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol tcp --source-port 80 -m state --state ! INVALID -j ACCEPT
##################
#-Connection FTP-#
##################
#Autorisation pour le LAN de traverser le routeur
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 21 -m state --state ! INVALID -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 21 -m state --state N! INVALID -j ACCEPT
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 20 -m state --state ! INVALID -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 20 -m state --state ! INVALID -j ACCEPT
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 1024: -m state --state ! INVALID -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp --destination-port 1024: -m state --state ! INVALID -j ACCEPT
######################
#-Connexions a ldap -#
######################
#1) Aurorise le LAN à faire des requettes HTTP
iptables -A INPUT -i $LAN --protocol tcp --destination-port 686 -m state --state ! INVALID -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol tcp --source-port 686 -m state --state ! INVALID -j ACCEPT
##################
#-Connection SSH-#
##################
# Ouverture pour le serveur ssh
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp -m state --state ! INVALID --source-port 22 -j ACCEPT
iptables --append FORWARD -i $LAN -o $WAN --protocol tcp -m state --state ! INVALID --destination-port 22 -j ACCEPT
iptables -A INPUT -i $LAN --protocol tcp --destination-port 22 -m state --state ! INVALID -j ACCEPT
iptables -A OUTPUT -o $LAN --protocol tcp --source-port 22 -m state --state ! INVALID -j ACCEPT |
Je pense que c'est mieu |
|
Back to top |
|
|
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Wed Apr 19, 2006 10:19 am Post subject: |
|
|
ah merde samba ne passe plus evidement ... vous connaissez le port ?
mci |
|
Back to top |
|
|
lesourbe l33t
Joined: 24 Nov 2005 Posts: 710 Location: Champagne !
|
Posted: Wed Apr 19, 2006 10:41 am Post subject: |
|
|
Anthyme wrote: | ah merde samba ne passe plus evidement ... vous connaissez le port ?
mci |
139 et 445 pour le discovery non ?
EDIT:
un coup de google me renvoie ça :
Quote: |
netbios-ns137/tcp# NETBIOS Name Service
netbios-ns137/udp
netbios-dgm138/tcp# NETBIOS Datagram Service
netbios-dgm138/udp
netbios-ssn139/tcp# NETBIOS session service
netbios-ssn139/udp
|
_________________ Is that a banhammer ?
LeSourbe, Member of EPowerforce. |
|
Back to top |
|
|
man in the hill Veteran
Joined: 15 Dec 2005 Posts: 1552 Location: Madinina
|
Posted: Wed Apr 19, 2006 11:35 am Post subject: |
|
|
salut,
Avant de vouloir faire compliqué , essai la simplicité et l'efficacité...C'est dommage que cette adresse http://www.pcflank.com/ soit indisponible mais on peut tester chez sygate donc tous tes ports doivent être BLOCKED c-a-d Stealthed complètement invisible pour les scanners...
sauf ceux que tu laisses volontairement ouvert...
Moi, j'ai deux machines qui m'appartiennent sur mon réseaux comme tu as pu le voir ds mon post précédent et à l'époque , je me suis vite rendu compte que ce n'est pas la peine de mettre des lignes que l'on ne comprend pas qui peuvent amener des failles de sécu comme indique PaBou...donc moi j'ai opté pour laisser passer toutes les requêtes venant du LAN avec la politique OUTPUT ACCEPT et aussi d'accepter les réponses à ces requêtes (connexion déjà établie), par contre toute nouvelle connexion venant du WAN (du net) son droppé sans une autorisation explicite de ma part...je ne vois pas de protection contre les différent paquets qu'un pirate peut envoyé pour tester tes ports...une ligne contre les paquets ICMP est nécessaire...
Avec ta politique de sécu, tu dois bien être conscient qu'a chaque fois que tu voudras installer un logiciel qui utilise ds ports il te faudra modifier ton script et cela peut devenir vite fait pénible si tu n'as que ton petit réseaux chez toi tranquille...
Pour la lisibilité de ton script :
--append = -A
--table = -t
[EDIT]Est-ce que tu peux donner un plan de ton réseau[/EDIT]
@+ _________________ Get Up and Go !
Last edited by man in the hill on Wed Apr 19, 2006 11:39 am; edited 1 time in total |
|
Back to top |
|
|
creuvard Apprentice
Joined: 14 May 2004 Posts: 211 Location: Bordeaux
|
Posted: Wed Apr 19, 2006 11:38 am Post subject: |
|
|
Je serais toi je virerais tout les ! INVALID:
Je m'explique:
INVALID =>Le paquet ne semble appartenir a aucune des connexions suivies. Donc comme le dit PabOu ! INVALID == tout ce qui n'est pas INVALID, donc en somme, les 3 autres qui sont NEW, RELATED, ESTABLISHED.
Dans cette ligne (au niveau du FTP) par exemple:
Code: |
iptables --append FORWARD -i $WAN -o $LAN --protocol tcp --source-port 1024: -m state --state ! INVALID -j ACCEPT
|
Tu acceptes les nouvelles connections venant du WAN (monde extérieur) qui vont sur ton LAN et ce venant de tout les ports supérieur à 1024. Et ca c'est pas terrible au niveau sécurité.
Pour tester la solidité de ton pare-feu je te suggère de jouer avec nmap (C'est dans portage)
Il y a avec cet outils quelques options trés simpatique.
Par exemple tu peux simuler le port source: -g(num du port)
Code: |
nmap -P0 -g53 chez-toi.com
|
La politique de man in the hill est a prendre avec des pincettes je dirais. Elle est certes plus simple a écrire mais imaginons que tu te face "hacker". L'intrus peux donc te mettre un keylogger qui lui transmettra tout test fait et gestes. Tandis que si tu limite la sortie ya moins de chance pour que les infos arrivent chez le pirate. |
|
Back to top |
|
|
lesourbe l33t
Joined: 24 Nov 2005 Posts: 710 Location: Champagne !
|
Posted: Wed Apr 19, 2006 12:05 pm Post subject: |
|
|
man in the hill wrote: | [EDIT]Est-ce que tu peux donner un plan de ton réseau[/EDIT]
@+ |
Leçon 1 : resister au social engineering _________________ Is that a banhammer ?
LeSourbe, Member of EPowerforce. |
|
Back to top |
|
|
man in the hill Veteran
Joined: 15 Dec 2005 Posts: 1552 Location: Madinina
|
Posted: Wed Apr 19, 2006 12:25 pm Post subject: |
|
|
Salut,
Quote: | creuvard a écrit :
imaginons que tu te face "hacker" |
Ds ce cas iptables est mal codé et conntrack fait mal son boulot car j'ai bien précisé de laisser rentrer que les connexions déjà établie et ceux explicitement authorisées, donc tu peux aussi te faire "hacker" par ton ftp, etc...
Faut pas non plus être parano alors que tu fais ton premier script et les possibilités sont énormes...et rajouter des lignes que tu ne captes pas n'est pas des plus judicieux car chacun doit adapter à ses besoins, c'est cela qui est important...
Creuvart , j'aimerais bien que tu essais de me "hacker" un de ces 4 avec mon script qui te parait simple mais je sais qu'il est efficace...Attention je ne suis pas contre ta politique d'ailleurs ds les semaines qui viennent, je vais me replonger ds iptables mais c'est pas sûr que je change mon script ...
[EDIT]lesourbe mon réseau avec une IP dynamique et mon script iptables est ds mon premier post, tu peux essayer de me hacker [/EDIT]
@+ _________________ Get Up and Go ! |
|
Back to top |
|
|
babykart Guru
Joined: 08 Oct 2004 Posts: 415
|
Posted: Wed Apr 19, 2006 12:34 pm Post subject: |
|
|
je trouve ce script trés touffu...
et comme personne n'a jeté un oeil sur le lien que j'avais mis plus haut je poste le script que j'utilise:
/etc/netfilter-rules.conf
Code: | # Didier Rebeix : 14 02 2005
# Stephane Malinet : 11 04 2006
### configuration generale
# autorise-t-on le ping
ping="true"
# on autorise tout sur ces interfaces
# (laissez toujours la boucle locale)
all="lo"
# ou plus specifiquement par protocole, par interface et par port
interfaces_TCP="eth0+21+22+25+53+80+123+443+873+993+3632+4080 eth1+22+25+873+993"
interfaces_UDP="eth0+53+68+123"
# a l'exception de tout ce qui vient de ces reseaux
#exceptions="192.168.0.0/24 \
# 192.168.1.0/24"
# log t'on les packets droppés ?
logdrop="true"
### configuration passerelle
gateway="true"
# interface externe
extif="eth1"
# interface interne
intif="eth0"
### dans le cas d'une passerelle: on veut que les requetes sur le port 80 soit forwardes sur
### une machine du réseau local
#iptables -t nat -A PREROUTING -p TCP --dport 80 -i $extif -j DNAT --to-destination 192.168.129.2:80
#iptables -A FORWARD -i $extif -o $intif -p TCP --dport 80 -j ACCEPT
# multiposte free.fr
#iptables -t nat -A PREROUTING -p UDP --dport 32000:34000 -j DNAT --to-destination 192.168.0.2
#iptables -A FORWARD -i $extif -o $intif -p UDP -s 212.27.38.253 --dport 32000:34000 -j ACCEPT
### Dr : exemples interdictions specifiques par IP source (a destination du port 25)
#iptables -A INPUT -p tcp --dport 25 -j LOGDROP -s x.x.x.x
#iptables -A INPUT -p tcp --dport 25 -j LOGDROP -s x.x.x.x/x |
netfilter-rules
Code: | #!/bin/bash
# Didier Rebeix 20050214 : script de gestion iptables simplifiée
# Modifié par Stephane Malinet le 20060411
# necessite un fichier /etc/netfilter-rules.
IPT="/sbin/iptables"
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -F INPUT
$IPT -F OUTPUT
$IPT -F FORWARD
$IPT -F PREROUTING -t nat
$IPT -F PREROUTING -t mangle
$IPT -F POSTROUTING -t nat
$IPT -F POSTROUTING -t mangle
$IPT -F LOGDROP -t filter > /dev/null 2>&1
$IPT -X LOGDROP -t filter > /dev/null 2>&1
$IPT -N LOGDROP
[ ! -f /etc/netfilter-rules.conf ] && {
echo "/etc/netfilter-rules.conf n'existe pas" 1>&2
exit 1
}
. /etc/netfilter-rules.conf
$IPT -t filter -A LOGDROP -j LOG --log-prefix "[DROP] "
$IPT -t filter -A LOGDROP -j DROP
OLDIFS=$IFS
[[ $ping == "true" ]] && {
$IPT -A INPUT -p ICMP -j ACCEPT
}
for except in $exceptions ; do
$IPT -t filter -A INPUT -s $except -j ACCEPT
done
for int_all in $all ; do
$IPT -t filter -A INPUT -i $int_all -j ACCEPT
done
for int_t in $interfaces_TCP ; do
IFS="+"
set -- $int_t
int_t=$1
shift
nport=$#
i=0;
while (( $i < $nport )) ; do
$IPT -t filter -A INPUT -i $int_t -p TCP --dport $1 -j ACCEPT
shift
i=$[$i+1]
done
done
IFS=$OLDIFS
for int_u in $interfaces_UDP ; do
IFS="+"
set -- $int_u
int_u=$1
shift
nport=$#
i=0;
while (( $i < $nport )) ; do
$IPT -t filter -A INPUT -i $int_u -p UDP --dport $1 -j ACCEPT
shift
i=$[$i+1]
done
done
$IPT -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[[ $gateway == "true" ]] && {
$IPT -t nat -A POSTROUTING -o $extif -j MASQUERADE
$IPT -A FORWARD -i $intif -o $extif -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -o $intif -i $extif -m state --state ESTABLISHED,RELATED -j ACCEPT
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
}
[[ $logdrop == "true" ]] && {
$IPT -t filter -A INPUT -j LOG --log-prefix "[DROP] "
}
IFS=$OLDIFS
# on fait tout ca à la fin pour eviter de bloquer le script(et le reseau)
# en cas d'affichage (ssh)
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT |
_________________ >> Gentoo-FR <<
-----
Last edited by babykart on Wed Apr 19, 2006 1:31 pm; edited 1 time in total |
|
Back to top |
|
|
man in the hill Veteran
Joined: 15 Dec 2005 Posts: 1552 Location: Madinina
|
Posted: Wed Apr 19, 2006 1:15 pm Post subject: |
|
|
salut,
babykart , c'est une approche différente que je ne connaîssais pas mais je ne suis pas sûr que cela va être plus clair pou nôtre ami mais au moins il a le choix pour configurer à sa guise...
@+ _________________ Get Up and Go ! |
|
Back to top |
|
|
babykart Guru
Joined: 08 Oct 2004 Posts: 415
|
Posted: Wed Apr 19, 2006 1:30 pm Post subject: |
|
|
man in the hill wrote: | salut,
babykart , c'est une approche différente que je ne connaîssais pas mais je ne suis pas sûr que cela va être plus clair pou nôtre ami mais au moins il a le choix pour configurer à sa guise...
@+ |
là c'est pareil: toute la config' se fait dans le fichier /etc/netfilter-rules.conf dont la syntaxe me parait des plus simple... il n'y a aucune modif' à faire dans le script netfilter-rules... _________________ >> Gentoo-FR <<
----- |
|
Back to top |
|
|
lesourbe l33t
Joined: 24 Nov 2005 Posts: 710 Location: Champagne !
|
Posted: Wed Apr 19, 2006 1:37 pm Post subject: |
|
|
man in the hill wrote: | [EDIT]lesourbe mon réseau avec une IP dynamique et mon script iptables est ds mon premier post, tu peux essayer de me hacker [/EDIT] @+ |
Pour répondre comme si je pouvais le faire :
aucun intérêt.
_________________ Is that a banhammer ?
LeSourbe, Member of EPowerforce. |
|
Back to top |
|
|
|