On 15/02/11 16:52, Alex Efros wrote:
[...snip...]
> 
> Keeping this in mind, I think it have sense to avoid enabling IPv6 by
> default on hardened until IPv6 will be wide used/tested/hacked on
> non-hardened systems for some time or until it become critical feature
> required for normal operation on most servers.

IMHO, this logic doesn't really make sense.  This is a backwards attitude.
 IPv6 will come for sure, we *need* to implement it.  Not enabling it now,
will just postpone these security issues further.  It's better to flush out
those security issues ASAP before even more people uses it.

Also consider that most distributions (including
RHEL/CentOS/ScientificLinux 5 - with 2.6.18 based kernels) ships with IPv6
enabled.  In addition security issues gets found and fixed quicker with
broader usages.  In most distros security fixes gets included rather
quickly, even into the upstream kernels and applications, no matter IPv4 or
IPv6.

[...snip...]
> P.S. BTW, enabling "ipv6" USE-flag isn't enough. Using dual-stack on
> secure server also mean doubling nearly all network configuration,
> including firewall setup. And while it's well-known how to securely setup
> network for IPv4, it still doesn't clear how to do same for IPv6 - both
> because IPv6 is much more complex and feature-rich, and because there not
> much information/howto available for IPv6 right now.

This is much more fear of something new.  IPv6 is a different protocol, but
when using it, it behaves very much the same as IPv4.  You just need to use
ip6tables instead of iptables to do filtering, and the addresses look
differently.

For those really not ready to dive into the IPv6 world yet, they should
rather compile their kernel without IPv6 support or blacklist the ipv6
kernel module.  Then, no IPv6 traffic will be tackled.  And all the user
space can still be IPv6 enabled.

> So, I think it have
> sense to prepare some documentation about IPv6-related configuration on
> gentoo site and notify users with `eselect news` mechanism about it before
> enabling default "ipv6" USE-flag in any profile.

Documentation is *always* a good thing.  So improving documentation related
to IPv6 is not a bad thing.

<rant>
But the fact is, which many have not understood:  IPv6 simplifies networks
much more than complicates it.

- There is no netowork address (like 192.168.0.0 for 192.168.0.0/24)

- There is no broadcast address (like 192.168.0.255)

- There is no 127.0.0.0/8 localhost subnet - only ::1

- There is no NAT - only public IP addresses - which needs to be filtered

- Automatic stateless and stateful configuration (if using radvd or DHCPv6)

- Manual IPv6 is still an option for those wanting that

- Subnetting a /48 or /56 subnet is very easy.
  {your IPv6 prefix}:{your subnet address} - which gives you a /64 subnet
  for your network zone ... and you basically don't need to think about
  any other network masks.  A /48 subnet gives you 0000 to FFFF as valid
  subnet addresses after your IPv6 prefix from your ISP.  A /56 subnet
  gives 00 to FF as valid subnet address.  And just think about it ... /48
  leaves space for 16 bits for subnetting, so 48 + 16 = 64, hence /64.
  And the same for 56 + 8 = 64.  There is really no big magic.  8 bits
  gives you values 00-FF, 16 bits gives you 0000-FFFF.  And the ISP prefix
  defines your IPv6 address scope.  You can do whatever you'd like with
  that.

The only tricky thing is that you need to enable some ICMPv6 traffic on
your internal networks.  But if you just open up for all ICMPv6 on internal
interfaces, you're practically good to go.

Routing is exactly the same as on IPv4.  You need to either use 'ip -6
route' or 'route -6' so modify the IPv6 routing table.

So the biggest difference, is basically the new addressing scheme, with 128
bits available instead of 32bits.  That's all, from the users perspective.

What probably should be done is to enable a default IPv6 iptables config
which is loaded by default ... which just sets default policy to DROP on
INPUT, FORWARD and OUTPUT ... that way, users need to modify the ip6tables
rules to gain access.  That way we won't take anyone by surprise.

This is really not rocket science!  Even though it might feel so in the
beginning.  But take of your IPv4 hat, and accept that IPv6 is simpler to
setup - and you'll get far very quickly.
</rant>


But my core message is, enable IPv6 in all packages asap.  Blocking IPv6
should not be done on application level.  That should happen on the kernel
level.


kind regards,

David Sommerseth

Reply via email to