IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

iptables demande de conseils


Sujet :

Sécurité

  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut iptables demande de conseils
    Bonjour,

    j'aimerai votre avis sur mes configs iptables. C'est mon premier script alors désolé pour les imbécilités...

    Les scripts sont destinées à un serveur web. J'ai fais 2 scripts parce qu'il y en a un pour tout les jours (plutôt restrictif) et un autre qui ouvre le dns/le web/"solr" (port 8983) quand j'en ai besoin, mise à jour des fichier php, des packages, etc... Solr c'est un moteur de recherche qui tourne sur jetty qui n'est écouté que sur le localhost en temps normal et quand je travaille dessus il doit écouter sur le réseau. Il n'y a pas de ftp je compte utiliser sftp qui passe par le 22 je crois.

    Déjà première question, est ce une bonne idée 2 scripts ? Est ce que cela coupe les connexions quand on change de script ? J'aurais tendance à dire oui à cause de "iptables -P INPUT/OUTPUT DROP". Est ce grave ?

    Bon je continue :
    1er script :
    Ssh et http (côté serveur uniquement) autorisé.
    Le reste refusé et en log.
    Le ssh est en log aussi, je veux savoir qui vient sur ma machine, normalement que moi.

    2eme script
    ssh http https dns solr (port 8983)
    Je ne log pas car ce script ne sera pas souvent actif

    Voici le 1er script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #!/bin/sh
     
    #####################################################################
    #
    #	Shell Script for configuration of Itables
    #	Server web Pomelojob powered by Gandi.net
    #	
    #	only web and ssh available used in webserver mode
    #	
    #	author:	Charles Bourasseau
    #	date:	2009
    #####################################################################
     
     
    ## On active quelques modules utiles
    modprobe ip_tables
    modprobe ip_conntrack
    modprobe iptable_filter
     
    ## On vide les règles
    iptables -F
    iptables -X
     
    ## On log tout
    iptables -N LOG_DROP
    iptables -A LOG_DROP -j LOG --log-prefix '[IPTABLES DROP] : '
    iptables -A LOG_DROP -j DROP
     
    iptables -N LOG_ACCEPT
    iptables -A LOG_ACCEPT -j LOG --log-prefix '[IPTABLES ACCEPT] : '
    iptables -A LOG_ACCEPT -j ACCEPT
     
    ## On interdit tout
     
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP
     
    ## On autorise la boucle local
     
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
     
    ## SSH
    iptables -A INPUT -p tcp -i eth0 --dport 22 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j LOG_ACCEPT 
    iptables -A OUTPUT -p tcp -o eth0 --dport 1024:65535 --sport 22 -m state --state ESTABLISHED -j LOG_ACCEPT
     
    ## web
    iptables -A INPUT -p tcp -i eth0 --dport 80 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -p tcp -o eth0 --dport 1024:65535 --sport 80 -m state --state ESTABLISHED -j ACCEPT
     
    iptables -A FORWARD -j LOG_DROP
    iptables -A INPUT -j LOG_DROP
    iptables -A OUTPUT -j LOG_DROP
    Voici le 2eme script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    #!/bin/sh
     
    #####################################################################
    #
    #	Shell Script for configuration of Itables
    #	Server web Pomelojob powered by Gandi.net
    #	
    #	http htpps ssh solr dns available : more possibilities to work
    #	
    #	author:	Charles Bourasseau
    #	date:	2009
    #####################################################################
     
     
    ## On active quelques modules utiles
    modprobe ip_tables
    modprobe ip_conntrack
    modprobe iptable_filter
     
    ## On vide les règles
    iptables -F
    iptables -X
     
    ## On interdit tout
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP
     
    ## On autorise la boucle local
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
     
    ## ssh (server)
    iptables -A INPUT -i eth0 -p tcp --dport 22 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp --dport 1024:65535 --sport 22 -m state --state ESTABLISHED -j ACCEPT
     
    ## http (server)
    iptables -A INPUT -i eth0 -p tcp --dport 80 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp --dport 1024:65535 --sport 80 -m state --state ESTABLISHED -j ACCEPT
     
    ## http (client)
    iptables -A INPUT -i eth0 -p tcp --dport 1024:65535 --sport 80 -m state --state ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp --dport 80 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
     
    ## https (server)
    iptables -A INPUT -i eth0 -p tcp --dport 443 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp --dport 1024:65535 --sport 443 -m state --state ESTABLISHED -j ACCEPT
     
    ## https (client)
    iptables -A INPUT -i eth0 -p tcp --dport 1024:65535 --sport 443 -m state --state ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp --dport 443 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
     
    ## solr
    iptables -A INPUT -i eth0 -p tcp --dport 8983 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o eth0 -p tcp --dport 1024:65535 --sport 8983 -m state --state ESTABLISHED -j ACCEPT
     
    ## dns (client)
    iptables -A INPUT -i eth0 -p udp --dport 1024:65535 --sport 53 -j ACCEPT
    iptables -A OUTPUT -o eth0 -p udp --dport 53 --sport 1024:65535 -j ACCEPT
    ## Voila merci d'avance pour toutes les réponses

  2. #2
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    Salut,
    Un truc que je trouve bizarre dans ton premier script :
    Citation Envoyé par einboubou Voir le message
    [code]
    ## web
    iptables -A INPUT -p tcp -i eth0 --dport 80 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -p tcp -o eth0 --dport 1024:65535 --sport 80 -m state --state ESTABLISHED -j ACCEPT
    Tu n'autorises pas tes clients à joindre ton serveur web depuis le port 80 (port standard) ??? Pour ssh, ça se comprend, mais pour http...
    Pas regardé le seuxième encore...
    Bon courage

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Par défaut
    Citation Envoyé par dahtah Voir le message
    Salut,
    Un truc que je trouve bizarre dans ton premier script :

    Tu n'autorises pas tes clients à joindre ton serveur web depuis le port 80 (port standard) ??? Pour ssh, ça se comprend, mais pour http...
    Pas regardé le seuxième encore...
    Bon courage
    Il me semble que quand un client fait de l'http, il te joint sur le 80 mais son source c'est entre 1024 et 65535. Donc je vois pas où est le pb.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    iptables -A INPUT -p tcp -i eth0 --dport 80 --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -p tcp -o eth0 --dport 1024:65535 --sport 80 -m state --state ESTABLISHED -j ACCEPT
    1ere ligne : On accepte les entrées qui vont vers le port 80 si elles sont nouvemmes ou établies
    2eme ligne : On accepte les sorties qui partent du port 80 si elles sont établies.

  4. #4
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    Citation Envoyé par einboubou Voir le message
    Il me semble que quand un client fait de l'http, il te joint sur le 80 mais son source c'est entre 1024 et 65535.
    Tu as raison, erreur de ma part. Désolé...
    Tout semble ok donc.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    #!/bin/bash
     
     
    . /etc/init.d/functions
    . /etc/sysconfig/network
    if [ ${NETWORKING} = "no" ]
    then
    exit 0
    fi
    if [ ! -x /sbin/iptables ] ; then
    exit 0
    fi
    case "$1" in
    start)
    echo -n "iptables demarre : "
     
    #regle d'initiation--------------------------
    iptables -F
    iptables -X
     
    #parametre par default-----------------------
     
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP
     
     
    # --- --- RULES
     
    # --- LO
    iptables -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
    iptables -A INPUT -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
     
    # --- WIRELESS
    iptables -A OUTPUT -o wlan0 -p tcp -m multiport --dport 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
    iptables -A OUTPUT -o wlan0 -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
    # --- ALL WIRELESS (for Transmission)
    #iptables -A OUTPUT -o wlan0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
    #iptables -A INPUT -i wlan0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
     
     
    # --- INERNET
    iptables -A OUTPUT -p tcp -s 192.168.0.102 -m multiport --dport 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -p udp -s 192.168.0.102 --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
     
    # --- MSN
    iptables -A OUTPUT -p tcp --dport 1863 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
     
    # --- SSH + VNC WAN
    #iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    #iptables -A INPUT -p tcp --dport 5900 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
     
    # --- LAN
    iptables -A OUTPUT -s 192.168.0.102 -d 192.168.0.200 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -s 192.168.0.200 -d 192.168.0.102 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
     
    # --- RETOUR 
    iptables -A INPUT -d 192.168.0.102 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -s 192.168.0.102 -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    # --- RETOUR WIRELESS
    iptables -A INPUT -i wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -o wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT
     
     
     
    # --- --- RULES END 
    ;;
    stop)
    echo -n "iptables ferme : "
    iptables -F
    iptables -X
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -t nat -F
    iptables -t nat -X;;
     
    statut)
    statut iptables;;
    restart)
    $0 stop
    $0 start;;
    *)
    echo "usage : iptables {start|stop|status|restart}"
    exit 1
    esac
    echo "OK"
    exit 0

Discussions similaires

  1. Demande de conseil pour migration de lignes vers colonnes
    Par ririd dans le forum Administration
    Réponses: 6
    Dernier message: 04/11/2004, 17h02
  2. [Struts_Tiles VS CSS] Demande de Conseils
    Par sylvain_neus dans le forum Struts 1
    Réponses: 4
    Dernier message: 16/04/2004, 10h12
  3. [sqlbaseserver]demande de conseils/aides pour requêtes
    Par GéniuS77 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 18/03/2004, 17h27
  4. demande de conseil
    Par stephane eyskens dans le forum EDI/Outils
    Réponses: 2
    Dernier message: 25/09/2003, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo