Kategoriearchive: Ubuntu

Abhängigkeiten eines .deb Archives ändern

Kann hin und wieder hilfreich und sinnvoll sein. So habe ich etwa das Plex Home Theater auf Sid installiert, das „libass4“ verlangt und „libass5“ nicht akzeptiert.
Die Commands zum aus- und einpacken einer solchen Datei habe ich nicht im Kopf, dafür brauche ich es einfach zu selten. Google hilft mir, wenn es wieder soweit ist, zuverlässig.

Dieses mal führte die Suche mich zu einem kleinen Script:
„vi“ ersetze ich jedoch durch „nano“.
Weiterlesen

OneDrive Client: onedrive-d aus Git Repository installieren

OneDrive Icon

Changelog

  • 1. Mai 2015 – Neuer Installationsprozess

Das noch junge Projekt onedrive-d von Xiangyu Bu, verrichtet seinen Dienst als erster OneDrive Client bereits so gut, dass ich nun nachziehe und die unkomplizierte Installation erkläre.

Ich lege jedem ein Backup seiner Daten nah, unabhängig davon, wie stabil der Client auch sein mag.

1. Die wesentlichen Voraussetzungen schaffen Python 3 und wenige weitere Pakete. python-pip wird zum Entfernen älterer Versionen (sudo apt-get install python-pip python-pip3 inotify-tools python3-dev python3-gi

2. Es sollte vor jedem Upgrade eine alte Version des Clients restlos entfernt werden. „pip“ findet Anwendung für Versionen älter 1.0, „pip3“ für alle neuren. Im Zweifelsfall darf beides ausgeführt werden. :-)

sudo pip uninstall onedrive-d
sudo pip3 uninstall onedrive-d
rm -rfv ~/.onedrive

3. Das Projekt klone ich aus dem GitHub nach „~/build“, die Python-Abhängigkeiten werden eigenständig installiert, falls benötigt.
Die Installation funktioniert laut Dokumentation ebenso unter CentOS, jedoch von mir ungetestet. Ich verwende ein Debian Jessie System.

sudo apt-get install git
mkdir ~/build; cd ~/build
git clone https://github.com/xybu92/onedrive-d
cd onedrive-d

sudo python3 setup.py install
sudo python3 setup.py clean

mkdir ~/.onedrive
cp ./onedrive_d/res/default_ignore.ini ~/.onedrive/ignore_v2.ini

sudo touch /var/log/onedrive_d.log
sudo chown `whoami` /var/log/onedrive_d.log

Zudem lege ich noch einen Starter mit entsprechendem Icon an:

sudo nano /usr/share/applications/onedrive.desktop

Folgender Inhalt:

[Desktop Entry]
Name=OneDrive Client
GenericName=File Synchronizer
Comment=Sync your files across computers and to the web
Exec=onedrive-d
Terminal=false
Type=Application
Icon=/usr/share/icons/onedrive.png
Categories=Network;FileTransfer;
StartupNotify=false

Im Anschluss ein Icon an die entsprechende Stelle kopieren:

sudo wget -O /usr/share/icons/onedrive.png https://www.debinux.de/wp-content/uploads/onedrive.png

Bereits nach dem ersten Startvorgang, wird die Anwendung um entsprechende Daten wie Login und Speicherort bitten.
Die Einstellungen können mit dem Befehl „onedrive-prefs“ später noch einmal geöffnet und bearbeitet werden.

IIS, Apache, Nginx: SSL Hardening angelehnt an FIPS 140-2

SSL Lock

Changelog

  • 13. Jan 2015 – Apache DH Parameter werden in SSLCertificateFile definiert

Abgesehen von der stetigen Implementierung von Sicherheitspatches in das System, gibt es immer wieder Kleinigkeiten zu beachten.
Ich entscheide mich zugegeben relativ spät für einen Artikel zum Thema SSL Hardening, der Aufschrei verklang in den letzten Wochen ja zunehmend, dennoch…
 
 

Handshakes mit SSL nach FIPS 140-2 mit Nginx
Abbildung 1: Handshakes mit SSL nach FIPS 140-2 mit Nginx
Ich richte mich bei der Konfiguration nach FIPS 140-2, so schließe ich etwa SSL bis einschließlich v3 und diverse Cipher wie RC4 aus. Kompatibilität bietet anstatt RC4 der Cipher CBC.
Trotzdem besteht eine Kompatibilität zu beinahe allen Browsern, die noch Verwendung finden. Der Ausreißer aus Abbildung 1 ist keine wirkliche Überraschung…
Für Linux gilt, dass OpenSSL zu diesem Zeitpunkt mindestens in Version 1.0.1c vorliegt (zu überprüfen mit „openssl version“).
Nginx sollte in jedem Repository bereits eine Version höher 1.0.6 erreicht haben („nginx -v“).
Ein Apache Web-Server muss ab Version 2.4.7 installiert sein („apache2 -v“).

Nginx

Zuerst für den Diffie Hellman Schlüsselaustausch über 2048bit folgende Datei erstellen:

openssl dhparam -out /etc/nginx/dhparam.pem 2048

Anschließend die Site-Konfiguration ändern:

server {
        [...]
        ssl on;
        ssl_dhparam /etc/nginx/dhparam.pem;
        ssl_certificate path-to.crt;
        ssl_certificate_key path-to.key;
        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers !aNULL:!eNULL:FIPS@STRENGTH;
        [...]

Mit obiger Konfiguration überlässt der Besucher Nginx die Auswahl des Ciphers, die Auswahl erfolgt von stärkster Methode an absteigend. Timeout und Cache werden auf 10m reduziert.

IIS

Nach langem Zögern und Hadern entscheide ich mich für die GUI-Methode, werde dafür aber etwas genauer. Ich finde es schade, dass das kleine Tool in meiner Umgebung relativ lange verborgen blieb:

IIS Crypto, SSL Hardening
Abbildung 2: IIS Crypto
Für den IIS ab Windows Server 2003 (-2012 R2) empfehle ich das Tool IIS Crypto. Aber Vorsicht: Benutzer des Windows Servers in Version 2003, müssen sich vorab eines Patches bedienen, um überhaupt AES als Cipher verwenden zu könnnen. Weiterhin unterliegen sie der Einschränkung, die Cipher nicht manuell anordnen zu können.

Einigen dürfte der über die „Local Security Policy“ einstellbare Wert „System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing“ ein Begriff sein.
Die Funktion triggert den DWORD32 Eintrag „Enabled“ in „HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy“ auf 1. Eine hilfreiche Funktion, wenn wirklich das ganze Betriebssystem von der FIPS-Richtlinie profitieren soll. Allerdings ist der Modus sehr weitreichend und wird selbst von Microsoft nur bedingt empfohlen, da es zu einigen Einschränkungen kommt.

Der IIS Crypto liegt ebenso in einer Command Line Version vor, in beiden Fällen in .Net 2.0 sowie 4.0. Änderungen, die hiermit erzielt werden, können mit Software wie regshot eingefangen- und zu einem PowerShell-Script umgeschrieben werden. Das erwähnt, dürften auch die Scripter zufriedengestellt sein.

Apache2

Benutzer des Apache Web-Servers in Version 2, haben es je nach Konfiguration etwas schwieriger. Der vorhandene Schalter „SSLFIPS“ wird nur funktionieren, wenn Apache2 unter Verwendung einer FIPS SSL-Bibliothek gebaut wurde. Darauf verzichte ich jedoch und biete eine Konfiguration an, die ähnlich den obigen ist.
Zuerst für den Diffie Hellman Schlüsselaustausch über 2048bit folgende Datei erstellen:

openssl dhparam -out /etc/apache2/dhparam.pem 2048

Der Inhalt der Datei „/etc/apache2/dhparam.pem“ wird an das Ende des SSL-Zertifikates angehangen. Etwa:

cat /etc/apache2/dhparam.pem >> /etc/apache2/ssl/www.crt

Apache 2.4 extrahiert DH-Parameter wie auch alle Informationen zur Zertifikatskette aus einer Datei.

In der Datei „/etc/apache2/mods-enabled/ssl.conf“ (Ubuntu/Debian) ändere oder füge ich Folgendes hinzu:

SSLProtocol all -SSLv2 -SSLv3
SSLCompression off
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+AESGCM EDH+AESGCM EECDH EDH RSA -CAMELLIA -SEED !aNULL !eNULL !LOW !MD5 !EXP !PSK !SRP !DSS !RC4"

Anmerkungen

Ein Hinweis zum Zertifikat der Certification Authority (CA): Einige Benutzer neigen dazu, die Zertifikate zu vereinen. Etwa das öffentliche Zertifikat der CA und das privat ausgestellte Zertifikat, wie auch in meiner eigenen Konfiguration.
SSL Test-Anwendungen wie „ssllabs.com“ weisen auf den untypischen Zustand hin, einen Einfluss auf die Sicherheit hat es jedoch nicht. Es ensteht unwesentlich mehr Netzwerkverkehr, wohl etwa 1kB.

Abschließend lässt sich noch sagen, dass es sich bei den Empfehlungen – wenn man es denn so nennen kann -, die ich in diesem Artikel beschreibe, nicht um absolut FIPS 140-2 konforme Einstellungen handelt. Aber wer würde sich bei sowas auch auf einen Blog verlassen…
Jedoch resultiert eine sichere Konfiguration, die weit enfernt von paranoid und somit hoch-kompatibel bleibt.