Kategorie-Archiv: Web

HowTo – Install CACert Root Certificates in Debian

Problem:
Seit neustem haben sich die Maintainer des Debian Paketes ca-certificates dazu entschieden, die Root Zertifikate von CACert aus dem Paket zu entfernen.
Dazu existiert auch ein entsprechender Bugreport.
Die Maintainer folgen nun dem Mozilla Zertifikatsspeicher – und genau in diesen Speicher haben es die CACert Stammzertifikate (aus Kostengründen) nie geschafft. Details dazu finden sich bei CAcert.

ca-certificates (20140223) unstable; urgency=medium

Debian will no longer ship cacert.org certificates.

Update mozilla/certdata.txt to version 1.97.
Certificates added (+), removed (-), and renamed (~):
+ "ACCVRAIZ1"
+ "Atos TrustedRoot 2011"
+ "E-Tugra Certification Authority"
+ "SG TRUST SERVICES RACINE"
+ "T-TeleSec GlobalRoot Class 2"
+ "TWCA Global Root CA"
+ "TeliaSonera Root CA v1"
+ "Verisign Class 3 Public Primary Certification Authority"
~ "Verisign Class 3 Public Primary Certification Authority"_2
(both Verisign Class 3 CAs now included with duplicate CKA_LABEL fix)
- "Entrust.net Secure Server CA"
- "Firmaprofesional Root CA"
- "GTE CyberTrust Global Root"
- "RSA Root Certificate 1"
- "TDC OCES Root CA"
- "ValiCert Class 1 VA"
- "ValiCert Class 2 VA"
- "Wells Fargo Root CA"

-- Michael Shuler Sun, 23 Feb 2014 15:21:39 -0600

Lösung:
Wir müssen nun die Root Zertifikate selbst installieren um einen Zustand wie vor dem Removal zu haben.
Als User root muss folgendes durchgeführt werden

# Erstellen eines eigenen Zertifikatspeichers unter /usr/local
mkdir -p /usr/local/share/ca-certificates
# Download der Stammzertifikate von CACert
wget http://www.cacert.org/certs/root.crt -O /usr/local/share/ca-certificates/cacert-root.crt
wget http://www.cacert.org/certs/class3.crt -O /usr/local/share/ca-certificates/cacert-class3.crt
# Symlinks in /etc/ssl/certs erstellen
ln -s /usr/local/share/ca-certificates/cacert-root.crt /etc/ssl/certs/cacert-root.crt
ln -s /usr/local/share/ca-certificates/cacert-class3.crt /etc/ssl/certs/cacert-class3.crt
# Zertifikatsspeicher aktualisieren
update-ca-certificates

Nun sind die CACert Zertifikate wieder vertrauenswürdig.

CUPS Weboberfläche im Netzwerk freigeben

Problem:
Ich habe einen Druckserver und möchte das Webinterface vom lokalen Netzwerk aus nutzen.

Lösung:
Früher durfte man die cupsd.conf bearbeiten, heute aber kann man das Webinterface via sudo cupsctl --remote-admin im Netzwerk freigeben.
Wen die Paranoia plagt, der kann nach getaner Arbeit das Webinterface wieder fürs Netz deaktivieren.sudo cupsctl --no-remote-admin

Debian für OSCam Installation vorbereiten

Zuerst müssen die benötigten Pakete installiert werden

sudo apt-get install cvs autoconf libccidmake patch ncurses-bin gcc g++ flex bison pkg-config libpng3 tar bzip2 gzip zlib1g-dev lib32z1 libssl-dev libpcsclite-dev libusb-dev

Dann müssen die Sources heruntergeladen werden

cd /opt/sources
svn co http://streamboard.de.vu/svn/oscam/trunk oscam-devel

Jenachdem was man vor hat, kann man nun noch das Script von den Entwicklern entsprechend anpassen und ablegen. Dort findet sich auch die umfangreich zu konfigurierende cmake-Befehlskette für die Kompilierung selbst.

Oracle Java Package erstellen unter Debian

Problem:
Oracles Java wird benötigt, ist aber in keinem Repo verfügbar.

Lösung:
Ich habe hier schon einen anderen Beitrag zur manuellen Installation von Java verfasst, dieser ist hiermit ungültig und sollte NICHT MEHR VERWENDET WERDEN!!

Um die Dinge der Installation rückgängig zu machen, empfiehlt sich die Ausführung folgender Befehle als root

Achtung, hier wird die 64bit Version genutzt! Für 32bit müssen die Pfade (amd64 –> i386) entsprechend angepasst werden!


update-alternatives --remove java /usr/lib/jvm/java-7-oracle/bin/java
update-alternatives --remove javac /usr/lib/jvm/java-7-oracle/bin/javac
update-alternatives --remove javaws /usr/lib/jvm/java-7-oracle/bin/javaws
update-alternatives --remove javadoc /usr/lib/jvm/java-7-oracle/bin/javadoc
update-alternatives --remove javah /usr/lib/jvm/java-7-oracle/bin/javah
update-alternatives --remove javap /usr/lib/jvm/java-7-oracle/bin/javap
update-alternatives --remove java_vm /usr/lib/jvm/java-7-oracle/jre/bin/java_vm
update-alternatives --remove jvisualvm /usr/lib/jvm/java-7-oracle/bin/jvisualvm
update-alternatives --remove policytool /usr/lib/jvm/java-7-oracle/jre/bin/policytool
update-alternatives --remove ControlPanel /usr/lib/jvm/java-7-oracle/jre/bin/ControlPanel
update-alternatives --remove iceweasel-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove firefox-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove mozilla-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove midbrowser-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove iceape-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove xulrunner-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove xulrunner-addons-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so

Im Anschluss sollte das aktuellste, verfügbare Paket java-package installiert werden

apt-get install java-package

Ich habe die Debian Backports eingebunden (Howto) und habe daher zusätzlich folgenden apt-get Schalter genutzt.
-t wheezy-backport
Nun ist das Tool make-jpkg bereitgestellt, mit welchem künftig das Installationspaket / Update generiert werden wird! =)

Zuerst lädt mal auf der Java-Webseite das aktuelle Paket für die verwendete Architekture (i386/amd64) herunter. Dann führt man als User (!! Wichtig, als root wirds mit Fehler enden !!)

make-jpkg jdk-7u51-linux-x64.tar.gz

aus.

Am Ende erhält man daraus ein Paket, in meinem Fall oracle-java7-jdk_7u51_amd64.deb
Dieses kann als root wie gewohnt installiert werden!

dpkg -i oracle-java7-jdk_7u51_amd64.deb

Im Anschluss sollte man sich vergewissern, welche Applikationen denn für die Bereitstellung von „java“ noch installiert sind. Diese kann man eigentlich alle Deinstallieren sofern keine Abhängkeit zu anderen Paketen besteht.
update-alternatives --list java zeigt die installiert-/registrierten Binaries. Welchem zu deinstallierendem Debian Paket die jeweilige Binary gehört, kann mit „dpkg -S“ rausgefunden werden.

Hier ein Beispiel:

user@host:~$ update-alternatives --list java
/usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java
user@host:~$ dpkg -S /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java
oracle-java7-jdk: /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java

Ergebnis: oracle-java7-jdk wäre nun ein Ergebnis – aber das ist in diesem Fall auch gut so! 😉

Apache Rewrite Cheatsheet

Hier eine Auflistung sinniger und unsinniger Weiterleitungsregeln
Zu fehlerfreien Nutzung ist ein Grundwissen über Webserver Statuscodes (nach RFC 2616) nötig. Nachfolgende wichtige sind auf der Seite http://www.debianhelp.co.uk/errorcodes.htm zu finden. Auch auf Wikipedia findet sich eine detailierte Auflistung aller Codes.

Error code categories

Successful Client Requests:
200 OK
201 Created
202 Accepted
203 Non-Authorative Information
204 No Content
205 Reset Content
206 Partial Content

Client Request Redirected:
300 Multiple Choices
301 Moved Permanently
302 Moved Temporarily
303 See Other
304 Not Modified
305 Use Proxy

Client Request Errors:
400 Bad Request
401 Authorization Required
402 Payment Required (not used yet)
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable (encoding)
407 Proxy Authentication Required
408 Request Timed Out
409 Conflicting Request
410 Gone
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type

Server Errors:
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported

1. Einfache, permanente Weiterleitung (Status 301) an eine andere Adresse (kein DocumentRoot im Vhost notwendig!)

Redirect permanent / https://www.anderedomain.de/

2. URL Umschreibung zur Kanonisierung (SEO)

RewriteCond %{HTTP_HOST} !^www.kommuniziertedomain.de
RewriteRule (.*) http://www.kommuniziertedomain.de%{REQUEST_URI} [R=301,QSA,L]

3. URL immer auf https umschreiben

RewriteCond %{HTTPS} off
RewriteRule (.*)$ https://www.meinedomain.de%{REQUEST_URI} [R=301,QSA,L]

X11 Forwarding unter SSH nach Userwechsel mit su unter Linux

Problem:
Ich habe meinen SSH Server auf X11 Forwarding getrimmt und das funktioniert auch alles super. root Login wurde per Config unterbunden.
Nun muss ich aber als root eine X11 Applikation ausführen – wie geht das nun? Nach dem Benutzerwechsel bekomme ich immer folgende Meldung

X11 connection rejected because of wrong authentication.

Lösung:
Ich melde mich wie gewohnt an meinem Server mit aktivem X11 Forwarding an

ssh user@server -X

In meinem Home wurde, sofern nicht schon vorhanden, eine „.Xauthority“ Datei angelegt. Diese kann natürlich nur von meinem User gelesen und beschrieben werden.
Will ich nun als User „root“ eine X11 Applikation ausführen, muss eine solche Datei auch im $HOME des jeweiligen Users liegen. Für den User root geht das konkret wie folgt. Ich wechsle via „su root“ und befinde mich noch im $HOME meines Users. Nun kopier ich die .Xauthority einfach in mein Home.

ssh max@server -X # erstellte .Xauthority gilt nur für User max
su root #Userwechsel zu root
cp .Xauthority ~ #kopieren der .Xauthority von /home/max nach ~

Und schon kann auch root X11 Applikationen via ssh starten!

Internen PDF Viewer von Firefox deaktivieren

Problem:
Der neue PDF Viewer in Mozilla Firefox ist zwar gut gemeint, trotzdem möchte ich bitte, wie zuvor, direkt einen Viewer meiner Wahl verwenden.

Lösung:
Die Sache ist ganz einfach
about:config im Browser aufrufen
und in der Suchleiste „pdfjs.disabled“ suchen.
Diesen Wert kann man dann einfach doppelklicken, so dass die Schrift dick wird und als Wert „true“ gesetzt ist.

Fertig!

HOWTO – FFMpeg Komprimierung unter Linux – WMV

Problem:
Ich habe verschiedene Videos encodiert in verschiedenen Codecs, welche nun für Windows bereit gestellt werden müssen.
Der betroffene WindowsUser hat keine Rechte auf seinem PC und kann somit selbstständig keine zusätzlichen Codecs installieren.

Lösung:
Ich nutze vom Mediaplayer unterstützte Formate und encodiere die Videos mit FFMpeg neu. Ich nutze einen recht niedrigen qscale Wert um keine Qualitätseinbußen zu bekommen.

Weitere Infos zum Thema „qscale“ finden sich auch auf dieser informativen Seite
http://www.kilobitspersecond.com/2007/05/24/ffmpeg-quality-comparison/

Die Installation von FFMpeg wird hier natürlich voraus gesetzt.


ffmpeg -i input.mp4 -qscale 2 -vcodec msmpeg4 -acodec wmav2 output.wmv

Bei Bedarf kann noch getunt werden =)