# Définir la politique par défaut
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

# Autoriser le trafic pour le VPN
iptables -A INPUT -p udp --dport 51820 -j ACCEPT

# Autoriser les connexions établies et connexes
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Autoriser les connexions sur l'interface loopback
iptables -A INPUT -i lo -j ACCEPT

# Autoriser les requêtes ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# Autoriser les connexions SSH depuis le réseau privé et depuis certains hôtes internet
iptables -A INPUT -p tcp -s 172.16.0.0/24,81.209.165.42 --dport ssh -j ACCEPT

# Autoriser les connexions DNS et SMTP sur l'interface privée
iptables -A INPUT -i enp0s9 -s 172.16.0.0/24 -p udp --dport domain -j ACCEPT
iptables -A INPUT -i enp0s9 -s 172.16.0.0/24 -p tcp --dport domain -j ACCEPT
iptables -A INPUT -i enp0s9 -s 172.16.0.0/24 -p udp --dport bootps -j ACCEPT

# Autoriser les requêtes ping sur l'interface VPN
iptables -A INPUT -i wg0 -p icmp --icmp-type echo-request -j ACCEPT

# Interdire les connexions SSH sur l'interface VPN
iptables -A INPUT -i wg0 -s 0.0.0.0/0 -p tcp --dport ssh -j DROP

# Interdire les connexions SSH sortantes sur l'interface VPN
iptables -A OUTPUT -o wg0 -d 0.0.0.0/0 -p tcp --dport ssh -j DROP

# Autoriser le trafic sur l'interface publique
iptables -A INPUT -i enp0s8 -j ACCEPT

# Autoriser les connexions depuis l'interface privée vers l'interface publique ou une autre interface privée
iptables -A FORWARD -i enp0s9 -o enp0s8 -j ACCEPT
iptables -A FORWARD -i enp0s9 -o enp0s9 -j ACCEPT

# Interdire toutes les autres connexions de forwarding
iptables -A FORWARD -j DROP
