Annonce

Réduire
Aucune annonce.

IPtables config

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • IPtables config

    Salut tous,

    Je recherche un script iptables très axé sur la securité pour eviter le DDOS et pour sécuriser mon poste au maximum.
    Il en existe sur le net de très bons mais apparement ne sont pas infallibles pour toutes les attaques, donc si vous en avez un pour partager je suis preneur.
    Il faut toujours viser la lune car même en cas d'échec on atterit toujours au milieu des étoiles...

  • #2
    Mis à part le lien dispo sur le forum (http://thehackademy.fr/showthread.ph...light=iptables), je ne suis pas vraiment au fait de ce genre de choses, désolé.
    [HS]En revanche je t'invite à rechercher la différence DOS/DDOS (ça doit aussi être sur le forum . Non pas que ce soit très intéressant ici, mais ca te donnera une connaissance en plus, et je pense que si tu l'avais su, tu aurais employé DOS tout court ! [/HS]

    Commentaire


    • #3
      je te remercie pour le lien que tu m'avais déjà envoyé avant
      je sais que le script iptbales que j'ai n'est pas parfait mais bon quand j'aurai + de temps je vous demanderai de scaner ma machine pour paufiner les réglages.
      il existe des scripts sur le net que j'ai testé mais ce sont, à mon avis, un mix de quelques personnes ont uploadé.
      Il faut toujours viser la lune car même en cas d'échec on atterit toujours au milieu des étoiles...

      Commentaire


      • #4
        un script de base IPtables Version Paranoid Linux Debian
        a toi de voir ce que tu veux rajouter, voir enlever

        Code:
        #!/bin/bash
        
        ##### Iptables Paranoid Version
        ##### Règles Iptables
        
        #####  A mettre dans /etc/NetworkManager/dispatcher.d pour qu'il soit  automatiquement exécuté à la connexion d'un interface via N-M
        
        # argument $1 = interface (eth0, wlan0...)
        # argument $2 = status (up, down)
        # voir man NetworkManager
        
        if [ "$2" = "up" ];
           then
           
               ########### On refuse tout le traffic  ##############################################################################################
              # initialisation de la table FILTER
              iptables -t filter -P INPUT DROP      
              iptables -t filter -P OUTPUT DROP      
              iptables -t filter -P FORWARD DROP
        
              # Initialisation de la table NAT
              iptables -t nat -P PREROUTING ACCEPT
              iptables -t nat -P POSTROUTING ACCEPT
              iptables -t nat -P OUTPUT ACCEPT
        
              # Initialisation de la table MANGLE
              iptables -t mangle -P PREROUTING ACCEPT
              iptables -t mangle -P INPUT ACCEPT
              iptables -t mangle -P OUTPUT ACCEPT
              iptables -t mangle -P FORWARD ACCEPT
              iptables -t mangle -P POSTROUTING ACCEPT
        
               ########### on vide les chaines existantes  #########################################################################################
              iptables -t filter -F # Supression de toutes les règles existantes
              iptables -t filter -X # Supression de toutes les chaines existantes
              
              iptables -t nat -F
              iptables -t nat -X
        
              iptables -t mangle -F
              iptables -t mangle -X
        
               ########### On accepte les communications services réseau  <--> boucle locale  #######################################################
              iptables -A INPUT -i lo -j ACCEPT
              iptables -A OUTPUT -o lo -j ACCEPT
        
               ########### Suivi de connexion - On laisse passer tous les paquets  dont l'état est ESTABLISHED ou RELATED ##########################
              iptables -A INPUT -i $1 -m state --state ESTABLISHED,RELATED -j ACCEPT
              iptables -A OUTPUT -o $1 -m state --state ESTABLISHED,RELATED -j ACCEPT
        
              iptables -A INPUT -i tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT     # Trafic connexion etablies VPN
              iptables -A OUTPUT -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT    # Trafic connexion etablies VPN
        
               ########### Règles pour chaque protocole  ###########################################################################################
              ## Trafic sortant http et https
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 80 -j ACCEPT   # www
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 443 -j ACCEPT  # https
        
              ## Trafic sortant requêtes DNS
              iptables -A OUTPUT -o $1 -m state --state NEW -p udp --dport 53 -j ACCEPT
        
              ## Trafic sortant Mail (POP3 et POP3s / SMTP et sSMTP)
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 995 -j ACCEPT  # POP3S
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 110 -j ACCEPT  # POP3
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 465 -j ACCEPT  # SSMTP
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 25 -j ACCEPT   # SMTP
        
              ## Trafic aMSN
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 1863 -j ACCEPT
              iptables -A INPUT -i $1 -m state --state NEW -p tcp --dport 6890:6900 -j ACCEPT   # Port webcam amsn
        
              ## Trafic ICMP (ping) entrant et sortant
              iptables -A INPUT -i $1 -m state --state NEW -p icmp -j ACCEPT   # Autoriser réponse a un ping extérieur
              iptables -A OUTPUT -o $1 -m state --state NEW -p icmp -j ACCEPT  # Autoriser emission d'un ping 
              
              ## Trafic P2P entrant et sortant
              #iptables -A INPUT -i $1 -m state --state NEW -p tcp --dport 4662 -j ACCEPT   # Dépend de la config d'amule
              #iptables -A INPUT -i $1 -m state --state NEW -p udp --dport 4672 -j ACCEPT   # Dépend de la config d'amule
               #iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 4242  -j ACCEPT  # Port dépend du serveur sur lequel on se connecte
        
              ## Trafic Samba
              # Client (sortant)
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 139 -j ACCEPT
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 445 -j ACCEPT
              # Serveur (entrant et sortant induit)
              #iptables -A INPUT -i $1 -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
              #iptables -A INPUT -i $1 -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
              #iptables -A OUTPUT -o $1 -m state --state NEW -p udp --dport 137 -j ACCEPT
              #iptables -A OUTPUT -o $1 -m state --state NEW -p udp --dport 138 -j ACCEPT
              
              ## Trafic FTP
              modprobe nf_conntrack_ftp
              # Client (sortant)
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 21 -j ACCEPT
               iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 20 -j  ACCEPT  # mode passif - connexion port 20 initiée par client
              # Serveur (entrant et sortant induit)
              #iptables -A INPUT -i $1 -m state -s 192.168.1.0/24 --state NEW -p tcp --dport 21 -j ACCEPT
               #iptables -A INPUT -i $1 -m state -s 192.168.1.0/24 --state NEW -p  tcp --dport 20 -j ACCEPT  # mode passif - connexion port 20 initiée par  client 
              #iptables -A OUTPUT -o $1 -m state --state NEW -p tcp  --sport 20 -j ACCEPT  # mode actif - connexion port 20 initiée par  serveur
        
              ## Trafic SSH
              # Client (sortant)
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 22 -j ACCEPT
              # Serveur (entrant)
              #iptables -A INPUT -i $1 -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT
        
              ## Trafic DHCP (entrant et sortant)
               iptables -A OUTPUT -o $1 -m state --state NEW -p udp --dport 67 -j  ACCEPT  # Sortant : envoi requête sur broadcast:67 (bootps)
              iptables -A INPUT -i $1 -m state --state NEW -p udp --dport 68 -j ACCEPT   # Entrant : réception adresse sur 68(bootpc)
              
              ## Trafic divers
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 43 -j ACCEPT                 # Sortant : whois
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 4321 -j ACCEPT         # Sortant : rwhois      
              iptables -A OUTPUT -o $1 -m state --state NEW -p udp --dport 33434:33523 -j ACCEPT        # Sortant : Traceroute
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 1935 -j ACCEPT               # ebuddy
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 843 -j ACCEPT                # ebuddy
              iptables -A OUTPUT -o $1 -m state --state NEW -p udp -d 224.0.0.0/24 --dport 5353 -j ACCEPT   # Trafic multicast local
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 23 -j ACCEPT         # telnet
              iptables -A OUTPUT -o $1 -m state --state NEW -p tcp --dport 11371 -j ACCEPT         # recup clef pgp
              iptables -A OUTPUT -o $1 -m state --state NEW -d mafreebox.freebox.fr -j ACCEPT         # freebox tv vlc
              iptables -A INPUT -i $1 -m state --state NEW -s mafreebox.freebox.fr -j ACCEPT         # freebox tv vlc
        
              ## Trafic VPN
              iptables -A OUTPUT -o $1 -m state --state NEW -p udp --dport 500 -j ACCEPT                # connexion vpn cisco
              iptables -A OUTPUT -o $1 -m state --state NEW -p udp --dport 4500 -j ACCEPT         # connexion vpn cisco
              iptables -A OUTPUT -o $1 -m state --state NEW -d x.x.x.x -j ACCEPT                 # Connexion au serveur VPN
              iptables -A OUTPUT -o tun0 -m state --state NEW -j ACCEPT               # Trafic vers VPN
        
              
               ########### Logs - À GARDER À LA FIN DU FICHIER  ###############################################################################
              # Nécessite le paquet ULOG - Fichier de log par défaut : /var/log/ulog/syslogemu.log - Ici : /var/log/ulog/iptables.log   
              # Affichage temps réel du trafic DROP : tail -f /var/log/ulog/iptables.log      
              iptables -A INPUT -j ULOG --ulog-prefix '[IPTABLES DROP IN] : '    # Log tentatives d'intrusions / Trafic entrant rejeté
              iptables -A OUTPUT -j ULOG --ulog-prefix '[IPTABLES DROP OUT] : '  # Log trafic sortant rejeté
              #iptables -A FORWARD -j ULOG --ulog-prefix '[IPTABLES DROP] : '    # Log trafic NATé
        elif [ "$2" = "down" ]; 
           then
              exit 0
        fi

        Commentaire


        • #5
          Il est utile de bien comprendre le fonctionnement d'iptables avant de mettre les mains dedans.
          mactux †|

          Le savoir n'est réel que s'il est partagé

          Commentaire


          • #6
            J'y connais pas grand chose là dedans, mais je me demande si il n'y a pas des portes ouvertes et qui ne le seraient pas forcément selon les machines.

            Par exemple aMSN, tout le monde ne l'utilise pas, comme le FTP et autres...

            à moins que j'ai pas tout compris dans ce script, mais je pense qu'il doit être personnalisé selon les machines.

            Commentaire


            • #7
              il suffit d'interdire les services qui t'interessent pas avec le signe # devant
              Il faut toujours viser la lune car même en cas d'échec on atterit toujours au milieu des étoiles...

              Commentaire


              • #8
                Pour être plus précis, il suffit de "commenter" les lignes dont on ne veut pas. Ou en fait, tout simplement les supprimer.

                je pense qu'il faut surtout voir ça comme un modèle dans le sens ou différentes fonctions son expliquées et que c'est facilement réutilisable pour que chacun y trouve son compte.

                Commentaire


                • #9
                  A vrai dire, iptable ne sera jamais suffisant pour contrer le DDoS, etc. Je ne pense pas t'apprendre grand chose, mais tu devrais regarder du coté de fail2ban (http://doc.ubuntu-fr.org/fail2ban) et de denyhost (http://doc.ubuntu-fr.org/denyhosts).
                  Il existe plusieurs tutoriaux en français excellent qui traite de la question.

                  Sinon, voici ma propre configuration, en espérant que ça puisse t'aider :
                  Code:
                  # Réinitialise les règles
                  iptables -t filter -F
                  iptables -t filter -X
                  
                  # Bloque tout le trafic
                  iptables -t filter -P INPUT DROP
                  iptables -t filter -P FORWARD DROP
                  iptables -t filter -P OUTPUT DROP
                  
                  # Autorise les connexions déjà établies et localhost
                  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
                  iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
                  iptables -t filter -A INPUT -i lo -j ACCEPT
                  iptables -t filter -A OUTPUT -o lo -j ACCEPT
                  
                  # IRC
                  iptables -t filter -A OUTPUT -p tcp --dport 6667 -j ACCEPT
                  iptables -t filter -A OUTPUT -p udp --dport 6667 -j ACCEPT
                  iptables -t filter -A INPUT -p tcp --dport 6667 -j ACCEPT
                  iptables -t filter -A INPUT -p udp --dport 6667 -j ACCEPT
                  
                  # SSH
                  iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
                  iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
                  
                  # HTTP
                  iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
                  iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
                  
                  # TOR RELAY
                  iptables -t filter -A OUTPUT -p tcp --dport 9001 -j ACCEPT
                  iptables -t filter -A INPUT -p tcp --dport 9001 -j ACCEPT
                  Penses bien évidemment à changer les numéros de port s'ils ne correspondent pas à ta propre config ( par exemple le port SSH ne devrait pas être 22 ... ).

                  Commentaire

                  Chargement...
                  X