ubuntuusers.de

21. April 2018

Bitwarden - Schicker Passwortmanager auch zum selbst hosten

Passwortmanager sind denke ich aus dem Alltag der meisten von uns nicht mehr wegzudenken. Bei immer komplexer werdenden Passwörtern, die man am besten für jeden Login auch noch varriert helfen sie Ordnung in das Chaos zu bringen.

Bisher fiel meine Wahl immer auf 1Password. Schicke Apps, gelungene Integration. Doch das kommende Upgrade auf Version 7 werde ich zum einen aus Preisgründen nicht mehr mitmachen und zum anderen stört mich seit längerer Zeit der Weg in Richtung eigener 1Password-Cloud.
Es soll jeder machen, wie er möchte. Ich nutze auch Dienste wie Dropbox und Nextcloud und habe Dinge in der Cloud liegen. Bei Passwörtern oder ähnlichen sensiblen Dokumenten überwiegt bei mir aber einfach die Vorsicht. Ich möchte wissen, wo meine Daten liegen.

Und natürlich müssen Entwickler von etwas leben und ich bezahle gerne für gute Software. Aber der Preis muss für mich immer noch in Relation zum Nutzen stehen. Allgemein sei erwähnt, dass ich gegenüber Abo-Modellen auch nicht abgeneigt bin und teilweise andere Apps nutzte, die auf ein Abo-Modell gesetzt haben - so lange für mich persönlich der Nutzen überwiegt.

Neben Anbietern wie LastPass darf man gerade im OpenSource-Bereich natürlich KeePass nicht vergessen. Kann man natürlich machen. Ich persönlich finde die App einfach sperrig und nicht schön - auch wenn es Alternativen wie KeeWeb gibt. Gute Apps haben für mich auch etwas mit guter Usability zu tun.

Bitwarden - Schicker Passwortmanager auch zum selbst hosten

Für mich persönlich habe ich nun eine Alternative in Bitwarden gefunden. Lokalisierte Apps für jedes System (Die WebApp ist zur Zeit noch auf Englisch), sympathische Entwickler, die offen für Feature-Requests sind, ein Quellcode unter OpenSource und vor allem, ich kann eine Instanz mittels Docker selbst hosten. Ich weiß somit, wo meine Daten sind und bin für die (Server)-Sicherheit selber verantwortlich. Muss man natürlich auch wollen.

Wo wir gerade beim Thema Sicherheit sind, die wird bei Bitwarden so umgesetzt:

Bitwarden uses AES 256 bit encryption as well as PBKDF2 to secure your data.

AES is used by the US government and other government agencies around the world for protecting top secret data. With proper implementation and a strong encryption key (your master password), AES is considered unbreakable.

PBKDF2 is used to derive the encryption key from your master password. This key is then salted and hashed.

Bitwarden does not write any crypto code. Bitwarden only invokes crypto from popular and reputable crypto libraries that are written and maintained by cryptography experts. The following crypto libraries are used:

Javascript (web and browser extension vaults)
    Forge
    Web Crypto
C# (mobile vault)
    CommonCrypto (iOS, Apple)
    Javax.Crypto (Android, Oracle)
    BouncyCastle (Android)

Bitwarden always encrypts and/or hashes your data on your local device before it is ever sent to the cloud servers for syncing. The Bitwarden servers are only used for storing encrypted data. It is not possible to get your unencrypted data from the Bitwarden cloud servers.

Wie erwähnt läuft eine eigene Instanz über Docker auf einem Server. Die Installation ist schnell erledigt. Alles was ihr benötigt ist ein Server mit Docker:

curl -s -o bitwarden.sh \
    https://raw.githubusercontent.com/bitwarden/core/master/scripts/bitwarden.sh \
    && sudo chmod u+x bitwarden.sh
./bitwarden.sh install
./bitwarden.sh start
./bitwarden.sh updatedb

Und es läuft. Anschließend könnt solltet ihr euch noch um die weitere, schnelle Konfiguration kümmern um beispielsweise den E-Mail-Empfang zu gewährleisten. Die WebApp wird automatisch mittels Let's Encrypt gesichert und lässt sich zusätzlich auch mittels 2FA schützen.

Einen Premium-Plan gibt es auch, ist aber nicht zwingend erforderlich. Dieser kostet im Jahr 10 USD und erweitert nach Kauf auch die selbst gehostete Lösung. Ich sehe die Premium-Lizenz allerdings eher als Unterstützung für die Entwickler um beispielsweise bei der Finanzierung eines Security Audits mitzuhelfen.

Passwortmanager sind denke ich aus dem Alltag der meisten von uns nicht mehr wegzudenken. Bei immer komplexer werdenden Passwörtern, die man am besten für jeden Login auch noch varriert helfen sie Ordnung in das Chaos zu bringen.

Bisher fiel meine Wahl immer auf 1Password. Schicke Apps, gelungene Integration. Doch das kommende Upgrade auf Version 7 werde ich zum einen aus Preisgründen nicht mehr mitmachen und zum anderen stört mich seit längerer Zeit der Weg in Richtung eigener 1Password-Cloud.
Es soll jeder machen, wie er möchte. Ich nutze auch Dienste wie Dropbox und Nextcloud und habe Dinge in der Cloud liegen. Bei Passwörtern oder ähnlichen sensiblen Dokumenten überwiegt bei mir aber einfach die Vorsicht. Ich möchte wissen, wo meine Daten liegen.

Und natürlich müssen Entwickler von etwas leben und ich bezahle gerne für gute Software. Aber der Preis muss für mich immer noch in Relation zum Nutzen stehen. Allgemein sei erwähnt, dass ich gegenüber Abo-Modellen auch nicht abgeneigt bin und teilweise andere Apps nutzte, die auf ein Abo-Modell gesetzt haben – so lange für mich persönlich der Nutzen überwiegt.

Neben Anbietern wie LastPass darf man gerade im OpenSource-Bereich natürlich KeePass nicht vergessen. Kann man natürlich machen. Ich persönlich finde die App einfach sperrig und nicht schön – auch wenn es Alternativen wie KeeWeb gibt. Gute Apps haben für mich auch etwas mit guter Usability zu tun.

alt

Für mich persönlich habe ich nun eine Alternative in Bitwarden gefunden. Lokalisierte Apps für jedes System (Die WebApp ist zur Zeit noch auf Englisch), sympathische Entwickler, die offen für Feature-Requests sind, ein Quellcode unter OpenSource und vor allem, ich kann eine Instanz mittels Docker selbst hosten. Ich weiß somit, wo meine Daten sind und bin für die (Server)-Sicherheit selber verantwortlich. Muss man natürlich auch wollen.

Wo wir gerade beim Thema Sicherheit sind, die wird bei Bitwarden so umgesetzt:

Bitwarden uses AES 256 bit encryption as well as PBKDF2 to secure your data.

AES is used by the US government and other government agencies around the world for protecting top secret data. With proper implementation and a strong encryption key (your master password), AES is considered unbreakable.

PBKDF2 is used to derive the encryption key from your master password. This key is then salted and hashed.

Bitwarden does not write any crypto code. Bitwarden only invokes crypto from popular and reputable crypto libraries that are written and maintained by cryptography experts. The following crypto libraries are used:

Javascript (web and browser extension vaults)    Forge    Web CryptoC# (mobile vault)    CommonCrypto (iOS, Apple)    Javax.Crypto (Android, Oracle)    BouncyCastle (Android)

Bitwarden always encrypts and/or hashes your data on your local device before it is ever sent to the cloud servers for syncing. The Bitwarden servers are only used for storing encrypted data. It is not possible to get your unencrypted data from the Bitwarden cloud servers.

Wie erwähnt läuft eine eigene Instanz über Docker auf einem Server. Die Installation ist schnell erledigt. Alles was ihr benötigt ist ein Server mit Docker:

curl -s -o bitwarden.sh \    https://raw.githubusercontent.com/bitwarden/core/master/scripts/bitwarden.sh \    && sudo chmod u+x bitwarden.sh./bitwarden.sh install./bitwarden.sh start./bitwarden.sh updatedb

Und es läuft. Anschließend könnt solltet ihr euch noch um die weitere, schnelle Konfiguration kümmern um beispielsweise den E-Mail-Empfang zu gewährleisten. Die WebApp wird automatisch mittels Let’s Encrypt gesichert und lässt sich zusätzlich auch mittels 2FA schützen.

Einen Premium-Plan gibt es auch, ist aber nicht zwingend erforderlich. Dieser kostet im Jahr 10 USD und erweitert nach Kauf auch die selbst gehostete Lösung. Ich sehe die Premium-Lizenz allerdings eher als Unterstützung für die Entwickler um beispielsweise bei der Finanzierung eines Security Audits mitzuhelfen.

Bitwarden - Schicker Passwortmanager auch zum selbst hosten

Passwortmanager sind denke ich aus dem Alltag der meisten von uns nicht mehr wegzudenken. Bei immer komplexer werdenden Passwörtern, die man am besten für jeden Login auch noch varriert helfen sie Ordnung in das Chaos zu bringen.

Bisher fiel meine Wahl immer auf 1Password. Schicke Apps, gelungene Integration. Doch das kommende Upgrade auf Version 7 werde ich zum einen aus Preisgründen nicht mehr mitmachen und zum anderen stört mich seit längerer Zeit der Weg in Richtung eigener 1Password-Cloud.
Es soll jeder machen, wie er möchte. Ich nutze auch Dienste wie Dropbox und Nextcloud und habe Dinge in der Cloud liegen. Bei Passwörtern oder ähnlichen sensiblen Dokumenten überwiegt bei mir aber einfach die Vorsicht. Ich möchte wissen, wo meine Daten liegen.

Und natürlich müssen Entwickler von etwas leben und ich bezahle gerne für gute Software. Aber der Preis muss für mich immer noch in Relation zum Nutzen stehen. Allgemein sei erwähnt, dass ich gegenüber Abo-Modellen auch nicht abgeneigt bin und teilweise andere Apps nutzte, die auf ein Abo-Modell gesetzt haben - so lange für mich persönlich der Nutzen überwiegt.

Neben Anbietern wie LastPass darf man gerade im OpenSource-Bereich natürlich KeePass nicht vergessen. Kann man natürlich machen. Ich persönlich finde die App einfach sperrig und nicht schön - auch wenn es Alternativen wie KeeWeb gibt. Gute Apps haben für mich auch etwas mit guter Usability zu tun.

Bitwarden - Schicker Passwortmanager auch zum selbst hosten

Für mich persönlich habe ich nun eine Alternative in Bitwarden gefunden. Lokalisierte Apps für jedes System (Die WebApp ist zur Zeit noch auf Englisch), sympathische Entwickler, die offen für Feature-Requests sind, ein Quellcode unter OpenSource und vor allem, ich kann eine Instanz mittels Docker selbst hosten. Ich weiß somit, wo meine Daten sind und bin für die (Server)-Sicherheit selber verantwortlich. Muss man natürlich auch wollen.

Wo wir gerade beim Thema Sicherheit sind, die wird bei Bitwarden so umgesetzt:

Bitwarden uses AES 256 bit encryption as well as PBKDF2 to secure your data.

AES is used by the US government and other government agencies around the world for protecting top secret data. With proper implementation and a strong encryption key (your master password), AES is considered unbreakable.

PBKDF2 is used to derive the encryption key from your master password. This key is then salted and hashed.

Bitwarden does not write any crypto code. Bitwarden only invokes crypto from popular and reputable crypto libraries that are written and maintained by cryptography experts. The following crypto libraries are used:

Javascript (web and browser extension vaults)
    Forge
    Web Crypto
C# (mobile vault)
    CommonCrypto (iOS, Apple)
    Javax.Crypto (Android, Oracle)
    BouncyCastle (Android)

Bitwarden always encrypts and/or hashes your data on your local device before it is ever sent to the cloud servers for syncing. The Bitwarden servers are only used for storing encrypted data. It is not possible to get your unencrypted data from the Bitwarden cloud servers.

Wie erwähnt läuft eine eigene Instanz über Docker auf einem Server. Die Installation ist schnell erledigt. Alles was ihr benötigt ist ein Server mit Docker:

curl -s -o bitwarden.sh \
    https://raw.githubusercontent.com/bitwarden/core/master/scripts/bitwarden.sh \
    && sudo chmod u+x bitwarden.sh
./bitwarden.sh install
./bitwarden.sh start
./bitwarden.sh updatedb

Und es läuft. Anschließend könnt solltet ihr euch noch um die weitere, schnelle Konfiguration kümmern um beispielsweise den E-Mail-Empfang zu gewährleisten. Die WebApp wird automatisch mittels Let's Encrypt gesichert und lässt sich zusätzlich auch mittels 2FA schützen.

Einen Premium-Plan gibt es auch, ist aber nicht zwingend erforderlich. Dieser kostet im Jahr 10 USD und erweitert nach Kauf auch die selbst gehostete Lösung. Ich sehe die Premium-Lizenz allerdings eher als Unterstützung für die Entwickler um beispielsweise bei der Finanzierung eines Security Audits mitzuhelfen.

Bitwarden - Schicker Passwortmanager auch zum selbst hosten

Passwortmanager sind denke ich aus dem Alltag der meisten von uns nicht mehr wegzudenken. Bei immer komplexer werdenden Passwörtern, die man am besten für jeden Login auch noch varriert helfen sie Ordnung in das Chaos zu bringen.

Bisher fiel meine Wahl immer auf 1Password. Schicke Apps, gelungene Integration. Doch das kommende Upgrade auf Version 7 werde ich zum einen aus Preisgründen nicht mehr mitmachen und zum anderen stört mich seit längerer Zeit der Weg in Richtung eigener 1Password-Cloud.
Es soll jeder machen, wie er möchte. Ich nutze auch Dienste wie Dropbox und Nextcloud und habe Dinge in der Cloud liegen. Bei Passwörtern oder ähnlichen sensiblen Dokumenten überwiegt bei mir aber einfach die Vorsicht. Ich möchte wissen, wo meine Daten liegen.

Und natürlich müssen Entwickler von etwas leben und ich bezahle gerne für gute Software. Aber der Preis muss für mich immer noch in Relation zum Nutzen stehen. Allgemein sei erwähnt, dass ich gegenüber Abo-Modellen auch nicht abgeneigt bin und teilweise andere Apps nutzte, die auf ein Abo-Modell gesetzt haben - so lange für mich persönlich der Nutzen überwiegt.

Neben Anbietern wie LastPass darf man gerade im OpenSource-Bereich natürlich KeePass nicht vergessen. Kann man natürlich machen. Ich persönlich finde die App einfach sperrig und nicht schön - auch wenn es Alternativen wie KeeWeb gibt. Gute Apps haben für mich auch etwas mit guter Usability zu tun.

Bitwarden - Schicker Passwortmanager auch zum selbst hosten

Für mich persönlich habe ich nun eine Alternative in Bitwarden gefunden. Lokalisierte Apps für jedes System (Die WebApp ist zur Zeit noch auf Englisch), sympathische Entwickler, die offen für Feature-Requests sind, ein Quellcode unter OpenSource und vor allem, ich kann eine Instanz mittels Docker selbst hosten. Ich weiß somit, wo meine Daten sind und bin für die (Server)-Sicherheit selber verantwortlich. Muss man natürlich auch wollen.

Wo wir gerade beim Thema Sicherheit sind, die wird bei Bitwarden so umgesetzt:

Bitwarden uses AES 256 bit encryption as well as PBKDF2 to secure your data.

AES is used by the US government and other government agencies around the world for protecting top secret data. With proper implementation and a strong encryption key (your master password), AES is considered unbreakable.

PBKDF2 is used to derive the encryption key from your master password. This key is then salted and hashed.

Bitwarden does not write any crypto code. Bitwarden only invokes crypto from popular and reputable crypto libraries that are written and maintained by cryptography experts. The following crypto libraries are used:

Javascript (web and browser extension vaults)
    Forge
    Web Crypto
C# (mobile vault)
    CommonCrypto (iOS, Apple)
    Javax.Crypto (Android, Oracle)
    BouncyCastle (Android)

Bitwarden always encrypts and/or hashes your data on your local device before it is ever sent to the cloud servers for syncing. The Bitwarden servers are only used for storing encrypted data. It is not possible to get your unencrypted data from the Bitwarden cloud servers.

Wie erwähnt läuft eine eigene Instanz über Docker auf einem Server. Die Installation ist schnell erledigt. Alles was ihr benötigt ist ein Server mit Docker:

curl -s -o bitwarden.sh \
    https://raw.githubusercontent.com/bitwarden/core/master/scripts/bitwarden.sh \
    && sudo chmod u+x bitwarden.sh
./bitwarden.sh install
./bitwarden.sh start
./bitwarden.sh updatedb

Und es läuft. Anschließend könnt solltet ihr euch noch um die weitere, schnelle Konfiguration kümmern um beispielsweise den E-Mail-Empfang zu gewährleisten. Die WebApp wird automatisch mittels Let's Encrypt gesichert und lässt sich zusätzlich auch mittels 2FA schützen.

Einen Premium-Plan gibt es auch, ist aber nicht zwingend erforderlich. Dieser kostet im Jahr 10 USD und erweitert nach Kauf auch die selbst gehostete Lösung. Ich sehe die Premium-Lizenz allerdings eher als Unterstützung für die Entwickler um beispielsweise bei der Finanzierung eines Security Audits mitzuhelfen.

Bitwarden - Schicker Passwortmanager auch zum selbst hosten

Passwortmanager sind denke ich aus dem Alltag der meisten von uns nicht mehr wegzudenken. Bei immer komplexer werdenden Passwörtern, die man am besten für jeden Login auch noch varriert helfen sie Ordnung in das Chaos zu bringen.

Bisher fiel meine Wahl immer auf 1Password. Schicke Apps, gelungene Integration. Doch das kommende Upgrade auf Version 7 werde ich zum einen aus Preisgründen nicht mehr mitmachen und zum anderen stört mich seit längerer Zeit der Weg in Richtung eigener 1Password-Cloud.
Es soll jeder machen, wie er möchte. Ich nutze auch Dienste wie Dropbox und Nextcloud und habe Dinge in der Cloud liegen. Bei Passwörtern oder ähnlichen sensiblen Dokumenten überwiegt bei mir aber einfach die Vorsicht. Ich möchte wissen, wo meine Daten liegen.

Und natürlich müssen Entwickler von etwas leben und ich bezahle gerne für gute Software. Aber der Preis muss für mich immer noch in Relation zum Nutzen stehen. Allgemein sei erwähnt, dass ich gegenüber Abo-Modellen auch nicht abgeneigt bin und teilweise andere Apps nutzte, die auf ein Abo-Modell gesetzt haben - so lange für mich persönlich der Nutzen überwiegt.

Neben Anbietern wie LastPass darf man gerade im OpenSource-Bereich natürlich KeePass nicht vergessen. Kann man natürlich machen. Ich persönlich finde die App einfach sperrig und nicht schön - auch wenn es Alternativen wie KeeWeb gibt. Gute Apps haben für mich auch etwas mit guter Usability zu tun.

Bitwarden - Schicker Passwortmanager auch zum selbst hosten

Für mich persönlich habe ich nun eine Alternative in Bitwarden gefunden. Lokalisierte Apps für jedes System (Die WebApp ist zur Zeit noch auf Englisch), sympathische Entwickler, die offen für Feature-Requests sind, ein Quellcode unter OpenSource und vor allem, ich kann eine Instanz mittels Docker selbst hosten. Ich weiß somit, wo meine Daten sind und bin für die (Server)-Sicherheit selber verantwortlich. Muss man natürlich auch wollen.

Wo wir gerade beim Thema Sicherheit sind, die wird bei Bitwarden so umgesetzt:

Bitwarden uses AES 256 bit encryption as well as PBKDF2 to secure your data.

AES is used by the US government and other government agencies around the world for protecting top secret data. With proper implementation and a strong encryption key (your master password), AES is considered unbreakable.

PBKDF2 is used to derive the encryption key from your master password. This key is then salted and hashed.

Bitwarden does not write any crypto code. Bitwarden only invokes crypto from popular and reputable crypto libraries that are written and maintained by cryptography experts. The following crypto libraries are used:

Javascript (web and browser extension vaults)
    Forge
    Web Crypto
C# (mobile vault)
    CommonCrypto (iOS, Apple)
    Javax.Crypto (Android, Oracle)
    BouncyCastle (Android)

Bitwarden always encrypts and/or hashes your data on your local device before it is ever sent to the cloud servers for syncing. The Bitwarden servers are only used for storing encrypted data. It is not possible to get your unencrypted data from the Bitwarden cloud servers.

Wie erwähnt läuft eine eigene Instanz über Docker auf einem Server. Die Installation ist schnell erledigt. Alles was ihr benötigt ist ein Server mit Docker:

curl -s -o bitwarden.sh \
    https://raw.githubusercontent.com/bitwarden/core/master/scripts/bitwarden.sh \
    && sudo chmod u+x bitwarden.sh
./bitwarden.sh install
./bitwarden.sh start
./bitwarden.sh updatedb

Und es läuft. Anschließend könnt solltet ihr euch noch um die weitere, schnelle Konfiguration kümmern um beispielsweise den E-Mail-Empfang zu gewährleisten. Die WebApp wird automatisch mittels Let's Encrypt gesichert und lässt sich zusätzlich auch mittels 2FA schützen.

Einen Premium-Plan gibt es auch, ist aber nicht zwingend erforderlich. Dieser kostet im Jahr 10 USD und erweitert nach Kauf auch die selbst gehostete Lösung. Ich sehe die Premium-Lizenz allerdings eher als Unterstützung für die Entwickler um beispielsweise bei der Finanzierung eines Security Audits mitzuhelfen.

Bitwarden - Schicker Passwortmanager auch zum selbst hosten

Passwortmanager sind denke ich aus dem Alltag der meisten von uns nicht mehr wegzudenken. Bei immer komplexer werdenden Passwörtern, die man am besten für jeden Login auch noch varriert helfen sie Ordnung in das Chaos zu bringen.

Bisher fiel meine Wahl immer auf 1Password. Schicke Apps, gelungene Integration. Doch das kommende Upgrade auf Version 7 werde ich zum einen aus Preisgründen nicht mehr mitmachen und zum anderen stört mich seit längerer Zeit der Weg in Richtung eigener 1Password-Cloud.
Es soll jeder machen, wie er möchte. Ich nutze auch Dienste wie Dropbox und Nextcloud und habe Dinge in der Cloud liegen. Bei Passwörtern oder ähnlichen sensiblen Dokumenten überwiegt bei mir aber einfach die Vorsicht. Ich möchte wissen, wo meine Daten liegen.

Und natürlich müssen Entwickler von etwas leben und ich bezahle gerne für gute Software. Aber der Preis muss für mich immer noch in Relation zum Nutzen stehen. Allgemein sei erwähnt, dass ich gegenüber Abo-Modellen auch nicht abgeneigt bin und teilweise andere Apps nutzte, die auf ein Abo-Modell gesetzt haben - so lange für mich persönlich der Nutzen überwiegt.

Neben Anbietern wie LastPass darf man gerade im OpenSource-Bereich natürlich KeePass nicht vergessen. Kann man natürlich machen. Ich persönlich finde die App einfach sperrig und nicht schön - auch wenn es Alternativen wie KeeWeb gibt. Gute Apps haben für mich auch etwas mit guter Usability zu tun.

Bitwarden - Schicker Passwortmanager auch zum selbst hosten

Für mich persönlich habe ich nun eine Alternative in Bitwarden gefunden. Lokalisierte Apps für jedes System (Die WebApp ist zur Zeit noch auf Englisch), sympathische Entwickler, die offen für Feature-Requests sind, ein Quellcode unter OpenSource und vor allem, ich kann eine Instanz mittels Docker selbst hosten. Ich weiß somit, wo meine Daten sind und bin für die (Server)-Sicherheit selber verantwortlich. Muss man natürlich auch wollen.

Wo wir gerade beim Thema Sicherheit sind, die wird bei Bitwarden so umgesetzt:

Bitwarden uses AES 256 bit encryption as well as PBKDF2 to secure your data.

AES is used by the US government and other government agencies around the world for protecting top secret data. With proper implementation and a strong encryption key (your master password), AES is considered unbreakable.

PBKDF2 is used to derive the encryption key from your master password. This key is then salted and hashed.

Bitwarden does not write any crypto code. Bitwarden only invokes crypto from popular and reputable crypto libraries that are written and maintained by cryptography experts. The following crypto libraries are used:

Javascript (web and browser extension vaults)
    Forge
    Web Crypto
C# (mobile vault)
    CommonCrypto (iOS, Apple)
    Javax.Crypto (Android, Oracle)
    BouncyCastle (Android)

Bitwarden always encrypts and/or hashes your data on your local device before it is ever sent to the cloud servers for syncing. The Bitwarden servers are only used for storing encrypted data. It is not possible to get your unencrypted data from the Bitwarden cloud servers.

Wie erwähnt läuft eine eigene Instanz über Docker auf einem Server. Die Installation ist schnell erledigt. Alles was ihr benötigt ist ein Server mit Docker:

curl -s -o bitwarden.sh \
    https://raw.githubusercontent.com/bitwarden/core/master/scripts/bitwarden.sh \
    && sudo chmod u+x bitwarden.sh
./bitwarden.sh install
./bitwarden.sh start
./bitwarden.sh updatedb

Und es läuft. Anschließend könnt solltet ihr euch noch um die weitere, schnelle Konfiguration kümmern um beispielsweise den E-Mail-Empfang zu gewährleisten. Die WebApp wird automatisch mittels Let's Encrypt gesichert und lässt sich zusätzlich auch mittels 2FA schützen.

Einen Premium-Plan gibt es auch, ist aber nicht zwingend erforderlich. Dieser kostet im Jahr 10 USD und erweitert nach Kauf auch die selbst gehostete Lösung. Ich sehe die Premium-Lizenz allerdings eher als Unterstützung für die Entwickler um beispielsweise bei der Finanzierung eines Security Audits mitzuhelfen.

Passwortmanager sind denke ich aus dem Alltag der meisten von uns nicht mehr wegzudenken. Bei immer komplexer werdenden Passwörtern, die man am besten für jeden Login auch noch varriert helfen sie Ordnung in das Chaos zu bringen.

Bisher fiel meine Wahl immer auf 1Password. Schicke Apps, gelungene Integration. Doch das kommende Upgrade auf Version 7 werde ich zum einen aus Preisgründen nicht mehr mitmachen und zum anderen stört mich seit längerer Zeit der Weg in Richtung eigener 1Password-Cloud.
Es soll jeder machen, wie er möchte. Ich nutze auch Dienste wie Dropbox und Nextcloud und habe Dinge in der Cloud liegen. Bei Passwörtern oder ähnlichen sensiblen Dokumenten überwiegt bei mir aber einfach die Vorsicht. Ich möchte wissen, wo meine Daten liegen.

Und natürlich müssen Entwickler von etwas leben und ich bezahle gerne für gute Software. Aber der Preis muss für mich immer noch in Relation zum Nutzen stehen. Allgemein sei erwähnt, dass ich gegenüber Abo-Modellen auch nicht abgeneigt bin und teilweise andere Apps nutzte, die auf ein Abo-Modell gesetzt haben – so lange für mich persönlich der Nutzen überwiegt.

Neben Anbietern wie LastPass darf man gerade im OpenSource-Bereich natürlich KeePass nicht vergessen. Kann man natürlich machen. Ich persönlich finde die App einfach sperrig und nicht schön – auch wenn es Alternativen wie KeeWeb gibt. Gute Apps haben für mich auch etwas mit guter Usability zu tun.

alt

Für mich persönlich habe ich nun eine Alternative in Bitwarden gefunden. Lokalisierte Apps für jedes System (Die WebApp ist zur Zeit noch auf Englisch), sympathische Entwickler, die offen für Feature-Requests sind, ein Quellcode unter OpenSource und vor allem, ich kann eine Instanz mittels Docker selbst hosten. Ich weiß somit, wo meine Daten sind und bin für die (Server)-Sicherheit selber verantwortlich. Muss man natürlich auch wollen.

Wo wir gerade beim Thema Sicherheit sind, die wird bei Bitwarden so umgesetzt:

Bitwarden uses AES 256 bit encryption as well as PBKDF2 to secure your data.

AES is used by the US government and other government agencies around the world for protecting top secret data. With proper implementation and a strong encryption key (your master password), AES is considered unbreakable.

PBKDF2 is used to derive the encryption key from your master password. This key is then salted and hashed.

Bitwarden does not write any crypto code. Bitwarden only invokes crypto from popular and reputable crypto libraries that are written and maintained by cryptography experts. The following crypto libraries are used:

Javascript (web and browser extension vaults)    Forge    Web CryptoC# (mobile vault)    CommonCrypto (iOS, Apple)    Javax.Crypto (Android, Oracle)    BouncyCastle (Android)

Bitwarden always encrypts and/or hashes your data on your local device before it is ever sent to the cloud servers for syncing. The Bitwarden servers are only used for storing encrypted data. It is not possible to get your unencrypted data from the Bitwarden cloud servers.

Wie erwähnt läuft eine eigene Instanz über Docker auf einem Server. Die Installation ist schnell erledigt. Alles was ihr benötigt ist ein Server mit Docker:

curl -s -o bitwarden.sh \    https://raw.githubusercontent.com/bitwarden/core/master/scripts/bitwarden.sh \    && sudo chmod u+x bitwarden.sh./bitwarden.sh install./bitwarden.sh start./bitwarden.sh updatedb

Und es läuft. Anschließend könnt solltet ihr euch noch um die weitere, schnelle Konfiguration kümmern um beispielsweise den E-Mail-Empfang zu gewährleisten. Die WebApp wird automatisch mittels Let’s Encrypt gesichert und lässt sich zusätzlich auch mittels 2FA schützen.

Einen Premium-Plan gibt es auch, ist aber nicht zwingend erforderlich. Dieser kostet im Jahr 10 USD und erweitert nach Kauf auch die selbst gehostete Lösung. Ich sehe die Premium-Lizenz allerdings eher als Unterstützung für die Entwickler um beispielsweise bei der Finanzierung eines Security Audits mitzuhelfen.

Passwortmanager sind denke ich aus dem Alltag der meisten von uns nicht mehr wegzudenken. Bei immer komplexer werdenden Passwörtern, die man am besten für jeden Login auch noch varriert helfen sie Ordnung in das Chaos zu bringen.

Bisher fiel meine Wahl immer auf 1Password. Schicke Apps, gelungene Integration. Doch das kommende Upgrade auf Version 7 werde ich zum einen aus Preisgründen nicht mehr mitmachen und zum anderen stört mich seit längerer Zeit der Weg in Richtung eigener 1Password-Cloud.
Es soll jeder machen, wie er möchte. Ich nutze auch Dienste wie Dropbox und Nextcloud und habe Dinge in der Cloud liegen. Bei Passwörtern oder ähnlichen sensiblen Dokumenten überwiegt bei mir aber einfach die Vorsicht. Ich möchte wissen, wo meine Daten liegen.

Und natürlich müssen Entwickler von etwas leben und ich bezahle gerne für gute Software. Aber der Preis muss für mich immer noch in Relation zum Nutzen stehen. Allgemein sei erwähnt, dass ich gegenüber Abo-Modellen auch nicht abgeneigt bin und teilweise andere Apps nutzte, die auf ein Abo-Modell gesetzt haben – so lange für mich persönlich der Nutzen überwiegt.

Neben Anbietern wie LastPass darf man gerade im OpenSource-Bereich natürlich KeePass nicht vergessen. Kann man natürlich machen. Ich persönlich finde die App einfach sperrig und nicht schön – auch wenn es Alternativen wie KeeWeb gibt. Gute Apps haben für mich auch etwas mit guter Usability zu tun.

alt

Für mich persönlich habe ich nun eine Alternative in Bitwarden gefunden. Lokalisierte Apps für jedes System (Die WebApp ist zur Zeit noch auf Englisch), sympathische Entwickler, die offen für Feature-Requests sind, ein Quellcode unter OpenSource und vor allem, ich kann eine Instanz mittels Docker selbst hosten. Ich weiß somit, wo meine Daten sind und bin für die (Server)-Sicherheit selber verantwortlich. Muss man natürlich auch wollen.

Wo wir gerade beim Thema Sicherheit sind, die wird bei Bitwarden so umgesetzt:

Bitwarden uses AES 256 bit encryption as well as PBKDF2 to secure your data.

AES is used by the US government and other government agencies around the world for protecting top secret data. With proper implementation and a strong encryption key (your master password), AES is considered unbreakable.

PBKDF2 is used to derive the encryption key from your master password. This key is then salted and hashed.

Bitwarden does not write any crypto code. Bitwarden only invokes crypto from popular and reputable crypto libraries that are written and maintained by cryptography experts. The following crypto libraries are used:

Javascript (web and browser extension vaults)    Forge    Web CryptoC# (mobile vault)    CommonCrypto (iOS, Apple)    Javax.Crypto (Android, Oracle)    BouncyCastle (Android)

Bitwarden always encrypts and/or hashes your data on your local device before it is ever sent to the cloud servers for syncing. The Bitwarden servers are only used for storing encrypted data. It is not possible to get your unencrypted data from the Bitwarden cloud servers.

Wie erwähnt läuft eine eigene Instanz über Docker auf einem Server. Die Installation ist schnell erledigt. Alles was ihr benötigt ist ein Server mit Docker:

curl -s -o bitwarden.sh \    https://raw.githubusercontent.com/bitwarden/core/master/scripts/bitwarden.sh \    && sudo chmod u+x bitwarden.sh./bitwarden.sh install./bitwarden.sh start./bitwarden.sh updatedb

Und es läuft. Anschließend könnt solltet ihr euch noch um die weitere, schnelle Konfiguration kümmern um beispielsweise den E-Mail-Empfang zu gewährleisten. Die WebApp wird automatisch mittels Let’s Encrypt gesichert und lässt sich zusätzlich auch mittels 2FA schützen.

Einen Premium-Plan gibt es auch, ist aber nicht zwingend erforderlich. Dieser kostet im Jahr 10 USD und erweitert nach Kauf auch die selbst gehostete Lösung. Ich sehe die Premium-Lizenz allerdings eher als Unterstützung für die Entwickler um beispielsweise bei der Finanzierung eines Security Audits mitzuhelfen.

Unsere Kerninfrastruktur an der Schule ist mit USVs /UPS abgesichert. Wir haben leider immer wieder Stromausfälle (meist kurze) und mit Hilfe der USVs können wir diese zumindest etwas überbrücken. An unserer USV / UPS hängt ein Raspberry Pi, der als NUT Server eingerichtet ist. Wenn der Strom ausfällt und die USV / UPS auf Batteriebetrieb umschaltet, sendet der Raspberry Pi ab einem bestimmten Ladestand einen Befehl an alle verbunden Server. Diese fahren sich dann automatisch herunter. Alle unsere Virtuellen Maschinen, Backup-Systeme und Server werden damit heruntergefahren. Ein wesentlicher Server hat aber bisher noch gefehlt: der Virtualisierungshost. Deshalb möchte ich heute kurz beschreiben, wie man einen XenServer automatisch herunterfahren lassen kann, indem man ihn als NUT-Client einrichtet.

NUT-Client installieren

XenServer basiert auf CentOS, aber die Installation von Fremdpaketen ist nicht erlaubt. Man sollte sich auch bewusst sein, dass man evtl. keinen Support mehr erhält (falls man einen Supportvertrag hat), wenn man zusätzliche Pakete installiert.

Um den NUT-Client installieren zu können, mussten wir bei unserem XenServer 7 noch folgende Anpassung in der Datei /etc/yum.repos.d/CentOS-Base.repo vornehmen. Im Abschnitt [extras] haben wir in der Zeile baseurl $releaseserver mit einer 7 ersetzt.

$ nano /ect/yum.repos.d/CentOS-Base.repo
...
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&rep$
baseurl=http://mirror.centos.org/centos/7/extras/$basearch/
...

Danach können wir das Epel-Repo einrichten und den NUT-Client installieren:

$ yum clean all
$ yum --enablerepo=extras -y install epel-release

Nun schauen wir, welches Paket unseren NUT-Client zur Verfügung stellt und installieren es:

$ yum provides /usr/sbin/upsmon
Geladene Plugins: fastestmirror
Loading mirror speeds from cached hostfile
* epel: mirrors.bangmodhosting.com
nut-2.7.2-3.el7.x86_64 : Network UPS Tools
Quelle : epel
Übereinstimmung von:
Dateiname : /usr/sbin/upsmon

$ yum install nut-client-2.7.2-3.el7.x86_64

NUT einrichten

Nachdem der NUT-Client nun installiert ist, müssen wir ihn noch konfigurieren, damit unserer XenServer auch herunterfährt, falls der Strom ausfällt. Zuerst müssen wir noch eine Datei erstellen, um NUT mitzuteilen, dass unser XenServer ein Client ist:

$ nano /etc/ups/nut.conf
MODE=netclient

In der Datei /etc/ups/upsmon.conf findet die Hauptkonfiguration statt. Dort ändern wir zwei Zeilen:

$ nano /etc/ups/upsmon.conf
...
MONITOR ups@192.168.1.2 1 upsremote password slave
...
SHUTDOWNCMD "/etc/ups/xen-shutdown.sh"
...

Je nach Konfiguration des NUT-Masters muss hier noch der UPS-Name, die IP, sowie Benutzername und Passwort angepasst werden.

Bevor unser XenServer herunterfährt, soll er vorher noch alle Virtuellen Maschinen ausschalten. Dazu habe ich folgendes Skript gefunden, welches wir nun herunterladen und ausführbar machen.

$ cd /etc/ups/
$ wget https://raw.githubusercontent.com/serrc-techops/NUT-Configuration/master/slave/xen/xen-shutdown.sh
$ chmod +x xen-shutdown.sh

Damit der NUT-Client auch automatisch startet, müssen wir noch einen Systemd-Service einrichten. Dazu erstellen wir die Datei /etc/systemd/system/nut-monitor.service und fügen folgenden Inhalt ein:

$ nano /etc/systemd/system/nut-monitor.service

[Unit]
Description=Network UPS Tools - power device monitor and shutdown controller
After=local-fs.target network.target

[Service]
ExecStart=/usr/sbin/upsmon
PIDFile=/run/nut/upsmon.pid
Type=forking

[Install]
WantedBy=multi-user.target

Nun aktivieren wir diesen Service und starten ihn:

$ systemctl enable nut-monitor.service
$ systemctl daemon-reload
$ systemctl start nut-monitor

Mit systemctl status nut-monitor können wir uns anzeigen lassen, ob alles läuft:

nut-monitor.service - Network UPS Tools - power device monitor and shutdown controller
Loaded: loaded (/etc/systemd/system/nut-monitor.service; enabled; vendor preset: disabled)
Active: active (running) since Mi 2018-04-18 17:13:42 ICT; 1 day 12h ago
Process: 997 ExecStart=/usr/sbin/upsmon (code=exited, status=0/SUCCESS)
Main PID: 1001 (upsmon)
CGroup: /system.slice/nut-monitor.service
├─1000 /usr/sbin/upsmon
└─1001 /usr/sbin/upsmon

Automatisches Herunterfahren testen

Zuerst können wir das Skript zum Herunterfahren des XenServers testen und schauen, ob auch alle gestarteten VMs heruntergefahren werden. Dazu führen wir das Skript einfach aus:

$ sh /etc/ups/xen-shutdown.sh

Um einen Stromausfall zu simulieren und können wir auf dem NUT Master folgenden Befehl absetzen:

$ sudo upsmon -c fsd

Danach muss man allerdings alle Geräte wieder von Hand einschalten oder per Wake-on-Lan wecken.

Fazit

NUT ist ein tolles Projekt und es erlaubt uns sehr flexible Einsatzszenarien. Zur Zeit haben wir nur eine große UPS am NUT Master angeschlossen, aber es ist auch durchaus denkbar, mehrere UPS an den NUT Master anzuschließen. In Kombination mit Check_MK können wir somit den Status der USV / UPS ständig überwachen und bekommen ganz nebenbei auch eine Statistik, wie oft der Strom bei uns ausgefallen ist.

Kommentar hinzufügen

Der Beitrag XenServer automatisch herunterfahren mit NUT erschien zuerst auf .:zefanjas:..

20. April 2018

Mozilla hat den Entwickler-Werkzeugen von Firefox 61 eine praktische Neuerung spendiert: die Reihenfolge der Werkzeuge kann in Zukunft beliebig vom Nutzer geändert werden.

Was die Reihenfolge der Entwickler-Werkzeuge betrifft, so hat jeder Entwickler seine eigenen Vorlieben. Werkzeuge, die man häufiger benötigt, will man dabei wahrscheinlich mit so kurzen Wegen wie nur möglich erreichen. Mit Firefox 61 wird Mozilla diesem Anspruch gerecht. Dann nämlich ist es möglich, die Reihenfolge der Entwickler-Werkzeuge beliebig per Drag and Drop zu ändern.

Übrigens: Firefox besitzt noch einige Entwickler-Werkzeuge mehr als nur diejenigen, welche standardmäßig sichtbar sind. Wer bei geöffneten Entwickler-Werkzeugen die Taste F1 drückt (oder auch über das Menü-Symbol auf der rechten Seite), gelangt in die Einstellungen der Entwickler-Werkzeuge, wo weitere Werkzeuge aktiviert oder auch standardmäßig angezeigte Werkzeuge deaktiviert werden können.

Firefox 61: Entwickler-Werkzeuge

Der Beitrag Firefox 61: Reihenfolge der Entwickler-Werkzeuge kann geändert werden erschien zuerst auf soeren-hentzschel.at.

19. April 2018

Der folgende Artikel, ist in Zusammenarbeit mit GeNTooFReak entstanden.

Im folgenden Artikel möchte ich noch mal auf die Verschlüsselung von Festplatten eingehen, hier besonders auf Themen für Fortgeschriettene, wie z.B. verschiedene Ciphersuiten, verschiedene Passphrases und Backup von Luks Header Daten.

Ciphersuiten

Im Anfängerartikel haben with den Cipher aes-xts-plain64 verwendet, was AES-256Bit ist, in Verwendung mit

Jedoch kennt cryptseup noch einige andere Ciphersuiten, die man durch den Befehl

cryptsetup benchmark

sich anzeigen lassen kann, und gleichzeitig ablesen kann, welcher Algorithmus am schnellsten auf dem jeweiligen PC ist. Auf Grundlage der unterschiedelichen CPU’s die es aktuell auf dem Markt gibt, die unterschiedliche Standards unterstützen, fallen die Ergebnisse bei jedem PC anders aus. Bei mir bekomme ich folgendes Ergebnis:

root@DebLin:/home/malte# cryptsetup benchmark
# Die Tests sind nur annähernd genau, da sie nicht auf den Datenträger zugreifen.
PBKDF2-sha1      1236528 iterations per second for 256-bit key
PBKDF2-sha256    1409376 iterations per second for 256-bit key
PBKDF2-sha512    1114320 iterations per second for 256-bit key
PBKDF2-ripemd160  919803 iterations per second for 256-bit key
PBKDF2-whirlpool  619725 iterations per second for 256-bit key
argon2i       4 iterations, 1003288 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 992248 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm | Key |  Encryption |  Decryption
        aes-cbc   128b   914,7 MiB/s  2718,1 MiB/s
    serpent-cbc   128b    75,6 MiB/s   570,1 MiB/s
    twofish-cbc   128b   168,0 MiB/s   289,0 MiB/s
        aes-cbc   256b   699,2 MiB/s  2243,0 MiB/s
    serpent-cbc   256b    78,6 MiB/s   572,5 MiB/s
    twofish-cbc   256b   168,9 MiB/s   296,2 MiB/s
        aes-xts   256b  1536,2 MiB/s  1520,9 MiB/s
    serpent-xts   256b   534,2 MiB/s   552,9 MiB/s
    twofish-xts   256b   299,5 MiB/s   303,1 MiB/s
        aes-xts   512b  1369,9 MiB/s  1378,5 MiB/s
    serpent-xts   512b   557,8 MiB/s   546,9 MiB/s
    twofish-xts   512b   297,1 MiB/s   303,8 MiB/s

Wie man erkennt, ist bei mir im 512Bits Bereich aes-xts das schnellste Ergebnis. Bei GeNtooFReaK ist es zum Beispiel serpent-xts. Hier muss man für sich persönlich die Schnittmenge zwischen Schnelligkeit, Sicherheit und Wunschalgorithmus treffen.

Passphrases

cryptsetup unterstützt mehrere Passwörter für ein Volumen/Container.

KeySlots

cryptsetup verwaltet die Passwörter in KeySlots, bedeutet beim Aufrufen des folgenden Befehls:

cryptsetup luksDump /dev/sdb1

Sollte bei einem Passwort, nur ein Key Slot belegt sein:

Key Slot 0: ENABLED
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Passwort ändern

Natürlich kann man auch das aktuelle Passwort ändern. Um das aktuelle Passwort zu ändern, gibt man einfach folgenden Befehlt ein:

cryptsetup luksChangeKey /dev/sdb1

/dev/sdb1 ist natürlich der entsprechende Container. Durch das angeben des Slots –key-slot 2, kann man gezielt das Passwort eines Slots ändern.

Passwort hinzufügen

Um ein weiteres Passwort zum öffnen des Containers/Volumens hinzuzufügen, benötigen wir folgenden Befehl:

cryptsetup luksAddKey /dev/sdb1

/dev/sdb1 ist natürlich der entsprechende Container. Durch das angeben des Slots –key-slot 2, kann man gezielt das Passwort zu einem bestimmten Slot hinzufügen.

Passwort löschen

Um ein Passwort zu löschen, müssen wir einen entsprechnenden KeySlot angeben:

cryptsetup luksKillSlot /dev/sdb1 2

/dev/sdb1/ ist natürlich der entsprechende Container.

Backup Header

Luks bietet die Möglichkeit, die Header Informationen vom Container/Volume zu sichern. So können selbst bei beschädigeten Header Informationen (Jemand steckt unbedacht die Festplatte an einen Windows Pc und klickt auf reparieren) wiederhergestellt werden.

Backup

Um ein Backup durchzuführen benötigen wir folgenden Befehl:

cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /home/malte/sdb1-header.backup

Restore

Um die Informationen wiederherzustellen, benötigen wir folgenden Befehl:

cryptsetup luksHeaderRestore /dev/sdb1 --header-backup-file /home/malte/sdb1-header.backup

Ich hoffe die folgenden Informationen helfen euch, noch ein bisschen besser Luks und die Verschlüsselung von Festplatten zu verstehen.

Der folgende Artikel, ist in Zusammenarbeit mit GeNTooFReak entstanden.

Im folgenden Artikel möchte ich noch mal auf die Verschlüsselung von Festplatten eingehen, hier besonders auf Themen für Fortgeschriettene, wie z.B. verschiedene Ciphersuiten, verschiedene Passphrases und Backup von Luks Header Daten.

Ciphersuiten

Im Anfängerartikel haben with den Cipher aes-xts-plain64 verwendet, was AES-256Bit ist, in Verwendung mit

Jedoch kennt cryptseup noch einige andere Ciphersuiten, die man durch den Befehl

cryptsetup benchmark

sich anzeigen lassen kann, und gleichzeitig ablesen kann, welcher Algorithmus am schnellsten auf dem jeweiligen PC ist. Auf Grundlage der unterschiedelichen CPU's die es aktuell auf dem Markt gibt, die unterschiedliche Standards unterstützen, fallen die Ergebnisse bei jedem PC anders aus. Bei mir bekomme ich folgendes Ergebnis:

root@DebLin:/home/malte# cryptsetup benchmark
# Die Tests sind nur annähernd genau, da sie nicht auf den Datenträger zugreifen.
PBKDF2-sha1      1236528 iterations per second for 256-bit key
PBKDF2-sha256    1409376 iterations per second for 256-bit key
PBKDF2-sha512    1114320 iterations per second for 256-bit key
PBKDF2-ripemd160  919803 iterations per second for 256-bit key
PBKDF2-whirlpool  619725 iterations per second for 256-bit key
argon2i       4 iterations, 1003288 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 992248 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm | Key |  Encryption |  Decryption
        aes-cbc   128b   914,7 MiB/s  2718,1 MiB/s
    serpent-cbc   128b    75,6 MiB/s   570,1 MiB/s
    twofish-cbc   128b   168,0 MiB/s   289,0 MiB/s
        aes-cbc   256b   699,2 MiB/s  2243,0 MiB/s
    serpent-cbc   256b    78,6 MiB/s   572,5 MiB/s
    twofish-cbc   256b   168,9 MiB/s   296,2 MiB/s
        aes-xts   256b  1536,2 MiB/s  1520,9 MiB/s
    serpent-xts   256b   534,2 MiB/s   552,9 MiB/s
    twofish-xts   256b   299,5 MiB/s   303,1 MiB/s
        aes-xts   512b  1369,9 MiB/s  1378,5 MiB/s
    serpent-xts   512b   557,8 MiB/s   546,9 MiB/s
    twofish-xts   512b   297,1 MiB/s   303,8 MiB/s

Wie man erkennt, ist bei mir im 512Bits Bereich aes-xts das schnellste Ergebnis. Bei GeNtooFReaK ist es zum Beispiel serpent-xts. Hier muss man für sich persönlich die Schnittmenge zwischen Schnelligkeit, Sicherheit und Wunschalgorithmus treffen.

Passphrases

cryptsetup unterstützt mehrere Passwörter für ein Volumen/Container.

KeySlots

cryptsetup verwaltet die Passwörter in KeySlots, bedeutet beim Aufrufen des folgenden Befehls:

cryptsetup luksDump /dev/sdb1

Sollte bei einem Passwort, nur ein Key Slot belegt sein:

Key Slot 0: ENABLED
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Passwort ändern

Natürlich kann man auch das aktuelle Passwort ändern. Um das aktuelle Passwort zu ändern, gibt man einfach folgenden Befehlt ein:

cryptsetup luksChangeKey /dev/sdb1

/dev/sdb1 ist natürlich der entsprechende Container. Durch das angeben des Slots --key-slot 2, kann man gezielt das Passwort eines Slots ändern.

Passwort hinzufügen

Um ein weiteres Passwort zum öffnen des Containers/Volumens hinzuzufügen, benötigen wir folgenden Befehl:

cryptsetup luksAddKey /dev/sdb1

/dev/sdb1 ist natürlich der entsprechende Container. Durch das angeben des Slots --key-slot 2, kann man gezielt das Passwort zu einem bestimmten Slot hinzufügen.

Passwort löschen

Um ein Passwort zu löschen, müssen wir einen entsprechnenden KeySlot angeben:

cryptsetup luksKillSlot /dev/sdb1 2

/dev/sdb1/ ist natürlich der entsprechende Container.

Backup Header

Luks bietet die Möglichkeit, die Header Informationen vom Container/Volume zu sichern. So können selbst bei beschädigeten Header Informationen (Jemand steckt unbedacht die Festplatte an einen Windows Pc und klickt auf reparieren) wiederhergestellt werden.

Backup

Um ein Backup durchzuführen benötigen wir folgenden Befehl:

cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /home/malte/sdb1-header.backup

Restore

Um die Informationen wiederherzustellen, benötigen wir folgenden Befehl:

cryptsetup luksHeaderRestore /dev/sdb1 --header-backup-file /home/malte/sdb1-header.backup

---

Ich hoffe die folgenden Informationen helfen euch, noch ein bisschen besser Luks und die Verschlüsselung von Festplatten zu verstehen.

Der folgende Artikel, ist in Zusammenarbeit mit GeNTooFReak entstanden.

Im folgenden Artikel möchte ich noch mal auf die Verschlüsselung von Festplatten eingehen, hier besonders auf Themen für Fortgeschriettene, wie z.B. verschiedene Ciphersuiten, verschiedene Passphrases und Backup von Luks Header Daten.

Ciphersuiten

Im Anfängerartikel haben with den Cipher aes-xts-plain64 verwendet, was AES-256Bit ist, in Verwendung mit

Jedoch kennt cryptseup noch einige andere Ciphersuiten, die man durch den Befehl

cryptsetup benchmark

sich anzeigen lassen kann, und gleichzeitig ablesen kann, welcher Algorithmus am schnellsten auf dem jeweiligen PC ist. Auf Grundlage der unterschiedelichen CPU's die es aktuell auf dem Markt gibt, die unterschiedliche Standards unterstützen, fallen die Ergebnisse bei jedem PC anders aus. Bei mir bekomme ich folgendes Ergebnis:

root@DebLin:/home/malte# cryptsetup benchmark
# Die Tests sind nur annähernd genau, da sie nicht auf den Datenträger zugreifen.
PBKDF2-sha1      1236528 iterations per second for 256-bit key
PBKDF2-sha256    1409376 iterations per second for 256-bit key
PBKDF2-sha512    1114320 iterations per second for 256-bit key
PBKDF2-ripemd160  919803 iterations per second for 256-bit key
PBKDF2-whirlpool  619725 iterations per second for 256-bit key
argon2i       4 iterations, 1003288 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 992248 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm | Key |  Encryption |  Decryption
        aes-cbc   128b   914,7 MiB/s  2718,1 MiB/s
    serpent-cbc   128b    75,6 MiB/s   570,1 MiB/s
    twofish-cbc   128b   168,0 MiB/s   289,0 MiB/s
        aes-cbc   256b   699,2 MiB/s  2243,0 MiB/s
    serpent-cbc   256b    78,6 MiB/s   572,5 MiB/s
    twofish-cbc   256b   168,9 MiB/s   296,2 MiB/s
        aes-xts   256b  1536,2 MiB/s  1520,9 MiB/s
    serpent-xts   256b   534,2 MiB/s   552,9 MiB/s
    twofish-xts   256b   299,5 MiB/s   303,1 MiB/s
        aes-xts   512b  1369,9 MiB/s  1378,5 MiB/s
    serpent-xts   512b   557,8 MiB/s   546,9 MiB/s
    twofish-xts   512b   297,1 MiB/s   303,8 MiB/s

Wie man erkennt, ist bei mir im 512Bits Bereich aes-xts das schnellste Ergebnis. Bei GeNtooFReaK ist es zum Beispiel serpent-xts. Hier muss man für sich persönlich die Schnittmenge zwischen Schnelligkeit, Sicherheit und Wunschalgorithmus treffen.

Passphrases

cryptsetup unterstützt mehrere Passwörter für ein Volumen/Container.

KeySlots

cryptsetup verwaltet die Passwörter in KeySlots, bedeutet beim Aufrufen des folgenden Befehls:

cryptsetup luksDump /dev/sdb1

Sollte bei einem Passwort, nur ein Key Slot belegt sein:

Key Slot 0: ENABLED
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Passwort ändern

Natürlich kann man auch das aktuelle Passwort ändern. Um das aktuelle Passwort zu ändern, gibt man einfach folgenden Befehlt ein:

cryptsetup luksChangeKey /dev/sdb1

/dev/sdb1 ist natürlich der entsprechende Container. Durch das angeben des Slots --key-slot 2, kann man gezielt das Passwort eines Slots ändern.

Passwort hinzufügen

Um ein weiteres Passwort zum öffnen des Containers/Volumens hinzuzufügen, benötigen wir folgenden Befehl:

cryptsetup luksAddKey /dev/sdb1

/dev/sdb1 ist natürlich der entsprechende Container. Durch das angeben des Slots --key-slot 2, kann man gezielt das Passwort zu einem bestimmten Slot hinzufügen.

Passwort löschen

Um ein Passwort zu löschen, müssen wir einen entsprechnenden KeySlot angeben:

cryptsetup luksKillSlot /dev/sdb1 2

/dev/sdb1/ ist natürlich der entsprechende Container.

Backup Header

Luks bietet die Möglichkeit, die Header Informationen vom Container/Volume zu sichern. So können selbst bei beschädigeten Header Informationen (Jemand steckt unbedacht die Festplatte an einen Windows Pc und klickt auf reparieren) wiederhergestellt werden.

Backup

Um ein Backup durchzuführen benötigen wir folgenden Befehl:

cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /home/malte/sdb1-header.backup

Restore

Um die Informationen wiederherzustellen, benötigen wir folgenden Befehl:

cryptsetup luksHeaderRestore /dev/sdb1 --header-backup-file /home/malte/sdb1-header.backup

---

Ich hoffe die folgenden Informationen helfen euch, noch ein bisschen besser Luks und die Verschlüsselung von Festplatten zu verstehen.

18. April 2018

Gestern ist meine neue externe Festplatte angekommen, diese sollte natürlich wie meine anderen Festplatten auch verschlüsselt werden. Zusätzlich dazu formatiere ich alle meine Festplatten mit dem btrfs Dateisystem.

Installation

Zu erst installieren wir das benötigte Paket

apt install cryptsetup

Festplatte verschlüsseln

Als nächstes werden wir ein Luks Container erstellen und unsere Festplatte verschlüsseln. Wenn die Festplatte neu ist, entfällt auch das nervige überschreiben mit NULL Daten.

cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random --verify-passphrase luksFormat /dev/sdb

Achtung: Achtet drauf das richtige Laufwerk anzugeben

  • -v => Verbose Mode
  • –cipher => Cipher den wir verwenden wollen, wobei aes-xts-plain64 default ist
  • –kdey-size => Wir verwenden einen 512Bit Schlüssel, damit wir AES-256Bit nutzen können
  • –hash => sha512 als Hash Algoritmus
  • –iter-time 5000 => Milisekunden die das Passwort durch PBKDF2 geschickt wird
  • –use-random => wir wollen sichere Schlüssel generieren (RPI empfiehlt sich stattdessen urandom zu nutzen)

Im folgenden werdet ihr gefragt, ob ihr wirklich die Festplatte löschen wollt, bestätigt die Frage mit YES. Dann könnt ihr euch ein sicheres Passwort ausdenken. Mein Passwort wurde von Keepass erstellt und hat 64 Zeichen.

Formatieren

Nachdem die Festplatte verschlüsselt wurde, muss diese noch formatiert werden. Dazu öffnen wir als erstes den Container:

cryptsetup luksOpen /dev/sdb EncryptedHDD

Im folgenden ist der Mapping-Name der Festplatte EncryptedHDD. Jetzt formatieren wir die Festplatte

mkfs.btrfs /dev/mapper/EncryptedHDD -L Festplatte
  • -L => Label (Name der Festplatte in Nautilus,Thunar usw.)

Jetzt schließen wir den Container wieder

cryptsetup luksClose EncryptedHDD

Nutzung

Zieht die Festplatte ab vom Rechner, und schließt sie wieder an, jetzt fragt euch Nautilus bzw. Thunar (erst beim drauf klicken) nach eurem Passwort. Fertig.

Gestern ist meine neue externe Festplatte angekommen, diese sollte natürlich wie meine anderen Festplatten auch verschlüsselt werden. Zusätzlich dazu formatiere ich alle meine Festplatten mit dem btrfs Dateisystem.

Installation

Zuerst installieren wir das benötigte Paket

apt install cryptsetup

Festplatte verschlüsseln

Als nächstes werden wir ein Luks Container erstellen und unsere Festplatte verschlüsseln. Wenn die Festplatte neu ist, entfällt auch das nervige Überschreiben mit NULL Daten.

cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random --verify-passphrase luksFormat /dev/sdb

Achtung: Achtet drauf, das richtige Laufwerk anzugeben

  • -v => Verbose Mode
  • –cipher => Cipher den wir verwenden wollen, wobei aes-xts-plain64 default ist
  • –key-size => Wir verwenden einen 512Bit Schlüssel, damit wir AES-256Bit nutzen können
  • –hash => sha512 als Hash Algoritmus
  • –iter-time 5000 => Milisekunden die das Passwort durch PBKDF2 geschickt wird
  • –use-random => wir wollen sichere Schlüssel generieren (RPI empfiehlt sich stattdessen urandom zu nutzen)

Im folgenden werdet ihr gefragt, ob ihr wirklich die Festplatte löschen wollt, bestätigt die Frage mit YES. Dann könnt ihr euch ein sicheres Passwort ausdenken. Mein Passwort wurde von Keepass erstellt und hat 64 Zeichen.

Formatieren

Nachdem die Festplatte verschlüsselt wurde, muss diese noch formatiert werden. Dazu öffnen wir als erstes den Container:

cryptsetup luksOpen /dev/sdb EncryptedHDD

Im folgenden ist der Mapping-Name der Festplatte EncryptedHDD. Jetzt formatieren wir die Festplatte.

mkfs.btrfs /dev/mapper/EncryptedHDD -L Festplatte
  • -L => Label (Name der Festplatte in Nautilus,Thunar usw.)

Jetzt schließen wir den Container wieder.

cryptsetup luksClose EncryptedHDD

Nutzung

Zieht die Festplatte ab vom Rechner, und schließt sie wieder an, jetzt fragt euch Nautilus bzw. Thunar (erst beim drauf klicken) nach eurem Passwort. Fertig.

Gestern ist meine neue externe Festplatte angekommen, diese sollte natürlich wie meine anderen Festplatten auch verschlüsselt werden. Zusätzlich dazu formatiere ich alle meine Festplatten mit dem btrfs Dateisystem.

Installation

Zuerst installieren wir das benötigte Paket

apt install cryptsetup

Festplatte verschlüsseln

Als nächstes werden wir ein Luks Container erstellen und unsere Festplatte verschlüsseln. Wenn die Festplatte neu ist, entfällt auch das nervige Überschreiben mit NULL Daten.

cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random --verify-passphrase luksFormat /dev/sdb

Achtung: Achtet drauf, das richtige Laufwerk anzugeben

  • -v => Verbose Mode
  • --cipher => Cipher den wir verwenden wollen, wobei aes-xts-plain64 default ist
  • --key-size => Wir verwenden einen 512Bit Schlüssel, damit wir AES-256Bit nutzen können
  • --hash => sha512 als Hash Algoritmus
  • --iter-time 5000 => Milisekunden die das Passwort durch PBKDF2 geschickt wird
  • --use-random => wir wollen sichere Schlüssel generieren (RPI empfiehlt sich stattdessen urandom zu nutzen)

Im folgenden werdet ihr gefragt, ob ihr wirklich die Festplatte löschen wollt, bestätigt die Frage mit YES. Dann könnt ihr euch ein sicheres Passwort ausdenken. Mein Passwort wurde von Keepass erstellt und hat 64 Zeichen.

Formatieren

Nachdem die Festplatte verschlüsselt wurde, muss diese noch formatiert werden. Dazu öffnen wir als erstes den Container:

cryptsetup luksOpen /dev/sdb EncryptedHDD

Im folgenden ist der Mapping-Name der Festplatte EncryptedHDD. Jetzt formatieren wir die Festplatte.

mkfs.btrfs /dev/mapper/EncryptedHDD -L Festplatte
  • -L => Label (Name der Festplatte in Nautilus,Thunar usw.)

Jetzt schließen wir den Container wieder.

cryptsetup luksClose EncryptedHDD

Nutzung

Zieht die Festplatte ab vom Rechner, und schließt sie wieder an, jetzt fragt euch Nautilus bzw. Thunar (erst beim drauf klicken) nach eurem Passwort. Fertig.

Gestern ist meine neue externe Festplatte angekommen, diese sollte natürlich wie meine anderen Festplatten auch verschlüsselt werden. Zusätzlich dazu formatiere ich alle meine Festplatten mit dem btrfs Dateisystem.

Installation

Zuerst installieren wir das benötigte Paket

apt install cryptsetup

Festplatte verschlüsseln

Als nächstes werden wir ein Luks Container erstellen und unsere Festplatte verschlüsseln. Wenn die Festplatte neu ist, entfällt auch das nervige Überschreiben mit NULL Daten.

cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random --verify-passphrase luksFormat /dev/sdb

Achtung: Achtet drauf, das richtige Laufwerk anzugeben

  • -v => Verbose Mode
  • --cipher => Cipher den wir verwenden wollen, wobei aes-xts-plain64 default ist
  • --key-size => Wir verwenden einen 512Bit Schlüssel, damit wir AES-256Bit nutzen können
  • --hash => sha512 als Hash Algoritmus
  • --iter-time 5000 => Milisekunden die das Passwort durch PBKDF2 geschickt wird
  • --use-random => wir wollen sichere Schlüssel generieren (RPI empfiehlt sich stattdessen urandom zu nutzen)

Im folgenden werdet ihr gefragt, ob ihr wirklich die Festplatte löschen wollt, bestätigt die Frage mit YES. Dann könnt ihr euch ein sicheres Passwort ausdenken. Mein Passwort wurde von Keepass erstellt und hat 64 Zeichen.

Formatieren

Nachdem die Festplatte verschlüsselt wurde, muss diese noch formatiert werden. Dazu öffnen wir als erstes den Container:

cryptsetup luksOpen /dev/sdb EncryptedHDD

Im folgenden ist der Mapping-Name der Festplatte EncryptedHDD. Jetzt formatieren wir die Festplatte.

mkfs.btrfs /dev/mapper/EncryptedHDD -L Festplatte
  • -L => Label (Name der Festplatte in Nautilus,Thunar usw.)

Jetzt schließen wir den Container wieder.

cryptsetup luksClose EncryptedHDD

Nutzung

Zieht die Festplatte ab vom Rechner, und schließt sie wieder an, jetzt fragt euch Nautilus bzw. Thunar (erst beim drauf klicken) nach eurem Passwort. Fertig.

17. April 2018

Foto: © CrazyCloud / Fotolia.com

Diese Bundesverwaltung wird zum Aufbau einer privaten Cloudlösung auf Nextcloud setzen. Eine entsprechende Ausschreibung gewann das Unternehmen Computacenter, das wiederum auf die deutsche Nextcloud GmbH zurückgreift. Betrieben wird das ganze jedoch vom ITZBund selbst.

Entsprechende Newsmeldungen:

Nextcloud wird laut SPIEGEL ONLINE damit wohl eine siebenstellige Summe über die nächsten drei Jahre einnehmen und dafür Support und Dienstleistungen erbringen. Insgesamt soll Nextcloud dann potenziell den 300 000 Beschäftigten in den Einrichtungen des Bundes zur Verfügung stehen.

Es ist schön zu sehen, dass man beim Bund auf eine deutsches Projekt setzt und Open Source fördert. Die eindeutige Absage an eine Public Cloud-Lösung ist begrüßenswert. Alles andere wäre aber auch eine Überraschung gewesen, denn die Bundesbehörden gehen nicht so lax mit der Sicherheit um, wie dies gerne suggeriert wird. Spektakuläre Angriffe auf das Regierungsnetz oder den Bundestag sprechen nicht unbedingt für fehlende Vorkehrungen, sondern auch für die Qualität der Angriffe. So manches Unternehmen hätte da vermutlich auch erhebliche Datenabflüsse hinnehmen müssen.

Zwei kleine Bemerkungen kann ich mir aber dennoch nicht verkneifen. Erstens jammert nun niemand über den Millionenbetrag für eine eigentlich kostenlose Software, nachdem vor ein paar Tagen eine Millionensumme an Microsoft noch hohe Wellen schlug (siehe: Linux in der öffentlichen Verwaltung). Zweitens liegt der verbreitete Einsatz von Microsoft-Produkten auf den Rechnern des Bundes vielleicht doch nicht an Korruption oder Idiotie der Bundesregierung, wie gerne in den Technik und/oder Open Source-Medien suggeriert wird, sondern daran, dass Linux auf dem Desktop nicht konkurrenzfähig ist.

Ich habe mal wieder ein wenig meine Mutt Konfiguration angepasst. Der Grund war, dass ich immer mal wieder Probleme bekommen habe, die unterschiedlichen Accounts richtig verwaltet zu bekommen. Aufgrund dessen, muss die Konfiguration in der muttrc wie folgt angepasst werden:

source "~/.mutt/account.exmaple2"
folder-hook $folder 'source ~/.mutt/example2'
source "~/.mutt/account.example1"
folder-hook $folder 'source ~/.mutt/example1'

macro index <f3> '<sync-mailbox><enter-command>source ~/.mutt/account.example1<enter><change-folder>!<enter>'
macro index <f4> '<sync-mailbox><enter-command>source ~/.mutt/account.example2<enter><change-folder>!<enter>'

Das führt dazu, dass die Accounts wieder richtig aufgerufen werden können.

Bild von TheDigitalWay via pixabay / Lizenz: CC0 Creative Commons

Im Internet erfolgt bereits seit längerem ein Wettrüsten zwischen Anwendern und den großen Werbenetzwerken, die mit immer perfideren Methoden die Anwender auf Schritt und Tritt überwachen. Relativ simple Werbeblocker waren nur ein erster Schritt, heutige Werkzeuge sind zu mächtigen Inhaltsblockern geworden. Hinzu kommt eine immer striktere Kontrolle abgelegter Dateien, wie z. B. Cookies.

Die Anwender werden in dieser Abwehr der großen Datenkraken nicht alleine gelassen. Im Herbst 2017 implementierte Apple in der neuen Version von Safari einen zumindest rudimentären Tracking-Schutz. Bereits diese verhältnismäßig kleine Maßnahme traf die Werbeindustrie hart. Apple steht da nicht alleine, denn auch Mozilla hat mit Firefox Quantum ein interessantes Konzept implementiert, da einer breiteren Öffentlichkeit erstmals mit dem so genannten Facebook Container bekannt gemacht wurde.

Vereinfacht gesagt möchte Mozilla hier die Informationen, die unterschiedliche Webseiten auf dem System hinterlassen (Cookies, s. g. Super-Cookies etc.) voneinander isolieren und damit seitenübergreifendes Tracking unterbinden. Mike Kuketz hat die Funktionsweise in seinem Blog sehr anschaulich dargelegt.

Momentan ist die Funktion nicht standardmäßig aktiviert. Wer sich die manuelle Konfiguration in about:config ersparen möchte kann sich einfach das Addon First Party Isolation von freddyb installieren. Das Addon ist sehr einfach gehalten und ermöglicht lediglich das an- und abschalten der Funktion - allgemein und für einzelne Webseiten.

Firefox erschwert es damit erheblich euer Surfverhalten seitenübergreifend während einer Session zu verfolgen. Trotzdem sollte man natürlich weiterhin Schutzmaßnahmen - die auch bisher schon empfehlenswert waren - anwenden. Dazu gehört das Verweigern der Annahme von Dritt-Anbieter Cookies, sowie das automatische Entfernen von Cookies nach dem beenden einer Browser Session. Beides kann man ohne Addons in den Datenschutz-Einstellungen von Firefox konfigurieren.

Insgesamt ist es schön zu sehen, dass Mozilla hier Firefox wieder mehr in Richtung Datenschutz positioniert. Zwischenzeitlich konnte man hier erhebliche Zweifel entwickeln. Nachdem Apple nun auch zaghafte Bestrebungen erkennen lässt die Privatsphäre der Kunden zu schützen, wird Google als größter Werbeanbieter natürlich noch bestrebter sein, den eigenen Browser mit größeren Marktanteilen auszustatten. Denn nichts ist schädlicher für Googles Geschäftsmodell, als eine stärkere Regulierung bzw. Eindämmung der Möglichkeiten der Werbebranche. Darum gilt - Open Source hin oder her - Finger weg von Chromium und Chrome!

"

Ich habe mal wieder ein wenig meine Mutt Konfiguration angepasst. Der Grund war, dass ich immer mal wieder Probleme bekommen habe, die unterschiedlichen Accounts richtig verwaltet zu bekommen. Aufgrund dessen, muss die Konfiguration in der muttrc wie folgt angepasst werden:

source "~/.mutt/account.exmaple2"
folder-hook $folder 'source ~/.mutt/example2'
source "~/.mutt/account.example1"
folder-hook $folder 'source ~/.mutt/example1'

macro index <f3> '<sync-mailbox><enter-command>source ~/.mutt/account.example1<enter><change-folder>!<enter>'
macro index <f4> '<sync-mailbox><enter-command>source ~/.mutt/account.example2<enter><change-folder>!<enter>'

Das führt dazu, dass die Accounts wieder richtig aufgerufen werden können.

16. April 2018

Bild von andries48 via pixabay / Lizenz: CC0 Creative Commons

Viele Lobby-Organisationen im Linuxumfeld würden es gerne sehen, wenn der Staat vermehrt auf freie Software zurückgreifen würden. Euphorische Anwender unterstützen dieses Anliegen in unzähligen Blogs und Kommentaren im Internet. Kaum eine Technik-Gemeinschaft widmet diesem Thema so viel medialen Raum.

Diese Woche waren das zwei vollkommen unterschiedliche, aber dennoch zusammen hängende Meldungen:

  1. Die Stadt Dortmund untersucht das Potenzial von Freier Software/Linux
  2. Bundesbehörden zahlen Millionen für Lizenzebühren an Microsoft

Natürlich wäre es absolut wünschenswert, wenn sich die öffentliche Verwaltung von Microsoft emanzipieren würde. Gar nicht so sehr aus monetären Gründen, sondern weil sich Windows 10 bei bestehendem Onlinezugang möglicherweise nicht an europäische Anforderungen in Sachen Datenschutz anpassen lässt. Schadsoftwaredruck etc. mal ganz außen vor gelassen.

Leider haben viele immer noch keine Konsequenzen aus dem LiMux-Debakel (siehe: Kommentar: Das Ende von LiMux - eine Nachbetrachtung) gezogen und blasen weiter in das gleiche Horn. Erstes und wichtigstes Argument ist das Geld.

Das sieht man sowohl in Dortmund, wo eine defizitäre Gemeinde nun krampfhaft nach sparpotenzial sucht, als auch in der Berichterstattung zu den Zahlungen an Microsoft.

Daher möchte ich hier zwei simple Tatsachen betonen: Erstens: Staatsverwaltung braucht Geld, zweitens: Linux ist nicht kostenlos.

Ein leistungsfähiger Staat benötigt finanzielle Mittel. Eine simple Feststellung, die nach Jahrzehnten neoliberaler Propaganda teilweise pseudowissenschaftlich argumentierterender so genannter "Experten" leider nicht mehr selbstverständlich ist. Zu einem funktionsfähigen Staat gehört eine funktionsfähige IT. Hat der Staat kein Geld und kann rein organisatorisch seine Aufgaben nicht mehr wahrnehmen, landen wir in dysfunktionalen Systemen wie im angloamerikanischen Raum, wo der Staat erwiesenermaßen für seine Bürger nicht mehr da ist. Zwei populistische Abstimmungsergebnisse - Brexit und Trump - in den letzten Jahren sollten da Lehre genug gewesen sein.

Natürlich kann man sich fragen, ob der Staat zur Funktionsfähigkeit Windows braucht. Ohne Insiderwissen lässt sich diese Frage wohl nicht sicher beantworten. Nachdem man aber jahrzehntelang auf Microsoft-Produkte gesetzt hat, dürfte zumindest momentan eine gewisse Abhängigkeit von Microsoft-Produkten bestehen.

Diese ließe sich natürlich in einem Kraftakt beenden. Am besten in größerem Maßstab, also in einer Kooperation von Kommunen, Ländern und/oder des Bundes. Dieser Kraftakt würde jedoch zweifelsohne Geld kosten. Erstens weil man während der Umstellung auch weiterhin auf Microsoft-Produkte angewiesen ist und somit doppelt bezahlt. Zweitens weil man entweder eigene Entwicklungsabteilungen aufbauen muss oder externe Dienstleister bezahlen muss, die entsprechende Produkte entwickeln. Drittens, weil auch Linux nicht kostenlos ist. Man konnte in München sehr gut sehen, wie schwierig es ist eine eigene Linux-Distribution zu kreieren und auf Business-Niveau über viele Jahre zu pflegen, also das wofür man bisher Microsoft bezahlt. Dieses Niveau kann man auch bei Linux einkaufen, z. B. bei Red Hat oder SUSE, aber deren Lizenzmodelle sind auch nicht kostenlos. Im Fall von Red Hat würde man noch nicht mal die Abhängigkeit von US-amerikanischen Unternehmen beenden.

Ob man unterm Strich dann überhaupt Geld spart kann niemand seriös vorhersagen. Lobbyorganisationen, Medien und auch Kommentatoren täten also gut daran, endlich auf dieses Geld-Argument zu verzichten. Damit werden Erwartungen geweckt, die nicht zu halten sind und dann - siehe LiMux - zu einer Rückabwicklung mit erheblichem Flurschaden führen.

"

15. April 2018

Motivation

Meine Motivation für die Erstellung der Bewerbungsvorlage war ursprünglich nur, dass Anschreiben, Lebenslauf und alle weiteren Seiten zusammengehörig aussehen sollten. Sehr viele der vorhandenen Lebenslauf-Pakete auf CTAN lieferten oft nur den Lebenslauf-Teil. Für das Anschreiben in der gleichen Schriftart und -größe sowie Anpassung der Kopf- und Fußzeile musste weitere Arbeit investiert werden. Zusätzlich enthält meine Vorlage noch eine eigene „Meine Seite“ und eine „Motivationsseite”. Ob diese nach heutigem Bewerbungsstandard noch notwendig oder gewünscht sind, soll hier nicht diskutiert werden.

Im Laufe der Jahre kam noch eine zweite Motivation dazu: Weil andere Benutzer die Vorlage rege nutzten, sollte sie so einfach wie möglich gestaltet sein. Insbesondere wollte ich auch Leute ansprechen, die nicht so viel TeX-Erfahrung haben. Aus diesem Grund besteht die Vorlage nur aus einer einzigen Datei, die der Schreiber editieren muss. Über entsprechende Kommentare wird im Dokument genau erklärt, an welchen Stellen ein Bewerber Daten anpassen muss. Da das Zielpublikum dabei immer deutschsprachige Anwender waren, sind alle Makros und Befehle ebenfalls deutschsprachig verfasst.

Aufbau der Dateien

Die Bewerbungsvorlage stelle ich auf GitHub zur Verfügung. Darüber hinaus biete ich den Archiv-Download auf meiner Webseite an. Die Vorlage unterliegt der Creative-Commons-Lizenz CC-BY-SA 4.0 und darf damit geändert und verteilt werden, solange man den Urheber nennt und die Lizenz beibehält. Das aus der Vorlage erstellte PDF unterliegt natürlich keinerlei Lizenzbeschränkungen.

Das Archiv der Bewerbungsvorlage enthält vier Dateien (neben CHANGELOG, README und LICENSE):

  • bewerbung.tex – Die eigentliche Bewerbungsvorlage. Nur hierin werden Daten geändert.
  • bewerbung-latex.sty – Die Style-Datei mit den benötigten Befehlen und Paketen. Diese Datei nicht anfassen!
  • foto-bewerber.png – Das (optionales) Bewerberfoto.
  • signatur-bewerber.png – Die (optionale) eingescannte Unterschrift.

Aufbau der Bewerbung

Die Bewerbung gliedert sich in fünf Teile:

  • Anschreiben
  • Seite mit persönlichen Daten
  • Lebenslauf
  • Motivationsseite
  • Anlagenverzeichnis

Im Folgenden erkläre ich den Aufbau der Vorlage anhand dieser Teile und des zugehörigen LaTeX-Codes. Die Beschreibung ist dabei meistens der Kommentierung in der Vorlage selbst entnommen.

Präambel

In der Präambel (also alles vor der Umgebung document) sind vor allem die persönlichen Daten und die Daten des Adressaten festgelegt, die dann später im Anschreiben und der persönlichen Seite benutzt werden.

Schrift festlegen

Das Makro \SetzeSchrift legt die Schrift fest, was man nur ändern sollte, wenn man die korrekten Namen kennt:

\SetzeSchrift{tgpagella}{TeX Gyre Pagella}

Das erste Argument ist der Paketname für pdfTeX, das zweite Argument der Schriftname für XeTeX und LuaTeX. Als Standardschrift wird TeX Gyre Pagella benutzt, die mir optisch gut gefällt. Hierfür ist das Paket tex-gyre notwendig.

Persönliche Daten

Der nächste Block legt die einzelnen persönlichen Daten fest:

\VollerName{Eva Mustermann}
\AbsenderStrasse{Musterstraße 42}
\AbsenderPLZOrt{12345 Berlin}
\Telefon{Tel.: 0172 567890}
\EMail{eva.mustermann@musterstadt.de}
\OrtDatum{Berlin, \HeutigerTag}
\Geburtstag{1. Januar 1985}
\Geburtsort{Berlin}
\Details{ledig, ortsungebunden}
\Ausbildungsgrad{Promovierte Veterinärmedizinerin}

Bis auf den Ausbildungsgrad und die Details sind alle Angaben zwingend notwendig, damit Anschreiben und die persönliche Seite korrekt dargestellt werden.

Bei der E-Mail ist es möglich, optional eine Farbe anzugeben, mit der die E-Mailadresse dargestellt werden soll. Als Standard ist schwarz eingestellt.

\EMail[orange]{eva.mustermann@musterstadt.de} 
Unterschrift und Foto

Die Unterschrift ist optional und sollte als Bilddatei oder PDF vorliegen. Als Option kann man die Breite der Unterschrift angeben, wobei 5 cm der Standard ist.

\UnterschriftenDatei[5cm]{signatur-bewerber.png}

Auch das Bewerberfoto ist optional. Über die Dateiangabe wird auf der persönlichen Seite das Foto dargestellt. Ein optionales Argument steuert die Höhe des Bildes. Größere Werte als 10,5 cm sind nicht sinnvoll, da das Bild sonst nicht mehr auf die Seite passt.

\BewerberFoto[6cm]{foto-bewerber.jpg}
Adressat

Bei der Angabe der Daten des Adressaten gibt es einige Variationsmöglichkeiten:

\Firma{Hell AG}
\Abteilung{Personalabteilung}
\AdressatVorname{Christina}
\AdressatNachname{Funkel}
\AnschriftStrasse{Route 66}
\AnschriftPLZOrt{00000 Havenfürst}
\AdressatTitel[Prof. Dr.]{Professorin}
\Anrede{Frau}

Bis auf die Firma sowie Straße und Ort sind alle Angaben optional. Wird beispielsweise kein Adressat angegeben bzw. die Anrede weggelassen, wird das Anschreiben automatisch mit „Sehr geehrte Damen und Herren” eingeleitet. Valide Anreden sind „Frau“, „Herr“ oder ein leerer Eintrag. Das Makro \AdressatTitel besitzt zusätzlich ein optionales Argument, welches nur im Briefkopf benutzt wird.

Auch ein zweiter Adressat ist möglich, die Angaben sind alle optional:

\ZweiterAdressatVorname{Pitti}
\ZweiterAdressatNachname{Platsch}
\ZweiterAdressatTitel[Dr.]{Doktor}
\ZweiterAdressatAnrede{Herr}
Bewerberstelle

Nicht zu vergessen ist natürlich die Stelle, auf die man sich bewerben möchte:

\Bewerberstelle{Veterinär-Mediziner (m/w)}

Hier endet die Präambel und der eigentliche Inhalt folgt.

Anschreiben

Abstandsreglung

Für das Anschreiben gibt es zahlreiche Abstandsparameter, die verändert werden können, wenn es erforderlich ist. Somit kann man je nach Menge des Anschreibentextes die Position der einzelnen Elemente (Absender, Adressat, Anschreibentext) steuern, auch wenn man damit gegebenenfalls gegen die Geschäftsbriefnorm DIN 5008 verstößt.

\AbstandZwischenAdressen{0}

Dies ist der Abstand zwischen dem Absender und dem Adressat im Anschreiben. Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 0.

\AbstandVorAnschreiben{3}

Dies ist der Abstand vor dem eigentlichen Anschreiben (inklusive Ort und Datum). Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 1.

\AnschreibenSeiteVergroessern{0}

Hierüber kann man die Anschreibenseite vergrößern, d.\,h. es ist damit möglich, über den eigentlichen unteren Rand zu schreiben, falls das Anschreiben etwas länger geworden ist. Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 0. Als Maximalwert sollte man 3 einstellen, ansonsten wirkt das Anschreiben vom Aufbau sehr unausgeglichen und unschön.

\AbstandVorAnlagen{2}

Die letzte Angabe regelt den Abstand zwischen Unterschrift und den Anlagen im Anschreiben. Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 1.

Anlagen

Im Anschreiben kann ein optionaler Hinweis auf die Anlagen erscheinen:

\AnschreibenAnlage{Anlagen}

Die Anlagen selbst werden im Anlagenverzeichnis am Ende näher aufgeschlüsselt.

Anschreiben

Die Umgebung Anschreiben enthält den eigentlichen Bewerbungstext.

\begin{Anschreiben}
hier steht mein Bewerbungstext. [...]
\end{Anschreiben}
Anschreiben

Anschreiben

Persönliche Seite

Für die persönliche Seite hat man alle Angaben bereits in der Präambel getätigt, sodass nur das Makro

\MeineSeite

angegeben werden muss.

Darstellung der persönlichen Seite

Darstellung der persönlichen Seite

Lebenslauf

Überschrift einstellen

Die Überschriften des Lebenslaufs und der weiteren Kapitel wie Motivationsseite und Anlagenverzeichnis können über unterschiedliche Makros eingestellt werden. Prinzipiell kann man die Einstellung vor jedem Kapitel ändern. Einheitlicher ist es, wenn die Definition nur einmal am Anfang des Lebenslaufes geschieht.

Die Ausrichtung gibt an, wo die Überschrift steht:

\UeberschriftAusrichtung{links}

Mögliche Angaben sind: links, rechts und mittig. Per Standard ist rechts eingestellt.

\UeberschriftGroesse{\LARGE}

stellt die Schriftgröße der Überschrift ein. Erlaubt sind alle bekannten LaTeX-Schriftgrößenangaben. Sinnvoll sind LARGE, huge oder Huge. Standard ist LARGE.

Zum Schluss kann man noch den Überschrifttext verändern – aber nur für den Lebenslauf. Per Standard wird „Lebenslauf“ ausgegeben. Beispielsweise ist auch ein „Curriculum Vitae“ möglich.

\UeberschriftLebenslauf{Lebenslauf}
Lebenslauf und Abschnitte

Der Lebenslauf beginnt mit der Umgebung Lebenslauf:

\begin{Lebenslauf}
...
\end{Lebenslauf}

Das Makro \EinschubCV definiert den Einschub, wie weit die einzelnen Einträge am linken Rand eingerückt werden. Standard ist 8 pt.

\EinschubCV[buendig]{8pt}

Das optionale Argument buendig gibt an, dass die Abschnittsüberschrift zusätzlich noch bündig zur Tabelle sein soll und nicht linksbündig per Standard.

Der Lebenslauf ist in Abschnitte AbschnittCV unterteilt. Jeder Abschnitt hat dabei einen Titel. Innerhalb des Abschnitts legt \EintragCV einen neuen Eintrag an. In der Textgestaltung ist man ansonsten frei.

\begin{AbschnittCV}{Promotion}
\EintragCV{Mai 2015}{Doktor der Veterinärmedizin \newline
                     Doktorarbeit an der Uni Berlin}
}
\end{AbschnittCV}

Wichtig ist, dass mehreren Zeilen über \newline umgebrochen werden und nicht mit \\, weil intern eine Tabelle benutzt wird und zwei Backslashes das Ende der Tabellenzeile bedeuten.

Abschnitte im Lebenslauf

Abschnitte im Lebenslauf

AbschnittCV und \EintragCV haben beide noch ein optionales Argument, über das man den Abstand unter dem jeweiligen Abschnitt/Eintrag regeln kann. Angegeben wird der Wert in Zeilen, per Standard wird ein Abstand von 0,5 Zeilen benutzt. Beispiel:

\begin{AbschnittCV}[0]{Studium}%
\EintragCV[1]{September 2012}{Abschluss als Diplom-Veterinärmedizinerin}
\EintragCV{2006 – 2012}{Studium Diplom-Veterinärmedizin}
\end{AbschnittCV}

Über die Angabe

\NeueSeiteAbschnittCV

ist ein expliziter Umbruch des Lebenslaufs möglich, sodass mit dem nächsten Eintrag eine neue Seite begonnen wird. Das ist zum Beispiel dann sinnvoll, wenn ein Abschnitt nicht mehr ganz auf die Seite passt und unschön umgebrochen wird.

Die Farbe der Abschnitte und der darunter befindlichen Linien lassen sich über

\AbschnittFarbe{Blue}
\AbschnittLinienFarbe{Blue}

am Anfang des Lebenslaufs ändern, wenn man will. Als Farbnamen werden die herkömmlichen klein geschriebenen LaTeX-Namen verstanden als auch die dvips-Namen.

Über \UnterabschnittCV sind noch feinere Gliederungen möglich:

\begin{AbschnittCV}{Praktische Tätigkeiten}%
\EintragCV{2006 – 2012}{Tierarzt-Praxis Dr. Hauser, Berlin}
\UnterabschnittCV{Kernarbeitsgebiete}{%
    \punkt Hunden die Pfötchen halten
    \punkt Katzen kraulen
}
\UnterabschnittCV{Weitere Aufgaben}{%
    \punkt Wasser besorgen
}
\end{AbschnittCV}

Die Unterabschnitte haben dabei auch Überschriften und danach eine simple Auflistung mit den einzelnen Punkten.

Lebenslauf mit Unterabschnitten

Lebenslauf mit Unterabschnitten

Motivationsseite

Die Motivationsseite ist optional. Wer sie nicht benötigt, kommentiert die Umgebung Motivation einfach aus. Ansonsten kann man dort ein bisschen was über sich selbst erzählen und wieso man zu der beworbenen Stelle
passt.

\begin{Motivation}
Hier steht mein Motivationstext. [...]
\end{Motivation}
Motivationsseite

Motivationsseite

Anlagenverzeichnis

Das Anlagenverzeichnis startet über die gleichnamige Umgebung:

\begin{Anlagenverzeichnis}
    \AbschnittAnlage{Arbeitszeugnisse}
    \begin{Auflistung}
        \Anlage{Tierarzt-Praxis Dr. Hauser}
        \Anlage{FSJ, Malteser-Krankenhaus Berlin}
    \end{Auflistung}

    \AbschnittAnlage{Zeugnisse}
    \begin{Auflistung}
        \Anlage{Doktorurkunde}
        \Anlage[diplomurkunde.pdf]{Diplomurkunde}
        \Anlage{Diplomzeugnis}
        \Anlage{Abiturzeugnis}
    \end{Auflistung}
\end{Anlagenverzeichnis}

\AbschnittAnlage leitet jeweils eine neue Anlage ein. Die Auflistung-Umgebung enthält dann die eigentlichen Anlagen. \Anlage besitzt ein optionales Argument, über welches man einen Dateinamen mit angeben kann. Geschieht das, wird die Seite im Verzeichnis entsprechend verlinkt und der Eintrag unterstrichen.

Anlagenverzeichnis

Anlagenverzeichnis

\AnlageEinfuegen ermöglicht das direkte Einbinden von PDF-Dokumenten:

\AnlageEinfuegen{diplomurkunde.pdf}
\AnlageEinfuegen[quer]{doktorurkunde.pdf}

Das optionale Argument quer gibt an, dass die Anlage im Querformat eingebunden wird. Wenn der Dateiname der Anlage identisch zum optionalen Dateinamen oben bei \Anlage ist, wird die Anlage auch korrekt im PDF verlinkt.

Fazit

In dem Artikel habe ich meine Bewerbungsvorlage vorgestellt, indem ich in den einzelnen Kapiteln die unterschiedlichen Makros und Umgebungen erklärt habe. Die Vorlage wird bei Kommentaren in meinem Blog regelmäßig gepflegt, wie man am CHANGELOG der vergangenen Jahre sieht. Auch durch die Vorstellungen auf der DANTE-Frühjahrstagung 2015 im wunderschönen Stralsund und der DANTE-Frühjahrstagung 2016 in Wuppertal gab es wertvolle Rückmeldungen, die in die Vorlage eingeflossen sind.

Derzeit (März 2018) liegt die Bewerbungsvorlage nur in GitHub und in meinem Blog zum Download bereit und ist nicht auf CTAN verfügbar. Vielleicht findet sich nach dem Lesen des Artikels jemand, der sich an die Paketierung wagt.

Motivation

Meine Motivation für die Erstellung der Bewerbungsvorlage war ursprünglich nur, dass Anschreiben, Lebenslauf und alle weiteren Seiten zusammengehörig aussehen sollten. Sehr viele der vorhandenen Lebenslauf-Pakete auf CTAN lieferten oft nur den Lebenslauf-Teil. Für das Anschreiben in der gleichen Schriftart und -größe sowie Anpassung der Kopf- und Fußzeile musste weitere Arbeit investiert werden. Zusätzlich enthält meine Vorlage noch eine eigene „Meine Seite“ und eine „Motivationsseite”. Ob diese nach heutigem Bewerbungsstandard noch notwendig oder gewünscht sind, soll hier nicht diskutiert werden.

Im Laufe der Jahre kam noch eine zweite Motivation dazu: Weil andere Benutzer die Vorlage rege nutzten, sollte sie so einfach wie möglich gestaltet sein. Insbesondere wollte ich auch Leute ansprechen, die nicht so viel TeX-Erfahrung haben. Aus diesem Grund besteht die Vorlage nur aus einer einzigen Datei, die der Schreiber editieren muss. Über entsprechende Kommentare wird im Dokument genau erklärt, an welchen Stellen ein Bewerber Daten anpassen muss. Da das Zielpublikum dabei immer deutschsprachige Anwender waren, sind alle Makros und Befehle ebenfalls deutschsprachig verfasst.

Aufbau der Dateien

Die Bewerbungsvorlage stelle ich auf GitHub zur Verfügung. Darüber hinaus biete ich den Archiv-Download auf meiner Webseite an. Die Vorlage unterliegt der Creative-Commons-Lizenz CC-BY-SA 4.0 und darf damit geändert und verteilt werden, solange man den Urheber nennt und die Lizenz beibehält. Das aus der Vorlage erstellte PDF unterliegt natürlich keinerlei Lizenzbeschränkungen.

Das Archiv der Bewerbungsvorlage enthält vier Dateien (neben CHANGELOG, README und LICENSE):

  • bewerbung.tex – Die eigentliche Bewerbungsvorlage. Nur hierin werden Daten geändert.
  • bewerbung-latex.sty – Die Style-Datei mit den benötigten Befehlen und Paketen. Diese Datei nicht anfassen!
  • foto-bewerber.png – Das (optionales) Bewerberfoto.
  • signatur-bewerber.png – Die (optionale) eingescannte Unterschrift.

Aufbau der Bewerbung

Die Bewerbung gliedert sich in fünf Teile:

  • Anschreiben
  • Seite mit persönlichen Daten
  • Lebenslauf
  • Motivationsseite
  • Anlagenverzeichnis

Im Folgenden erkläre ich den Aufbau der Vorlage anhand dieser Teile und des zugehörigen LaTeX-Codes. Die Beschreibung ist dabei meistens der Kommentierung in der Vorlage selbst entnommen.

Präambel

In der Präambel (also alles vor der Umgebung document) sind vor allem die persönlichen Daten und die Daten des Adressaten festgelegt, die dann später im Anschreiben und der persönlichen Seite benutzt werden.

Schrift festlegen

Das Makro \SetzeSchrift legt die Schrift fest, was man nur ändern sollte, wenn man die korrekten Namen kennt:

\SetzeSchrift{tgpagella}{TeX Gyre Pagella}

Das erste Argument ist der Paketname für pdfTeX, das zweite Argument der Schriftname für XeTeX und LuaTeX. Als Standardschrift wird TeX Gyre Pagella benutzt, die mir optisch gut gefällt. Hierfür ist das Paket tex-gyre notwendig.

Persönliche Daten

Der nächste Block legt die einzelnen persönlichen Daten fest:

\VollerName{Eva Mustermann}
\AbsenderStrasse{Musterstraße 42}
\AbsenderPLZOrt{12345 Berlin}
\Telefon{Tel.: 0172 567890}
\EMail{eva.mustermann@musterstadt.de}
\OrtDatum{Berlin, \HeutigerTag}
\Geburtstag{1. Januar 1985}
\Geburtsort{Berlin}
\Details{ledig, ortsungebunden}
\Ausbildungsgrad{Promovierte Veterinärmedizinerin}

Bis auf den Ausbildungsgrad und die Details sind alle Angaben zwingend notwendig, damit Anschreiben und die persönliche Seite korrekt dargestellt werden.

Bei der E-Mail ist es möglich, optional eine Farbe anzugeben, mit der die E-Mailadresse dargestellt werden soll. Als Standard ist schwarz eingestellt.

\EMail[orange]{eva.mustermann@musterstadt.de} 
Unterschrift und Foto

Die Unterschrift ist optional und sollte als Bilddatei oder PDF vorliegen. Als Option kann man die Breite der Unterschrift angeben, wobei 5 cm der Standard ist.

\UnterschriftenDatei[5cm]{signatur-bewerber.png}

Auch das Bewerberfoto ist optional. Über die Dateiangabe wird auf der persönlichen Seite das Foto dargestellt. Ein optionales Argument steuert die Höhe des Bildes. Größere Werte als 10,5 cm sind nicht sinnvoll, da das Bild sonst nicht mehr auf die Seite passt.

\BewerberFoto[6cm]{foto-bewerber.jpg}
Adressat

Bei der Angabe der Daten des Adressaten gibt es einige Variationsmöglichkeiten:

\Firma{Hell AG}
\Abteilung{Personalabteilung}
\AdressatVorname{Christina}
\AdressatNachname{Funkel}
\AnschriftStrasse{Route 66}
\AnschriftPLZOrt{00000 Havenfürst}
\AdressatTitel[Prof. Dr.]{Professorin}
\Anrede{Frau}

Bis auf die Firma sowie Straße und Ort sind alle Angaben optional. Wird beispielsweise kein Adressat angegeben bzw. die Anrede weggelassen, wird das Anschreiben automatisch mit „Sehr geehrte Damen und Herren” eingeleitet. Valide Anreden sind „Frau“, „Herr“ oder ein leerer Eintrag. Das Makro \AdressatTitel besitzt zusätzlich ein optionales Argument, welches nur im Briefkopf benutzt wird.

Auch ein zweiter Adressat ist möglich, die Angaben sind alle optional:

\ZweiterAdressatVorname{Pitti}
\ZweiterAdressatNachname{Platsch}
\ZweiterAdressatTitel[Dr.]{Doktor}
\ZweiterAdressatAnrede{Herr}
Bewerberstelle

Nicht zu vergessen ist natürlich die Stelle, auf die man sich bewerben möchte:

\Bewerberstelle{Veterinär-Mediziner (m/w)}

Hier endet die Präambel und der eigentliche Inhalt folgt.

Anschreiben

Abstandsreglung

Für das Anschreiben gibt es zahlreiche Abstandsparameter, die verändert werden können, wenn es erforderlich ist. Somit kann man je nach Menge des Anschreibentextes die Position der einzelnen Elemente (Absender, Adressat, Anschreibentext) steuern, auch wenn man damit gegebenenfalls gegen die Geschäftsbriefnorm DIN 5008 verstößt.

\AbstandZwischenAdressen{0}

Dies ist der Abstand zwischen dem Absender und dem Adressat im Anschreiben. Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 0.

\AbstandVorAnschreiben{3}

Dies ist der Abstand vor dem eigentlichen Anschreiben (inklusive Ort und Datum). Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 1.

\AnschreibenSeiteVergroessern{0}

Hierüber kann man die Anschreibenseite vergrößern, d.\,h. es ist damit möglich, über den eigentlichen unteren Rand zu schreiben, falls das Anschreiben etwas länger geworden ist. Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 0. Als Maximalwert sollte man 3 einstellen, ansonsten wirkt das Anschreiben vom Aufbau sehr unausgeglichen und unschön.

\AbstandVorAnlagen{2}

Die letzte Angabe regelt den Abstand zwischen Unterschrift und den Anlagen im Anschreiben. Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 1.

Anlagen

Im Anschreiben kann ein optionaler Hinweis auf die Anlagen erscheinen:

\AnschreibenAnlage{Anlagen}

Die Anlagen selbst werden im Anlagenverzeichnis am Ende näher aufgeschlüsselt.

Anschreiben

Die Umgebung Anschreiben enthält den eigentlichen Bewerbungstext.

\begin{Anschreiben}
hier steht mein Bewerbungstext. [...]
\end{Anschreiben}
Anschreiben

Anschreiben

Persönliche Seite

Für die persönliche Seite hat man alle Angaben bereits in der Präambel getätigt, sodass nur das Makro

\MeineSeite

angegeben werden muss.

Darstellung der persönlichen Seite

Darstellung der persönlichen Seite

Lebenslauf

Überschrift einstellen

Die Überschriften des Lebenslaufs und der weiteren Kapitel wie Motivationsseite und Anlagenverzeichnis können über unterschiedliche Makros eingestellt werden. Prinzipiell kann man die Einstellung vor jedem Kapitel ändern. Einheitlicher ist es, wenn die Definition nur einmal am Anfang des Lebenslaufes geschieht.

Die Ausrichtung gibt an, wo die Überschrift steht:

\UeberschriftAusrichtung{links}

Mögliche Angaben sind: links, rechts und mittig. Per Standard ist rechts eingestellt.

\UeberschriftGroesse{\LARGE}

stellt die Schriftgröße der Überschrift ein. Erlaubt sind alle bekannten LaTeX-Schriftgrößenangaben. Sinnvoll sind LARGE, huge oder Huge. Standard ist LARGE.

Zum Schluss kann man noch den Überschrifttext verändern – aber nur für den Lebenslauf. Per Standard wird „Lebenslauf“ ausgegeben. Beispielsweise ist auch ein „Curriculum Vitae“ möglich.

\UeberschriftLebenslauf{Lebenslauf}
Lebenslauf und Abschnitte

Der Lebenslauf beginnt mit der Umgebung Lebenslauf:

\begin{Lebenslauf}
...
\end{Lebenslauf}

Das Makro \EinschubCV definiert den Einschub, wie weit die einzelnen Einträge am linken Rand eingerückt werden. Standard ist 8 pt.

\EinschubCV[buendig]{8pt}

Das optionale Argument buendig gibt an, dass die Abschnittsüberschrift zusätzlich noch bündig zur Tabelle sein soll und nicht linksbündig per Standard.

Der Lebenslauf ist in Abschnitte AbschnittCV unterteilt. Jeder Abschnitt hat dabei einen Titel. Innerhalb des Abschnitts legt \EintragCV einen neuen Eintrag an. In der Textgestaltung ist man ansonsten frei.

\begin{AbschnittCV}{Promotion}
\EintragCV{Mai 2015}{Doktor der Veterinärmedizin \newline
                     Doktorarbeit an der Uni Berlin}
}
\end{AbschnittCV}

Wichtig ist, dass mehreren Zeilen über \newline umgebrochen werden und nicht mit \\, weil intern eine Tabelle benutzt wird und zwei Backslashes das Ende der Tabellenzeile bedeuten.

Abschnitte im Lebenslauf

Abschnitte im Lebenslauf

AbschnittCV und \EintragCV haben beide noch ein optionales Argument, über das man den Abstand unter dem jeweiligen Abschnitt/Eintrag regeln kann. Angegeben wird der Wert in Zeilen, per Standard wird ein Abstand von 0,5 Zeilen benutzt. Beispiel:

\begin{AbschnittCV}[0]{Studium}%
\EintragCV[1]{September 2012}{Abschluss als Diplom-Veterinärmedizinerin}
\EintragCV{2006 – 2012}{Studium Diplom-Veterinärmedizin}
\end{AbschnittCV}

Über die Angabe

\NeueSeiteAbschnittCV

ist ein expliziter Umbruch des Lebenslaufs möglich, sodass mit dem nächsten Eintrag eine neue Seite begonnen wird. Das ist zum Beispiel dann sinnvoll, wenn ein Abschnitt nicht mehr ganz auf die Seite passt und unschön umgebrochen wird.

Die Farbe der Abschnitte und der darunter befindlichen Linien lassen sich über

\AbschnittFarbe{Blue}
\AbschnittLinienFarbe{Blue}

am Anfang des Lebenslaufs ändern, wenn man will. Als Farbnamen werden die herkömmlichen klein geschriebenen LaTeX-Namen verstanden als auch die dvips-Namen.

Über \UnterabschnittCV sind noch feinere Gliederungen möglich:

\begin{AbschnittCV}{Praktische Tätigkeiten}%
\EintragCV{2006 – 2012}{Tierarzt-Praxis Dr. Hauser, Berlin}
\UnterabschnittCV{Kernarbeitsgebiete}{%
    \punkt Hunden die Pfötchen halten
    \punkt Katzen kraulen
}
\UnterabschnittCV{Weitere Aufgaben}{%
    \punkt Wasser besorgen
}
\end{AbschnittCV}

Die Unterabschnitte haben dabei auch Überschriften und danach eine simple Auflistung mit den einzelnen Punkten.

Lebenslauf mit Unterabschnitten

Lebenslauf mit Unterabschnitten

Motivationsseite

Die Motivationsseite ist optional. Wer sie nicht benötigt, kommentiert die Umgebung Motivation einfach aus. Ansonsten kann man dort ein bisschen was über sich selbst erzählen und wieso man zu der beworbenen Stelle
passt.

\begin{Motivation}
Hier steht mein Motivationstext. [...]
\end{Motivation}
Motivationsseite

Motivationsseite

Anlagenverzeichnis

Das Anlagenverzeichnis startet über die gleichnamige Umgebung:

\begin{Anlagenverzeichnis}
    \AbschnittAnlage{Arbeitszeugnisse}
    \begin{Auflistung}
        \Anlage{Tierarzt-Praxis Dr. Hauser}
        \Anlage{FSJ, Malteser-Krankenhaus Berlin}
    \end{Auflistung}

    \AbschnittAnlage{Zeugnisse}
    \begin{Auflistung}
        \Anlage{Doktorurkunde}
        \Anlage[diplomurkunde.pdf]{Diplomurkunde}
        \Anlage{Diplomzeugnis}
        \Anlage{Abiturzeugnis}
    \end{Auflistung}
\end{Anlagenverzeichnis}

\AbschnittAnlage leitet jeweils eine neue Anlage ein. Die Auflistung-Umgebung enthält dann die eigentlichen Anlagen. \Anlage besitzt ein optionales Argument, über welches man einen Dateinamen mit angeben kann. Geschieht das, wird die Seite im Verzeichnis entsprechend verlinkt und der Eintrag unterstrichen.

Anlagenverzeichnis

Anlagenverzeichnis

\AnlageEinfuegen ermöglicht das direkte Einbinden von PDF-Dokumenten:

\AnlageEinfuegen{diplomurkunde.pdf}
\AnlageEinfuegen[quer]{doktorurkunde.pdf}

Das optionale Argument quer gibt an, dass die Anlage im Querformat eingebunden wird. Wenn der Dateiname der Anlage identisch zum optionalen Dateinamen oben bei \Anlage ist, wird die Anlage auch korrekt im PDF verlinkt.

Fazit

In dem Artikel habe ich meine Bewerbungsvorlage vorgestellt, indem ich in den einzelnen Kapiteln die unterschiedlichen Makros und Umgebungen erklärt habe. Die Vorlage wird bei Kommentaren in meinem Blog regelmäßig gepflegt, wie man am CHANGELOG der vergangenen Jahre sieht. Auch durch die Vorstellungen auf der DANTE-Frühjahrstagung 2015 im wunderschönen Stralsund und der DANTE-Frühjahrstagung 2016 in Wuppertal gab es wertvolle Rückmeldungen, die in die Vorlage eingeflossen sind.

Derzeit (März 2018) liegt die Bewerbungsvorlage nur in GitHub und in meinem Blog zum Download bereit und ist nicht auf CTAN verfügbar. Vielleicht findet sich nach dem Lesen des Artikels jemand, der sich an die Paketierung wagt.

Vor ca. einem Jahr hat Canonical seine offizielle Tutorial Webseite gelauncht.

Seitdem hat sich einiges getan und es wurde eine kleine Sammlung an Anleitungen, Installationen und Tipps rund um das Ubuntu Universum aufgebaut.
Inzwischen finden sich etwa 40 Hilfestellungen für Desktop oder Server Systeme auf der Seite.

Dabei sind sowohl aktuelle Themen wie Kubernetes, aber auch Klassiker wie Apache.
Jede Anleitung kann interaktiv durchlaufen werden und zeigt die verbleibende Arbeitszeit, sowie einen geschätzten Schwierigkeitsgrad an.

Ubuntu-tutorials

Damit ist das Ende der Fahnenstange noch nicht erreicht. Denn jeder ist dazu eingeladen eigene Tutorials zu schreiben.

Ein wenig Markdown Kenntnisse, sowie etwas Git Wissen reichen aus, um eine eigene Installationsanleitung einzureichen.
Eine Einführung in diese Thematik ist vorhanden.

Das Tutorial Projekt ist Open Source und kann via Github geforkt werden.

 

Ubuntu Tutorial