[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS] Help pour débuter avec iptables



Le 10/09/2010 15:39, Pascal Hambourg a écrit :
> Salut,
> 
> giggzounet a écrit :
>>
>> suite à des problèmes avec la surcouche firewall apportée par
>> firestarter, je me décide à m'intéresser à iptables.
> 
> Bravo !
> 

merci. mais j'ai un de ces mal de tête maintenant!!!

>> J'ai tenté ma chance sur la list de
>> netfilter...mais bon pas eu de réponse...
> 
> J'ai vu "cluster" dans le sujet alors j'ai passé en me disant "houla,
> j'y connais rien et ça doit être compliqué".
> 
>> j'ai un cluster. les noeuds n'ont pas accès au net. Donc je monte un
>> parefeu sur le master node. Naturellement le master doit accepter tout
>> ce que vient des noeuds. Et j'aimerais que tout ce que vienne de
>> l'extérieur soit filtré à part qqs services comme ssh et http.
> 
> Le master se comporte comme un genre de load balancer ? Il fonctionne
> plutôt comme un routeur, ou un reverse proxy, ou selon un autre mécanisme ?
> 

le master se charge de distribuer les jobs sur les noeuds. C'est via le
master que tout le monde se connecte. En gros j'ai 5 interfaces:

lo locahost
eth0 interface ethernet vers les noeuds
eth0:2 interface de controle/monitoring des noeuds (ipmi)
ib0 interface infiniband vers les noeuds
eth1 interface ethernet vers l'extérieur.

En gros je voudrais qu'en interne il n'y ait aucun filtrage (donc tout
passe sur lo,ib0,eth0,eth0:2 dans tous les sens). par contre que tout en
entrée de eth1 soit bloqué sauf le port 22 (pour commencer). en sortie
sur eth1 je peux laissé ouvert.

>> pour l'instant j'ai ça:
>>
>> *filter
>> :INPUT ACCEPT [0:0]
>> :FORWARD ACCEPT [0:0]
>> :OUTPUT ACCEPT [0:0]
>> :Firewall-1-INPUT - [0:0]
>> -A INPUT -j Firewall-1-INPUT
>> -A FORWARD -j Firewall-1-INPUT
> 
> C'est pas la peine de virer la surcouche si c'est pour faire pareil...
> 
>> #
>> #
>> -A INPUT -j Firewall-1-INPUT
>> -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set
>> --name SSH --rsource -j ACCEPT
>> -A INPUT -p tcp -m tcp --dport 22 -m recent --update --seconds 60
>> --hitcount 4 --rttl --name SSH --rsource -j LOG --log-prefix
>> "SSH_brute_force "
>> -A INPUT -p tcp -m tcp --dport 22 -m recent --update --seconds 60
>> --hitcount 4 --rttl --name SSH --rsource -j DROP
> 
> Mon conseil : quand on débute, commencer par des choses simples et
> basiques : suivi de connexion, filtrage des flux par interface d'entrée
> et/ou de sortie, protocole et port. Pour les trucs subtils à base de
> "recent" (susceptible de provoquer un auto-DoS si mal maîtrisé), on
> verra plus tard.
> 


ben pour l'instant ça a l'air de marcher. en gros si je me connecte
normal ça va. par contre si je lance un nmap par exemple il gueule.

> <couic le reste>
>> Est ce qu'on peut faire mieux ? ou alors plus simple? bref si vous avez
>> des idées...je suis preneur.
> 
> Ben en fait, c'est difficile à dire car je vois pas trop le rapport avec
> le "cahier des charges" mentionné plus haut. Faut dire qu'il est
> tellement vague...
> 


cf plus haut.


>> UNe autre question:
>> si je mets ces règles pour iptables. Qu'en est il pour ip6tables ?
> 
> C'est indépendant. ip6tables n'est utile que si la machine a une
> connectivité IPv6.
> 

ok. bon je suis sur le réseau interne d'une uni...alors je suppose que oui.

>> dois je mettre les mêmes rêgles ?
> 
> Tu ne pourras pas forcément : les adresses et les types ICMP sont
> spécifiques à chacun des deux protocole.
> 

oui ça j'ai vu. et j'ai modifié.


Merci.

pour l'instant j'ai ça; qu'en pensez vous (résultat de mon mal de tête...) ?

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:Firewall-1-INPUT - [0:0]
#
## SSH (test brute force)
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent
--set --name SSH --rsource -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -m recent --update --seconds
60 --hitcount 4 --rttl --name SSH --rsource -j LOG --log-prefix
"SSH_brute_force "
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -m recent --update --seconds
60 --hitcount 4 --rttl --name SSH --rsource -j DROP
#
# IP DROP SPOOF
-A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
-A INPUT -i eth1 -s 172.16.0.0/12 -j DROP
-A INPUT -i eth1 -s 192.168.0.0/16 -j DROP
-A INPUT -i eth1 -s 240.0.0.0/5 -j DROP
# IP DROP MULTICAST
-A INPUT -i eth1 -s 224.0.0.0/4 -j DROP
-A INPUT -i eth1 -s 169.254.0.0/16  -j DROP
# IP DROP LOOPBACK
-A INPUT -i eth1 -d 127.0.0.0/8 -j DROP
# IP DROP
-A INPUT -i eth1 -s 0.0.0.0/8  -j DROP
-A INPUT -i eth1 -s 240.0.0.0/4  -j DROP
-A INPUT -i eth1 -s 255.255.255.255/32  -j DROP
-A INPUT -i eth1 -s 168.254.0.0/16  -j DROP
-A INPUT -i eth1 -s 248.0.0.0/5  -j DROP
#
##
-A INPUT -j Firewall-1-INPUT
-A FORWARD -j Firewall-1-INPUT
#
## Allow all traffic on localhost
-A Firewall-1-INPUT -i lo -j ACCEPT
#
# begin: allowed networks
#
## Allow all traffic from the nodes
-A Firewall-1-INPUT -i eth0 -s 192.168.0.0/255.255.255.0 -j ACCEPT
-A Firewall-1-INPUT -i ib0 -s 192.168.100.0/255.255.255.0 -j ACCEPT
-A Firewall-1-INPUT -s 192.168.200.0/255.255.255.0 -j ACCEPT
# end: allowed networks
#
## Allow icmp
-A Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
## Allow IPsec (ESP port 50 and AH port 51)
-A Firewall-1-INPUT -p esp -j ACCEPT
-A Firewall-1-INPUT -p ah -j ACCEPT
## Allow mdns (avahi)
#-A Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT
## Allow PRINTER port 631
#-A Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
#-A Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
## Allow WWW http port 80 for PFS IP
-A Firewall-1-INPUT -s 139.11.215.0/255.255.128.0 -p tcp -m state
--state NEW -m tcp --dport 80 -j ACCEPT
## Allow previously established connections
-A Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
## Allow SSH
-A Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
## Do not log smb/windows sharing packets - too much logging
-A Firewall-1-INPUT -p tcp -i eth1 --dport 137:139 -j REJECT
-A Firewall-1-INPUT -p udp -i eth1 --dport 137:139 -j REJECT
## Packets are DROPPED
-A Firewall-1-INPUT -j DROP
COMMIT


Reply to: