Shorewall

Install

IPV4

apt-get install shorewall

IPV6

apt-get install shorewall6

/etc/shorewall.conf

STARTUP_ENABLED=Yes

/etc/default/shorewall

startup=1

Fichiers de configuration vierges

 cp /usr/share/shorewall/configfiles/{zones,interfaces,policy,rules,params} /etc/shorewall/

Pour l’IPv6 la configuration se fait dans /etc/shorewall6/

Exemple de configuration

ces exemples s’appliquent à un firewall unijambiste. zones

fw      firewall
net     ipv4

interface

#ZONE           INTERFACE               OPTIONS
net             eth0            rpfilter,logmartians,nosmurfs

policy

#SOURCE DEST    POLICY          LOG     LIMIT:          CONNLIMIT:
#                               LEVEL   BURST           MASK
 
net     all     DROP            info    10/sec:40
fw      all     DROP            info
all     all     DROP

params

WEBPORT=80,443
SSHPORT=12345
REPOTS=security.debian.org,ftp.fr.debian.org,ftp.debian.org
ADMINS=123.123.123.123,234.234.234.234
HOME=45.52.12.23

Example rules

#note 1 : if there is no matching rules here, default policies apply => fucking DROP
#note 2 : This is only for new connections, existing connections are automatically accepted.
 
#DROP DNS Amplification attack
INLINE(DROP):info    net   $FW  udp   53   ;  -m u32 --u32 "0>>22&0x3C\@8&0xffff=0x0100 && 0>>22&0x3C\@12&0xffff0000=0x00010000"
 
#SSH
ACCEPT:info     net:$ADMINS,$HOME     fw      tcp     $SSHPORT
#web
ACCEPT          net     fw      tcp     $WEBPORT
#resolution dns for fw
DNS(ACCEPT)     fw      net
#MAJ OS
ACCEPT          fw      net:$REPOTS     tcp     80

Ajout d’une route de secours

echo $interface_in  $your_ip >> /etc/shorewall/routedstopped

Administration

les logs se trouvent par défaut dans /var/log/messages

dmesg

Voir les connexions courantes :

shorewall show connections

Shorewall 4.6.4.3 Connections (32 out of 65536) …

Le nombre de connexion max est définies dans /etc/sysctl.conf avec

net.netfilter.nf_conntrack_max = 65536

Vérification syntaxique des règles

shorewall check

Relance

shorewall restart

Astuce : ne jamais faire de restart sans un check préalable.

Pour aller plus loin : http://shorewall.net/Documentation_Index.html