#!/bin/bash
# Очистка всех правил
iptables -P INPUT ACCEPT; iptables -F
# Разрешение loopback трафика
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Запрет всех соединений по умолчанию
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Разрешение DNS
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
# Разрешение входящего трафика на 22 (SSH), 80 (HTTP), 443 (HTTPS), 3306 (MariaDB)
iptables -A INPUT -i enp3s0 -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i enp3s0 -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i enp3s0 -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i enp3s0 -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
# Защита от атак DDoS SYN Flood
iptables -A INPUT -i enp3s0 -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j RETURN
iptables -A INPUT -i enp3s0 -p tcp --syn -j DROP
# Защита от атак DDoS ICMP Flood
iptables -A INPUT -i enp3s0 -p icmp --icmp-type 8 -m limit --limit 1/s --limit-burst 3 -j RETURN
iptables -A INPUT -i enp3s0 -p icmp --icmp-type 8 -j DROP
# Защита от атак DDoS UDP Flood
iptables -A INPUT -i enp3s0 -p udp -m connlimit --connlimit-above 10 --connlimit-mask 32 -j DROP
iptables -P OUTPUT ACCEPT
# Разрешение новые исходящие
iptables -A OUTPUT -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
# Запрет всех соединений по умолчанию
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP