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

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



Le 11/09/2010 00:21, Serge Cavailles a écrit :
> Bonjour,
> 
> Je me permets d'intervenir, j'adore me faire reprendre par Pascal. ;)
> 
> Le Friday 10 September 2010 22:25:20 giggz, vous avez écrit :
>>>>
>>>> *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 ? 
> 
> La politique par _defaut_ s'applique en fin de chaîne aux paquets restants 
> (comprendre qui n'auront pas été acceptés par une règle).
> 

ah ok. j'avais pas saisi. Donc si je comprends bien, en mettant
:INPUT DROP au début je n'ai plus besoin d'avoir:
-A INPUT -j DROP juste avant le commit, non ?

> 
>> Dans quel ordre iptables lit il les règles ? 
> 
> Dans l'ordre ou elles apparaissent dans les tables.
> Chaque ajout (-A) à lieu à la suite des règles existantes, d'où la remarque de 
> Pascal (plus loin dans le même message) de placer les règles concernant les 
> paquets ESTABLISHED/RELATED en début de table, pour éviter que ces paquets ne 
> doivent tout d'abord passer par les autres règles.
> 

ok. je saisis.
Faut il mieux mettre la règle pour lo et RELATED,ESTABLISHED avant ou
après "anti-spoofing" ?

>>>> ## 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.
> 
> 
> Plus globalement, une politique de DROP par défaut me paraît beaucoup plus 
> sûre; si on oublie d'ouvrir un port ça se remarque généralement assez  
> rapidement, ce qui n'est pas forcément le cas de ceux que l'on oublie de 
> fermer. De plus AMA c'est plus facile à lire et à comprendre, on n'a que des 
> règles ACCEPT au lieu d'un mélange de règles ACCEPT (pour récupérer les 
> paquets sans traverser toute la chaîne) et de règles DROP dans le cas d'une 
> politique par défaut en ACCEPT.
> 

ok . merci de tes explications. BOn en combinant vos 2 réponses. J'ai
pour l'instant:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
#
## Allow all traffic on localhost
-A INPUT -i lo -j ACCEPT
#
## Allow previously established connections
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#
# 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/4 -j DROP
# IP DROP link-local
-A INPUT -i eth1 -s 169.254.0.0/16  -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 168.254.0.0/16  -j DROP
#
# begin: allowed networks
#
## Allow all traffic from the nodes
-A INPUT -i eth0 -s 192.168.0.0/24 -j ACCEPT
-A INPUT -i ib0 -s 192.168.100.0/24 -j ACCEPT
-A INPUT -s 192.168.200.0/24 -j ACCEPT
# end: allowed networks
#
## 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
#
## Allow icmp echo-request
-A INPUT -i eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
#
## Allow WWW http port 80 for PFS IP
-A INPUT -i eth1 -s 139.11.215.0/17 -p tcp -m state --state NEW -m tcp
--dport 80 -j ACCEPT
## Packets are DROPPED
-A INPUT -j DROP
COMMIT



Donc les points qui restent obscurent pour le moment ce sont:
- peut on mettre -A INPUT -eth0 -s 192.168.200.0/24 -j ACCEPT ? ou alors
-A INPUT -eth0:2 -s 192.168.200.0/24 -j ACCEPT ?

- la ligne -A INPUT -j DROP est elle nécessaire ? si j'ai bien compris
la réponse de Serge, je suppose que je peux la supprimer.

- les règles de spoof doivent être en premier ou alors lo et
related/established ?


- si je veux permettre à mes noeuds d'avoir internet, il suffit que je
fasse :
iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE -s
192.168.0.0/16
sysctl -w net.ipv4.ip_forward=1
non ?

Merci de votre aide! je commence à entrevoir la chose...
Guillaume


Reply to: