multicast auf CISCO 200 series dropen

Da Multicast Parkete in größenen Netzerken, z.b. WLANs zu Problemen fürhren können, habe ich mich eben damit beschäftige diese Pakete zu Droppen.

Zunächst muss Unter Multicast -> Eigenschaften -> Bridge-Multcast-Filterstatus aktiviert werden.

Dann kann man unter Multicast -> Alle weiterleiten die einzelne Ports definieren die erlaubt sind (Statisch) und die denen das Routing Verboten ist.

Bearbeiten von resolv.conf deprecated

Das bearbeiten der /etc/resolv.conf ist seit ubuntu 12.04. deprecated. Nun muss man in die /etc/resolvconf/resolv.conf.d/head Datei editien oder mittels stdout den Nameserver hinzufügen.

echo "nameserver 8.8.4.4" >> /etc/resolvconf/resolv.conf.d/head

Dann muss man noch den Dienst neu updaten. Das geschit mittels:

resolvconf -u

BA Gigabit

Heute haben wir in der BA zwei weite 48 Port Gigabit Einschübe in unseren Cisco 4006 nachgerüstet.

switch>show module
Chassis Type : WS-C4006

Power consumed by backplane : 0 Watts

Mod Ports Card Type                              Model              Serial No.
---+-----+--------------------------------------+------------------+-----------
 1     2  Supervisor III 1000BaseX (GBIC)        WS-X4014
 2    48  10/100/1000BaseT (RJ45)                WS-X4548-GB-RJ45
 3    48  10/100/1000BaseT (RJ45)                WS-X4548-GB-RJ45
 4    48  10/100/1000BaseT (RJ45)                WS-X4548-GB-RJ45
 5    48  10/100BaseTX (RJ45)                    WS-X4148-RJ
 6    48  10/100BaseTX (RJ45)V                   WS-X4148-RJ45V

Mein erster Ubuntu Kernel Bug bei Launchpad

Na toll. Mein erster richtige Bug bei Ubuntu und das beste was die Jungs von Launchpad.net mir sagen konnten war das ich doch mal ein BIOS update machen sollte. Ganz schön kompliziert bei einem Rechner der im einem Rechenzentrum steht. Heute durfte ich den Bug dann schließen, es lag Tatsächlichkeit an der veralteten Bios Version. Aber ganz erlicht der Bug hat mich fünf Manntage gekostet.

Bug: bugs.launchpad.net/bugs/978320

Eine eigene x509v3 CA erstellen

Zunächst wird eine Config Datei benötigt.
ca.conf:
[ req ]
default_bits=4096
default_md=sha1
utf8=yes
distinguished_name=req_distinguished_name
x509_extensions=x509_exts

[ req_distinguished_name ]

[ x509_exts ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints = CA:true

[ ca ]
default_ca=default_ca

[ default_ca ]
certificate=ca.crt
private_key=private/ca.key
default_days=36500
default_md=sha1
database=meta/db.txt
unique_subject=no
serial=meta/serial
policy=ca_policy
name_opt=ca_default
cert_opt=ca_default
copy_extensions=copyall
x509_extensions=ca_x509_ext

[ ca_x509_ext ]
# an empty referenced section ensures a v3 cert is generated

[ server ]
nsCertType=server

[ ca_policy ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = optional
emailAddress = optional

Dann werden noch ein paar Ordner, eine lehre Datenbank(halde) und eine Seriennummer benötigt.
mkdir private meta certs
touch meta/db.txt
echo 01 > meta/serial

Nun wird die CA erstellt.
openssl req -x509 -subj /CN=TestCA -newkey rsa:4096 -keyout private/ca.key -out ca.crt -nodes -config ca.conf -days 36500

Dann muss das CSR (Certifikate signing request) erstellt werden.
openssl req -subj /CN=TestCert -newkey rsa:4096 -keyout new.key -out new.csr -nodes -config ca.conf -days 36500

Zum Schluss wird aus dem CSR das von der CA signierte Zertifikat des Clients.
openssl ca -in new.csr -outdir certs/ -config ca.conf -notext -utf8

Möchten man nun z.b. ein vpn Server mit der CA betreiben braucht man noch ein Server Zertifikat.
openssl ca -in vpn-server.csr -outdir certs/ -config ca.conf -extensions server -notext -utf8
(z.B. openvpn server wenn man die --ns-cert-type server bei den clients angibt)

Die Zertifikate kann man sich dann mit folgenden Befehl anzeigen lassen.
openssl x509 -in ca.crt -noout -text

co Autor: Martin H.
Quelle: www.openssl.org

Tolle Zahl: 65535

64 bytes from 10.0.0.1: icmp_seq=65533 ttl=64 time=0.349 ms
64 bytes from 10.0.0.1: icmp_seq=65534 ttl=64 time=0.312 ms
64 bytes from 10.0.0.1: icmp_seq=65535 ttl=64 time=0.318 ms
64 bytes from 10.0.0.1: icmp_seq=0 ttl=64 time=0.325 ms
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.308 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.312 ms

Dabei fängt der erste ping bei 1 an und nicht bei 0.

Ubuntu 12.04 Precise Pangolin

Es ist so weit, Precise Pangolin Ubuntu 12.04 ist auf unserem Mirror angekommen.

http://mirror.bauhuette.fh-aachen.de/ubuntu-cd/

openvpn up/down script-security unter 12.04 precise

Ach, toll. Nach der Umstellung von Lucid auf Ubuntu 12.04 Precise konnte OpenVPN nicht mehr starten. Im opnvpn.log fand ich folgenden Warnung die das Problem beschreibt.
WARNING: External program may not be called unless '--script-security 2' or higher is enabled. Use '--script-security 3 system' for backward compatibility with 2.1_rc8 and earlier. See --help text or man page for detailed info.
WARNING: Failed running command (--up/--down): external program fork failed

Das Problem, in meiner client.conf stand ein Script das ausgeführt wird wenn der Tunnel Startet.
up /etc/openvpn/ip-config

Wenn man folgende Ziele in der client.conf ergähnst, wird dem OpenVPN erlaub dies auszuführen.
script-security 3 system

zone files eine IP ändern

Mal eben schnell in allen Zonefiles eine IP ändern und die serial Nummer updaten.

#!/bin/bash
for item in *; do
  if [ -f $item ]; then
    sed 's/'88.198.44.248'/'46.4.34.52'/g' $item > $item.tmp;
    if [ "$(md5sum $item | awk '{print $1}')" = "$(md5sum $item.tmp | awk '{print $1}')" ]; then
      rm $item.tmp
    else
      sed "s/$(cat $item.tmp | grep 'serial' | awk '{print $1}')/2012040601/g" $item.tmp > $item
      rm $item.tmp
    fi
  fi
done

Das funktioniert natürlich nur solange wenn die Zonefiles noch nicht geupdatet wurden und die Serienummern mit ;sirial getakt sind.

apparmor unter Ubuntu 12.04

named[1899]: client 10.8.0.1#50619: updating zone 'chr.istoph.de/IN': adding an RR at 'srv01.chr.istoph.de' A
named[1899]: client 10.8.0.1#50619: updating zone 'chr.istoph.de/IN': adding an RR at 'srv01.chr.istoph.de' TXT
named[1899]: /etc/bind/db.chr.istoph.de.jnl: create: permission denied
named[1899]: client 10.8.0.1#50619: updating zone 'chr.istoph.de/IN': error: journal open failed: unexpected error
dhcpd: Unable to add forward map from srv01.chr.istoph.de. to 10.8.0.2: timed out
kernel: [ 376.010028] type=1400 audit(1333037844.507:22): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/named" name="/etc/bind/db.chr.istoph.de.jnl" pid=1900 comm="named" requested_mask="c" denied_mask="c" fsuid=103 ouid=103
dhcpd: DHCPREQUEST for 10.8.0.2 from 00:01:80:7c:87:eb (srv01) via eth0

Lösung:
apt-get autoremove apparmor
reboot

Und seit dem geht es.

Cannot register the hard disk because a hard disk already exists

Heute haben wir während einer Installation eine vdi Datei Coppiert. Lieder haben wir nicht daran gedacht das die VDI Dateien feste UUIDs zugeordnet sind. Das fürte bei einbinden der Platte zu folgenden Fehler:

VBoxManage: error: Cannot register the hard disk 'precise.vdi' {bbc079a9-ca5d-406d-a43f-435c995822e8} because a hard disk 'lucid.vdi' with UUID {bbc079a9-ca5d-406d-a43f-435c995822e8} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, AccessMode_ReadWrite, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 210 of file VBoxManageDisk.cpp

Abhilfe schafft folgender befehl:
VBoxManage internalcommands sethduuid precise.vdi
UUID changed to: 5a3ecc9a-ea07-4d6f-9ff9-3437702df22b

Quelle: grahamrhay.wordpress.com

Sporadische Seitenladefehler durch Segmentation fault

Vergangene Woche war meine Blog immer wieder von ausfällen geplagt. Das komische war das es immer wieder in der gleichen WordPress Funktion call_user_func_array auftauchte.
Bei Debuggen verschob sich aber immer wieder der Ort wo der Fehler auftrat, ähnlich der Heisenbergsche Unschärferelation. Zudem trat der Fehler nur bei jedem vierten seiten Aufruf auf.

[notice] child pid 29729 exit signal Segmentation fault (11)
[notice] child pid 29856 exit signal Segmentation fault (11)
[notice] child pid 29888 exit signal Segmentation fault (11)

Im Endeffekt habe ich jetzt erst mal PHP und Apache ohne -threads* kompeliert.

Für mehr Qulaität bei Youtube…

ACTA 02.2012


Das Original Bild wie immer auf anfrage mit 30,2Megapixel 201MB Tif

tail -F für logrotate

Ich bin darauf aufmerksam gemacht worden das ich tail -F mit einem großen F schreibe. Das mach ich absichtlich, den diese Option bewirkt das das teil das Logfile auch lesen kann wenn es durch logrotate rotiert wird.

Hier der Auszug aus der Manpage:

-f, --follow[={name|descriptor}]
       output appended data as the file grows; -f, --follow, and --follow=descriptor are equivalent
-F     same as --follow=name --retry

tail -F color

Heute musste ich den ganzen Tag ein Logfile überwachen. Damit das nicht zu anstrengend wird und man Fehler nicht übersieht, habe ich das Logfile einfach eingefärbt.

tail -F file.log | awk '
/FATAL/ {print "\033[31m" $0 "\033[39m"}
/WARN/ {print "\033[33m" $0 "\033[39m"}
/INFO/ {print "\033[32m" $0 "\033[39m"}
'

Das Verhältnis unseres Planetensystem

Das Verhältnis von Abständen und Größe von Sonne und Planeten in unserem Sonnensystem wird eigentlich immer falsch dargestellt. Deswegen wollte ich versuchen dies mal Nachzubilden und bin zu der tollen Erkenntnis gekommen das auch ich die Verhältnisse nicht hin bekomme. Damit man noch was außer der Sonne erkenne musste ich im den Faktor 1 zu 100 pfuschen.

Hier Gehst zum blog.christoph-hueffelmann.de/planetensystem/.

Meine Planetensystem ist insgesamt 9000x9000px groß. Deswegen muss man in die Mitte scrollen um die Sonne zu finden. Zukünftig sollen sich die Planeten auch noch Bewegen. Dann mehr...

Paketquelle anzeigen

Da ich gerade mal wieder eine Viertelstunde damit vertan habe, diesen Befehl zu finden, dokumentiere ich ihn hier.

Ich suchte den Befehl, mit dem ich sehen kann, aus welcher Paktequelle ein Programm kommt. Dies bauchte ich um heraus zu finden ob das Paket ggf. aus einer PPA kommt.

apt-cache policy qemu
qemu:
  Installiert: (keine)
  Kandidat: 0.12.3+noroms-0ubuntu9.16
  Versions-Tabelle:
     0.12.3+noroms-0ubuntu9.16 0
        500 http://mirror.bauhuette.fh-aachen.de/ubuntu/ lucid-updates/universe Packages
     0.12.3+noroms-0ubuntu9.15 0
        500 http://mirror.bauhuette.fh-aachen.de/ubuntu/ lucid-security/universe Packages
     0.12.3+noroms-0ubuntu9 0
        500 http://mirror.bauhuette.fh-aachen.de/ubuntu/ lucid/universe Packages

9AA38DCD55BE302B

Da hatte ich mal wieder ein uhr alles etch in die finger bekommen, das auch noch veraltetet Schlüssel hatte.

server:~# apt-get update
Get:1 http://archive.debian.org etch Release.gpg [1033B]
Hit http://archive.debian.org etch Release
Ign http://archive.debian.org etch/main Packages/DiffIndex
Ign http://archive.debian.org etch/non-free Packages/DiffIndex
Ign http://archive.debian.org etch/contrib Packages/DiffIndex
Ign http://archive.debian.org etch/main Sources/DiffIndex
Ign http://archive.debian.org etch/non-free Sources/DiffIndex
Ign http://archive.debian.org etch/contrib Sources/DiffIndex
Hit http://archive.debian.org etch/main Packages
Hit http://archive.debian.org etch/non-free Packages
Hit http://archive.debian.org etch/contrib Packages
Hit http://archive.debian.org etch/main Sources
Hit http://archive.debian.org etch/non-free Sources
Hit http://archive.debian.org etch/contrib Sources
Fetched 1B in 0s (3B/s)
Reading package lists... Done
W: There is no public key available for the following key IDs:
9AA38DCD55BE302B
W: You may want to run apt-get update to correct these problems

Google verwies auf die lösung mit dem netten Server wwwkeys.eu.pgp.net der aber nicht auflösbar war.
server:~# gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 9AA38DCD55BE302B
gpg: requesting key 55BE302B from hkp server wwwkeys.eu.pgp.net
?: wwwkeys.eu.pgp.net: Host not found
gpgkeys: HTTP fetch error 7: couldn't connect: Success
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0

Die Lösung für das problem war ein andere Key Server:
server:~# gpg --keyserver subkeys.pgp.net --recv-key 9AA38DCD55BE302B
gpg: requesting key 55BE302B from hkp server subkeys.pgp.net
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 55BE302B: public key "Debian Archive Automatic Signing Key (5.0/lenny) " imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
server:~# gpg --armor --export 9AA38DCD55BE302B | apt-key add -
OK

1und1 Firewall

Oh man wie schlecht. 1und1 hat eine Firewall die 15 Minuten zum Aktualisierung baucht. Vermutlich gibt es dann für alle kunden alle 15 Minuten einen Aussetzer.