Here’s a oneliner to check if a remote server might be vulnerable by checking if it advertises the Heartbeat TLS extention during connection negotiation.
$ openssl version
OpenSSL 1.0.1e-freebsd 11 Feb 2013
$ < /dev/null openssl s_client -connect example.com:443 -tlsextdebug 2>&1 | grep -i heartbeat
TLS server extension "heartbeat" (id=15), len=1
It’s important that the local OpenSSL version supports the extension, otherwise it will not be listed during the negotiation.
Better yet, grab Heartbleed test tool
$ go get github.com/FiloSottile/Heartbleed
$ ${GOPATH}/bin/Heartbleed example.com:443
2014/04/08 14:12:31 ([]uint8) {
00000000 02 00 79 68 65 61 72 74 62 6c 65 65 64 2e 66 69 |..yheartbleed.fi|
00000010 6c 69 70 70 6f 2e 69 6f 59 45 4c 4c 4f 57 20 53 |lippo.ioYELLOW S|
00000020 55 42 4d 41 52 49 4e 45 02 6d 00 00 b3 de ab 6c |UBMARINE.m.....l|
00000030 71 ac cd 71 a9 63 74 36 8f ac 49 7d 32 36 48 00 |q..q.ct6..I}26H.|
00000040 00 00 16 00 14 00 00 00 00 00 00 00 00 00 00 00 |........example.|
00000050 00 00 00 00 00 00 00 00 00 00 05 00 05 01 00 00 |com.............|
00000060 00 00 00 0a 00 08 00 06 00 17 00 18 00 19 00 0b |................|
00000070 00 02 01 00 00 0d 00 0a 00 08 04 01 8d 71 65 6d |.............qem|
00000080 27 9d 51 a8 01 37 02 50 63 67 ca db |'.Q..7.Pcg..|
}
2014/04/08 14:12:31 example.com:443 - VULNERABLE
/dev/tty inside LXC under libvirt on CentOS 6
Thursday, 09. 26. 2013 – Category: sw
Search engine fodder:
The stock CentOS RPMs:
Sep 11 06:42:15 Installed: libvirt-0.10.2-18.el6_4.9.x86_64
don’t create a /dev/tty inside the LXC container. This breaks SSH (host key prompts), sudo (password prompt) and doubtless more things too.
To fix roll something more current from Fedora:
Sep 25 11:29:23 Updated: libvirt-1.1.2-3.local.x86_64
Seems the project first thought /dev/tty was a risky proposition (!), but changed their mind.
IPv6 for SmartOS guest VMs on Hetzner hosts
Sunday, 08. 25. 2013 – Category: sw
This Hetzner wiki page covers how to configure a SmartOS installation at Hetzner including how to route an IPv4 subnet to guests via the global zone.
Matters are a little bit more involved for IPv6, because
vmadmand friends don’t support IPv6, so you have to configure guests manually- Hetzner network won’t talk to the virtual MAC addresses generated by SmartOS
I ended up doing something similar to the IPv4 setup, but all inside the one /64 IPv6 subnet that came with the server. The global zone creates a bridge for the IPv6 traffic, and guests route via that instead of the upstream gateway at Hetzner. Hetzner provide guidance for a similar approach for Linux VM servers.
# setup IPv6 on the physical nic
ifconfig rge0 inet6 plumb
ifconfig rge0 inet6 addif ${IP6SUBNET}::1/${IP6PREFIX} up
route add -inet6 ${IP6GATEWAY} ${IP6SUBNET}::1 -interface
route add -inet6 default ${IP6GATEWAY}
# create a bridge and an etherstub
dladm create-bridge six
dladm create-etherstub stub2
dladm set-linkprop -p mtu=1500 stub2
# bridge the physical nic and the stub
dladm add-bridge -l stub2 -l rge0 six
# add a vnic to the stub in the global zone with an adjacent address
dladm create-vnic -l stub2 vnic2
ifconfig vnic2 inet6 plumb
ifconfig vnic2 inet6 addif ${IP6SUBNET}::2/${IP6PREFIX} up
# forward IPv6 packets to/from outside world
svcadm enable ipv6-forwarding
- Guests set their gateway to the
vnic2address. - FreeBSD guests (seemingly others too) need to disable Duplicate Address Detection with a judicious
net.inet6.ip6.dad_count=0sysctltweak. - I wrapped the script up as a SMF service based on this Gist.
- I am unsure why the
vnicis necessary, but the IPv6 alias on the physical NIC wasn’t visible on the bridge to guests. - This page was a useful start for
dladmbridging. - My first time out with
dladm– disclaimers apply.
Update (20140814)
To use IPv6 in the guest OS it’s important that SmartOS knows to put the guest’s NIC in the bridge. This is done through the nic_tag attribute, which needs to match the etherstub configured in the global zone. Further, allow_ip_spoofing must also be set so that SmartOS will deliver traffic outside of any IPv4 configuration.
# vmadm get xxxx-yyyy-zzzz | json nics
[
{
"interface": "net0",
...
"nic_tag": "stub2",
"allow_ip_spoofing": true,
...
}
]
The SmartOS wiki has some good information about setting up IPv6 in a SmartOS guest OS.
Recent articles
- Docker, SELinux, Consul, Registrator
(Wednesday, 04. 29. 2015 – No Comments) - ZFS performance on FreeBSD
(Tuesday, 09. 16. 2014 – No Comments) - Controlling Exim SMTP behaviour from Dovecot password data
(Wednesday, 09. 3. 2014 – No Comments) - Heartbleed OpenSSL vulnerability
(Tuesday, 04. 8. 2014 – No Comments)
Archives
- April 2015
- September 2014
- April 2014
- September 2013
- August 2013
- March 2013
- April 2012
- March 2012
- September 2011
- June 2011
- February 2011
- January 2011
- October 2010
- September 2010
- February 2010
- September 2009
- August 2009
- January 2009
- September 2008
- August 2008
- July 2008
- May 2008
- April 2008
- February 2008
- January 2008
- November 2007
- October 2007
- September 2007
- August 2007
- December 2006
- November 2006
- August 2006
- June 2006
- May 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005