#!/bin/bash #################### #### IP Disponible #### #################### # IP Principale eth0="ip_publique_1" # IP FailOver eth1="ip_publique_2" # IP GB POUR VPN eth2="ip_publique_3" ############################### #### Vider les tables existantes #### ############################### # Vider tables actuelles /sbin/iptables -t filter -F # Vider les règles personnelles /sbin/iptables -t filter -X # Vider les règles de nattage /sbin/iptables -t nat -X /sbin/iptables -t nat -F /sbin/iptables -t mangle -X /sbin/iptables -t mangle -F # Ne pas casser les connexions etablies /sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ########################################## #### Protection contre les attaques spoofing #### ########################################## /sbin/iptables -I INPUT -i eth0 -s 127.0.0.0/8 -j DROP ############################################################# #### Mangle (pour rendre un peu plus difficile la detection des ports) #### ############################################################# /sbin/iptables -t mangle -P PREROUTING ACCEPT /sbin/iptables -t mangle -P INPUT ACCEPT /sbin/iptables -t mangle -P FORWARD ACCEPT /sbin/iptables -t mangle -P OUTPUT ACCEPT /sbin/iptables -t mangle -P POSTROUTING ACCEPT /sbin/iptables -t mangle -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP /sbin/iptables -t mangle -A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP ############## #### LOGS #### ############## # On log ce qui est refuse /sbin/iptables -t filter -N LOG_DROP /sbin/iptables -t filter -A LOG_DROP -j LOG --log-prefix "[IPTABLES DROP] : " --log-tcp-options --log-ip-options --log-level warning /sbin/iptables -t filter -A LOG_DROP -j DROP /sbin/iptables -A INPUT -j LOG --log-level 4 ######################################### #### Obligatoire pour autoriser les services #### ######################################### # Autoriser loopback /sbin/iptables -t filter -A INPUT -i lo -j ACCEPT /sbin/iptables -t filter -A OUTPUT -o lo -j ACCEPT # IP ETH0 POUR TOUT LE RESTE /sbin/iptables -t nat -A POSTROUTING -j SNAT --to $eth0 #################################### #### FireWall de base : on bloque tout #### #################################### # Interdire toutes connexions entrantes et accepter toutes connexions sortantes /sbin/iptables -t filter -P INPUT DROP /sbin/iptables -t filter -P FORWARD ACCEPT /sbin/iptables -t filter -P OUTPUT ACCEPT ############################## #### On autorise tout en sortie #### ############################## # Autoriser tout en sortie /sbin/iptables -t filter -A OUTPUT -o eth0 -j ACCEPT /sbin/iptables -t filter -A OUTPUT -o tun0 -j ACCEPT /sbin/iptables -t filter -A FORWARD -o vmbr0 -j ACCEPT /sbin/iptables -t filter -A OUTPUT -o vmbr0 -j ACCEPT # ICMP (Ping) /sbin/iptables -t filter -A INPUT -p icmp -j ACCEPT /sbin/iptables -t filter -A OUTPUT -p icmp -j ACCEPT ########################## #### Ouverture des ports #### ########################## # Acces au serveur Web Proxmox + VNC pour KVM /sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 5900 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 5901 -j ACCEPT # Connexion SSH au serveur physique /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT # Pour ping dns /bin/echo 1 > /proc/sys/net/ipv4/ip_forward # Pour OPENVPN /sbin/iptables -A INPUT -p tcp --dport 1194 -j ACCEPT /sbin/iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT /sbin/iptables -A FORWARD -d 10.8.0.0/24 -j ACCEPT # Pour avoir la bonne IP avec le VPN /sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE ####################### #### Nattage de ports #### ####################### # POUR L'APACHE PROXY /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables -t nat -A PREROUTING -i vmbr0 -d $eth2 -p tcp --dport 80 -j DNAT --to 192.168.10.70:80