Configurazione Shorewall per il Dom0 di Comodino.
Prima di tutto si definiscono nel file /etc/shorewall/zones le zone controllate dal nostro firewall. FW è il firewall stesso, NET è internet, loc è la rete locale (backup) e dmz è la rete delle macchine virtuali.
############################################################################### #ZONE TYPE OPTIONS IN OUT # OPTIONS OPTIONS fw firewall net ipv4 loc ipv4 dmz ipv4
Sii definiscono le variabili associate alle schede di rete nel file /etc/shorewall/params.
############################################################################### LOG=info EXT_IF=eth0 DMZ_IF=eth3 DMZ2_IF=eth2 LOC_IF=eth4
Si associano le zone alle interfaccie nel file /etc/shorewall/interfaces.
###############################################################################
#ZONE INTERFACE BROADCAST OPTIONS
net ${EXT_IF} detect logmartians=1,blacklist
dmz ${DMZ_IF} detect logmartians=1
dmz ${DMZ2_IF} detect logmartians=1
loc ${INT_IF} detect logmartians=1Si settano le policy di default in /etc/shorewall/policy. Rispettivamente, una per riga, sono:
- Accetta dal fw al fw
- Accetta dal fw ad internet
- Accetta dalla rete locale a internet (dubbia, forse sbagliata)
- Accetta dal fw alla rete locale
- Accetta dalla rete locale al fw
- Rifiuta da internet al fw, logga e ha un limite di 1 pacchetto al secondo con burst di 2.
############################################################################### #SOURCE DEST POLICY LOG LIMIT:BURST # LEVEL $FW $FW ACCEPT $FW net ACCEPT loc net ACCEPT $FW loc ACCEPT loc $FW ACCEPT net $FW DROP $LOG 1/sec:2 net loc DROP $LOG 2/sec:4 net dmz DROP $LOG 8/sec:30 all all REJECT $LOG
Nel file /etc/shorewall/rules si inseriscono le regole che definiscono il firewall. Si possono usare le macro in /usr/share/shorewall/macro.*
- Accetta ssh da internet verso il firewall
- Accetta http da internet verso il firewall
- Accetta https da internet verso il firewall
- Fa NAT di http e https su DomU
############################################################################################################# #ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ # PORT(S) PORT(S) DEST LIMIT GROUP #SECTION ESTABLISHED #SECTION RELATED SECTION NEW SSH/ACCEPT net $FW HTTP/ACCEPT net $FW HTTPS/ACCEPT net $FW DNAT net dmz:10.0.0.1 tcp http,https
Si attiva il NAT per le interfacce dei DOMU (eth2 e eth3) in /etc/shorewall/masq.
############################################################################### #INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC eth0 eth2 eth0 eth3
Infine questi i parametri significativi di /etc/shorewall/shorewall.conf.
STARTUP_ENABLED=Yes VERBOSITY=1 LOGFILE=/var/log/messages LOGFORMAT="Shorewall:%s:%s:" LOGTAGONLY=No LOGRATE= LOGBURST= LOGALLNEW= BLACKLIST_LOGLEVEL= MACLIST_LOG_LEVEL=info TCP_FLAGS_LOG_LEVEL=info RFC1918_LOG_LEVEL=info SMURF_LOG_LEVEL=info LOG_MARTIANS=No IPTABLES= PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin SHOREWALL_SHELL=/bin/sh SUBSYSLOCK="" MODULESDIR= CONFIG_PATH=/etc/shorewall:/usr/share/shorewall RESTOREFILE= IPSECFILE=zones IP_FORWARDING=Keep ADD_IP_ALIASES=No ADD_SNAT_ALIASES=No RETAIN_ALIASES=No TC_ENABLED=Internal TC_EXPERT=No CLEAR_TC=Yes MARK_IN_FORWARD_CHAIN=YES CLAMPMSS=No ROUTE_FILTER=Yes DETECT_DNAT_IPADDRS=No MUTEX_TIMEOUT=60 ADMINISABSENTMINDED=Yes BLACKLISTNEWONLY=Yes DELAYBLACKLISTLOAD=No MODULE_SUFFIX= DISABLE_IPV6=Yes BRIDGING=No DYNAMIC_ZONES=No PKTTYPE=Yes RFC1918_STRICT=No MACLIST_TABLE=filter MACLIST_TTL= SAVE_IPSETS=No MAPOLDACTIONS=No FASTACCEPT=No IMPLICIT_CONTINUE=Yes HIGH_ROUTE_MARKS=No BLACKLIST_DISPOSITION=DROP MACLIST_DISPOSITION=REJECT TCP_FLAGS_DISPOSITION=DROP
Il firewall è configurato come esposto ma non parte se non si abilita startup=1 in /etc/default/shorewall.
Progetto Comodino