Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/04/2008, à 08:01

ogaby

[IPTABLES] Personaliser son pare-feu

Bonjour,

je vous propose un script pour ajouter quelques règles à votre pare-feu ainsi que d'activer certains filtres.

Les règles de filtrages sont: les transmissions sont acceptées que si elles sont avec les protocoles de contrôle tcp ou udp. Les transmissions locales sont toutes acceptées ainsi que le ping.

- le script

#!/bin/bash

# Enable IP Forwarding, if it isn't already
echo 1 > /proc/sys/net/ipv4/ip_forward

# Enable broadcast echo  Protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Enable bad error message  Protection
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

# Enable IP spoofing protection
# turn on Source Address Verification
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
    echo 1 > $f
done

# Disable ICMP Redirect Acceptance
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
    echo 0 > $f
done

for f in /proc/sys/net/ipv4/conf/*/send_redirects; do
    echo 0 > $f
done

# Disable Source Routed Packets
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
    echo 0 > $f
done

# Log Spoofed Packets, Source Routed Packets, Redirect Packets
for f in /proc/sys/net/ipv4/conf/*/log_martians; do
    echo 1 > $f
done

# Incoming

# Deny all ports
iptables -P INPUT DROP
# Unlimited traffic on the loopback interface.
iptables -A INPUT -i lo -j ACCEPT
# Only tcp and udp protocols for all ports
iptables -A INPUT -p tcp -j ACCEPT
iptables -A INPUT -p udp -j ACCEPT
# Accept already connections established
iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

# Forward only with tcp and udp
iptables -P FORWARD DROP
iptables -A FORWARD -p tcp -j ACCEPT
iptables -A FORWARD -p udp -j ACCEPT

# Requests only with tcp and udp
iptables -P OUTPUT DROP
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -p tcp -j ACCEPT
iptables -A OUTPUT -p udp -j ACCEPT

# Ping accepted
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT

- lancement à chaque démarrage
Il faut conserver ce script dans un fichier puis le rendre exécutable.
Supposons que le fichier se nomme monparefeu et rendons le exécutable.
chmod u+x monparefeu
Puis plaçons le dans /etc/init.d pour qu'il soit lancer au prochain démarrage.
sudo cp monparefeu /etc/init.d/
Maintenant nous lui affectons sa priorité. Celle par défaut est suffisante.
sudo update-rc.d monparefeu defaults

- vérification
En effectuant sudo iptables -L -v -n , vous devrez voir ceci:

Chain INPUT (policy DROP 10 packets, 532 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
  125  7808 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
   16  5566 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 0

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0
  212  254K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
   15  1877 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8

- liens externes
http://www.firewall-net.com/fr/linux/iptables.php
http://fr.wikipedia.org/wiki/Liste_des_ports_logiciels
http://doc.ubuntu-fr.org/iptables

Hors ligne

#2 Le 13/05/2008, à 22:11

Koshie-2.0

Re : [IPTABLES] Personaliser son pare-feu

Moi qui n'y connais rien, à quoi ça sert?

#3 Le 14/05/2008, à 18:25

ogaby

Re : [IPTABLES] Personaliser son pare-feu

A pas grand chose. smile

Sur le net, des robots cherchent au hasard des machines puis essaient de se connecter avec des utilisateurs "Administrator" ou "Administrateur" ou "root", etc... Comme sur une Ubuntu "root" est désactivé, ce genre d'attaques n'a aucun effet.

Ensuite le pare-feu intégré dans le noyau empêche aussi toute intrusion non sollicitée. Maintenant ce script permet de renforcer un peu plus le pare-feu (ou plutôt de le personnaliser). Il n'accepte que des paquets avec le protocole tcp ou udp. Ces protocoles permettent une communication sûre entre deux machines car la transmission se fait avec des accusés de réceptions.

Une explication d'une partie du script:
# Deny all ports
iptables -P INPUT DROP -> fermer toutes les transmissions entrantes
# Only tcp and udp protocols for all ports
iptables -A INPUT -p tcp -j ACCEPT  -> accepter en tcp les transmissions entrantes sur tous les ports
iptables -A INPUT -p udp -j ACCEPT  -> accepter en udp les transmissions entrantes sur tous les ports

Dernière modification par ogaby (Le 14/05/2008, à 18:29)

Hors ligne

#4 Le 14/05/2008, à 18:54

Ski-lleR

Re : [IPTABLES] Personaliser son pare-feu

Personnellement j'ai bloqués toutes transmissions entrante, et j'ouvre au cas pas cas (les cas étant pas nombreux c'est rapide)

# Accept already connections established
iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

# Accepter au cas par cas
iptables -A INPUT -p tcp --dport 6891 -j ACCEPT

iptables -A INPUT -p tcp --dport 15000 -j ACCEPT
iptables -A INPUT -p udp --dport 15000 -j ACCEPT

iptables -A INPUT -p tcp --dport 20000 -j ACCEPT
iptables -A INPUT -p udp --dport 20000 -j ACCEPT


Debian *lenny* hybride

SIP/Ekiga  'Test Welcome' (Debian *lenny* hybride)
SIP:skiller@ekiga.net

Hors ligne

#5 Le 29/05/2008, à 20:32

tiboti09

Re : [IPTABLES] Personaliser son pare-feu

Ski-lleR a écrit :

Personnellement j'ai bloqués toutes transmissions entrante, et j'ouvre au cas pas cas (les cas étant pas nombreux c'est rapide)

# Accept already connections established
iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

# Accepter au cas par cas
iptables -A INPUT -p tcp --dport 6891 -j ACCEPT

iptables -A INPUT -p tcp --dport 15000 -j ACCEPT
iptables -A INPUT -p udp --dport 15000 -j ACCEPT

iptables -A INPUT -p tcp --dport 20000 -j ACCEPT
iptables -A INPUT -p udp --dport 20000 -j ACCEPT

Bonsoir, j'aimerais paramétrer certains ports avec la ps3, linux etant ma passerelle en ethernet.

quelles seraient les commandes a taper, il y a par exemple les ports:

    *  TCP : 80, 443, 5223 et 5523
    * UDP : 3478 à 3479 et 3658

#6 Le 29/05/2008, à 23:28

Ski-lleR

Re : [IPTABLES] Personaliser son pare-feu

C'est facile, pour les ports tcp tu copie cette ligne>
iptables -A INPUT -p tcp --dport 15000 -j ACCEPT

Donc pour le port 80 tu tape : iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Idem pour udp>
iptables -A INPUT -p udp --dport 3478 -j ACCEPT

Voila voila


Debian *lenny* hybride

SIP/Ekiga  'Test Welcome' (Debian *lenny* hybride)
SIP:skiller@ekiga.net

Hors ligne

#7 Le 13/01/2009, à 12:38

Gajel

Re : [IPTABLES] Personaliser son pare-feu

Salut ogaby. smile

Je vois que tu as l'air de maitriser iptables. Aurais-tu une réponse à mon problème par hasard ?

Merci d'avance. wink

#8 Le 13/01/2009, à 16:22

Compte0

Re : [IPTABLES] Personaliser son pare-feu

# Enable IP Forwarding, if it isn't already
echo 1 > /proc/sys/net/ipv4/ip_forward

# Enable broadcast echo  Protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Enable bad error message  Protection
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

# Enable IP spoofing protection
# turn on Source Address Verification
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
    echo 1 > $f
done

# Disable ICMP Redirect Acceptance
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
    echo 0 > $f
done

for f in /proc/sys/net/ipv4/conf/*/send_redirects; do
    echo 0 > $f
done

# Disable Source Routed Packets
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
    echo 0 > $f
done

# Log Spoofed Packets, Source Routed Packets, Redirect Packets
for f in /proc/sys/net/ipv4/conf/*/log_martians; do
    echo 1 > $f
done

Toute cette partie n'est pas très clair pour moi. Pourquoi tu forward?? Tu pourrais expliquer l'intérêt de tout ça...


Q-DOS ( Quick & Dirty Operating System) + MS (MicroSoft) = MS-DOS (MicroSoft Dirty Operating System)

Hors ligne