• # Mon kimsufi pas le FW interne mais iptable

    Posté par . En réponse au message Proxmox serveur Kimsufi. Évalué à 2.

    Voilà un petit script bash que j'utilise pour configurer iptable sur mon kimsufi avec proxmox, avec
    - du NAT
    - quelques redirections de services depuis l'extérieur
    - du suivi de connexions FTP
    - mes containers LXC sont en 10.10.101.0/24
    - 1 container web (apache)
    - 1 container DB (MySQL)
    - 1 container avec gitlab
    - NGINX en proxy sur l'hyperviseur

    Si ca peut te servir ...

    #!/bin/sh -x
    if [ -x /usr/bin/logger ]; then
     logger -p info "Activating firewall script"
    fi
    modprobe ip_conntrack || exit 1
    modprobe ip_conntrack_ftp || exit 1
    modprobe ip_nat_ftp || exit 1
    iptables -P OUTPUT ACCEPT
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    cat /proc/net/ip_tables_names | while read table; do
     iptables -t $table -L -n | while read c chain rest; do
     if test "X$c" = "XChain" ; then
     iptables -t $table -F $chain
     fi
     done
     iptables -t $table -X
    done
    echo 1 > /proc/sys/net/ipv4/ip_forward
    ip addr flush dev vmbr0 scope link
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    #
    # NAT pour les VM
    #
    iptables -t nat -A POSTROUTING -o vmbr0 -s 10.10.101.0/24 ! -d 10.10.101.0/24 -j SNAT --to [IP PUBLIQUE]
    #
    # PAT pour les VM
    #
    iptables -t nat -A PREROUTING -i vmbr0 -p tcp -s 0/0 -d [IP PUBLIQUE] --destination-port 4022 -j DNAT --to 10.10.101.40:22
    iptables -t nat -A PREROUTING -i vmbr0 -p tcp -s 0/0 -d [IP PUBLIQUE] --destination-port 3022 -j DNAT --to 10.10.101.30:22
    iptables -t nat -A PREROUTING -i vmbr0 -p tcp -s 0/0 -d [IP PUBLIQUE] --destination-port 3306 -j DNAT --to 10.10.101.30:3306
    iptables -t nat -A PREROUTING -i vmbr0 -p tcp -s 0/0 -d [IP PUBLIQUE] --destination-port 2022 -j DNAT --to 10.10.101.20:22
    iptables -t nat -A PREROUTING -i vmbr0 -p tcp -s 0/0 -d [IP PUBLIQUE] --destination-port 2080 -j DNAT --to 10.10.101.20:80
    #
    # FW > NET
    #
    iptables -A OUTPUT -m state --state NEW -j ACCEPT
    #
    # VM > NET
    #
    iptables -A FORWARD -i vmbr0 -o vmbr0 -s 10.10.101.0/24 -d 0/0 -m state --state NEW -j ACCEPT
    #
    # NET > FW
    #
    iptables -A INPUT -i vmbr0 -p icmp --icmp-type echo-request -m state --state NEW -j ACCEPT
    iptables -A INPUT -i vmbr0 -p tcp -s 0/0 -m state --state NEW -m multiport --destination-port 22 -j ACCEPT
    iptables -A INPUT -i vmbr0 -p tcp -s 0/0 -m state --state NEW -m multiport --destination-port 80 -j ACCEPT
    iptables -A INPUT -i vmbr0 -p tcp -s 0/0 -m state --state NEW -m multiport --destination-port 8006 -j ACCEPT
    #
    # NET > VM
    #
    iptables -A FORWARD -i vmbr0 -p tcp -s 0/0 -d 10.10.101.20/32 -m state --state NEW -m multiport --destination-port 22,80 -j ACCEPT
    iptables -A FORWARD -i vmbr0 -p tcp -s 0/0 -d 10.10.101.30/32 -m state --state NEW -m multiport --destination-port 22,3306 -j ACCEPT
    iptables -A FORWARD -i vmbr0 -p tcp -s 0/0 -d 10.10.101.40/32 -m state --state NEW -m multiport --destination-port 22,80 -j ACCEPT
    #
    # LOCALHOST > LOCALHOST
    #
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
    #
    # LOGS (DEBUG ONLY)
    #
    # iptables -A INPUT -j LOG
    # iptables -A FORWARD -j LOG
    # iptables -A OUTPUT -j LOG
    #
    # Final rules
    #
    iptables -A INPUT -j DROP
    iptables -A OUTPUT -j DROP
    iptables -A FORWARD -j DROP
    iptables-save > /root/iptables.rules