Debian iptables změna pravidel firewallu ScrollOut F1

Scrollout F1 je snadno použitelný, již upravený e-mailový firewall (brána) určený pro správce e-mailových systémů Linux a Windows, který nabízí bezplatnou antispamovou a antivirovou ochranu zaměřenou na zabezpečení stávajících e-mailových serverů, starých i nových, jako jsou Microsoft Exchange, Lotus Domino, Postfix, Exim, Sendmail, Qmail a další služby.

Díky vestavěným vícevrstvým úrovním zabezpečení se náročnost konfigurace rovná konfiguraci autorádia. Kombinuje jednoduchost s účinnou ochranou pomocí výkonného otevřeného zdroje s další sadou pravidel a filtrů.

Obvyklý postup pro úpravu iptables pravidel je použití nástroje iptables-persistent, uložení konfigurace iptables-save > /etc/iptables/rules.v4 případně iptables-save > /etc/iptables/rules.v6. Odkud je následně konfigurace iptables načítána ručně nebo pomocí volání systemctl po startu operačního systému. U antispam firewallu tento postup ale nefunguje.

ScrollOut F1 antispam firewallu default

user@asf:~# iptables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-N DDOSDROP
-N INVALID
-N INVDROP
-N SYNATTACK
-N f2b-nginx-http-auth
-N f2b-ssh
-N f2b-sshd
-N fail2ban-postfix
-N fail2ban-spam
-N fail2ban-spam_bulk
-N fail2ban-spam_light
-N fail2ban-spam_malware
-N fail2ban-spam_zero
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-spam_light
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-spam_bulk
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-spam_malware
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-spam_zero
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-spam
-A INPUT -p tcp -m multiport --dports 22 -j f2b-ssh
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-postfix
-A INPUT -p tcp -m multiport --dports 80,443 -j f2b-nginx-http-auth
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-spam_bulk
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-spam_malware
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-spam_light
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-spam_zero
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-spam
-A INPUT -p tcp -m multiport --dports 22 -j f2b-ssh
-A INPUT -p tcp -m multiport --dports 25,465 -j fail2ban-postfix
-A INPUT -p tcp -m multiport --dports 80,443 -j f2b-nginx-http-auth
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.0/8 ! -i lo -j DROP
-A INPUT ! -i lo -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j SYNATTACK
-A INPUT ! -i lo -p tcp -j INVALID
-A INPUT -p icmp -m iprange --src-range 10.0.0.0-10.255.255.255 -j ACCEPT
-A INPUT -p icmp -m iprange --src-range 192.168.0.0-192.168.255.255 -j ACCEPT
-A INPUT -p icmp -m iprange --src-range 172.16.0.0-172.255.255.255 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22,25,80,443,143,993,465,587 -m iprange --src-range 127.0.0.0-127.255.255.255 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22,25,80,443,143,993,465,587 -m iprange --src-range 10.0.0.0-10.255.255.255 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22,25,80,443,143,993,465,587 -m iprange --src-range 192.168.0.0-192.168.255.255 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22,25,80,443,143,993,465,587 -m iprange --src-range 172.16.0.0-172.255.255.255 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 8080 -m iprange --src-range 127.0.0.0-127.255.255.255 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 8080 -m iprange --src-range 10.0.0.0-10.255.255.255 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 8080 -m iprange --src-range 192.168.0.0-192.168.255.255 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 8080 -m iprange --src-range 172.16.0.0-172.255.255.255 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,5353,24441 -m iprange --src-range 127.0.0.0-127.255.255.255 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,5353,24441 -m iprange --src-range 10.0.0.0-10.255.255.255 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,5353,24441 -m iprange --src-range 192.168.0.0-192.168.255.255 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,5353,24441 -m iprange --src-range 172.16.0.0-172.255.255.255 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,4500,6277,24441,33434:33534 -m iprange --src-range 127.0.0.0-127.255.255.255 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,4500,6277,24441,33434:33534 -m iprange --src-range 10.0.0.0-10.255.255.255 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,4500,6277,24441,33434:33534 -m iprange --src-range 192.168.0.0-192.168.255.255 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,4500,6277,24441,33434:33534 -m iprange --src-range 172.16.0.0-172.255.255.255 -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -p udp -m udp --sport 500 --dport 500 -j ACCEPT
-A INPUT -p udp -m udp --sport 4500 --dport 4500 -j ACCEPT
-A INPUT -s 123.234.234.0/22 ! -i lo -p tcp -m multiport --dports 22,25,80,443,143,993,465,587 -m conntrack --ctstate NEW -m limit --limit 50/sec --limit-burst 100 -j ACCEPT
-A INPUT -s 123.234.234.0/22 ! -i lo -p tcp -m multiport --dports 8080 -m conntrack --ctstate NEW -m limit --limit 50/sec --limit-burst 100 -j ACCEPT
-A INPUT -s 123.234.234.0/22 ! -i lo -p udp -m multiport --dports 53,5353,24441 -m conntrack --ctstate NEW -m limit --limit 2500/sec --limit-burst 3000 -j ACCEPT
-A INPUT -s 10.0.0.0/8 ! -i lo -p tcp -m multiport --dports 22,25,80,443,143,993,465,587 -m conntrack --ctstate NEW -m limit --limit 50/sec --limit-burst 100 -j ACCEPT
-A INPUT -s 10.0.0.0/8 ! -i lo -p tcp -m multiport --dports 8080 -m conntrack --ctstate NEW -m limit --limit 50/sec --limit-burst 100 -j ACCEPT
-A INPUT -s 10.0.0.0/8 ! -i lo -p udp -m multiport --dports 53,5353,24441 -m conntrack --ctstate NEW -m limit --limit 2500/sec --limit-burst 3000 -j ACCEPT
-A INPUT ! -i lo -p tcp -m multiport --dports 10024,10025,10026,10027,10028,8080 -j DROP
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name DEFAULT --mask 255.255.255.255 --rsource
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 600 --hitcount 5 --name DEFAULT --mask 255.255.255.255 --rsource -j DROP
-A INPUT ! -i lo -m conntrack --ctstate NEW -m connlimit --connlimit-above 50 --connlimit-mask 32 --connlimit-saddr -j DDOSDROP
-A INPUT ! -i lo -m conntrack --ctstate NEW -m connlimit --connlimit-above 100 --connlimit-mask 24 --connlimit-saddr -j DDOSDROP
-A INPUT ! -i lo -m conntrack --ctstate NEW -m connlimit --connlimit-above 250 --connlimit-mask 16 --connlimit-saddr -j DDOSDROP
-A INPUT ! -i lo -m conntrack --ctstate NEW -m connlimit --connlimit-above 500 --connlimit-mask 8 --connlimit-saddr -j DDOSDROP
-A INPUT ! -i lo -p tcp -m multiport --dports 22,25,80,443,465,587 -m conntrack --ctstate NEW -m limit --limit 250/sec --limit-burst 1000 -j ACCEPT
-A INPUT ! -i lo -p udp -m multiport --dports 33434:33534 -m conntrack --ctstate NEW -m limit --limit 250/sec --limit-burst 1000 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 45/min --limit-burst 60 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -m limit --limit 45/min --limit-burst 60 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -m limit --limit 45/min --limit-burst 60 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3 -m limit --limit 45/min --limit-burst 60 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3/4 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3/3 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3/1 -j ACCEPT
-A INPUT ! -p icmp -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -p icmp -m icmp --icmp-type 3/4 -j ACCEPT
-A FORWARD -p icmp -m icmp --icmp-type 3/3 -j ACCEPT
-A FORWARD -p icmp -m icmp --icmp-type 3/1 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT ! -o lo -p tcp -j INVALID
-A OUTPUT ! -o lo -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT ! -o lo -p tcp -m conntrack --ctstate NEW -m tcp --dport 0:65000 -j ACCEPT
-A OUTPUT ! -o lo -p udp -m conntrack --ctstate NEW -m udp --dport 0:65000 -j ACCEPT
-A OUTPUT ! -o lo -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A OUTPUT ! -o lo -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT ! -o lo -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A OUTPUT ! -o lo -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A OUTPUT -j ACCEPT
-A OUTPUT -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A OUTPUT -p esp -j ACCEPT
-A OUTPUT -p udp -m udp --sport 500 --dport 500 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 4500 --dport 4500 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 3/4 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 3/3 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 3/1 -j ACCEPT
-A DDOSDROP -j DROP
-A INVALID ! -i lo -m conntrack --ctstate INVALID -j INVDROP
-A INVALID -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j INVDROP
-A INVALID -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j INVDROP
-A INVALID -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j INVDROP
-A INVALID -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j INVDROP
-A INVALID -p tcp -m tcp --tcp-flags FIN,RST FIN,RST -j INVDROP
-A INVALID -p tcp -m tcp --tcp-flags FIN,ACK FIN -j INVDROP
-A INVALID -p tcp -m tcp --tcp-flags PSH,ACK PSH -j INVDROP
-A INVALID -p tcp -m tcp --tcp-flags ACK,URG URG -j INVDROP
-A INVALID -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j INVDROP
-A INVDROP -j DROP
-A SYNATTACK -m limit --limit 60/sec --limit-burst 120 -j RETURN
-A SYNATTACK -j DROP
-A f2b-nginx-http-auth -j RETURN
-A f2b-nginx-http-auth -j RETURN
-A f2b-ssh -j RETURN
-A f2b-ssh -j RETURN
-A f2b-sshd -j RETURN
-A f2b-sshd -j RETURN
-A fail2ban-postfix -j RETURN
-A fail2ban-postfix -j RETURN
-A fail2ban-spam -j RETURN
-A fail2ban-spam -j RETURN
-A fail2ban-spam_bulk -j RETURN
-A fail2ban-spam_bulk -j RETURN
-A fail2ban-spam_light -j RETURN
-A fail2ban-spam_light -j RETURN
-A fail2ban-spam_malware -j RETURN
-A fail2ban-spam_malware -j RETURN
-A fail2ban-spam_zero -j RETURN
-A fail2ban-spam_zero -j RETURN

je volána ze souboru iptables.up.rule. Pokud potřebujete změnit port služby nebo rate-limit v INPUT pravidlu soubor je uložený ve složce nginx serveru na kterém běží antispam firewall Scrollout. Konkrétně v cestě /var/www/cfg/

Editaci souboru iptables.up.rule

pomocí nano provedeme

nano /var/www/cfg/iptables.up.rule

Změna se projeví po restartu nginx serveru nebo operačního systému. V případě, že provádíte změnu portu nezapomeňte zkontrolovat příslušnou konfiguraci služby fail2ban.

Vizualizace panelu

Administrace Scroll Out F1 firewall
Administrace Scroll Out F1 firewall

Užitečné

Text ScrollOut F1 + Postfix + Firewall
Domovská stránka Netfilter + IPtables

ICTIS.CZ