firewall
11 years agolocal.m4: New satellite network `binswood'.
Mark Wooding [Sat, 26 Jan 2013 14:39:45 +0000 (14:39 +0000)]
local.m4: New satellite network `binswood'.

11 years agolocal.m4: Make the net-class policies easier to read.
Mark Wooding [Sat, 26 Jan 2013 14:38:33 +0000 (14:38 +0000)]
local.m4: Make the net-class policies easier to read.

11 years agolocal.m4: Nothing should forward via `iodine'.
Mark Wooding [Sat, 26 Jan 2013 14:34:19 +0000 (14:34 +0000)]
local.m4: Nothing should forward via `iodine'.

11 years agofunctions.m4, local.m4: Rename `forwards' to `via'.
Mark Wooding [Sat, 26 Jan 2013 14:32:20 +0000 (14:32 +0000)]
functions.m4, local.m4: Rename `forwards' to `via'.

In fact, it lists the networks to which this one might forward packets,
rather than the networks whose packets this one forwards.  Hopefully the
name change will reduce confusion.

11 years agoNew host `orange'.
Mark Wooding [Sun, 13 Jan 2013 20:48:53 +0000 (20:48 +0000)]
New host `orange'.

11 years agoibanez.m4, vampire.m4: Provide NTP service to untrusted hosts.
Mark Wooding [Sun, 13 Jan 2013 19:15:18 +0000 (19:15 +0000)]
ibanez.m4, vampire.m4: Provide NTP service to untrusted hosts.

11 years agobookends.m4: Better check for bridging.
Mark Wooding [Tue, 8 Jan 2013 16:07:22 +0000 (16:07 +0000)]
bookends.m4: Better check for bridging.

11 years agostratocaster.m4: Provide rsync service.
Mark Wooding [Sat, 29 Dec 2012 01:35:52 +0000 (01:35 +0000)]
stratocaster.m4: Provide rsync service.

11 years ago{roadstar,jem,telecaster,stratocaster}.m4: Move Git to login servers.
Mark Wooding [Fri, 28 Dec 2012 17:59:33 +0000 (17:59 +0000)]
{roadstar,jem,telecaster,stratocaster}.m4: Move Git to login servers.

This avoids lots of annoying messing about with NFS.  Maybe when
wheezy is released I'll move these back.

11 years agoartist.m4: Moved the `rawk' server to artist.
Mark Wooding [Fri, 28 Dec 2012 17:55:00 +0000 (17:55 +0000)]
artist.m4: Moved the `rawk' server to artist.

Maybe for the second time.

11 years agojazz.m4, local.m4: Make jazz be a TrIPE endpoint.
Mark Wooding [Sat, 15 Dec 2012 18:52:57 +0000 (18:52 +0000)]
jazz.m4, local.m4: Make jazz be a TrIPE endpoint.

It's running the IP-over-DNS endpoint, and life becomes very tricky if
it's not also the VPN endpoint.  There's knock-on stuff: jazz becomes
a router, and VPN traffic can flow over the colo and jump nets.

11 years agonumbers.m4: Add port number for IRC.
Mark Wooding [Fri, 14 Dec 2012 17:57:34 +0000 (17:57 +0000)]
numbers.m4: Add port number for IRC.

Not that it's used anywhere yet.

11 years agoMakefile: If the user overrides HOSTS, don't install locally anyway.
Mark Wooding [Thu, 13 Dec 2012 10:06:24 +0000 (10:06 +0000)]
Makefile: If the user overrides HOSTS, don't install locally anyway.

11 years agolocal.m4: Add a prose commentary on address allocation.
Mark Wooding [Thu, 13 Dec 2012 10:02:28 +0000 (10:02 +0000)]
local.m4: Add a prose commentary on address allocation.

The IPv4 allocation is summarized in the DNS zone repository; the IPv6
allocation wasn't described anywhere at all.

11 years agofunctions.m4: Correctly clear `to' network field in packet mark.
Mark Wooding [Tue, 11 Dec 2012 10:23:42 +0000 (10:23 +0000)]
functions.m4: Correctly clear `to' network field in packet mark.

I thibk this worked before anyway, but it's good to fix it properly.

11 years agoclassify.m4: Dispatch on destination addresses to correct chains.
Mark Wooding [Tue, 11 Dec 2012 09:43:34 +0000 (09:43 +0000)]
classify.m4: Dispatch on destination addresses to correct chains.

11 years agoclassify.m4: Classify individual host routes correctly.
Mark Wooding [Tue, 11 Dec 2012 09:33:49 +0000 (09:33 +0000)]
classify.m4: Classify individual host routes correctly.

For some reason, were just using whatever value of `$class' was left
lying around.  Not very clever, really.

11 years agoclassify.m4: Clean up interface map tracing.
Mark Wooding [Tue, 11 Dec 2012 09:30:15 +0000 (09:30 +0000)]
classify.m4: Clean up interface map tracing.

Remove duplicate dump of the interface, and only dump the list of known
networks once at the very end.

11 years agofunctions.m4: Fix up commentary for `matchnets'.
Mark Wooding [Tue, 11 Dec 2012 09:43:15 +0000 (09:43 +0000)]
functions.m4: Fix up commentary for `matchnets'.

11 years agolocal.m4, jazz.m4: Move iodine endpoint to jazz.
Mark Wooding [Tue, 11 Dec 2012 09:32:36 +0000 (09:32 +0000)]
local.m4, jazz.m4: Move iodine endpoint to jazz.

11 years agonumbers.m4, vampire.m4: Expose print server to local untrusted hosts.
Mark Wooding [Tue, 11 Dec 2012 09:33:04 +0000 (09:33 +0000)]
numbers.m4, vampire.m4: Expose print server to local untrusted hosts.

Let's hope they don't use up all of my paper.

11 years agoradius.m4: Allow external servers to contact the identd.
Mark Wooding [Sun, 14 Oct 2012 19:41:58 +0000 (20:41 +0100)]
radius.m4: Allow external servers to contact the identd.

Otherwise all requests for NATted connections will fail.

11 years agolocal.m4, radius.m4: radius is now the host gateway to the net.
Mark Wooding [Sun, 14 Oct 2012 16:25:25 +0000 (17:25 +0100)]
local.m4, radius.m4: radius is now the host gateway to the net.

The MTU is low because the PPPoE<->PPPoA modem uses 8 bytes from the
ethernet frame size limit, and Demon has a tendency to be useless
about breaking path-MTU discovery; so apply TCP MSS clamping.

11 years agolocal.m4: artist should expect untrusted source addrs on dmz and unsafe.
Mark Wooding [Wed, 12 Sep 2012 08:51:59 +0000 (09:51 +0100)]
local.m4: artist should expect untrusted source addrs on dmz and unsafe.

An untrusted device, not on the VPN, will be routed to artist through
radius.

11 years agolocal.m4: Track VLAN renumbering in vampire's interface names.
Mark Wooding [Wed, 12 Sep 2012 08:51:05 +0000 (09:51 +0100)]
local.m4: Track VLAN renumbering in vampire's interface names.

11 years agoRate limiting for incoming DNS queries over UDP.
Mark Wooding [Fri, 8 Jun 2012 00:51:05 +0000 (01:51 +0100)]
Rate limiting for incoming DNS queries over UDP.

We provide DNSsec-signed responses, and could be used as a DDoS
amplifier.  Apply rate-limiting to incoming traffic to mitigate this
effect.

This should be removed if and when BIND acquires its own more
intelligent rate-limiting.

11 years agoradius.m4: Handy ipset hook for ad-hoc safe/unstrusted exceptions.
Mark Wooding [Fri, 8 Jun 2012 00:28:45 +0000 (01:28 +0100)]
radius.m4: Handy ipset hook for ad-hoc safe/unstrusted exceptions.

11 years agolocal.m4: Refactor common SSH permission between safe/untrusted hosts.
Mark Wooding [Fri, 8 Jun 2012 00:27:39 +0000 (01:27 +0100)]
local.m4: Refactor common SSH permission between safe/untrusted hosts.

Actually the same rules work for IPv4 and IPv6, so we should only write
them once.

11 years agolocal.m4: Packets can be routed over the safe network.
Mark Wooding [Thu, 3 May 2012 11:45:39 +0000 (12:45 +0100)]
local.m4: Packets can be routed over the safe network.

12 years agolocal.m4: Add the colocated servers to the VPN.
Mark Wooding [Wed, 25 Apr 2012 17:07:48 +0000 (18:07 +0100)]
local.m4: Add the colocated servers to the VPN.

12 years agolocal.m4: Untrusted source addresses appear on the backbone.
Mark Wooding [Mon, 23 Apr 2012 00:20:28 +0000 (01:20 +0100)]
local.m4: Untrusted source addresses appear on the backbone.

This happens because of router redundancy.  Case in point: suppose
vampire is selected via IPv6 router discovery, but radius owns the
external tunnel.  Then vampire will forward the packet over the
backbone to radius, which mustn't reject it.

(This isn't a security problem because the untrusted network isn't (by
definition) trusted very much for anything.

12 years agobookends.m4: Allow redirects to (non-routing) hosts.
Mark Wooding [Mon, 23 Apr 2012 00:20:10 +0000 (01:20 +0100)]
bookends.m4: Allow redirects to (non-routing) hosts.

12 years agoConfiguration for new colocated virtual servers.
Mark Wooding [Fri, 20 Apr 2012 20:57:24 +0000 (21:57 +0100)]
Configuration for new colocated virtual servers.

12 years agolocal.m4: More interfaces for artist.
Mark Wooding [Fri, 20 Apr 2012 20:55:48 +0000 (21:55 +0100)]
local.m4: More interfaces for artist.

Firstly, artist needs an interface on the untrusted network so that it
can provide convincing SMB.  Secondly, it will eventually provide the
iodine gateway, and will need to forward packets appropriately.

12 years agolocal.m4: Default addresses reach the IPv6 tunnel interface.
Mark Wooding [Fri, 20 Apr 2012 20:54:22 +0000 (21:54 +0100)]
local.m4: Default addresses reach the IPv6 tunnel interface.

12 years agojem.m4, artist.m4: Allow answers to DNS queries.
Mark Wooding [Fri, 20 Apr 2012 20:53:33 +0000 (21:53 +0100)]
jem.m4, artist.m4: Allow answers to DNS queries.

12 years agoradius.m4: Load NAT helpers (from d119795).
Mark Wooding [Fri, 20 Apr 2012 20:44:14 +0000 (21:44 +0100)]
radius.m4: Load NAT helpers (from d119795).

12 years agobookends.m4: Configure IPv6 router advertisement stuff.
Mark Wooding [Thu, 15 Mar 2012 02:48:33 +0000 (02:48 +0000)]
bookends.m4: Configure IPv6 router advertisement stuff.

Servers are expected to listen in on the routing protocols, so even
though they aren't actually routers, they still shouldn't listen to
the advertisements.

12 years agofunctions.m4, local.m4: Introduce more kinds of hosts.
Mark Wooding [Thu, 15 Mar 2012 02:47:52 +0000 (02:47 +0000)]
functions.m4, local.m4: Introduce more kinds of hosts.

12 years agofunctions.m4: Actually set the IPv6 options.
Mark Wooding [Thu, 15 Mar 2012 02:39:08 +0000 (02:39 +0000)]
functions.m4: Actually set the IPv6 options.

12 years agofender.m4: Define an address to be a guaranteed black hole.
Mark Wooding [Fri, 30 Mar 2012 16:30:42 +0000 (17:30 +0100)]
fender.m4: Define an address to be a guaranteed black hole.

12 years agolocal.m4: A new network for the SGO VPN.
Mark Wooding [Fri, 23 Mar 2012 16:04:22 +0000 (16:04 +0000)]
local.m4: A new network for the SGO VPN.

12 years agofunctions.m4, classify.m4: Handle negative address ranges.
Mark Wooding [Fri, 23 Mar 2012 16:02:25 +0000 (16:02 +0000)]
functions.m4, classify.m4: Handle negative address ranges.

That is, a network can explicitly exclude an address range.  Ranges are
checked in order, so you carve out a hole in the middle of a range by
putting a negative range first for the hole first, and the big network
afterwards.

This involves a fairly major rearrangement of the address classification
machinery.  Again.

12 years agoMake FW_NOACT work properly.
Mark Wooding [Fri, 23 Mar 2012 16:00:52 +0000 (16:00 +0000)]
Make FW_NOACT work properly.

Some calls to iptables(8) and friends weren't through `run', so fix
these.  Also skip the initial flushing.  We probably want to skip the
final dump, but don't do that yet.

12 years agolocal.m4: Declare network for anycast services.
Mark Wooding [Sat, 17 Mar 2012 16:02:59 +0000 (16:02 +0000)]
local.m4: Declare network for anycast services.

12 years agolocal.m4: Reorder forwarding networks for `default'.
Mark Wooding [Sat, 17 Mar 2012 16:02:35 +0000 (16:02 +0000)]
local.m4: Reorder forwarding networks for `default'.

Makes it easier to read.

12 years agolocal.m4: Move `vpn' to the common networks section.
Mark Wooding [Sat, 17 Mar 2012 16:02:03 +0000 (16:02 +0000)]
local.m4: Move `vpn' to the common networks section.

It's not really geographical.

12 years agoOverhaul address classification for link-local and non-unicast addresses.
Mark Wooding [Sun, 11 Mar 2012 23:58:09 +0000 (23:58 +0000)]
Overhaul address classification for link-local and non-unicast addresses.

The previous attempts just weren't working.  Intead, assign them their
own classes, and work things using the forwarding masks.  There's a
minor wrinkle, that we must handle forwarded packets differently from
inbound ones if they involve link-local addresses, but this is handled
with a fixup in the mangle INPUT chain.

The other significant change here is that the mangle table is now
responsible for selecting packets with bogus destination addresses for
rejection -- though it can't do the rejection itself because of a
kernel restriction.

12 years agofunctions.m4: Publish the per-class forwarding bitmasks.
Mark Wooding [Mon, 12 Mar 2012 00:02:05 +0000 (00:02 +0000)]
functions.m4: Publish the per-class forwarding bitmasks.

Just a matter of renaming the variables which hold them.

12 years agofunctions.m4: The mark-{from,to}-* rules no longer own the packet marks.
Mark Wooding [Sun, 11 Mar 2012 19:51:57 +0000 (19:51 +0000)]
functions.m4: The mark-{from,to}-* rules no longer own the packet marks.

These rules now have to be more careful about exactly which parts of
the mark field they clobber.

12 years agoclassify.m4: Use canonical forms for IPv6 addresses.
Mark Wooding [Sun, 11 Mar 2012 16:35:37 +0000 (16:35 +0000)]
classify.m4: Use canonical forms for IPv6 addresses.

12 years agolocal.m4: Actually use the IPv6 fragmentation forbidding filter.
Mark Wooding [Sun, 11 Mar 2012 16:34:38 +0000 (16:34 +0000)]
local.m4: Actually use the IPv6 fragmentation forbidding filter.

12 years agoExtend proper ICMP handling to IPv6.
Mark Wooding [Sun, 11 Mar 2012 16:33:25 +0000 (16:33 +0000)]
Extend proper ICMP handling to IPv6.

Take the opportunity to use the `icmpv6' protocol name throughout.
Fortunately, in a few places where we use `ip46tables', it's actually
possible to use plain `-p icmp'.

12 years agobookends.m4: Optimize checking for forwarding IPv6 link-local multicast.
Mark Wooding [Sun, 11 Mar 2012 16:30:08 +0000 (16:30 +0000)]
bookends.m4: Optimize checking for forwarding IPv6 link-local multicast.

Apply a coarse filter to detect all multicast, and dispatch to a
finer-grained one to detect link-local multicast addresses.  This
would be much easier if the flags and scope fields were the other way
around.

Also fix it to use the correct address range.

12 years agovampire.m4: Extend services to untrusted hosts over IPv6.
Mark Wooding [Sun, 11 Mar 2012 16:19:17 +0000 (16:19 +0000)]
vampire.m4: Extend services to untrusted hosts over IPv6.

12 years agoIntroduce variable for expected input chains.
Mark Wooding [Sun, 11 Mar 2012 16:18:12 +0000 (16:18 +0000)]
Introduce variable for expected input chains.

Saves lots of messing with $forward.

12 years agolocal.m4: Fix the `safe' network prefix length.
Mark Wooding [Sun, 11 Mar 2012 05:12:37 +0000 (05:12 +0000)]
local.m4: Fix the `safe' network prefix length.

12 years agolocal.m4: Define the IPv6 network structure.
Mark Wooding [Sun, 11 Mar 2012 05:10:12 +0000 (05:10 +0000)]
local.m4: Define the IPv6 network structure.

12 years agolocal.m4: Add routes to/from the `safe' network.
Mark Wooding [Sun, 11 Mar 2012 05:09:34 +0000 (05:09 +0000)]
local.m4: Add routes to/from the `safe' network.

12 years agolocal.m4: The VPN will be available through the colo.
Mark Wooding [Sun, 11 Mar 2012 05:05:29 +0000 (05:05 +0000)]
local.m4: The VPN will be available through the colo.

12 years agofunctions.m4: Correct defaulting of IPv6 host addresses.
Mark Wooding [Sun, 11 Mar 2012 05:03:21 +0000 (05:03 +0000)]
functions.m4: Correct defaulting of IPv6 host addresses.

12 years agoclassify.m4: Reject the RFC5737 documentation-only addresses.
Mark Wooding [Thu, 8 Mar 2012 18:56:48 +0000 (18:56 +0000)]
classify.m4: Reject the RFC5737 documentation-only addresses.

12 years agoMove per-host filtering to diversion 86 as promised.
Mark Wooding [Wed, 7 Mar 2012 03:06:01 +0000 (03:06 +0000)]
Move per-host filtering to diversion 86 as promised.

For some reason, most of them were on 84, and fender was on 82.

12 years agolocal.m4: Add `unsafe' to ibanez `br-dmz' interface.
Mark Wooding [Wed, 7 Mar 2012 03:04:00 +0000 (03:04 +0000)]
local.m4: Add `unsafe' to ibanez `br-dmz' interface.

Accidentally omitted from the earlier change.

12 years agofunctions: Move NTP server list out of line.
Mark Wooding [Wed, 7 Mar 2012 02:52:25 +0000 (02:52 +0000)]
functions: Move NTP server list out of line.

Makes the `inbound' chain slightly more efficient in the common case.

12 years agolocal.m4: Allow dmz/jump packets on unsafe/colo networks and vice versa.
Mark Wooding [Tue, 6 Mar 2012 23:26:10 +0000 (23:26 +0000)]
local.m4: Allow dmz/jump packets on unsafe/colo networks and vice versa.

The routing asymmetry is too grim otherwise.  Consider:

  * ibanez and vampire are both on dmz and unsafe;

  * vampire is a router on dmz, unsafe, and vpn, while ibanez is not a
    router;

  * crybaby is on vpn;

  * crybaby attempts to connect to ibanez.dmz.

Now ibanez will respond with its dmz address as the source, and
crybaby's vpn address as the destination.  Based on the destination, it
will choose to route the packet over the unsafe network.  We must
therefore let vampire know that this is a possibility.

Similarly, ibanez must be prepared to allow packets from unsafe
on its dmz interface because it's not a router: hence, to reach their
destination, they'll have to be pushed over dmz by a router.

It's therefore inevitable that we must abandon separation between these
two networks (or start fiddling with policy routing, which just seems
like more pain than it's worth).

12 years agoradius.m4: Forbid traffic directly to the NAT address.
Mark Wooding [Tue, 6 Mar 2012 10:42:58 +0000 (10:42 +0000)]
radius.m4: Forbid traffic directly to the NAT address.

It should only be for forwarded traffic.

12 years agoradius.m4: Use the correct interface name for NAT.
Mark Wooding [Tue, 6 Mar 2012 10:41:59 +0000 (10:41 +0000)]
radius.m4: Use the correct interface name for NAT.

This is the last of the network declaration switchover debris.

12 years agolocal.m4: Fix IGMP acceptance (debris from old interface declarations).
Mark Wooding [Tue, 6 Mar 2012 10:38:07 +0000 (10:38 +0000)]
local.m4: Fix IGMP acceptance (debris from old interface declarations).

The rules which allowed incoming IGMP were written in terms of (a) the
old $if_... variables which have now disappeared, and (b) an explicit
list of the `trusted' networks.  Fix this to use the new system: walk
the list of networks, examine their classes, and determine the
interfaces.

12 years agofunctions.m4: Write the netclass ids to the trace output.
Mark Wooding [Mon, 5 Mar 2012 23:51:44 +0000 (23:51 +0000)]
functions.m4: Write the netclass ids to the trace output.

12 years agobookends.m4: If debugging, dump the final tables.
Mark Wooding [Mon, 5 Mar 2012 23:51:00 +0000 (23:51 +0000)]
bookends.m4: If debugging, dump the final tables.

This makes it rather easier to see what's gone wrong when the update
times out.

12 years agoDetermine forwarding and reverse-path filtering from host definitions.
Mark Wooding [Mon, 5 Mar 2012 23:39:23 +0000 (23:39 +0000)]
Determine forwarding and reverse-path filtering from host definitions.

There's an explicit declaration for routers.  Reverse-path filtering is
just turned off: the routing asymmetries break things too badly on
multi-homed hosts, and it's useless for single-homed hosts.

12 years agoOverhaul address classification.
Mark Wooding [Mon, 5 Mar 2012 23:16:25 +0000 (23:16 +0000)]
Overhaul address classification.

The current system isn't scaling.  Adding new networks in particular is
very difficult, and requires subtle changes to all of the host
definitions -- which is also rather tedious.

This new version overhauls the way that the classification chains are
constructed.  The important part is that they're now derived from a
single description of the entire network.  (This isn't necessary: the
network and hosts could be scattered arbitrarily, but it makes
management easier for me.)

The critical bit is the algorithm in `net_interfaces' which computes
which networks' source addresses can arrive at a particular interface.
This algorithm isn't especially clever (what with being written in
Bourne shell and all) but seems to do the job fairly well, and it has
enough knobs to tweak that getting the right answer isn't too hard.

12 years agolocal.m4: Promote the NTP server configuration to a proper variable.
Mark Wooding [Mon, 5 Mar 2012 23:27:37 +0000 (23:27 +0000)]
local.m4: Promote the NTP server configuration to a proper variable.

12 years agoRenumber the diversions.
Mark Wooding [Mon, 5 Mar 2012 22:35:27 +0000 (22:35 +0000)]
Renumber the diversions.

Move the function definitions together; shift the host interface
definitions near the beginning of the file; and move the local filter
rules later to allow more room for built-in filtering.

12 years agofixup! WIP on emergency: 7a108d1 Makefile: New target for tracking diversions.
Mark Wooding [Mon, 5 Mar 2012 22:34:59 +0000 (22:34 +0000)]
fixup! WIP on emergency: 7a108d1 Makefile: New target for tracking diversions.

12 years agoMakefile: New target for tracking diversions.
Mark Wooding [Mon, 5 Mar 2012 10:40:30 +0000 (10:40 +0000)]
Makefile: New target for tracking diversions.

12 years agoMakefile, base.m4: Inject the target hostname into the generated script.
Mark Wooding [Mon, 5 Mar 2012 09:46:35 +0000 (09:46 +0000)]
Makefile, base.m4: Inject the target hostname into the generated script.

This means we can identify the target in the comment header.  It will be
even more useful later.

12 years agonumbers.m4, gibson.m4: Allow gibson to receive IPMI responses.
Mark Wooding [Sun, 12 Feb 2012 01:53:23 +0000 (01:53 +0000)]
numbers.m4, gibson.m4: Allow gibson to receive IPMI responses.

Useful for managing fancy server boxes.

12 years agobookends.m4: Open up tables we clobbered at exit.
Mark Wooding [Sun, 12 Feb 2012 01:52:29 +0000 (01:52 +0000)]
bookends.m4: Open up tables we clobbered at exit.

Otherwise the `raw' table gets left dropping everything.  I've no idea
why this didn't actually break everything for ages.

12 years agofender: New host, with basic firewall.
Mark Wooding [Sat, 11 Feb 2012 19:22:05 +0000 (19:22 +0000)]
fender: New host, with basic firewall.

Eventually fender will live elsewhere and have totally different
routing.  For now, though, this will do.

12 years agonumbers.m4, vampire.m4: Serve TFTP to the untrusted network.
Mark Wooding [Sat, 11 Feb 2012 18:30:05 +0000 (18:30 +0000)]
numbers.m4, vampire.m4: Serve TFTP to the untrusted network.

Refactor the untrusted-services stuff to make this less grim.

12 years agonumbers.m4, gibson.m4: Allow gibson public SIP access.
Mark Wooding [Sat, 11 Feb 2012 18:26:12 +0000 (18:26 +0000)]
numbers.m4, gibson.m4: Allow gibson public SIP access.

12 years agojem.m4: Add a hook for SAUCE.
Mark Wooding [Sat, 23 Jul 2011 10:19:59 +0000 (11:19 +0100)]
jem.m4: Add a hook for SAUCE.

Use ipsets rather than SAUCE's defaults.

12 years agofunctions.m4: New function for arranging that an ipset exists.
Mark Wooding [Sat, 23 Jul 2011 11:49:59 +0000 (12:49 +0100)]
functions.m4: New function for arranging that an ipset exists.

12 years agofunctions.m4: Make clearchain tolerant of existing chains.
Mark Wooding [Sat, 23 Jul 2011 11:45:38 +0000 (12:45 +0100)]
functions.m4: Make clearchain tolerant of existing chains.

It's a handy way to make chains which are populated elsewhere, e.g., by
fail2ban.

12 years agobookends.m4: Much more intelligent initialization.
Mark Wooding [Sat, 23 Jul 2011 11:44:00 +0000 (12:44 +0100)]
bookends.m4: Much more intelligent initialization.

Rather than clobbering all of the chains, clear them out one at a time,
preserving some which are known to be maintained elsewhere.

12 years agojem.m4: Remove SMB for untrusted hosts.
Mark Wooding [Sat, 23 Jul 2011 10:19:29 +0000 (11:19 +0100)]
jem.m4: Remove SMB for untrusted hosts.

Leave that as a job for artist.

12 years agofunctions.m4: Rate-limit rejections on error chains.
Mark Wooding [Sat, 23 Jul 2011 10:18:26 +0000 (11:18 +0100)]
functions.m4: Rate-limit rejections on error chains.

This reduces our workload under attack, without severely affecting
diagnostic capability.

12 years agobookends.m4: Provide a hook chain for fail2ban.
Mark Wooding [Sun, 17 Jul 2011 12:43:16 +0000 (13:43 +0100)]
bookends.m4: Provide a hook chain for fail2ban.

Otherwise it does its filtering before we've permitted loopback, and
stuff could get very bad.

12 years agoradius.m4: Allow IPv6 tunnel from Hurricane Electric UK endpoint.
Mark Wooding [Fri, 15 Jul 2011 15:41:56 +0000 (16:41 +0100)]
radius.m4: Allow IPv6 tunnel from Hurricane Electric UK endpoint.

12 years agofunctions.m4, numbers.m4: Define protocol number for IPv6 tunnelling.
Mark Wooding [Fri, 15 Jul 2011 15:41:06 +0000 (16:41 +0100)]
functions.m4, numbers.m4: Define protocol number for IPv6 tunnelling.

12 years agobookend.m4: Finish off the IPv6 chains.
Mark Wooding [Fri, 15 Jul 2011 08:44:18 +0000 (09:44 +0100)]
bookend.m4: Finish off the IPv6 chains.

12 years agohosts: Allow incoming ident requests.
Mark Wooding [Wed, 13 Jul 2011 22:41:33 +0000 (23:41 +0100)]
hosts: Allow incoming ident requests.

12 years agoradius.m4: Take over NAT duties.
Mark Wooding [Sun, 10 Jul 2011 21:03:14 +0000 (22:03 +0100)]
radius.m4: Take over NAT duties.

As the main internal router, radius now takes responsibility for appling
SNAT to outbound connections from internal hosts.

12 years agoMajor network restructuring.
Mark Wooding [Sun, 10 Jul 2011 20:57:12 +0000 (21:57 +0100)]
Major network restructuring.

We now have a globally routable /28.  Use this as the DMZ and the
network backbone.  The main servers (ibanez, radius, roadstar, jem,
artist and vampire) are on both the DMZ and the unsafe network.
radius is now the main internal router, though vampire is still on
several networks because it provides DHCP and DNS services.

This new configuration makes essential use of the ability (added to
defiface) to accept multiple interface names by setting lists of names
into the interface variables if_FOO.

There's another aspect of the routing complexity which we must address
here: multicasts can arrive on any of several trusted networks, and we
should accept them all.  (We must cope with interface name lists in the
interface variables here, and deduplicate.)

12 years agobookends.m4, config.m4: Allow configuration of reverse-path filtering.
Mark Wooding [Sun, 10 Jul 2011 20:53:43 +0000 (21:53 +0100)]
bookends.m4, config.m4: Allow configuration of reverse-path filtering.

We'll need to turn it off in some hosts because there are routing
asymmetries.

12 years agofunctions.m4: Set IPv6 options in setopt and setdevopt.
Mark Wooding [Sun, 10 Jul 2011 20:49:44 +0000 (21:49 +0100)]
functions.m4: Set IPv6 options in setopt and setdevopt.

Also allow selection of interfaces in setdevopt.  We don't need this
yet, but it will allow selective enabling of reverse-path filtering and
similar should that turn out to be useful.

12 years agobookends.m4: Only disable filtering on bridges if we have bridges.
Mark Wooding [Sun, 10 Jul 2011 20:47:27 +0000 (21:47 +0100)]
bookends.m4: Only disable filtering on bridges if we have bridges.

Actually, we're too early in the boot process to tell whether there are
bridges; but we can try to load the applicable module and only do the
hacking if it's available.  This probably bloats some kernels a bit, but
it's not too bad.

12 years agobookends.m4: Allow responding to broadcast and multicast ping.
Mark Wooding [Sun, 10 Jul 2011 20:46:41 +0000 (21:46 +0100)]
bookends.m4: Allow responding to broadcast and multicast ping.

This way, I can see which things are responding to multicasts.