SSL Guide

In den letzten Monaten gab es diverse Probleme mit SSL/TLS und der richtigen sicheren Implementierung. Schlagwörter der letzten Zeit: Heartbleed, BEAST, Perfect Forward Secrecy, HTTP Strict Transport Security. Eine gute Anleitung zur sicheren Implementierung gibt es in der Applied Crypto Hardening PDF von bettercrypto.org. Das Projekt hat sich in einem Lightning Talk auf dem 30C3 vorgestellt. Danimo hat eine Linksammlung zu SSL/TLS erstellt. Bei Cloudflare gibt es noch einen Blogbeitrag über die Nutzung von RC4 in deren Clients. Je nachdem welchen Kundenkreis man bedienen möchte ist es also möglich RC4 aus seiner Konfiguration zu verbannen.

Von Peer Heinlein gibt es noch einen guten Blogartikel über PFS in Postfix und Dovecot. In diesem Mailinglisteneintrag findet man noch einige Erklärungen zu den DH Params in Postfix. Unter https://www.kernel-error.de/postfix gibt es noch einige Beiträge zum Thema Postfix-Absicherung, meinen Mailserver Workshop gibt es unter Mailserverschulung, hier gehe ich ebenfalls auf diverse Sicherheitsmerkmale sowie TLS/SSL ein.

Von SSLLabs gibt es auch noch eine PDF für Serve- Administratoren über das Einrichten von SSL + technische Hintergründe. Außerdme gibt es eine PDF für deren Test.

Posted in General, Internet found pieces, Nerd Stuff | Leave a comment

Chaosradio zu Heartbleet, kaputtes Truecrypt

Quote:

Seit Snowden wird uns gesagt: Verschlüsselt! Gleichzeitig tauchen immer wieder Verschlüsselungslücken bei https-Verbindungen auf, eine der grundlegenden Methoden um Datenverbindungen im Internet zu verschlüsseln. Im aktuellen Chaosradio im Blue Moon sollen zwei Fragen geklärt werden: Warum ist die Technologie hinter dem https:// so häufig kaputt? Und sollte genau diese Software nicht bombensicher sein, weil sie Open Source ist, also jeder den Quellcode anschauen kann?

Mit dabei:
Erdgeist
monoxyd

Beide kenne ich aus früheren Podcasts und Talks und kann beide sehr empfehlen, als dritte Person ist danimo

https://chaosradio.ccc.de/cr201.html

Posted in General, Internet found pieces | Leave a comment

Linux Server mit mehreren NICs im selben Netz

Folgendes Problem:

Man hat einen Server mit zwei Interfaces im selben LAN. eth1 nutzt 10.0.0.1/24, eth2 die 10.0.0.2/24. Hinzu kommt eth0 welches als Gateway für Clients an eth1 dient (eth2 soll dediziert für NFS/CIFS genutzt werden, eth1 für die restliche Kommunikation mit dem LAN). Nun wird man eventuell feststellen das man von einem anderen Client aus Traffic zur 10.0.0.2 schickt, dieser aber auf eth1 hereinkommt. Um dies zu fixen gibt es zwei Möglichkeiten eine einzige ultimative Möglichkeit:

Anpassungen in der /etc/network/interfaces falls man eine feste IP-Adresse am Gateway hat:

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
  address 192.168.178.34
  netmask 255.255.255.0
  gateway 192.168.178.1

iface eth0 inet6 auto

allow-hotplug eth1
iface eth1 inet static
  address 10.0.0.1
  netmask 255.255.255.0
  up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  up ip route add 10.0.0.0/24 dev eth1 src 10.0.0.1 table rt1
  up ip route add default via 192.168.178.34 dev eth1 table rt1
  up ip rule add from 10.0.0.1 lookup rt1

allow-hotplug eth2
iface eth2 inet static
  address 10.0.0.2
  netmask 255.255.255.0
  up ip route add 10.0.0.0/24 dev eth2 src 10.0.0.2 table rt2
  up ip rule add from 10.0.0.2 lookup rt2

Und falls man dhcp am Gateway nutzt:

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

iface eth0 inet6 auto

allow-hotplug eth1
iface eth1 inet static
  address 10.0.0.1
  netmask 255.255.255.0
  up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  up ip route add 10.0.0.0/24 dev eth1 src 10.0.0.1 table rt1
  up ip route add default dev eth1 table rt1
  up ip rule add from 10.0.0.1 lookup rt1

allow-hotplug eth2
iface eth2 inet static
  address 10.0.0.2
  netmask 255.255.255.0
  up ip route add 10.0.0.0/24 dev eth2 src 10.0.0.2 table rt2
  up ip rule add from 10.0.0.2 lookup rt2

Unterschiede: DHCP statt statische Konfiguration für eth0, außerdem wird bei eth1 in der Standardroute keine IP-Adresse angegeben.

Die benötigten Routingtabellen erstellen in der /etc/iproute2/rt_tables Datei:

255     local
254     main
253     default
0       unspec
1 rt1
2 rt2

Und zum Schluss die passende sysctl Config /etc/sysctl.d/90-bastelfreak.conf:

net.ipv4.ip_forward=1
net.ipv.conf.eth1.arp_proxy=0
net.ipv.conf.eth2.arp_proxy=0
net.ipv4.conf.eth1.arp_ignore=1
net.ipv4.conf.eth2.arp_ignore=1
net.ipv4.conf.eth1.arp_filter=1
net.ipv4.conf.eth2.arp_filter=1

Warum funktioniert das ganze(Erklärung von qybl)?
Als erstes ein Link zum Packet Flow.

16:48:34 - qybl: (ignorier mal, dass es iptables/netfilter is fuer die erklaerung :D)
16:49:03 - qybl: pakete kommen auf deinem eth1 vom angeschlossenen laptop rein, gehen dann durch den ganzen linux-routing-stack
16:49:09 - qybl: am ende steht die default-route dev eth1
16:49:30 - qybl: damit landen die pakete wieder ganz links beim 'ingress'-kaestchen
16:49:36 - qybl: und es geht dann durch die main-routing-table
16:49:51 - qybl: und dann kommt eben aus der die passende default-route und man kommt ins internet

Posted in General, Linux | 1 Comment

Linux Short Tip

Nach langer Zeit malwieder:

15:05:33 - hrnz: wie kann ich denn am einfachsten die uid eines users ändern?
15:06:00 - hrnz: neuen erstellen, find -exec chown, namen tauschen?
15:15:18 - bastelfreak: hrnz: usermod -u neueid username, dann dein find
15:15:31 - bastelfreak: usermod ändert die uid auf die neue nur bei datein im homedir
15:16:06 - bastelfreak: find / -uid old-uid -exec chown -R benutzername {} \;
15:16:45 - hrnz: bastelfreak: ty
15:17:00 - bastelfreak: ungetestet
15:17:26 - Bluewind: + statt ;
15:17:34 - hrnz: und kein -R, oder?
15:17:36 - bastelfreak: was macht das +?
15:17:45 - Bluewind: ja und kein -R
15:17:46 - hrnz: nur einmal chmod aufrufen
15:17:59 - bastelfreak: ah
15:18:05 - hrnz: mit allen files als argumente
15:18:06 - Bluewind: einmal chmod mit allen args bzw ein paar mal wenn nötig

Posted in General, Linux, Short Tips | Leave a comment

Best of Internet 4

Ich habe doch beim letzten mal tatsächlich extrem wichtige Videos vergessen:
A Gamer’s Day

Posted in General, Nerd Stuff | Leave a comment

Linux Short Tip

Ein kleines Shell Script um schnell an den Ramverbrauch alle laufenden Prozesse zu kommen gibt es unter ps_mem. Zum installieren:

wget --quiet http://www.pixelbeat.org/scripts/ps_mem.py -O /usr/local/bin/ps_mem
chmod 755 /usr/local/bin/ps_mem
Posted in General, Linux, Short Tips | Leave a comment

Best of Internet 3

Es gibt einfach diverse Seiten und Videos im Internet die man kennen muss. Teil 1 und Teil 2.

Securityreactions

DevOpsreactions

the_coding_love()

Posted in General, Nerd Stuff | Leave a comment

Linux Short Tip

Folgendes kleines Bashscript zeigt alle geladenen Kernel Module inkl. deren Parameter:

cat /proc/modules | cut -f 1 -d " " | while read module; do
 echo "Module: $module";
 if [ -d "/sys/module/$module/parameters" ]; then
  ls /sys/module/$module/parameters/ | while read parameter; do
   echo -n "Parameter: $parameter --> "
   cat /sys/module/$module/parameters/$parameter
  done
 fi
 echo
done
Posted in General, Linux, Short Tips | Leave a comment

Puppet-Master unter CentOS

Ziel dieser Anleitung ist es, ein skalierendes Puppet Setup auf einem CentOS 6.5 Host bereitzustellen. Vorinstalliert ist ausschließlich ein sshd.

Puppet ist in Ruby geschrieben und unterstützt mittlerweile Ruby2. Hier gibt es signifikante Performanceoptimierungen im Vergleich zu Ruby 1.8.7. Leider ist dies die Standardversion unter CentOS, weshalb wir Ruby 2 über RVM nachinstallieren:

curl -L get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm requirements
rvm install 2.1.1
rvm use 2.1.1 --default
rvm rubygems current

Außerdem ist es empfehlenswert auf einen aktuelleren Kernel zu wechseln (z.B. kernel-lt), diese bieten große Performanceoptimierungen:
Installation des ELRepo + Kernel-LT

Zusätzlich wird das EPEL Repository benötigt für aktuelle Tools wie z.B. htop:
Installation von EPEL

Der Puppet-Master ist eine Ruby App welche einen Webserver benötigt da es mit den Clients über eine Pseudo-YAML/HTTP API spricht. In großen Setups bietet sich nginx an da dieser effizienter als Apache arbeitet. Die nginx Version im CentOS Repo ist leider sehr alt, glücklicherweise bieten die nginx Entwickler ein eigenes Repo an. Eine Anleitung zum einrichten findet sich hier.

Danach kann nginx ganz normal installiert, gestartet und für den Autostart markiert werden:

yum install nginx
service nginx configtest
service nginx start
chkconfig nginx on

Für Puppet muss noch ein vHost unter /etc/nginx/conf.d/puppet.conf angelegt werden:

server {
  listen                     8140 ssl;
  server_name                puppet puppet.example.org;

  access_log                 /var/log/nginx/puppet_access.log;
  error_log                  /var/log/nginx/puppet_error.log;

  root                       /usr/share/puppet/rack/puppetmasterd/public;
  # accept huge puppet reports
  client_max_body_size 5M;
  ssl_certificate            /var/lib/puppet/ssl/certs/puppet.example.com.pem;
  ssl_certificate_key        /var/lib/puppet/ssl/private_keys/puppet.example.com.pem;
  ssl_crl                    /var/lib/puppet/ssl/ca/ca_crl.pem;
  ssl_client_certificate     /var/lib/puppet/ssl/certs/ca.pem;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256: [BR] +AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED: [BR] !ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA;
  add_header Strict - Transport - Security max - age =2592000;
  ssl_prefer_server_ciphers  on;
  ssl_verify_client          optional;
  ssl_verify_depth           1;
  ssl_session_cache          shared:SSL:128m;
  ssl_session_timeout        5m;
  proxy_redirect http://$host/ https://$host/;
  proxy_redirect      off;
  proxy_set_header    X-Real-IP        $remote_addr;
  proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
  proxy_set_header    X-Scheme         $scheme;
  proxy_set_header    X-Client-Verify  $ssl_client_verify;
  proxy_set_header    X-Client-DN      $ssl_client_s_dn;
  proxy_set_header    X-SSL-Subject    $ssl_client_s_dn;
  proxy_set_header    X-SSL-Issuer     $ssl_client_i_dn;
  proxy_read_timeout  65;
  proxy_set_header X-Forwarded-Protocol https;
  proxy_set_header X-Forwarded-SSL on;
 }
 upstream backend  {
  server unix:/usr/share/puppet/rack/puppetmasterd/tmp/production.socket;
} 
}

Nginx fungiert nach außen als Proxy, der Puppet Server ist in Ruby geschrieben, dieser Ruby Code wird von Puma ausgeführt und an nginx weitergereicht. Puma wird über gem installiert, dem Ruby Libs/Apps Paket Manager. Dieser hat noch diverse Systemabängigkeiten die im Vorfeld installiert werden müssen, im Anschluss erfolgt die eigentliche Installation von puma. Als Schnittstelle zwischen unserem Ruby Webserver Puma und der eigentlichen Ruby-App läuft Rack, dies wird ebenfalls über gem installiert:

yum install ruby-devel gcc openssl-devel
gem install puma rack

Puppetlabs stellt einen yum Mirror mit aktuellen Packages für CentOS 6 bereit. Der Mirror wird wie folgt eingerichtet:

yum install http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm

Installation von Puppet:

yum update
yum install puppet-server

Alternativer Weg:
Puppet kann man auch über gem installieren. Ob man yum oder gem bevorzugt ist Geschmackssache, in meinem Fall ist es gem:

gem install puppet

In beiden Fällen ist es danach noch nötig einige Ordner anzulegen und passende Rechte zu setzen:
mkdir -p /usr/share/puppet/rack/puppetmasterd
mkdir /usr/share/puppet/rack/puppetmasterd/public /usr/share/puppet/rack/puppetmasterd/tmp /usr/share/puppet/rack/puppetmasterd/log
cp /usr/share/puppet/ext/rack/files/config.ru /usr/share/puppet/rack/puppetmasterd/
chown puppet:puppet /usr/share/puppet/rack/puppetmasterd/*[/bash]

In der /etc/puppet/puppet.conf muss noch folgender Part ergänzt werden:

[agent]
  server = puppet.example.org
[master]
  certname = puppet.example.org

Puma lässt sich nun schon auf der Bash starten:

puma /usr/share/puppet/rack/puppetmasterd/config.ru
Puma starting in single mode...
* Version 2.7.1, codename: Earl of Sandwich Partition
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://0.0.0.0:9292
Use Ctrl-C to stop

Wir möchten Puma aber noch mehrere Parameter übergeben. Z.B. ein Pfad zu einer Logdatei, zum passenden Unix Socket auf dem gelauscht werden soll oder die zugehörige pid Datei. Dazu wird die Datei /usr/share/puppet/rack/puppetmasterd/puma.rb erstellt mit folgendem Inhalt:

#!/usr/bin/env puma

application_path = '/usr/share/puppet/rack/puppetmasterd/'
railsenv = 'production'
directory application_path
environment railsenv
daemonize true
pidfile "#{application_path}tmp/puma-#{railsenv}.pid"
state_path "#{application_path}tmp/puma-#{railsenv}.state"
stdout_redirect
"#{application_path}/log/puma-#{railsenv}.stdout.log"
"#{application_path}/log/puma-#{railsenv}.stderr.log"
threads 0, 16
bind "unix://#{application_path}tmp/#{railsenv}.socket"

Puma startet sich nun wie folgt:

RAILS_ENV=production puma -C /usr/share/puppet/rack/puppetmasterd/puma.rb

Über ein Gemset kann man definieren welche Gems alle benötigt werden für eine Ruby App. Über dieses Gemfile kann man gezielt alle passenden Abhängigkeiten automatisch installieren und updaten. Das Gemfile wird als /usr/share/puppet/rack/puppetmasterd/Gemfile mit folgendem Inhalt erstellt:

gem 'puma'
gem 'rack'
gem 'puppet'

Puma muss nun leicht abgeändert gestartet werden und liefert folgenden Output:

RAILS_ENV=production bundle exec puma -C /usr/share/puppet/rack/puppetmasterd/puma.rb
Puma starting in single mode...
* Version 2.7.1, codename: Earl of Sandwich Partition
* Min threads: 0, max threads: 16
* Environment: production

Warum Puma:
In den meisten Installationsanleitungen wird Passenger als Ruby Webserver empfohlen. Dieser bietet von Haus aus ein passendes Apache Modul an. Nginx benötigt ebenfalls ein Modul, leider können hier keine Module zur Laufzeit eingebunden werden sondern nur bei der initialen Kompilierung. Aufgrund der Wartbarkeit möchte ich auf selbst kompilierte Software verzichten. Puma ist ein relativ junger Ruby Webserver welcher laut einigen Benchmarks mit Passenger konkurieren kann hinsichtlich der Performance. Puma kann zwar (im Gegensatz zu Passenger) weder node.js noch Python ansteuern sondern nur Ruby, aber dies ist in unserem Fall ausreichend.

Installation der Puppetdb:
In der PuppetDB können Facts und Kataloge der einzelnen Nodes gespeichert werden, dies wird für Funktionen wie exported resources benötigt. Die PuppetDB ist in Java geschrieben und schreibt Ihre Daten in ein Postgres Backend. CentOS 6.5 bietet nur Postgres 8.4, aus Performancegründen installieren wir die aktuelle 9.3 Version direkt von den Postgres Entwicklern:

Zuerst müssen wir in der Datei /etc/yum.repos.d/CentOS-Base.repo in den Abschnitten [base] und [updates] den Eintrag exclude=postgresql* ergänzen. Danach fügen wir das neue Repo hinzu, installieren die benötigten Pakete, initialisieren Postgres und setzen den Dienst auf autostart:

yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm
yum install postgresql93-server postgresql93-contrib
service postgresql-9.3 initdb
chkconfig postgresql-9.3 on

Die PuppetDB wird über ein Puppet Modul installiert, dieses wird zuerst von Puppet Forge heruntergeladen:

puppet module install puppetlabs/puppetdb

Das Modul muss noch angepasst werden, ansonsten installiert es Postgres 8.4 und nutzt nicht die schon installierte Version 9.3. Dies geschieht in der Datei /etc/puppet/modules/postgresql/manifests/params.pp. In den Zeilen 25-31 werden die zu installierenden Pakete aufgelistet. Die neuen Versionen heisen nicht mehr nur noch ‘postgres’ sondern nun ‘postgresql93’.

Die PuppetDB Klasse kann man nun dem Node zuweisen in der /etc/puppet/manifests/site.pp:
node /puppet.example.org/ {
include puppetdb
include puppetdb::master::config
}

Die Vorbereitungen sind abgeschlossen, nun kann ein puppet Run erfolgen welcher die DB einrichtet:

puppet agent -t

Warum ein Loadbalancer/Proxy vor dem eigentlichen Webserver?
Nginx ist ein leichtgewichtiger Webserver mit vielen unbekannten Talenten. Zum einen kann er auch als Webfirewall dienen und bösartige Anfragen herausfiltern um somit Attacken auf Puma/Rack/Puppet-Master zu unterbinden, zum anderen kann er SSL terminieren und mehrere Backends ansprechen. Dies ist notwendig um ein flexibles Setup zu bauen das man problemlos um mehrere Puppet-Master Nodes erweitern und verkleinern kann.

Abschliesende Funktionalitätstests:
Man kann sich nun auf einem Client Puppet installieren und testweise eine Verbindung zu unserem neuen Setup aufbauen. Hier eine beispielhafte Installationsanleitung für einen Puppet Client unter Debian Wheezy. Leider ist die Version in dem Repo zu alt weshalb ich zuerst den APT-Repo von Puppetlabs hinzufüge:

 wget https://apt.puppetlabs.com/puppetlabs-release-wheezy.deb
dpkg -i puppetlabs-release-wheezy.deb
aptitude update
aptitude -y safe-upgrade
aptitude install puppet

Nun kann der erste Puppetrun gestartet werden:

puppet agent --server puppet.example.com --onetime --no-daemonize --verbose --noop
Info: Creating a new SSL key for meine-tolle-testkiste.example.com
Info: Caching certificate for ca
Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for meine-tolle-testkiste.example.com
Info: Certificate Request fingerprint (SHA256): D9:13:F7:01:FF:F8:97:97:40:95:95:55:21:FA:D2:02:EF:05:9D:14:E5:45:3C:CD:61:4E:44:AC:B8:CD:19:05
Info: Caching certificate for ca
Exiting; no certificate found and waitforcert is disabled

Auf unserem Puppet-Master liegt nun ein Clientzertifikat das wir signieren müssen. Danach kann der Client SSL-verschlüsselt mit dem Master kommunizieren:

puppet cert sign meine-tolle-testkiste.example.com
Notice: Signed certificate request for meine-tolle-testkiste.example.com
Notice: Removing file Puppet::SSL::CertificateRequest meine-tolle-testkiste.example.com at '/var/lib/puppet/ssl/ca/requests/meine-tolle-testkiste.example.com.pem'

Ein erneuter Puppet run auf dem Client ist nun erfolgreich:

puppet agent --server puppet.rackmonkey.de --onetime --no-daemonize --verbose --noop
Info: Retrieving plugin
Info: Caching catalog for host02.bastelfreak.org
Info: Applying configuration version '1387582674'
Notice: Finished catalog run in 0.01 seconds

Für ein ordentliches Life-Cycle Management sowie als Webfrontend für Puppet bietet sich Foreman an. Zur dessen Installation wird zuerst das RPM Repository hinzugefügt, dann benötigte Gems installiert und dann der eigentliche Foreman:

yum install http://yum.theforeman.org/releases/latest/el6/x86_64/foreman-release.rpm
yum update
yum upgrade
gem install highline
gem install kafo
yum install foreman-installer

Nützliche Links:
Wie implementiert man sichere Crypto
Rails Server Throwdown
Nginx+Passenger für den Puppet-Master
Anleitung von Puppetlabs für Apache+Passenger/Rack
Puma+Nginx 1
Puma+Nginx 2
Sicherer SSL Cipher Suite inklusive Perfect Forward Secrecy
Informationen über PFS (Perfect Forward Secrecy)
Installation einer PuppetDB unter CentOS 6.4

Posted in General, Linux, Nerd Stuff, Puppet | 1 Comment

dnsmasq-2.66 Bug

Ich nutze folgende XML Definition in Libvirt um automatisch meine VMs mit IP-Adressen und PXE zu versorgen:

<network connections='6'>
  <name>internet</name>
  <uuid>37b888cc-510f-46f1-9246-346da96222ed</uuid>
  <forward dev='enp5s0f0' mode='route'>
    <interface dev='enp5s0f0'/>
  </forward>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='52:54:00:13:39:d5'/>
  <ip family='ipv6' address='2a01:4f8:11a:b00::2' prefix='64'>
  </ip>
  <ip address='88.198.253.2' netmask='255.255.255.224'>
    <dhcp>
      <range start='88.198.253.4' end='88.198.253.30'/>
      <host mac='52:54:00:5a:d8:30' name='webserver01.rackmonkey.de' ip='88.198.253.6'/>
      <bootp file='pxelinux.0' server='213.133.99.100'/>
    </dhcp>
  </ip>
  <route family='ipv6' address='2a01:4f8:11a:b00::' prefix='56' gateway='2a01:4f8:11a:b00::2'/>
</network>

Libvirt triggert hier dnsmasq unter anderem um automatisch Router Advertisments zu versenden. Dies funktioniert in dnsmasq-266 nicht richtig. Beim starten des virtuellen Netzwerks per

virsh net-define internet.xml; virsh net-start internet

Erhält man folgende Fehlermeldung:
error: Failed to start network internet
error: internal error: Child process (/usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/internet.conf) unexpected exit status 2:
dnsmasq: failed to set SO_BINDTODEVICE on DHCP socket: Socket operation on non-socket

Dazu existiert ein Bugreport:
https://bugzilla.redhat.com/show_bug.cgi?id=962874

Sowie ein Fix:
http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commitdiff;h=cfcad42ff1ddee8e64d120f18016a654152d0215

in Version 2.67 ist dieses Problem gefixt. Diese ist aktuell in gentoo als testing markiert für die amd64 Architektur. Um diese zu installieren muss sie erst explizit freigeschaltet werden:

echo "=net-dns/dnsmasq-2.67 ~amd6" >> /etc/portage/package.accept_keywords

Danach kann sie installiert werden:

emerge -q dnsmasq
Posted in General, Linux, Virtualization | Leave a comment