local.m4: Prepare for switchover to A&A.
[firewall] / local.m4
index a50afd7..b0a4e4c 100644 (file)
--- a/local.m4
+++ b/local.m4
@@ -43,6 +43,10 @@ m4_divert(-1)
 ##             House border network (dmz).  We have all of these, but .145
 ##             is reserved for the router.
 ##
+## 81.2.113.195, 81.187.238.128/28
+##             House border network (aaisp).  We have all of these; the
+##             loose address is for the router.
+##
 ## 212.13.18.64/28
 ##             Jump colocated network (jump).  .65--68 are used by Jump
 ##             network infrastructure; we get the rest.
@@ -54,6 +58,7 @@ m4_divert(-1)
 ## 172.29.198.0/24  Untrusted networks.
 ##     .0/25           house wireless net
 ##     .128/28         iodine (IP-over-DNS) network
+##     .160/27         untrusted virtual network
 ##
 ## 172.29.199.0/24  Trusted networks.
 ##     .0/25           house wired network
@@ -78,6 +83,10 @@ m4_divert(-1)
 ## 2001:470:9740::/48
 ##             Main house range.  See below for allocation policy.
 ##
+## 2001:8b0:c92::/48
+##             Main house range (aaisp).  See below for allocation policy.
+##             There is no explicit DMZ allocation (and no need for one).
+##
 ## 2001:ba8:0:1d9::/64
 ##             Jump border network (jump): :1 is the router (supplied by
 ##             Jump); other addresses are ours.
@@ -89,8 +98,9 @@ m4_divert(-1)
 ## The /48s are split into /64s by appending a 16-bit network number.  The
 ## top nibble of the network number classifies the network, as follows.
 ##
+## axxx                Virtual, untrusted
 ## 8xxx                Untrusted
-## 6xxx                Virtual
+## 6xxx                Virtual, safe
 ## 4xxx                Safe
 ## 0xxx                Unsafe, trusted
 ##
@@ -112,10 +122,11 @@ m4_divert(-1)
 
 ## Define the available network classes.
 m4_divert(42)m4_dnl
-defnetclass untrusted  untrusted trusted             mcast
-defnetclass trusted    untrusted trusted safe noloop mcast
-defnetclass safe                 trusted safe noloop mcast
-defnetclass noloop               trusted safe        mcast
+defnetclass scary      scary           trusted             mcast
+defnetclass untrusted  scary untrusted trusted             mcast
+defnetclass trusted    scary untrusted trusted safe noloop mcast
+defnetclass safe                       trusted safe noloop mcast
+defnetclass noloop                     trusted safe        mcast
 
 defnetclass link
 defnetclass mcast
@@ -128,6 +139,7 @@ m4_divert(26)m4_dnl
 ## House networks.
 defnet dmz trusted
        addr 62.49.204.144/28 2001:470:1f09:1b98::/64
+       addr 81.2.113.195 81.187.238.128/28 2001:8b0:c92::/48
        via unsafe untrusted
 defnet unsafe trusted
        addr 172.29.199.0/25 2001:470:9740:1::/64
@@ -143,7 +155,6 @@ defnet househub virtual
        via housebdry dmz unsafe safe untrusted
 defnet housebdry virtual
        via househub hub
-       noxit dmz
 
 ## House hosts.
 defhost radius
@@ -163,6 +174,9 @@ defhost roadstar
 defhost jem
        iface eth0 dmz unsafe
        iface eth1 dmz unsafe
+defhost universe
+       iface eth0 dmz unsafe
+       iface eth1 dmz unsafe
 defhost artist
        hosttype router
        iface eth0 dmz unsafe untrusted
@@ -183,10 +197,14 @@ defhost ibanez
 defhost orange
        iface wlan0 untrusted
        iface vpn-radius unsafe
+defhost groove
+       iface eth0 unsafe
+       iface wlan0 untrusted
+       iface vpn-radius unsafe
 
 defhost gibson
        hosttype client
-       iface eth0 unsafe
+       iface eth0.5 unsafe
 
 ## Colocated networks.
 defnet jump trusted
@@ -199,7 +217,6 @@ defnet colohub virtual
        via colobdry jump colo
 defnet colobdry virtual
        via colohub hub
-       noxit jump
 defnet iodine untrusted
        addr 172.29.198.128/28
        via colohub
@@ -215,6 +232,7 @@ defhost precision
        iface vpn-mango binswood
        iface vpn-radius housebdry vpn sgo
        iface vpn-chiark sgo
+       iface vpn-national upn
        iface vpn-+ vpn
 defhost telecaster
        iface eth0 jump colo
@@ -222,8 +240,6 @@ defhost telecaster
 defhost stratocaster
        iface eth0 jump colo
        iface eth1 jump colo
-defhost jaguar
-       iface eth0 jump
 defhost jazz
        hosttype router
        iface eth0 jump colo vpn
@@ -243,23 +259,33 @@ defnet sgo noloop
 defnet vpn safe
        addr 172.29.199.128/27 2001:ba8:1d9:6000::/64
        via househub colohub
-       host crybaby 1
-       host terror 2
-       host orange 3
+       host crybaby 1 ::1:1
+       host terror 2 ::2:1
+       host orange 3 ::3:1
+       host haze 4 ::4:1
+       host groove 5 ::5:1
 defnet anycast trusted
        addr 172.29.199.224/27 2001:ba8:1d9:0::/64
        via dmz unsafe safe untrusted jump colo vpn
-defnet default untrusted
+defnet default scary
        addr 62.49.204.144/28 2001:470:1f09:1b98::/64
        addr 212.13.198.64/28 2001:ba8:0:1d9::/64
        addr 2001:ba8:1d9::/48 #temporary
        via dmz unsafe untrusted jump colo
+defnet upn untrusted
+       addr 172.29.198.160/27 2001:ba8:1d9:a000::/64
+       via colohub
+       host national 1 ::1:1
+
+## Linode hosts.
+defhost national
+       iface eth0 default
+       iface vpn-precision colohub
 
 ## Satellite networks.
 defnet binswood noloop
        addr 10.165.27.0/24
        via colohub
-
 defhost mango
        hosttype router
        iface eth0 binswood default
@@ -267,6 +293,14 @@ defhost mango
 
 m4_divert(80)m4_dnl
 ###--------------------------------------------------------------------------
+### Connection tracking helper modules.
+
+for i in ftp; do
+  modprobe nf_conntrack_$i
+done
+
+m4_divert(80)m4_dnl
+###--------------------------------------------------------------------------
 ### Special forwarding exemptions.
 
 case $forward in
@@ -349,7 +383,8 @@ run iptables -A inbound -j ACCEPT \
        -p udp --source-port $port_bootpc --destination-port $port_bootps
 
 ## Allow incoming ping.  This is the only ICMP left.
-run ip46tables -A inbound -j ACCEPT -p icmp
+run iptables -A inbound -j ACCEPT -p icmp
+run ip6tables -A inbound -j ACCEPT -p icmpv6
 
 m4_divert(88)m4_dnl
 ## Allow unusual things.
@@ -357,8 +392,19 @@ openports inbound
 
 ## Inspect inbound packets from untrusted sources.
 run ip46tables -A inbound -j forbidden
+run ip46tables -A INPUT -m mark --mark $from_scary/$MASK_FROM -g inbound
 run ip46tables -A INPUT -m mark --mark $from_untrusted/$MASK_FROM -g inbound
 
+## Allow responses from the scary outside world into the untrusted net, but
+## don't let untrusted things run services.
+case $forward in
+  1)
+    run ip46tables -A FORWARD -j ACCEPT \
+       -m mark --mark $(( $from_scary | $to_untrusted ))/$(( $MASK_FROM | $MASK_TO )) \
+       -m state --state ESTABLISHED,RELATED
+    ;;
+esac
+
 ## Otherwise process as indicated by the mark.
 for i in $inchains; do
   run ip46tables -A $i -m mark ! --mark 0/$MASK_MASK -j ACCEPT