rendered paste body#!/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