Table of Contents

Простой фаервол, открывающий доступ только для белого списка.

Полный доступ для WHITELIST и только избранные порты для остальных.

#!/usr/bin/env bash

iptables="echo /sbin/iptables"

WHITELIST=( 10.0.0.0/8 )

TCP_PORTS=( 22 1514 1515 1516 55000 5601 )
UDP_PORTS=( 1514 )

TCP=${TCP_PORTS[@]}
UDP=${UDP_PORTS[@]}

#### START ####

# flushing firewall
$iptables -F
$iptables -X

# allow
$iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# allow loopback
$iptables -A INPUT -s 127.0.0.1 -j ACCEPT

# allow smtp, http
$iptables -A INPUT -p tcp -m multiport --dports ${TCP// /,} -j ACCEPT
$iptables -A INPUT -p udp -m multiport --dports ${UDP// /,} -j ACCEPT


# start whitelisting
for i in ${WHITELIST[@]};
do
    $iptables -A INPUT -s $i -j ACCEPT
done

# block other
$iptables -A INPUT -j DROP