Mit ‘14.04’ Tagged einträge

add-apt-repository unter 14.04 installiren

Samstag, September 6th, 2014

Um PPAs hinzuzufügen nutzt man bei Ubuntu am besten add-apt-repository. Ab Ubuntu 14.04 ist mir aber aufgefallen, dass es nicht mehr nur reicht python-software-properties zu installieren.

apt-get install python-software-properties software-properties-common

ubuntu disabled cacert.org

Donnerstag, März 20th, 2014

Beim einrichten eines Servers unter 14.04 ist mir folgendes aufgefallen:
SSLCACertificateFile: file ‚/usr/share/ca-certificates/cacert.org/cacert.org.crt‘ does not exist or is empty

Darauf hin schaute ich mir die changelog vom ca-certificates an und war überrascht das cacert.org nicht mehr vertraut wird:
zless /usr/share/doc/ca-certificates/changelog.gz
ca-certificates (20130906ubuntu2) trusty; urgency=medium

* No longer ship cacert.org certificates. (LP: #1258286)

-- Marc Deslauriers Wed, 19 Feb 2014 15:57:25 -0500

Daraufhin schaute ich mir den Bugreport genauer an:
Ubuntu ist eine der wenigen Distributionen die CAcert als vertrauenswürdiges Zertifikat anerkennen. Viele Distributionen erwägen [1], CAcert zu entfernen. Mozilla schloss die im Jahr 2003 eröffnete RFE [2] für CAcert im Jahr 2008.

Auf der Debian Mailingliste [3] wurden einige Bedenken bezüglich der Codequalität von CAcert ausgedrückt. Deswegen wurde die Prüfung angehalten.

In der Vergangenheit hat Ubuntu bereits CAcert deaktiviert [4], dies ist nun wieder der Fall. Es ist besser dies wieder zu tun.

Ubuntu is one of the few distributions shipping CAcert as a trusted certificate. Many distributions are considering[1] whether to remove CAcert, and Mozilla closed the RFE[2] for CAcert in 2008, which was opened in 2003.

Concerns were expressed about CAcert’s code quality[3], and their audit appears to be stalled.

In the past, it appears that Ubuntu disabled[4] CAcert, but this is no longer the case. It may be wise to do so again.

[1]: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718434#50
[2]: https://bugzilla.mozilla.org/show_bug.cgi?id=215243
[3]: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718434#45
[4]: http://wiki.cacert.org/InclusionStatus?highlight=Ubuntu

Quelle: https://bugs.launchpad.net/ubuntu/+source/ca-certificates/+bug/1258286

Abhilfe schafft folgendes, dennoch müssen dann die Fingersprints selbst überprüft werden.
wget -O cacert.org.crt http://www.cacert.org/certs/root.crt
wget -O - http://www.cacert.org/certs/class3.crt >> cacert.org.crt

[UPDATE]
Mittlerweile sind auch die andere releases betroffen wie Ubuntu 12.04:
zless /usr/share/doc/ca-certificates/changelog.gz
ca-certificates (20130906ubuntu0.12.04.1) precise-security; urgency=medium

* Update ca-certificates database to 20130906 (LP: #1257265):
- backport changes from the Ubuntu 14.04 20130906ubuntu1 package
- No longer ship cacert.org certificates (LP: #1258286)
- No longer ship obsolete debconf.org certificates
- mozilla/certdata2pem.py: Work around openssl issue by shipping both
versions of the same signed roots. Previously, the script would
simply overwrite the first one found in the certdata.txt with the
later one since they both have the same CKA_LABEL, resulting in
identical filenames. (LP: #1014640, LP: #1031333)

-- Marc Deslauriers Thu, 06 Feb 2014 17:39:43 -0500

Tinc und GIT

Sonntag, Januar 1st, 2012

Tinc ist im Gegensatz zu OpenVPN eine mesh vpn. Damit dies funktioniert müssen aber auf jedem Server die öffentlichen Schüssel/Konfigurationsdateien bekannt sein. Um diese Schlüssel zu verteilen verwende ich GIT.

Hier ein Aufbau zwischen zwei Servern (SRV01/SRV02). Jeweils habe den Ordner /opt/git/ erstellt und das Git ausgeschekt. Den VPN Ordner habe ich dann mittels eines Symlinks in das /etc/tinc Verzeichnis gelinkt.
ln -s /opt/git/vpn.tinc/vpn /etc/tinc/vpn

Folgende Daten und Ordner befinden sich in meinem Git. Mittels der .d Verzeichnisse werden die einzelne Dateien auf den Servern gelinkt (siehe unten).
/etc/tinc/vpn/
hosts
hosts/srv01
hosts/srv02
tinc.conf.d
tinc.conf.d/srv01.conf
tinc.conf.d/srv02.conf
up.d
up.d/srv01-up
up.d/srv02-up
down.d
down.d/down

Die Dateien im einzelnen.
— SRV01 —
hosts/srv01:

Name = srv01
Address = srv01.chr.istoph.de
Cipher = aes-256-cbc
Digest = sha1
IndirectData = yes
Subnet = 10.8.0.1/32
Subnet = 192.168.0.1/24

Wichtig: bei Subnet muss einmal die Lokale Adresse auf die gelauscht werden soll mit /32 angegeben werden. Das zweite Subnet ist nur beispielhaft für weiteres netz das sich hinter SRV01 befindet.

tinc.conf.d/srv01.conf:

Name = srv01
AddressFamily = ipv4
BindToInterface = eth0
ConnectTo = srv02
Device = /dev/net/tun
Mode = router
KeyExpire = 3600
PrivateKeyFile = /etc/tinc/vpn/rsa_key.priv

up.d/srv01-up:

#!/bin/bash
ip addr add 10.8.0.1/24 dev vpn
ip link set vpn up

down.d/down:

#!/bin/bash

Auf SRV01 müssen dann natürlich nur folgende Symlinks erstellt werden.
ln -s tinc.conf.d/srv01.conf tinc.conf
ln -s up.d/srv01-up tinc-up
ln -s down.d/down tinc-down

— SRV02 —
hosts/srv02:

Name = srv02
Address = srv02.chr.istoph.de
Cipher = aes-256-cbc
Digest = sha1
IndirectData = yes
Subnet = 10.8.0.2/32

tinc.conf.d/srv02.conf:

Name = srv02
AddressFamily = ipv4
BindToInterface = eth0
ConnectTo = srv01
Device = /dev/net/tun
Mode = router
KeyExpire = 3600
PrivateKeyFile = /etc/tinc/vpn/rsa_key.priv

up.d/srv02-up:

#!/bin/bash
ip addr add 10.8.0.2/24 dev $INTERFACE
ip link set $INTERFACE up

ln -s tinc.conf.d/srv02.conf tinc.conf
ln -s up.d/srv02-up tinc-up
ln -s down.d/down tinc-down

— END —

Nach dem die Dateien angelegt sind können auf dem jeweiligen Server (SRV01 / SEV02), die Keys erstellt werden.
tincd --generate-keys=4096 -n vpn

Dies Legt den Privaten schlüssel rsa_key.priv an und legt den Öffentlichen Schlüssel in die host/srv01 Datei.

Vor dem Starten von Tinc müssen die up/down Scripte noch Ausführungsrechte auf den Jeweiligen Servern bekommen.
chmod +x up.d/srv*
chmod +x down.d/down

Nun können wir alles im GIT einchecken. Nicht vergessen nach dem einchecken von SRV01 auf SRV02 zu pullen und erst dann die Dateien anzulegen um sie zu puschen.
git add hosts/srv01 tinc.conf.d/srv01.conf up.d/srv01-up down.d/down
git commit -m "tinc: add srv01"
git puch

Wichtig hierbei ist den Privaten Schlüssel rsa_key.priv nicht einzucken. Auch aus Backup gründen macht dies keinen Sinn da dieser immer wieder neu erstellt werden kann.

Bei Ubuntu 14.04 Systemen muss in der Datei /etc/tinc/nets.boot der Name des zu startenden Netzwerkes eingetragen werden. In unserem Fall VPN.
## This file contains all names of the networks to be started on system startup.
vpn

Ab Ubuntu 16.04. können die einen Tinc Netzte via Systemd angesprochen werden. In Unserem Fall damit es bei Boote gestartet wird:
systemctl enable tinc@vpn
Und folgendes zum Starten und Status anzeigen:
systemctl start tinc@vpn
systemctl status tinc@vpn