• [^] # Re: rep

    Posté par . En réponse au message [Résolu] Pourquoi les ports internes changent-ils?. Évalué à 1.

    je demandais pour l'ip source. J'ai eu un doute autorisant tout le traffic local puissant les trames internet passent par l'ip interne de la box... mais non, ca doit être une question de couche vu que le serveur voit bien les ip internet.

    Sinon, il n'y a plus qu'à faire un script de routine pour ajouter les nouvelles ip de host.deny.

    Et voila!

    #
    #*******************************************************************************************
    # Configuration du script FW serveur
    #
    # Ip locale
    IP_LOCAL="192.168.1.100"
    #
    # Réseau local
    RESEAU_LOCAL="192.168.1.0/24"
    #
    # Interface réseau autorisée
    INTERFACE="eth0"
    #
    # Port SSH
    PORT_SSH="22"
    #
    # Port traffic pour la passerelle internet via ssh
    PORT_PASSERELLE="80,443"
    #
    # Adresse DYNDNS
    DYNDNS="dyndns.org"
    #
    #
    #*******************************************************************************************
    # Suppression de toutes les chaînes pré-définies
    iptables -t filter -F
    iptables -t nat -F
    ip6tables -t filter -F
    # Suppression de toutes les chaînes utilisateur
    iptables -t filter -X
    iptables -t nat -X
    ip6tables -t filter -X
    # Politique de DROP par défaut
    iptables -t filter -P INPUT DROP
    iptables -t filter -P OUTPUT DROP
    iptables -t filter -P FORWARD DROP
    # Désactivation IPv6 (DROP)
    ip6tables -t filter -P INPUT DROP
    ip6tables -t filter -P OUTPUT DROP
    ip6tables -t filter -P FORWARD DROP
    # Déclaration des chaînes pour le log des DROPS
    iptables -N LOGGING_IN
    iptables -N LOGGING_OUT
    iptables -N LOGGING_DDOS
    iptables -N LOGGING_INVALID
    iptables -A INPUT -m conntrack --ctstate INVALID -j LOGGING_INVALID
    # Pour le debug
    #iptables -t filter -A INPUT -j ACCEPT
    #iptables -t filter -A OUTPUT -j ACCEPT
    # Anti-DDOS
    iptables -t filter -A INPUT -m conntrack --ctstate NEW -m recent --set
    iptables -t filter -A INPUT -m conntrack --ctstate NEW -m recent --update --seconds 30 --hitcount 10 -j LOGGING_DDOS
    # DROP du multi-cast et UPnP
    iptables -t filter -A INPUT -d 224.0.0.1 -j DROP
    iptables -t filter -A OUTPUT -d 224.0.0.1 -j DROP
    iptables -t filter -A INPUT -d 239.255.255.250 -j DROP
    iptables -t filter -A OUTPUT -d 239.255.255.250 -j DROP
    # DROP des IPs bloquées dans hosts.deny (avec denyhosts)
    #---------------------------------------------------------------------
    # Récupération des IPs
    for x in `cat /etc/hosts.deny | grep -v ^# | cut -d ":" -f 2`; do
    echo "$x" >> blockip_iptables
    done
    #
    # Lecture des IPs et ajout des règles de bloquage
    if [ -f blockip_iptables ]
    then
     while read BLOCK_IP
     do
     iptables -t filter -A INPUT -s $BLOCK_IP -j LOGGING_IN
     iptables -t filter -A OUTPUT -d $BLOCK_IP -j LOGGING_OUT
     done < blockip_iptables
     rm blockip_iptables
    fi
    #---------------------------------------------------------------------
    # Autorise le loopback
    iptables -t filter -A INPUT -i lo -j ACCEPT
    iptables -t filter -A OUTPUT -o lo -j ACCEPT
    # Autorise toutes les connexions sortantent en réseau locale
    iptables -t filter -A INPUT -i $INTERFACE -d $IP_LOCAL -s $RESEAU_LOCAL -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    iptables -t filter -A OUTPUT -o $INTERFACE -s $IP_LOCAL -d $RESEAU_LOCAL -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
    # Autorise les envois vers dyndns.org pour le DNS Dynamic
    iptables -t filter -A INPUT -i $INTERFACE -d $IP_LOCAL -s $DYNDNS -p tcp --sport 80 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    iptables -t filter -A OUTPUT -o $INTERFACE -s $IP_LOCAL -d $DYNDNS -p tcp --dport 80 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
    # Autorise le DNS
    iptables -t filter -A INPUT -i $INTERFACE -d $IP_LOCAL -s $RESEAU_LOCAL -p udp --sport 53 -j ACCEPT
    iptables -t filter -A OUTPUT -o $INTERFACE -s $IP_LOCAL -d $RESEAU_LOCAL -p udp --dport 53 -j ACCEPT
    # Autorise l'initialisation et la réception SSH
    # NEW : pour les deux car initialisation de l'exterieur comme de l'intérieur
    iptables -t filter -A INPUT -i $INTERFACE -d $IP_LOCAL -p tcp --sport $PORT_SSH -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
    iptables -t filter -A OUTPUT -o $INTERFACE -s $IP_LOCAL -p tcp --dport $PORT_SSH -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
    # APPEL VNC direct ou via SSH, sur le reseau local
    iptables -t filter -A INPUT -i $INTERFACE -s $RESEAU_LOCAL -d $IP_LOCAL -p tcp --sport 5900 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    iptables -t filter -A OUTPUT -o $INTERFACE -s $IP_LOCAL -d $RESEAU_LOCAL -p tcp --dport 5900 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
    iptables -t filter -A INPUT -i $INTERFACE -s $RESEAU_LOCAL -d $IP_LOCAL -p udp --sport 5900 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    iptables -t filter -A OUTPUT -o $INTERFACE -s $IP_LOCAL -d $RESEAU_LOCAL -p udp --dport 5900 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
    # Autorise le traffic pour la passerelle internet via ssh
    iptables -t filter -A INPUT -i $INTERFACE -d $IP_LOCAL -p tcp -m multiport --sports $PORT_PASSERELLE -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    iptables -t filter -A OUTPUT -o $INTERFACE -s $IP_LOCAL -p tcp -m multiport --dports $PORT_PASSERELLE -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
    iptables -t filter -A INPUT -i $INTERFACE -d $IP_LOCAL -p udp -m multiport --sports $PORT_PASSERELLE -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    iptables -t filter -A OUTPUT -o $INTERFACE -s $IP_LOCAL -p udp -m multiport --dports $PORT_PASSERELLE -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
    # Autorise tout ICMP sauf Redirection & divers
    iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 1 -j ACCEPT
    iptables -t filter -A OUTPUT -p icmp -m icmp --icmp-type 1 -j ACCEPT
    iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 2 -j ACCEPT
    iptables -t filter -A OUTPUT -p icmp -m icmp --icmp-type 2 -j ACCEPT
    iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
    iptables -t filter -A OUTPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
    iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 4 -j ACCEPT
    iptables -t filter -A OUTPUT -p icmp -m icmp --icmp-type 4 -j ACCEPT
    iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
    iptables -t filter -A OUTPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
    iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 15 -j ACCEPT
    iptables -t filter -A OUTPUT -p icmp -m icmp --icmp-type 15 -j ACCEPT
    iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 16 -j ACCEPT
    iptables -t filter -A OUTPUT -p icmp -m icmp --icmp-type 16 -j ACCEPT
    iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 17 -j ACCEPT
    iptables -t filter -A OUTPUT -p icmp -m icmp --icmp-type 17 -j ACCEPT
    iptables -t filter -A INPUT -p icmp -m icmp --icmp-type 18 -j ACCEPT
    iptables -t filter -A OUTPUT -p icmp -m icmp --icmp-type 18 -j ACCEPT
    # LOG DROP
    iptables -A INPUT -j LOGGING_IN
    iptables -A OUTPUT -j LOGGING_OUT
    iptables -A LOGGING_IN -j LOG --log-prefix "IPTABLES-DROPPED-IN: " -m limit --limit 3/min --limit-burst 3 --log-level 4
    iptables -A LOGGING_OUT -j LOG --log-prefix "IPTABLES-DROPPED-OUT: " -m limit --limit 3/min --limit-burst 3 --log-level 4
    iptables -A LOGGING_DDOS -j LOG --log-prefix "IPTABLES-DROPPED-DDOS: " -m limit --limit 3/min --limit-burst 3 --log-level 4
    iptables -A LOGGING_INVALID -j LOG --log-prefix "IPTABLES-DROPPED-INVALID: " -m limit --limit 3/min --limit-burst 3 --log-level 4
    iptables -A LOGGING_IN -j DROP
    iptables -A LOGGING_OUT -j DROP
    iptables -A LOGGING_DDOS -j DROP
    iptables -A LOGGING_INVALID -j DROP
    # Sauvegarde
    iptables-save > /etc/iptables/rules.v4
    ip6tables-save > /etc/iptables/rules.v6

    merci à tous