Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[IPtables] Bloquer tout sauf 3 services
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Sat Apr 15, 2006 10:44 am    Post subject: [IPtables] Bloquer tout sauf 3 services Reply with quote

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
View user's profile Send private message
PabOu
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1088
Location: Namur - Belgium

PostPosted: Sat Apr 15, 2006 12:11 pm    Post subject: Reply with quote

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
View user's profile Send private message
man in the hill
Veteran
Veteran


Joined: 15 Dec 2005
Posts: 1552
Location: Madinina

PostPosted: Sat Apr 15, 2006 4:07 pm    Post subject: Reply with quote

Salut,


J'ai fais un script très simple qui est mon parfeu actuel pour mon réseau :
http://www.guidelinux.org/phpBB/viewtopic.php?t=256&start=30

pseudo : invité=k.rouge alias man in the hill

Il y a aussi des liens...





@+
_________________
Get Up and Go !
Back to top
View user's profile Send private message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Sat Apr 15, 2006 4:41 pm    Post subject: Reply with quote

ah la vache c pas aussi simple que ce que je croyais ^^

bon merci je vais regarder ca ^^
Back to top
View user's profile Send private message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Mon Apr 17, 2006 8:14 am    Post subject: Reply with quote

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
View user's profile Send private message
creuvard
Apprentice
Apprentice


Joined: 14 May 2004
Posts: 211
Location: Bordeaux

PostPosted: Mon Apr 17, 2006 10:02 am    Post subject: Reply with quote

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
View user's profile Send private message
yesi
Guru
Guru


Joined: 25 Oct 2004
Posts: 331

PostPosted: Mon Apr 17, 2006 10:16 am    Post subject: Reply with quote

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
View user's profile Send private message
man in the hill
Veteran
Veteran


Joined: 15 Dec 2005
Posts: 1552
Location: Madinina

PostPosted: Mon Apr 17, 2006 10:46 am    Post subject: Reply with quote

salut,


Avant tout il faut que tu comprennes qques principes pour piocher ce que tu veux ds toutes les infos...

http://christian.caleca.free.fr/netfilter.html
http://www.netfilter.org/documentation/index.html#documentation-howto


Pour tester to parfeu:
http://scan.sygatetech.com/preicmpscan.html



@+
_________________
Get Up and Go !
Back to top
View user's profile Send private message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Mon Apr 17, 2006 11:29 am    Post subject: Reply with quote

Merci Beaucoup !!

je vais potasser tout ca quand j'aurai lus de probleme avec mon samba ^^
Back to top
View user's profile Send private message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Tue Apr 18, 2006 8:57 pm    Post subject: Reply with quote

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
View user's profile Send private message
creuvard
Apprentice
Apprentice


Joined: 14 May 2004
Posts: 211
Location: Bordeaux

PostPosted: Tue Apr 18, 2006 9:33 pm    Post subject: Reply with quote

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
View user's profile Send private message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Tue Apr 18, 2006 11:21 pm    Post subject: Reply with quote

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
View user's profile Send private message
babykart
Guru
Guru


Joined: 08 Oct 2004
Posts: 415

PostPosted: Wed Apr 19, 2006 2:35 am    Post subject: Reply with quote

un p'tit + ....
_________________
>> Gentoo-FR <<
-----
Back to top
View user's profile Send private message
PabOu
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1088
Location: Namur - Belgium

PostPosted: Wed Apr 19, 2006 6:13 am    Post subject: Reply with quote

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
View user's profile Send private message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Wed Apr 19, 2006 8:37 am    Post subject: Reply with quote

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
View user's profile Send private message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Wed Apr 19, 2006 10:19 am    Post subject: Reply with quote

ah merde samba ne passe plus evidement ... vous connaissez le port ?

mci
Back to top
View user's profile Send private message
lesourbe
l33t
l33t


Joined: 24 Nov 2005
Posts: 710
Location: Champagne !

PostPosted: Wed Apr 19, 2006 10:41 am    Post subject: Reply with quote

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
View user's profile Send private message
man in the hill
Veteran
Veteran


Joined: 15 Dec 2005
Posts: 1552
Location: Madinina

PostPosted: Wed Apr 19, 2006 11:35 am    Post subject: Reply with quote

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
View user's profile Send private message
creuvard
Apprentice
Apprentice


Joined: 14 May 2004
Posts: 211
Location: Bordeaux

PostPosted: Wed Apr 19, 2006 11:38 am    Post subject: Reply with quote

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
View user's profile Send private message
lesourbe
l33t
l33t


Joined: 24 Nov 2005
Posts: 710
Location: Champagne !

PostPosted: Wed Apr 19, 2006 12:05 pm    Post subject: Reply with quote

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
View user's profile Send private message
man in the hill
Veteran
Veteran


Joined: 15 Dec 2005
Posts: 1552
Location: Madinina

PostPosted: Wed Apr 19, 2006 12:25 pm    Post subject: Reply with quote

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 :lol: 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 :wink: ...

[EDIT]lesourbe mon réseau avec une IP dynamique et mon script iptables est ds mon premier post, tu peux essayer de me hacker :P :wink: [/EDIT]


@+
_________________
Get Up and Go !
Back to top
View user's profile Send private message
babykart
Guru
Guru


Joined: 08 Oct 2004
Posts: 415

PostPosted: Wed Apr 19, 2006 12:34 pm    Post subject: Reply with quote

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
View user's profile Send private message
man in the hill
Veteran
Veteran


Joined: 15 Dec 2005
Posts: 1552
Location: Madinina

PostPosted: Wed Apr 19, 2006 1:15 pm    Post subject: Reply with quote

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
View user's profile Send private message
babykart
Guru
Guru


Joined: 08 Oct 2004
Posts: 415

PostPosted: Wed Apr 19, 2006 1:30 pm    Post subject: Reply with quote

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
View user's profile Send private message
lesourbe
l33t
l33t


Joined: 24 Nov 2005
Posts: 710
Location: Champagne !

PostPosted: Wed Apr 19, 2006 1:37 pm    Post subject: Reply with quote

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 :P :wink: [/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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum