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 fw to dmz et to lan


Sujet :

Sécurité

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2020
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2020
    Messages : 29
    Points : 13
    Points
    13
    Par défaut iptables fw to dmz et to lan
    Bonjour à tous,

    J'ai un problème avec iptables concernant deux choses:

    - le premier, je souhaiterais renvoyer tout flux http vers un serveur dans la dmz. Mais ca ne fonctionne pas.
    - le second, comme j'ai deux lan derrière le firewall, je voudrais filtrer les users qui se connectent via openvpn (compte créés sous /ccd)
    Pour les users en 10.8.10.0/24, accès à tous les réseaux 192.168.0.0/16 et pour les users en 10.8.20.0/24, que le réseau 192.168.10.0/24. Et ca aussi ne fonctionne pas.

    Voici la conf firewall :

    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
    92
    93
    ##Set up /etc/init.d/firewall
    case "$1" in
    'start')
     
    # Pas d'IPV6
    sysctl -w net.ipv6.conf.all.disable_ipv6=1
    sysctl -w net.ipv6.conf.default.disable_ipv6=1
     
    # Forward
    echo 1 > /proc/sys/net/ipv4/ip_forward
     
    #Log en entrée
    iptables -A INPUT -j LOG
     
    #permettre à une connexion déjà ouverte de recevoir du trafic :
    iptables -t filter -A INPUT -m state --state ESTABLISHED -j ACCEPT
     
    #Authoriser l'interface locale (loopback).
    iptables -t filter -A INPUT -i lo -j ACCEPT
    iptables -t filter -A OUTPUT -o lo -j ACCEPT
    echo "traffic sur l interface locale ok"
     
    #Création d'une new user-defined chain pour pouvoir autoriser ET logger un flux avec le préfixe iptables
    #iptables -N LOGACCEPT
    #iptables -A LOGACCEPT -j LOG --log-prefix 'iptables:' -m limit --limit 2/min
    #iptables -A LOGACCEPT -j ACCEPT
     
    #Création d'une new user-defined chain pour pouvoir explicitement bloquer et logger un flux avec le préfixe iptables
    #iptables -N LOGDROP
    #iptables -A LOGDROP -j LOG --log-prefix 'iptables:' -m limit --limit 2/min
    #iptables -A LOGDROP -j DROP
     
    #Permettre le trafic entrant et sortant pour le port SSH
    iptables -t filter -A INPUT -p tcp --dport 22185 -j ACCEPT
    echo "ssh ok"
     
    #openVpn
    iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 1194 -j ACCEPT
    iptables -A INPUT -i tun+ -j ACCEPT
    iptables -A FORWARD -i tun+ -j ACCEPT
    iptables -A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s 10.8.10.0/24 -o eth0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s 10.8.20.0/24 -o eth0 -j MASQUERADE
    iptables -A OUTPUT -o tun+ -j ACCEPT
    echo "OpenVpn ok"
     
    #Autoriser le ping en sortie
    iptables -t filter -A OUTPUT -p icmp -j ACCEPT
    echo "ping en sortie ok"
     
    #Autoriser les requêtes DNS en sortie
    iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
    iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
    echo "dns ok"
     
    # DHCP
    iptables -A OUTPUT -p udp --match multiport --dports 67,68 -j ACCEPT
    echo "dhcp ok"
     
    #Autoriser les requêtes NTP en sortie pour pouvoir se synchroniser ai niveau temps
    iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
    echo "ntp ok"
     
    #Autoriser tout le trafic en entrée depuis le réseau local qui commencera ici par une ip en 192.168
    iptables -t filter -A INPUT -s 192.168.0.0/16 -j ACCEPT
    echo "reseau local 192.168.0.0 ok"
     
    # Filtrage selon utilisateur
    iptables -t filter -A INPUT -s 10.8.20.0/24 -d 192.168.0.0/24 -j DROP
    iptables -t filter -A INPUT -s 10.8.20.0/24 -d 192.168.10.0/24 -j ACCEPT
    echo "rules lans ok"
     
    # Http to DMZ
    # Deal with responses from the internet
    iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    # Port Forwarding is enabled, so accept forwarded traffic
    #iptables -A FORWARD -p tcp -i eth0 --destination-port 80 --destination 192.168.0.206 -j ACCEPT
    #iptables -A FORWARD -p tcp -i eth0 --destination-port 443 --destination 192.168.0.206 -j ACCEPT
     
    iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80 -i eth0 -j DNAT --to-destination 192.168.0.206:80
    iptables -t nat -A PREROUTING -p tcp -m multiport --dport 443 -i eth0 -j DNAT --to-destination 192.168.0.206
    echo prerouting
    iptables -t nat -A POSTROUTING -d 192.168.0.206 -p tcp --dport 80 -j MASQUERADE
    iptables -t nat -A POSTROUTING -d 192.168.0.206 -p tcp --dport 443 -j MASQUERADE
    echo postrouting
    echo "DMZ ok"
     
    # Fermeture de tout le reste.
    iptables -P INPUT DROP
    echo "All is closed"

    Je suis preneur de tout conseil et remarque.

    Merci

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Salut,

    • Il serait plus facile de comprendre ton propros avec un schema détaillé
    • Ton script gagnerais grandenment si tu précisais les interfaces ( et pas seulement pour eth0 )
    • Tu ne peux pas faire de filtrage sur 10.xx si tu fais du nat avant ...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2020
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2020
    Messages : 29
    Points : 13
    Points
    13
    Par défaut IPtable fw to dmz et lan
    Bonjour,

    Merci pour ta réponse.

    J'ai ajouté à la réponse, un schéma du réseau tel que je souhaiterais le faire.
    Aujourd'hui, de nombreuses machines sont directement exposées sur le net, et écoutent sur un apache proxyfié soit en local, soit vers d'autres machines en 192.168.0.0/24. Ce qui n'est pas top.

    Mon premier point pour résumer.
    - il y a deux types d'utilisateurs qui se connectent en VPN.
    Les U2 (qui sont via vpn en 10.8.20.0/24) n'ont le droit de se connecter qu'à la partie dev du réseau, celui-ci étant en 192.168.10.0/24.
    Les U1 (10.8.10.0/24) peuvent se connecter partout.

    Je veux pouvoir interdire au U2 d'aller sur des machines de prod par exemple.

    D'où dans le firewall:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    # Filtrage selon utilisateur
    iptables -t filter -A INPUT -s 10.8.10.0/24 -d 192.168.0.0/24 -j ACCEPT
    iptables -t filter -A OUTPUT -s 10.8.10.0/24 -d 192.168.0.0/24 -j ACCEPT
    iptables -t filter -A INPUT -s 10.8.20.0/24 -d 192.168.0.0/24 -j DROP
    iptables -t filter -A INPUT -s 10.8.20.0/24 -d 192.168.10.0/24 -j ACCEPT
    iptables -t filter -A OUTPUT -s 10.8.20.0/24 -d 192.168.10.0/24 -j ACCEPT

    Second point, je veux renvoyer tout flux http/https vers la machine en 192.168.10.163.
    Et ce qui serait top, c'est qu'elle puisse aussi renvoyer vers certains backends dans les 2 vlans PROD et DEV.

    Je dois donc utiliser cette partie là :
    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
     
    # Http to DMZ
    # Deal with responses from the internet
    iptables -A FORWARD -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    # Port Forwarding is enabled, so accept forwarded traffic
    #iptables -A FORWARD -p tcp -i $INET_IFACE --destination-port 80 --destination 192.168.10.163 -j ACCEPT
    #iptables -A FORWARD -p tcp -i $INET_IFACE --destination-port 443 --destination 192.168.10.163 -j ACCEPT
     
    iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80 -i eth0 -j DNAT --to-destination 192.168.10.163:80
    iptables -t nat -A PREROUTING -p tcp -m multiport --dport 443 -i eth0 -j DNAT --to-destination 192.168.10.163
    echo prerouting
    iptables -t nat -A POSTROUTING -d 192.168.10.163 -p tcp --dport 80 -j MASQUERADE
    iptables -t nat -A POSTROUTING -d 192.168.10.163 -p tcp --dport 443 -j MASQUERADE
    echo postrouting
    L'ip 192.168.10.163 peut être aussi autre chose (l'idée étant de faire une sorte de DMZ).

    Je tourne en rond car je ne vois pas pourquoi le http n'est pas joignable depuis l'extérieur (il fonctionne très bien si je tape directement l'IP du 163), et je ne sais pas ce que j'ai pu modifié concernant les accès users, car ca eut fonctionné mais depuis quelques jours, j'ai toujours accès au serveur VPN mais plus rien derrière.

    Merci pour ton aide.
    Images attachées Images attachées  

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2020
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2020
    Messages : 29
    Points : 13
    Points
    13
    Par défaut iptables fw to dmz et to lan
    Bonjour,

    J'ai refais mon script mais je n'arrive toujours pas à joindre le serveur apache depuis internet.

    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
     
    #!/bin/sh
    ## BEGIN INIT INFO
    # Provides:          Firewall
    # Required-Start:    $local_fs $remote_fs $network $syslog
    # Required-Stop:     $local_fs $remote_fs $network $syslog
    # Default-Start:
    # Default-Stop:
    # X-Interactive:     false
    # Short-Description: Firewall
    ### END INIT INFO
    set -e
    IFNET="eth0"
    IPNET="XXX.XXX.XXX.XXX"
    IFLAN="eth1"
    IPLAN="192.168.0.238"
    IFDMZ="eth2"
    IPAPACHE="192.168.0.206"
    IFTUN="tun+"
    IPTUN="10.8.0.1"
     
     
    ##Set up /etc/init.d/firewall
    case "$1" in
    'start')
    # flush all
    iptables -F
    iptables -t nat -F
    iptables -X
    iptables -t nat -X
    echo - Reset fw [OK]
     
    # Autoriser SSH
    iptables -t filter -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT
    echo - Autoriser SSH : [OK]
     
    # Ne pas casser les connexions établies
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    echo - Ne pas casser les connexions établies : [OK]
     
    # Interdire toute connexion entrante
    iptables -t filter -P INPUT DROP
    iptables -t filter -P FORWARD DROP
    echo - Interdire toute connexion entrante : [OK]
     
    # Interdire toute connexion sortante
    iptables -t filter -P OUTPUT DROP
    echo - Interdire toute connexion sortante : [OK]
     
    #loopback
    iptables -t filter -A INPUT -i lo -j ACCEPT
    iptables -t filter -A OUTPUT -o lo -j ACCEPT
    echo - Loopback [OK]
     
    #openVpn
    iptables -A INPUT -i $IFNET -m state --state NEW -p tcp --dport 1194 -j ACCEPT
    iptables -A FORWARD -i $IFTUN -j ACCEPT
    iptables -A FORWARD -i $IFTUN -o $IFLAN -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A FORWARD -i $IFLAN -o $IFTUN -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o $IFLAN -j MASQUERADE
    iptables -t nat -A POSTROUTING -s 10.8.10.0/24 -o $IFLAN -j MASQUERADE
    iptables -t nat -A POSTROUTING -s 10.8.20.0/24 -o $IFLAN -j MASQUERADE
    iptables -A INPUT -i $IFTUN -j ACCEPT
    iptables -A OUTPUT -o $IFTUN -j ACCEPT
    echo - OpenVpn [OK]
     
    # Filtrage selon utilisateur
    iptables -t filter -A INPUT -s 10.8.10.0/24 -d 192.168.0.0/24 -j ACCEPT
    iptables -t filter -A OUTPUT -s 10.8.10.0/24 -d 192.168.0.0/24 -j ACCEPT
    iptables -t filter -A OUTPUT -s 10.8.20.0/24 -d 192.168.0.0/24 -j DROP
    iptables -t filter -A INPUT -s 10.8.20.0/24 -d 192.168.10.0/24 -j ACCEPT
    iptables -t filter -A OUTPUT -s 10.8.20.0/24 -d 192.168.10.0/24 -j ACCEPT
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s 10.8.20.0/24 -o eth2 -j MASQUERADE
    echo - Rules lan ovpn [OK]
     
    #Autoriser le ping en sortie
    iptables -t filter -A OUTPUT -p icmp -j ACCEPT
    echo - ping en sortie [OK]
     
    #Autoriser les requêtes DNS en sortie
    iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
    iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
    echo - DNS [OK]
     
    # DHCP
    iptables -A OUTPUT -p udp --match multiport --dports 67,68 -j ACCEPT
    echo - DHCP [OK]
     
    #Autoriser les requêtes NTP en sortie pour pouvoir se synchroniser ai niveau temps
    iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
    echo - NTP [OK]
     
    #Autoriser tout le trafic en entrée depuis le réseau local qui commencera ici par une ip en 192.168
    iptables -t filter -A INPUT -s 192.168.0.0/16 -j ACCEPT
    echo - Reseau local 192.168.0.0 [OK]
    iptables -A FORWARD -i eth1 -j ACCEPT
    iptables -A FORWARD -o eth1 -j ACCEPT
     
    ## Network
    # Http to DMZ
    iptables -A FORWARD -i $IPNET -p tcp --dport 80 -d $IPAPACHE -j ACCEPT
    iptables -t nat -A PREROUTING -i $IPNET -p tcp --dport 80 -j DNAT --to-destination $IPAPACHE
    echo - Forward apache [OK]
     
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    echo - Network caché [OK]
     
    echo "Script de configuration de iptables terminé"
    echo "set up firewall.sh .........> [OK]"
    /usr/sbin/iptables-save > /etc/firewall
    echo "iptables-save > /etc/firewall .........> [OK]"
    RETVAL=$?
    ;;
    'stop')
    # delete any existing rules
    /sbin/iptables -t filter -F
    /sbin/iptables -t nat -F
    /sbin/iptables -t mangle -F
    /sbin/iptables -t raw -F
    /sbin/iptables -t filter -P INPUT ACCEPT
    /sbin/iptables -t filter -P OUTPUT ACCEPT
    /sbin/iptables -t filter -P FORWARD ACCEPT
    echo "FILTER [ALL RULES .... [FLUSH] ..... POLICY ......> [ACCEPT]"
    /sbin/iptables -t nat -P PREROUTING ACCEPT
    /sbin/iptables -t nat -P POSTROUTING ACCEPT
    /sbin/iptables -t nat -P OUTPUT ACCEPT
    /sbin/iptables -t mangle -P PREROUTING ACCEPT
    /sbin/iptables -t mangle -P OUTPUT ACCEPT
    /sbin/iptables -t mangle -P POSTROUTING ACCEPT
    /sbin/iptables -t mangle -P FORWARD ACCEPT
    /sbin/iptables -t mangle -P INPUT ACCEPT
    /sbin/iptables -t raw -P OUTPUT ACCEPT
    /sbin/iptables -t raw -P PREROUTING ACCEPT
    echo "ALL TABLES ....[FLUSH] ..... ALL POLICY .......> [ACCEPT]"
    RETVAL=$?
    ;;
    'restart')
    /sbin/iptables-restore < /etc/firewall
    echo "/etc/firewall ........[OK]"
    RETVAL=$?
    ;;
    'status')
    /sbin/iptables -L -n --line-numbers
    /sbin/iptables -t nat -L -n --line-numbers
    RETVAL=$?
    ;;
    *)
    echo "Usage: $0 { start | stop | restart | status }"
    RETVAL=1
    ;;
    esac
    exit $RETVAL

    Je fais bien le prerouting donc tout ce qui arrive sur mon ip publique devrait être renvoyé directement vers le serveur apache. Or j'ai toujours un "ERR_CONNECTION_TIMED_OUT".

    Merci pour l'aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sécurité d'une connexion ODBC - LAN/DMZ
    Par whitespoon dans le forum Sécurité
    Réponses: 1
    Dernier message: 23/08/2010, 10h58
  2. Réponses: 2
    Dernier message: 20/07/2010, 16h03
  3. aide iptables WAN-DMZ-LAN
    Par Phoenix2025 dans le forum Réseau
    Réponses: 0
    Dernier message: 01/06/2010, 01h51
  4. redirection dmz vers serveur web LAN
    Par boriskov dans le forum Apache
    Réponses: 4
    Dernier message: 16/07/2008, 16h57
  5. Accès ip public depuis le LAN avec iptables
    Par korben06 dans le forum Sécurité
    Réponses: 12
    Dernier message: 19/11/2006, 21h55

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