Re: [HS] Help pour débuter avec iptables
Le 10/09/2010 20:11, Pascal Hambourg a écrit :
> giggzounet a écrit :
>> Le 10/09/2010 15:39, Pascal Hambourg a écrit :
>>>
>>> giggzounet a écrit :
>>>
>>>> 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.
>
> "Via", ça reste vague. Ça peut être via routage et redirection de ports,
> ou via un programme. Je suppose que c'est via un programme, donc le
> master ne fonctionne pas en routeur et dans ce cas il n'est pas censé y
> avoir de trafic dans la chaîne FORWARD.
>
disons que normalement il n'agit pas en routeur. mais si les noeuds ont
besoin d'internet j'active temporairement l'ip forwarding.
>> En gros j'ai 5 interfaces:
>>
>> lo locahost
>> eth0 interface ethernet vers les noeuds
>> eth0:2 interface de controle/monitoring des noeuds (ipmi)
>
> eth0:2 n'est pas une interface mais un alias IP, une façon obsolète
> d'affecter une adresse IP supplémentaire à l'interface eth0.
>
oui. d'ailleurs je suppose que je ne peux pas faire:
-A Firewall-1-INPUT -i eth0:2 -s 192.168.200.0/255.255.255.0 -j ACCEPT non ?
>> 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.
>
> Ça, c'est facile. Ton jeu de règles va déjà plus loin.
>
ok. donc c'est correct.
>> 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.
>
> C'est important qu'il gueule ?
>
ben non :)
>> pour l'instant j'ai ça; qu'en pensez vous (résultat de mon mal de tête...) ?
>>
>> *filter
>> :INPUT ACCEPT [0:0]
>
> La politique par défaut devrait être DROP.
>
alors là ya un truc que je ne pige pas:
si c'est à DROP tout ce qui rentre va être droppé non ? Dans quel ordre
iptables lit il les règles ? pourquoi si :INPUT est à DROP j'arrive tout
de même à avoir une connection ssh avec l'autre règle ?
>> :FORWARD ACCEPT [0:0]
>
> Même chose, si la machine n'est pas routeur rien ne doit traverser cette
> chaîne.
>
ok. sauf si j'active temporairement l'ip forwarding, non ?
>> :OUTPUT ACCEPT [0:0]
>> :Firewall-1-INPUT - [0:0]
>
> Cette chaîne est inutile, tout ce qu'elle contient peut être mis dans INPUT.
>
mais via cette chaine je traite INPUT et FORWARD en même temps, non ?
>> ## SSH (test brute force)
>
> Ces règles devraient arriver après les règles anti-spoof.
>
ok. je corrige
>> # 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
>
> Je suppose que tu sais ce que tu fais et que personne n'est censé
> communiquer avec ta machine par cette interface depuis ces adresses.
>
oui. c'est voulu.
>> -A INPUT -i eth1 -s 240.0.0.0/5 -j DROP
>
> Pourquoi /5 et pas /4 ?
>
aucune idée...le mal de tête :D
>> # IP DROP MULTICAST
>> -A INPUT -i eth1 -s 224.0.0.0/4 -j DROP
>
> Pas absolument nécessaire, la plage multicast est invalide en tant que
> source donc ces paquets sont de toute façon écartés par la pile IP du noyau.
>
ok. donc à virer.
>> -A INPUT -i eth1 -s 169.254.0.0/16 -j DROP
>
> Ce n'est pas du multicast, c'est la plage link-local IPv4.
>
ok.
>> # IP DROP LOOPBACK
>> -A INPUT -i eth1 -d 127.0.0.0/8 -j DROP
>
> Pas absolument nécessaire, la plage de loopback est invalide en tant que
> source ou destination à l'extérieur de la machine donc ces paquets sont
> de toute façon écartés par la pile IP du noyau.
> Accessoirement tu n'as pas mis de règle pour bloquer la plage de
> loopback en source.
>
ok.
>> -A INPUT -i eth1 -s 240.0.0.0/4 -j DROP
>
> Ah, voilà la bonne longueur de préfixe.
>
>> -A INPUT -i eth1 -s 255.255.255.255/32 -j DROP
>
> Déjà inclus dans le préfixe précédent.
>
donc à virer ?
>> -A INPUT -i eth1 -s 168.254.0.0/16 -j DROP
>
> Pourquoi, tu as quelque chose contre les écoles publiques du comté de
> Hillsborough en Floride ?
>
ben je les aime po :p
>> -A INPUT -i eth1 -s 248.0.0.0/5 -j DROP
>
> Déjà inclus dans 240.0.0.0/4.
>
ok. donc je vire.
>> -A INPUT -j Firewall-1-INPUT
>
> Comme déjà dit, autant mettre les règles directement dans INPUT.
>
>> -A FORWARD -j Firewall-1-INPUT
>
> Comme déjà dit, aucun paquet ne traverse cette chaîne si la machine
> n'est pas routeur.
>
>> ## 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
>
> Toujours vérifier l'interface d'entrée.
> Note : spécifier la longueur de préfixe plutôt que le masque est AMA
> plus lisible.
>
ok. mais qu'est ce que je met qd c'est un alias ? dans mon cas eth0:2,
je met eth0 ?
>> ## Allow icmp
>> -A Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
>
> Bof. Le ping (echo-request), c'est suffisant.
>
>> ## Allow IPsec (ESP port 50 and AH port 51)
>
> Protocoles 50 et 51, pas ports.
>
>> -A Firewall-1-INPUT -p esp -j ACCEPT
>> -A Firewall-1-INPUT -p ah -j ACCEPT
>
> C'est utile ?
>
non :)
>> ## Allow previously established connections
>> -A Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
>
> Cette règle devrait se trouver en début de chaîne car c'est elle qui
> traite normalement le plus de paquets.
>
tu veux dire que je dois mettre ça tout en haut ? mais après les DROP ?
>> ## Allow SSH
>> -A Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
>
> Déjà traité plus haut avec le bazar "recent", non ?
>
vi. ça c'est un "reste"
>> ## 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
>
> Pas logique. Le commentaire dit "do not log", mais il n'y a pas de règle
> LOG de toute façon. Et pourquoi REJECT sur les paquets Netbios mais pas
> les autres ?
>
c'est encore un reste. j'ai tenté de logguer mais il y a tellement de
tentative...que je me suis retrouvé avec un fichier message de 10 mo en
30 minutes...donc encore un reste.
est ce que tu vois des règles utiles à rajouter ?
Merci pour le temps consacré,
Guillaume
Reply to: