From 0aa7f831c400189881ae04aa45a194b66f6f1296 Mon Sep 17 00:00:00 2001 From: Tom Eastep Date: Sun, 19 Jul 2015 13:50:26 -0700 Subject: [PATCH] Update my config document Signed-off-by: Tom Eastep --- docs/MyNetwork.xml | 1219 +++++++++++++++++++++-------------- docs/images/Network2015.dia | Bin 0 -> 7001 bytes docs/images/Network2015.png | Bin 0 -> 111459 bytes 3 files changed, 719 insertions(+), 500 deletions(-) create mode 100755 docs/images/Network2015.dia create mode 100755 docs/images/Network2015.png diff --git a/docs/MyNetwork.xml b/docs/MyNetwork.xml index f13767b5e..82159f282 100644 --- a/docs/MyNetwork.xml +++ b/docs/MyNetwork.xml @@ -20,6 +20,8 @@ 2009 + 2015 + Thomas M. Eastep @@ -36,14 +38,14 @@ The ruleset shown in this article uses Shorewall features that are - not available in Shorewall versions prior to 4.4.0. + not available in Shorewall versions prior to 4.6.11
Introduction The configuration described in this article represents the network - at shorewall.net during the summer of 2009. It uses the following + at shorewall.org during the summer of 2015. It uses the following Shorewall features: @@ -53,50 +55,30 @@ - A DMZ with two "systems" using Proxy - ARP and running in OpenVZ Virtual - Environments + A DMZ with three "systems" using Proxy + ARP and running in Linux Containers + (LXC) - IPv6 Access through a 6to4 - Tunnel - - - - OpenVPN and IPSEC for access when we are on the - road. + IPv6 Access through two 6to4 + Tunnels Ipsets - - Dynamic Zones - - Transparent proxy using Squid - - - Manual Chains - - - - Traffic Shaping - - Linux runs the firewall and the servers (although they run in OpenVZ + Linux runs the firewall and the servers (although they run in LXC containers on the firewall system). Linux is not used natively on any of - our other systems except for an HP mini - which runs HP Mobile Internet Experience (MIE) -- essentially - Ubuntu Hardy. I rather run Windows natively (either Vista Home Premium or - XP Professional) and run Linux in VMs under VirtualBox. This approach has a number of advantages: @@ -122,11 +104,6 @@ All DRM-protected media can be handled under Windows. - - - Websites that don't work with Firefox (or at least with Linux - Firefox) - VirtualBox is fast (when your processor supports virtualization @@ -138,34 +115,31 @@ Our network is diagrammed in the following graphic. - + - We have accounts with two different ISPs: + We have two accounts with Comcast: - Comcast + ComcastC - This is a high-speed (20mb/4mb) link with a single dynamic IPv4 + This is a high-speed (40mb/8mb) link with a single dynamic IPv4 address. We are not allowed to run servers accessible through this account. - Avvanta + ComcastB - This is a low-speec (1.5mb/384kbit) link with five static IP - address. Our servers are accessed through this account. + Comcast Business Class Service with a /29 + (70.90.191.120/29). The wired local network is restricted to my home office. The - wireless network is managed by a Linksys WRT300N pre-N router which we use - only as an access point -- its WAN interface is unused and it is - configured to not do NAT. The wireless network uses WPA2 personal security - and MAC filtering is enabled in the router. These two factors make it a - hassle when guests visit with a laptop but provide good security for the - network. + wireless network is managed by a wireless router which we use only as an + access point -- its WAN interface is unused and it is configured to not do + NAT. The wireless network uses WPA2 personal security.
@@ -174,30 +148,55 @@ This section contains excerpts from the Shorewall configuration. - It is important to keep in mind that parts of my configuration are - there just to provide a test bed for Shorewall features. So while they - show correct usage, they don't necessarily provide any useful benefit. I - have tried to point those out in the sub-sections that follow. +
+ /etc/shorewall/mirrors + + MIRRORS=62.216.169.37,\ +62.216.184.105,\ +63.229.2.114,\ +... + + Defines the IP addresses of the Shorewall mirror sites. +
/etc/shorewall/params - MIRRORS=62.216.169.37,\ -63.229.2.114,\ -... -NTPSERVERS=... + INCLUDE mirrors -POPSERVERS=... +LOG="NFLOG(0,0,1)" -LOG=ULOG +INT_IF=eth0 +TUN_IF=tun+ +COMB_IF=eth2 +COMC_IF=eth1 -INT_IF=eth1 -EXT_IF=eth2 -COM_IF=eth0 -VPS_IF=venet0As shown, this file defines variables to hold - the various lists of IP addresses that I need to maintain. To simplify - network reconfiguration, I also use variables to define the log level - and the network interfaces. +MYNET=70.90.191.120/29 #External IP addresses handled by this router +DMZ_NET=70.90.191.124/31 +FW_NET=70.90.191.120/30 +INT_NET=172.20.1.0/24 +DYN_NET=$(find_first_interface_address_if_any $COMC_IF) +SMC_ADDR=10.1.10.11 + +[ -n "${DYN_NET:=67.170.122.219}" ] + +DYN_NET=${DYN_NET}/32 + +DMZ=fw:$DMZ_NET + +LISTS=:70.90.191.124 +SERVER=:70.90.191.125 +MAIL=172.20.1.200 + +PROXY=Yes +STATISTICAL=Yes +SQUID2=Yes + +[ -n "${EXPERIMENTAL:=0}" ] +As shown, this file defines variables to hold the various + lists of IP addresses that I need to maintain. To simplify network + reconfiguration, I also use variables to define the log level and the + network interfaces.
@@ -206,293 +205,425 @@ VPS_IF=venet0As shown, this file defines variables to hold ############################################################################### # S T A R T U P E N A B L E D ############################################################################### + STARTUP_ENABLED=Yes + ############################################################################### -# V E R B O S I T Y +# V E R B O S I T Y ############################################################################### -VERBOSITY=0 -############################################################################### -# C O M P I L E R -# (setting this to 'perl' requires installation of Shorewall-perl) -############################################################################### -SHOREWALL_COMPILER=perl + +VERBOSITY=1 + ############################################################################### # L O G G I N G ############################################################################### -LOGFILE=/var/log/ulog/syslogemu.log -STARTUP_LOG=/var/log/shorewall-init.log -LOG_VERBOSITY=2 -LOGFORMAT="%s:%s:" -LOGTAGONLY=No -LOGRATE= -LOGBURST= + +BLACKLIST_LOG_LEVEL=none + +INVALID_LOG_LEVEL= + +LOG_BACKEND=ULOG + +LOG_MARTIANS=Yes + +LOG_VERBOSITY=1 + LOGALLNEW= -BLACKLIST_LOGLEVEL= -MACLIST_LOG_LEVEL= -TCP_FLAGS_LOG_LEVEL=$LOG -SMURF_LOG_LEVEL=$LOG -LOG_MARTIANS=No + +LOGFILE=/var/log/ulogd/ulogd.syslogemu.log + +LOGFORMAT=": %s %s" + +LOGTAGONLY=Yes + +LOGLIMIT="s:5/min" + +MACLIST_LOG_LEVEL="$LOG" + +RELATED_LOG_LEVEL="$LOG" + +RPFILTER_LOG_LEVEL=info + +SFILTER_LOG_LEVEL="$LOG" + +SMURF_LOG_LEVEL="$LOG" + +STARTUP_LOG=/var/log/shorewall-init.log + +TCP_FLAGS_LOG_LEVEL="$LOG" + +UNTRACKED_LOG_LEVEL= + ############################################################################### # L O C A T I O N O F F I L E S A N D D I R E C T O R I E S ############################################################################### -IPTABLES= + +ARPTABLES= + +CONFIG_PATH="/etc/shorewall:/etc/shorewall-common:/usr/share/shorewall:/usr/share/shorewall/Shorewall" + +GEOIPDIR=/usr/share/xt_geoip/LE + +IPTABLES=/sbin/iptables + +IP=/sbin/ip + IPSET= -PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin -SHOREWALL_SHELL=/bin/sh -SUBSYSLOCK= + +LOCKFILE=/var/lib/shorewall/lock + MODULESDIR= -CONFIG_PATH=/etc/shorewall:/usr/share/shorewall + +NFACCT= + +PATH="/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin" + +PERL=/usr/bin/perl + RESTOREFILE= -IPSECFILE=zones -LOCKFILE= + +SHOREWALL_SHELL=/bin/bash + +SUBSYSLOCK= + +TC= + ############################################################################### # D E F A U L T A C T I O N S / M A C R O S ############################################################################### -DROP_DEFAULT="Drop" -REJECT_DEFAULT="Reject" -ACCEPT_DEFAULT="none" -QUEUE_DEFAULT="none" + +ACCEPT_DEFAULT=none +DROP_DEFAULT=Drop +NFQUEUE_DEFAULT=none +QUEUE_DEFAULT=none +REJECT_DEFAULT=Reject + ############################################################################### # R S H / R C P C O M M A N D S ############################################################################### -RSH_COMMAND='ssh ${root}@${system} ${command}' + RCP_COMMAND='scp ${files} ${root}@${system}:${destination}' +RSH_COMMAND='ssh ${root}@${system} ${command}' + ############################################################################### # F I R E W A L L O P T I O N S ############################################################################### -IP_FORWARDING=Yes + +ACCOUNTING=Yes + +ACCOUNTING_TABLE=mangle + 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=Yes -ROUTE_FILTER=No -DETECT_DNAT_IPADDRS=Yes -MUTEX_TIMEOUT=60 + ADMINISABSENTMINDED=Yes -BLACKLISTNEWONLY=Yes -DELAYBLACKLISTLOAD=No -MODULE_SUFFIX=ko -DONT_LOAD= -DISABLE_IPV6=No -BRIDGING=No -DYNAMIC_ZONES=No -PKTTYPE=No -MACLIST_TABLE=mangle -MACLIST_TTL=60 -SAVE_IPSETS=No -MAPOLDACTIONS=No -FASTACCEPT=No -IMPLICIT_CONTINUE=Yes -HIGH_ROUTE_MARKS=Yes -USE_ACTIONS=Yes -OPTIMIZE=1 -EXPORTPARAMS=Yes -EXPAND_POLICIES=Yes -KEEP_RT_TABLES=No + +BASIC_FILTERS=No + +IGNOREUNKNOWNVARIABLES=No + +AUTOCOMMENT=Yes + +AUTOHELPERS=Yes + +AUTOMAKE=Yes + +BLACKLIST="NEW,INVALID,UNTRACKED" + +CHAIN_SCRIPTS=No + +CLAMPMSS=Yes + +CLEAR_TC=Yes + +COMPLETE=No + +DEFER_DNS_RESOLUTION=No + DELETE_THEN_ADD=No -MULTICAST=Yes -AUTO_COMMENT=Yes + +DETECT_DNAT_IPADDRS=No + +DISABLE_IPV6=No + +DONT_LOAD="nf_nat_sip,nf_conntrack_sip,nf_conntrack_h323,nf_nat_h323" + +DYNAMIC_BLACKLIST=Yes + +EXPAND_POLICIES=Yes + +EXPORTMODULES=Yes + +FASTACCEPT=Yes + +FORWARD_CLEAR_MARK=Yes + +HELPERS="ftp,irc" + +IMPLICIT_CONTINUE=No + +INLINE_MATCHES=Yes + +IPSET_WARNINGS=No + +IP_FORWARDING=Yes + +KEEP_RT_TABLES=Yes + +LEGACY_FASTSTART=Yes + +LOAD_HELPERS_ONLY=Yes + +MACLIST_TABLE=mangle + +MACLIST_TTL=60 + MANGLE_ENABLED=Yes -NULL_ROUTE_RFC1918=Yes -USE_DEFAULT_RT=No + +MAPOLDACTIONS=No + +MARK_IN_FORWARD_CHAIN=No + +MODULE_SUFFIX="ko ko.xz" + +MULTICAST=No + +MUTEX_TIMEOUT=60 + +NULL_ROUTE_RFC1918=unreachable + +OPTIMIZE=All + +OPTIMIZE_ACCOUNTING=No + +REJECT_ACTION=RejectAct + +REQUIRE_INTERFACE=No + RESTORE_DEFAULT_ROUTE=No -FAST_STOP=Yes -AUTOMAKE=No -LOG_MARTIANS=Yes -WIDE_TC_MARKS=Yes + +RESTORE_ROUTEMARKS=Yes + +RETAIN_ALIASES=No + +ROUTE_FILTER=No + +SAVE_ARPTABLES=Yes + +SAVE_IPSETS=ipv4 + +TC_ENABLED=No + +TC_EXPERT=No + +TC_PRIOMAP="2 3 3 3 2 3 1 1 2 2 2 2 2 2 2 2" + +TRACK_PROVIDERS=Yes + +TRACK_RULES=No + +USE_DEFAULT_RT=Yes + +USE_PHYSICAL_NAMES=Yes + +USE_RT_NAMES=Yes + +WARNOLDCAPVERSION=Yes + +WORKAROUNDS=No + +ZONE2ZONE=- + ############################################################################### # P A C K E T D I S P O S I T I O N ############################################################################### + BLACKLIST_DISPOSITION=DROP + +INVALID_DISPOSITION=CONTINUE + MACLIST_DISPOSITION=ACCEPT + +RELATED_DISPOSITION=REJECT + +RPFILTER_DISPOSITION=DROP + +SMURF_DISPOSITION=DROP + +SFILTER_DISPOSITION=DROP + TCP_FLAGS_DISPOSITION=DROP -I don't believe that there is anything remarkable - there + +UNTRACKED_DISPOSITION=DROP + +################################################################################ +# P A C K E T M A R K L A Y O U T +################################################################################ + +TC_BITS=8 + +PROVIDER_BITS=2 + +PROVIDER_OFFSET=16 + +MASK_BITS=8 + +ZONE_BITS=0 + +################################################################################ +# L E G A C Y O P T I O N +# D O N O T D E L E T E O R A L T E R +################################################################################ + +IPSECFILE=zonesI don't believe that there is anything + remarkable there
/etc/shorewall/actions - #ACTION -Mirrors # Accept traffic from Shorewall Mirrors -I make this into an action so the rather long list of rules - go into their own chain. + Mirrors # Accept traffic from Shorewall Mirrors +SSHLIMIT +SSH_BL +tarpit inline # Wrapper for TARPIT + +
/etc/shorewall/action.Mirrors - #TARGET SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE -# PORT PORT(S) DEST LIMIT -COMMENT Accept traffic from Mirrors -ACCEPT $MIRRORS -See the rules file -- this - action is used for rsync traffic. + #TARGET SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE +# PORT PORT(S) DEST LIMIT +?COMMENT Accept traffic from Mirrors +?FORMAT 2 +DEFAULTS - +$1 $MIRRORS +I make this into an action so the rather long list of rules + go into their own chain. See the rules file + -- this action is used for rsync traffic. +
+ +
+ /etc/shorewall/action.tarpit + + #ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK CONNLIMIT TIME HEADERS SWITCH HELPER +# PORT PORT(S) DEST LIMIT GROUP +$LOG { rate=s:1/min } +TARPIT + + +
/etc/shorewall/zones fw firewall -loc ipv4 #Local Zone -dmz ipv4 #DMZ -net ipv4 #Internet -vpn:loc,net ipsec #IPSEC -drct:loc ipv4 #Direct internet accessThe - vpn zone is mostly for testing - Shorewall IPSEC support. It is nested in loc and net to - test a feature added in Shorewall 4.4.0. The drct zone is a dynamic zone whose members bypass - the transparent proxy. Some applications (such as VirtualBox - registration) don't work through the proxy. +loc ip #Local Zone +net ipv4 #Internet +dmz ipv4 #LXC Containers +smc:net ip #10.0.1.0/24 +
/etc/shorewall/interfaces #ZONE INTERFACE BROADCAST OPTIONS -loc $INT_IF detect dhcp,logmartians=1,routefilter=1,tcpflags -dmz $VPS_IF detect logmartians=1,routefilter=0,routeback -net $EXT_IF detect dhcp,blacklist,tcpflags,optional,routefilter=0,nosmurfs,logmartians=0,proxyarp=1 -net $COM_IF detect dhcp,blacklist,tcpflags,optional,upnp,routefilter=0,nosmurfs,logmartians=0 -loc tun+ detectNotice that VPN clients are treated - the same as local hosts. - - I set the proxyarp option on - $EXT_IF so that - - - - The firewall will respond to ARP who-has requests for the - servers in the DMZ. - - - - To keep OpenVZ happy (it issues dire warnings if the option is - not set on the associated external interface). - - +loc INT_IF dhcp,physical=$INT_IF,ignore=1,wait=5,routefilter,nets=172.20.1.0/24,routeback,tcpflags=0 +net COMB_IF optional,sourceroute=0,routefilter=0,arp_ignore=1,proxyarp=0,physical=$COMB_IF,upnp,nosmurfs,tcpflags +net COMC_IF optional,sourceroute=0,routefilter=0,arp_ignore=1,proxyarp=0,physical=$COMC_IF,upnp,nosmurfs,tcpflags,dhcp +dmz br0 routeback,proxyarp=1,required,wait=30 +- ifb0 ignore +
/etc/shorewall/hosts #ZONE HOST(S) OPTIONS -vpn $EXT_IF:0.0.0.0/0 -vpn $COM_IF:0.0.0.0/0 -vpn $INT_IF:0.0.0.0/0 -drct $INT_IF:dynamicThe vpn zone includes ipsec hosts interfacing from - either external interface as well as the local interface. drct is defined as dynamic through the local - interface (recall that it is a sub-zone of loc). +smc COMB_IF:10.1.10.0/24 mss=1400 +smc COMC_IF:10.0.0.0/24 +
/etc/shorewall/policy - #SOURCE DEST POLICY LOG LIMIT:BURST -# LEVEL -$FW dmz REJECT $LOG + #SOURCE DEST POLICY LOG LIMIT:BURST +# LEVEL +$FW dmz REJECT $LOG +$FW net REJECT $LOG +?else +$FW dmz REJECT $LOG +$FW net REJECT $LOG $FW all ACCEPT -loc net ACCEPT - -loc fw ACCEPT -loc vpn ACCEPT -vpn fw ACCEPT -vpn loc ACCEPT +smc loc ACCEPT +smc fw CONTINUE +smc net NONE +loc smc ACCEPT +loc net ACCEPT +loc fw REJECT $LOG net net NONE -net all DROP $LOG 8/sec:30 -dmz fw REJECT $LOG -all fw DROP $LOG -all all REJECT $LOGI'm a bit - sloppy with my fw<->loc policies -- I should fix that - someday... +net smc NONE +net all DROP:Drop $LOG 8/sec:30 +dmz fw REJECT:Reject $LOG +all all REJECT:Reject $LOG +
/etc/shorewall/accounting - #ACTION CHAIN SOURCE DESTINATION PROTO DEST SOURCE USER/ -# PORT(S) PORT(S) GROUP -hp:COUNT accounting $COM_IF $INT_IF:172.20.1.107 UDP -hp:COUNT accounting $INT_IF:172.20.1.107 $COM_IF UDP -DONE hp + #ACTION CHAIN SOURCE DESTINATION PROTO DEST SOURCE USER/ MARK IPSEC +# PORT(S) PORT(S) GROUP +?COMMENT +?SECTION PREROUTING +?SECTION INPUT +ACCOUNT(fw-net,$FW_NET) - COMB_IF +COUNT - COMB_IF - tcp - 80 +COUNT - COMC_IF - tcp - 80 +COUNT - br0:70.90.191.124 - tcp 80 = -mail:COUNT - $EXT_IF $VPS_IF:206.124.146.0/24 tcp 25 -mail:COUNT - $VPS_IF:206.124.146.0/24 $EXT_IF tcp 25 -DONE mail +?SECTION OUTPUT +ACCOUNT(fw-net,$FW_NET) - - COMB_IF +COUNT - - COMB_IF tcp 80 +COUNT - - COMC_IF tcp 80 -web - $EXT_IF $VPS_IF:206.124.146.0/24 tcp 80 -web - $EXT_IF $VPS_IF:206.124.146.0/24 tcp 443 -web - $VPS_IF:206.124.146.0/24 $EXT_IF tcp - 80 -web - $VPS_IF:206.124.146.0/24 $EXT_IF tcp - 443 +?SECTION FORWARD +ACCOUNT(dmz-net,$DMZ_NET) - br0 COMB_IF +ACCOUNT(dmz-net,$DMZ_NET) - COMB_IF br0 +ACCOUNT(loc-net,$INT_NET) - COMB_IF INT_IF +ACCOUNT(loc-net,$INT_NET) - INT_IF COMB_IF -COUNT web $EXT_IF $VPS_IF:206.124.146.0/24 -COUNT web $VPS_IF:206.124.146.0/24 $EXT_IF -The accounting chains are as follows: - - - - hp - - Counts traffic to/from my work laptop to HP. The VPN users - NAT-Traversal (UDP 4500) so I just count all UDP traffic to/from my - work system. - - - - mail - - Incoming and outgoing email - - - - web - - Website traffic (both HTTP and HTTPS) - - +
- /etc/shorewall/blacklist + /etc/shorewall/blrules - #ADDRESS/SUBNET PROTOCOL PORT -- udp 1024:1033,1434 -- tcp 57,1433,1434,2401,2745,3127,3306,3410,4899,5554,6101,8081,9898This - configuration silently drops a few ports that get lots of - traffic. -
- -
- /etc/shorewall/compile - - use strict; -use Shorewall::Chains; - -my $chainref = ensure_manual_chain qw/DNS_DDoS/; - -add_rule $chainref, q(-m string --algo bm --from 30 --to 31 --hex-string "|010000010000000000000000020001|" -j DROP); -add_rule $chainref, q(-m string --algo bm --from 30 --to 31 --hex-string "|000000010000000000000000020001|" -j DROP); -add_rule $chainref, q(-j ACCEPT); - -1;The above was created during a recent DDOS incident that - targeted DNS servers. It illustrates how manual chains can be - created. + WHITELIST net:70.90.191.126 all +BLACKLIST net:+blacklist all +BLACKLIST net all udp 1023:1033,1434,5948,23773 +DROP net all tcp 57,1433,1434,2401,2745,3127,3306,3410,4899,5554,5948,6101,8081,9898,23773 +DROP net:63.149.127.103 all +DROP net:175.143.53.113 all +DROP net:121.134.248.190 all +REJECT net:188.176.145.22 dmz tcp 25 +DROP net fw udp 111 +Invalid(DROP) net all
/etc/shorewall/findgw - if [ -f /var/lib/dhcp3/dhclient.${1}.leases ]; then - grep 'option routers' /var/lib/dhcp3/dhclient.${1}.leases | tail -n 1 | while read j1 j2 gateway; do echo $gateway | sed 's/;//'; return 0; done -fiThe Comcast line has a dynamic IP address assigned with the + if [ -f /var/lib/dhcpcd/dhcpcd-eth1.info ]; then + . /var/lib/dhcpcd/dhcpcd-eth1.info + echo $GATEWAY +fi +The Comcast line has a dynamic IP address assigned with the help of dhclient.
@@ -512,68 +643,144 @@ return $statusFor use with /etc/shorewall/lib.private start_lsm() { + # + # Kill any existing lsm process(es) + # killall lsm 2> /dev/null + # + # Create the Shorewall-specific part of the LSM configuration. This file is + # included by /etc/lsm/lsm.conf + # + # ComcastB has a static gateway while ComcastC's is dynamic + # cat <<EOF > /etc/lsm/shorewall.conf connection { - name=Avvanta - checkip=206.124.146.254 - device=$EXT_IF - ttl=2 + name=ComcastB + checkip=76.28.230.1 + device=$COMB_IF + ttl=2 } connection { - name=Comcast - checkip=${ETH0_GATEWAY:-71.231.152.1} - device=$COM_IF - ttl=1 + name=ComcastC + checkip=76.28.230.188 + device=$COMC_IF + ttl=3 } EOF - rm -f /etc/shorewall/*.status - /usr/sbin/lsm /etc/lsm/lsm.conf >> /var/log/lsm -} -This function configures and starts This function configures and starts lsm.
/etc/shorewall/masq - #INTERFACE SOURCE ADDRESS + #INTERFACE SOURCE ADDRESS PROTO -COMMENT Masquerade Local Network -$COM_IF 0.0.0.0/0 -$EXT_IF !206.124.146.0/24 206.124.146.179 -All connections out through Comcast must have the dynamically - assigned address as their source address. Traffic from hosts without an - Avvanta public IP address get 206.124.146.179 as their source - address. +?COMMENT Use the SMC's local net address when communicating with that net + +COMB_IF:10.1.10.0/24 0.0.0.0/0 %{SMC_ADDR} + +?COMMENT Masquerade Local Network + +COMB_IF !70.90.191.120/29 70.90.191.121 ; -m statistic --mode random --probability 0.50 +COMB_IF !70.90.191.120/29 70.90.191.123 +COMC_IF 0.0.0.0/0 +#INT_IF:172.20.1.15 172.20.1.0/24 172.20.1.254 + +br0 70.90.191.120/29 70.90.191.121 tcp 80 +I split connections out of COMB_IF between the two IP + addresses configured on the interface.
- /etc/shorewall/notrack + /etc/shorewall/conntrack - #SOURCE DESTINATION PROTO DEST SOURCE USER/ -# PORT(S) PORT(S) GROUP -net:!192.88.99.1 - 41 -dmz 206.124.146.255 udp -dmz 255.255.255.255 udp -loc 172.20.1.255 udp -loc 255.255.255.255 udp -$FW 255.255.255.255 udp -$FW 172.20.1.255 udp -$FW 206.124.146.255 udpThis file omits the - 6to4 traffic originating from 6to4 relays as well as broadcast traffic - (which Netfilter doesn't handle). + ?FORMAT 2 +#ACTION SOURCE DESTINATION PROTO DEST SOURCE USER/ +# PORT(S) PORT(S) GROUP +# +DROP net - udp 3551 +NOTRACK net - tcp 23 +NOTRACK loc 172.20.1.255 udp +NOTRACK loc 255.255.255.255 udp +NOTRACK $FW 255.255.255.255 udp +NOTRACK $FW 172.20.1.255 udp +NOTRACK $FW 70.90.191.127 udp +NOTRACK net:192.88.99.1 - +NOTRACK $FW 192.88.99.1 + +?if $AUTOHELPERS +?if __CT_TARGET && __AMANDA_HELPER +CT:helper:amanda all - udp 10080 +?endif +?if __CT_TARGET && __FTP_HELPER +CT:helper:ftp all - tcp 21 +?endif +?if __CT_TARGET && __H323_HELPER +CT:helper:RAS all - udp 1719 +CT:helper:Q.931 all - tcp 1720 +?endif +?if __CT_TARGET && __IRC_HELPER +CT:helper:irc all - tcp 6667 +?endif +?if __CT_TARGET && __NETBIOS_NS_HELPER +CT:helper:netbios-ns all - udp 137 +?endif +?if __CT_TARGET && __PPTP_HELPER +CT:helper:pptp all - tcp 1729 +?endif +?if __CT_TARGET && __SANE_HELPER +CT:helper:sane all - tcp 6566 +?endif +#?if __CT_TARGET && __SIP_HELPER +#CT:helper:sip all - udp 5060 +#?endif +?if __CT_TARGET && __SNMP_HELPER +CT:helper:snmp all - udp 161 +?endif +?if __CT_TARGET && __TFTP_HELPER +CT:helper:tftp all - udp 69 +?endif +?endif +This file omits the 6to4 traffic originating from 6to4 relays + as well as broadcast traffic (which Netfilter doesn't handle).
/etc/shorewall/providers - #NAME NUMBER MARK DUPLICATE INTERFACE GATEWAY OPTIONS COPY -Avvanta 1 0x10000 main $EXT_IF 206.124.146.254 track,loose,fallback $INT_IF,$VPS_IF,tun* -Comcast 2 0x20000 main $COM_IF detect track,balance $INT_IF,$VPS_IF,tun*See - the Multi-ISP article for an explaination of - the multi-ISP aspects of this configuration. + #NAME NUMBER MARK DUPLICATE INTERFACE GATEWAY OPTIONS COPY +?IF $STATISTICAL +ComcastB 1 0x10000 - COMB_IF 70.90.191.126 loose,load=0.66666667,fallback +ComcastC 2 0x20000 - COMC_IF detect loose,load=0.33333333 +?ELSE +ComcastB 1 0x10000 - COMB_IF 70.90.191.126 nohostroute,loose,balance=2 +ComcastC 2 0x20000 - COMC_IF detect nohostroute,loose,balance +?ENDIF +?IF $PROXY && ! $SQUID2 +TProxy 3 - - lo - tproxy +?ENDIF +root@gateway:/etc/shorewall# +See the Multi-ISP article for an + explaination of the multi-ISP aspects of this configuration.
@@ -599,154 +806,261 @@ chmod 744 ${VARDIR}/stateIf lsm isn't running then start it. /etc/shorewall/rtrules #SOURCE DEST PROVIDER PRIORITY - -- 172.20.0.0/24 main 1000 #OpenVPN clients -- 206.124.146.177 main 1001 #Servers -- Routes configured by OpenVZ -- 206.124.146.178 main 1001 # -- 216.168.3.44 Avvanta 1001 #NNTP -- Does source IP verification -206.124.146.176/30 - Avvanta 26000 #Avvanta public IP addresses -206.124.146.180 - Avvanta 26000 #These +70.90.191.121,\ +70.90.191.123 - ComcastB 1000 +&COMC_IF - ComcastC 1000 +br0 - ComcastB 11000 +172.20.1.191 - ComcastB 1000These entries simply ensure that outgoing traffic uses the correct interface.
- /etc/shorewall/routestopped + /etc/shorewall/stoppedrules - #INTERFACE HOST(S) OPTIONS PROTO -$INT_IF 172.20.1.0/24 source,dest -$VPS_IF 206.124.146.177,206.124.146.178 -$EXT_IF - notrack 41Keep + #TARGET HOST(S) DEST PROTO DEST SOURCE +# PORT(S) PORT(S) +ACCEPT INT_IF:172.20.1.0/24 $FW +NOTRACK COMB_IF - 41 +NOTRACK $FW COMB_IF 41 +ACCEPT COMB_IF $FW 41 +ACCEPT COMC_IF $FW udp 67:68Keep the lights on while Shorewall is stopped.
/etc/shorewall/rules - ############################################################################################################################################################################### -#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ -# PORT PORT(S) DEST LIMIT GROUP -############################################################################################################################################################################### -SECTION ESTABLISHED -SECTION RELATED -SECTION NEW + ################################################################################################################################################################################################ +#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK CONNLIMIT TIME HEADERS SWITCH +# PORT(S) PORT(S) DEST LIMIT GROUP +################################################################################################################################################################################################ +?if $VERSION < 40500 +?SHELL echo " ERROR: Shorewall version is too low" >&2; exit 1 +?endif -REJECT:$LOG loc net tcp 25 #Stop direct loc->net SMTP (Comcast uses submission). -REJECT:$LOG loc net udp 1025:1031 #MS Messaging +?begin perl +1; +?end perl -COMMENT Stop NETBIOS crap +?SECTION ALL -REJECT loc net tcp 137,445 -REJECT loc net udp 137:139 +#ACCEPT net:smc.shorewall.net $FW +#RST(LOG) all all -COMMENT Stop my idiotic work laptop from sending to the net with an HP source IP address +?SECTION ESTABLISHED -DROP loc:!172.20.0.0/23 net +#SSH(REJECT) net loc:1.2.3.4 { time=timestart=18:48 } -COMMENT -############################################################################################################################################################################### -# Local Network to Firewall +?SECTION RELATED +ACCEPT all dmz:70.90.191.125 tcp 61001:62000 { helper=ftp } +ACCEPT dmz all tcp { helper=ftp } +ACCEPT all net tcp { helper=ftp } +ACCEPT all all icmp +RST(ACCEPT) all all tcp +ACCEPT dmz dmz +ACCEPT $FW all + +?SECTION INVALID +DROP net all +?SECTION UNTRACKED + +ACCEPT net:192.88.99.1 $FW 41 +tarpit net all tcp 23 + +Broadcast(ACCEPT)\ + all $FW +ACCEPT all $FW udp +CONTINUE loc $FW +CONTINUE $FW all + +?SECTION NEW + +DNSAmp(ACCEPT) loc fw +REJECT:$LOG loc net tcp 25 #Stop direct loc->net SMTP (Comcast uses submission). +REJECT:$LOG loc net udp 1025:1031 #MS Messaging + +?COMMENT Stop NETBIOS crap + +REJECT all net tcp 137,445 +REJECT all net udp 137:139 + +?COMMENT Disallow port 333 + +REJECT all net tcp 3333 + +?COMMENT Stop Teredo + +REJECT all net udp 3544 + +?COMMENT Stop my idiotic work laptop from sending to the net with an HP source IP address + +{ action=DROP, source=loc:!172.20.0.0/22, dest=net } # + +?COMMENT + +#dropInvalid net all tcp +################################################################################################################################################################################################ +# Local network to DMZ # -NONAT drct - -REDIRECT- loc 3128 tcp 80 - !66.199.187.46,172.20.1.108,206.124.146.177,155.98.64.80,81.19.16.0/21 -############################################################################################################################################################################### -# Local network to DMZ +DNAT loc dmz:70.90.191.125 tcp www - 70.90.191.123 +ACCEPT loc dmz tcp ssh,smtp,465,548,587,www,ftp,imaps,https,5901:5903 +ACCEPT loc dmz udp 3478:3479,33434:33524 +################################################################################################################################################################################################ +# SMC network to DMZ # -ACCEPT loc dmz udp domain,177 -ACCEPT loc dmz tcp ssh,smtp,465,587,www,ftp,imaps,domain,https,5901:5903 - -ACCEPT loc dmz udp 33434:33524 -############################################################################################################################################################################### +ACCEPT smc dmz tcp ssh,smtp,465,587,www,ftp,imaps,https,5901:5903 +ACCEPT smc dmz udp 33434:33524 +################################################################################################################################################################################################ +# SMC network to LOC +# +################################################################################################################################################################################################ +# Local Network to Firewall +# + +?IF $SQUID2 +REDIRECT loc 3128 tcp 80 {origdest="!172.20.1.0/24,70.90.191.120/29,155.98.64.80,81.19.16.0/21,10.1.10.1"} +?ENDIF + +ACCEPT loc fw udp 53,111,123,177,192,631,1024: +SMB(ACCEPT) loc fw +ACCEPT loc fw tcp 22,53,80,111,229,548,2049,3000,32765:61000 +ACCEPT loc fw tcp 3128 +mDNS(ACCEPT) loc fw +ACCEPT loc fw tcp 5001 + +ACCEPT loc:172.20.2.149 fw tcp 3551 #APCUPSD + +################################################################################################################################################################################################ +# SMC Network to Firewall +# +ACCEPT smc fw udp 53,111,123,177,192,631,1024: +SMB(ACCEPT) smc fw +ACCEPT smc fw tcp 22,53,111,548,2049,3000,3128,32765:32768,49152 +mDNS(ACCEPT) smc fw +################################################################################################################################################################################################ +# SMC Network to multiple destinations +# +Ping(ACCEPT) smc dmz,fw +################################################################################################################################################################################################ +# Local Network to Internet +#REJECT:info loc net tcp 80,443 +################################################################################################################################################################################################ +# Local Network to multiple destinations +# +Ping(ACCEPT) loc dmz,fw +################################################################################################################################################################################################ # Internet to ALL -- drop NewNotSyn packets # -dropNotSyn net fw tcp -dropNotSyn net loc tcp -dropNotSyn net dmz tcp -############################################################################################################################################################################### -# Internet to DMZ +dropNotSyn net fw,loc,smc tcp +AutoBL(SSH,60,-,-,-,-,$LOG)\ + net all tcp 22 +################################################################################################################################################################################################ +# Internet to DMZ # -DNS_DDoS net dmz udp domain -ACCEPT net dmz tcp smtp,www,ftp,465,587,imaps,domain,https -ACCEPT net dmz udp 33434:33454 -Mirrors:none net dmz tcp 873 -ACCEPT net dmz tcp 22 - - s:ssh:3/min:3 -############################################################################################################################################################# -################# -# -# Net to Local -# -Limit:$LOG:SSHA,3,60\ - net loc tcp 22 -# -# BitTorrent from Wireless Network -# -#DNAT net:$COM_IF loc:172.20.1.102 tcp 6881:6889 -#DNAT net:$COM_IF loc:172.20.1.102 udp 6881 +ACCEPT net dmz udp 33434:33454 +ACCEPT net dmz tcp 25 - - smtp:2/min:4,mail:60/min:100 +DNAT- net 70.90.191.125 tcp https - 70.90.191.123 +DNAT- net 70.90.191.125 tcp http - 70.90.191.123 +DNAT- all 172.20.2.44 tcp ssh - 70.90.191.123 +ACCEPT net dmz:70.90.191.122 tcp https,imaps +ACCEPT net dmz:70.90.191.124 tcp http,https,465,587,imaps +ACCEPT net dmz:70.90.191.125 tcp http,ftp +Mirrors(ACCEPT:none)\ #Continuation test + net dmz tcp 873 +Ping(ACCEPT) net dmz +DROP net dmz tcp http,https +################################################################################################################################################################################################ # # UPnP # -forwardUPnP net loc +ACCEPT loc fw udp 1900 +forwardUPnP net loc # # Silently Handle common probes # -REJECT net loc tcp www,ftp,https -DROP net loc icmp 8 -############################################################################################################################################################################### +REJECT net loc tcp www,ftp,https +DROP net loc icmp 8 +################################################################################################################################################################################################ +# DMZ to DMZ +# +################################################################################################################################################################################################ +DNAT dmz dmz:70.90.191.125:80 tcp 80 - 70.90.191.121 # DMZ to Internet # -ACCEPT dmz net udp domain,ntp -REJECT dmz net:$COM_IF tcp smtp -ACCEPT dmz net tcp echo,ftp,ssh,smtp,whois,domain,www,81,nntp,https,2401,2702,2703,8080 -ACCEPT dmz net:$POPSERVERS tcp pop3 +ACCEPT dmz net udp ntp,domain +ACCEPT dmz net tcp domain,echo,ftp,ssh,smtp,whois,www,81,nntp,https,993,465,587,2401,2702,2703,5901,8080,9418,11371 # # Some FTP clients seem prone to sending the PORT command split over two packets. This prevents the FTP connection tracking -# code from processing the command and setting up the proper expectation. The following rule allows active FTP to work in these cases +# code from processing the command and setting up the proper expectation +# The following rule allows active FTP to work in these cases # but logs the connection so I can keep an eye on this potential security hole. # -ACCEPT:$LOG dmz net tcp 1024: 20 -############################################################################################################################################################################### -# DMZ to Local +ACCEPT:$LOG dmz net tcp 1024: 20 + +Ping(ACCEPT) dmz all +################################################################################################################################################################################################ +# DMZ to fw # -ACCEPT dmz loc tcp 22 - - s:ssh:3/min:3 -############################################################################################################################################################################### -# DMZ to Firewall -- ntp & snmp Silently reject Auth -# -ACCEPT dmz fw tcp 161,ssh -ACCEPT dmz fw udp 161,ntp -REJECT dmz fw tcp auth -############################################################################################################################################################################### +DNS(ACCEPT) dmz $FW +HTTP(ACCEPT) dmz $FW +Ping(ACCEPT) dmz $FW +################################################################################################################################################################################################ # Internet to Firewall # -REJECT net fw tcp www,ftp,https -DROP net fw icmp 8 -ACCEPT net fw udp 33434:33454 -ACCEPT net fw tcp 22 - - s:ssh:3/min:3 -ACCEPT net fw udp 33434:33524 -############################################################################################################################################################################### + +REJECT net fw tcp www,ftp,https +ACCEPT net fw udp 3478:3479,33434:33454 +ACCEPT net fw tcp 22 - - s:ssh:1/min:3 +ACCEPT net fw tcp 51413 +?COMMENT IPv6 tunnel ping + +ACCEPT net fw:70.90.191.121,70.90.191.122/31\ + icmp 8 +ACCEPT net:COMC_IF fw icmp 8 + +?COMMENT + +################################################################################################################################################################################################ # Firewall to DMZ # -ACCEPT fw dmz tcp domain,www,ftp,ssh,smtp,https,993,465,587,5901 -ACCEPT fw dmz udp domain -REJECT fw dmz udp 137:139 -############################################################################################################################################################################## +ACCEPT fw dmz tcp www,ftp,ssh,smtp,https,465,587,993,3128,5901 +REJECT fw dmz udp 137:139 +Ping(ACCEPT) fw dmz +################################################################################################################################################################################################ +# Firewall to NET # -COMMENT Freenode Probes -DROP net:82.96.96.3,85.190.0.3 any -COMMENT -############################################################################################################################################################################## -# Allow Ping except where disallowed earlier +DNS(ACCEPT) fw net +NTP(ACCEPT) fw net +DNAT- fw 172.20.1.254:3128 tcp 80 - - - !:proxy +ACCEPT+ fw net tcp 43,80,443,3466 - - - - +ACCEPT fw net tcp 3128 - - - !:proxy +FTP(ACCEPT) fw net - - - - - proxy +Git(ACCEPT) fw net - - - - - teastep +ACCEPT fw net tcp 22 +NNTP(ACCEPT) fw net +Ping(ACCEPT) fw net +ACCEPT fw net udp 33434:33524 +#ACCEPT:info fw net - - - - - root +ACCEPT fw net tcp 25,143,993 - - - teastep +################################################################################################################################################################################################ # -ACCEPT any any icmp 8 +?COMMENT Freenode Probes +DROP net:\ + 82.96.96.3,\ + 85.190.0.3 any!loc,smc +?COMMENT +################################################################################################################################################################################################ +
/etc/shorewall/started - if [ -z "$(ps ax | grep 'lsm ' | grep -v 'grep ' )" ]; then + if [ "$COMMAND" = start -o -z "$(ps ax | grep 'lsm ' | grep -v 'grep ' )" ]; then start_lsm fi - -chmod 744 ${VARDIR}/stateIf lsm isn't running then start it. - Make the state file world-readable. +If lsm isn't running then start it.
@@ -760,109 +1074,14 @@ chmod 744 ${VARDIR}/stateKill lsm if the command is stop or clear. Make the state file world-readable.
-
- /etc/shorewall/tcdevices - - #INTERFACE IN-BANDWITH OUT-BANDWIDTH OPTIONS -$EXT_IF - 300kbit classify -$INT_IF - 80mbit classify -$COM_IF - 4mbit classify,hfsc -The use of HFSC on the Comcast link is largely to provide a - test bed for that qdisc; I really don't have any real-time requirement - such as VOIP. -
- -
- /etc/shorewall/tcclasses - - #INTERFACE MARK RATE CEIL PRIORITY OPTIONS -1:110 - full/4 full 1 tcp-ack,tos-minimize-delay -1:120 - full/4 full 2 flow=nfct-src -1:130 - full/4 230kbit 3 default,flow=nfct-src -1:140 - full/4 230kbit 4 flow=nfct-src - -2:10 - 95*full/100 full 1 flow=dst -2:100 - 14mbit 20mbit 2 -2:100:101 - 7mbit 20mbit 3 default,flow=dst -2:100:102 - 7mbit 20mbit 3 flow=dst - -3:10 - 2mbit:4ms full 1 flow=nfct-src -3:100 - 2mbit full 2 -3:100:101 - 1mbit full 3 default,flow=nfct-src -3:100:102 - 1mbit full 3 flow=nfct-src -Note that most of the outgoing bandwidth on the local - interface is allocated to one class. That class is used for local - traffic. -
- -
- /etc/shorewall/tcfilters - - #INTERFACE: SOURCE DEST PROTO DEST SOURCE TOS LENGTH -#CLASS PORT(S) PORT(S) - -# =============================== AVVANTA ==================================== -# -# Give Highest priority to LSM's pings to the gateway and to DNS queries -# -1:110 206.124.146.176 206.124.146.254 icmp -1:110 206.124.146.177 - udp 53 -# -# Second Highest priority to IPv6 Tunnel -# -1:120 206.124.146.180 -# -# Lowest priority to bulk traffic -# -1:140 206.124.146.177 - tcp - 873 - 2048 -1:140 206.124.146.177 - - - - tos-minimize-cost -The tcfilters file is only used for the Avvanta provider - because it has static public IP addresses. -
- -
- /etc/shorewall/tcrules - - #MARK SOURCE DEST PROTO PORT(S) CLIENT USER TEST LENGTH TOS -# PORT(S) - -COMMENT Shape incoming traffic - -# -# Most of the bandwidth is reserved for local traffic since the downlinks aren't that fast -# -2:10 206.124.146.176/30 $INT_IF -2:10 206.124.146.177 $INT_IF -2:10 172.20.1.254 $INT_IF -# -# Guarantee 1/2 of the incoming bandwidth for my work system -# -2:102 0.0.0.0/0 $INT_IF:172.20.1.107 - -COMMENT Shape outgoing traffic to Comcast -# -# Give 1/2 to my work system and add a latency guarantee -# -3:10 172.20.1.107 $COM_IF -# -# Restrict Torrent uploads -# -3:102 172.20.1.0/24 $COM_IF tcp - 6881:6889 -The tcrules file is used to classify traffic that deals with - the local network and/or with Comcast. -
-
/etc/shorewall/tunnels #TYPE ZONE GATEWAY GATEWAY # ZONE -openvpnserver:udp net -6to4 net -ipsec net -ipsec loc -ipip vpn 0.0.0.0/0The ipip tunnel from - the vpn zone handles IP compression on IPSEC connections. +6to4 net 216.218.226.238 +6to4 net 192.88.99.1 +
diff --git a/docs/images/Network2015.dia b/docs/images/Network2015.dia new file mode 100755 index 0000000000000000000000000000000000000000..8f9336598c8c9ea2ff6ad1e619a49ce65bda6df6 GIT binary patch literal 7001 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 literal 0 HcmV?d00001 diff --git a/docs/images/Network2015.png b/docs/images/Network2015.png new file mode 100755 index 0000000000000000000000000000000000000000..aaa7bd073f57d95117ad77dc3b7f6a5f6f8aceea GIT binary patch literal 111459 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 ZYMZP=E%n=Va_ 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