Http nach https umleiten – redirect

Februar 13th, 2012

Wenn man eine Website auf https umgestellt hat möchte man auch dafür sorgen, daß die User ab sofort über https auf die Seite zugreifen.

Am einfachsten geht das mit einem Redirect in der vHost.conf der Domain.

Fügt man folgende Zeilen in die Konfiguration ein:

RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Danach “gracefulled” man den Apachen.

Dann werden alle Requests (incl. Pfad und Parameter) an https weitergeleitet.

So können die User ihre Bookmarks behalten.

Firefox: http/https in der Adresszeile anzeigen

Februar 7th, 2012

Die neuen Versionen von Firefox zeigen blöderweise nicht mehr an ob es sich um eine http oder eine https Seite handelt.
So besteht natürlich die Gefahr vertrauliche Daten in eine unverschlüsselte Seite einzugeben.

So kann man das ändern:

  1. Firefox starten
  2. In die Browserleiste folgendes eingeben: about:config
  3. Der Firefox müsste jetzt seine Einstellungen zeigen.
  4. Jetzt gibt man in das Feld “Filter” folgenden Text ein: browser.urlbar.trimURLs
  5. Auf den gefundenen Eintrag muss man jetzt doppelklicken. Der Eintrag sollte sich von true auf false ändern.
  6. Normalerweise sollte Firefox die Änderung sofort übernehmen, ansonsten muss man ihn kurz neustarten.

Speicherauslastung bei Linux anzeigen

Januar 30th, 2012

Wenn man wissen möchte wie die aktuelle Speicherauslastung beim Linuxserver ist geht das mit dem Befehl free.

Mit free -m bekommt man die Speicherauslastung in Megabytes angezeigt.

free -m
total used free shared buffers cached
Mem: 32190 18075 14114 0 555 10262
-/+ buffers/cache: 7258 24931
Swap: 2055 0 2055

Noch genauer geht es mit: cat /proc/meminfo

MemTotal: 32963080 kB
MemFree: 14452368 kB
Buffers: 568320 kB
Cached: 10508380 kB
SwapCached: 0 kB
Active: 16103772 kB
Inactive: 1688932 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 32963080 kB
LowFree: 14452368 kB
SwapTotal: 2104504 kB
SwapFree: 2104504 kB
Dirty: 2332 kB
Writeback: 0 kB
AnonPages: 6712432 kB
Mapped: 103044 kB
Slab: 642800 kB
CommitLimit: 18586044 kB
Committed_AS: 17277248 kB
PageTables: 30844 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 275848 kB
VmallocChunk: 34359462451 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 kB

Herausfinden welcher Port von welcher Applikation verwendet wird.

Januar 27th, 2012

Wenn man herausfinden möchte welches Programm welchen Port verwendet, kann man das mit folgendem Kommando machen:

netstat -ntpl

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:49152 0.0.0.0:* LISTEN 3202/upnpd
tcp 0 0 0.0.0.0:6881 0.0.0.0:* LISTEN 24683/btd
tcp 0 0 0.0.0.0:548 0.0.0.0:* LISTEN 22129/afpd
tcp 0 0 0.0.0.0:3493 0.0.0.0:* LISTEN 7314/upsd
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 23805/rsyncd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 8411/mysqld
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 22409/smbd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2477/apache
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 3335/_thttpd_
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 22136/proftpd: (acc
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7871/sshd
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 3498/cupsd
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 21254/(squid)
tcp 0 0 0.0.0.0:8090 0.0.0.0:* LISTEN 3977/stunnel
tcp 0 0 192.168.178.104:8091 0.0.0.0:* LISTEN 23299/privoxy
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3977/stunnel
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 22409/smbd

auf der Qnap NAS sollte man nicht das mitgelieferte netstat von der Busybox verwenden sondern das Paket net-tools nachinstallieren.

ipkg install net-tools

Nach der Installation ruft man das dann folgendermaßen auf:

/opt/bin/netstat -ntpl

Apache auf Qnap als Reverseproxy benutzen.

Januar 26th, 2012

Wenn man zuhause nicht jeden einzelnen Rechner direkt ins Haifischbecken (Internet) zu hängen möchte oder einfach nur mehrere Server über den selben Port ansprechen möchte, kann man das mit dem Apachen sehr einfach realisieren.
Da die Qnap (z.B. die Qnap TS-112) relativ billig erworben werden kann, eignet sie sich sehr gut für diesen Zweck.
Zuerst sollte der Apache Webserver auf der Qnap aktiviert werden. Das kann man im Menu “Network Services” beim Unterpunkt “Web Server” erledigt werden.
Der “horchende” Port ist eigentlich egal, da letztendlich nur der Port zählt der beim Router nach draußen freigegeben wird.
Port 80 ist hier eine gute Wahl. Für SSL geht natürlich auch der Port 443.
Für die Reverseproxyfunktion benutzen wir mod_proxy. Die Module binden wir in der Apachekonfiguration ein.

vi /etc/config/apache/apache.conf

Dort suchen wir die Zeile LoadModule php5_module modules/libphp5.so und fügen darunter folgende Zeilen ein:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Dann editieren wir einen vorhandenen vHost oder erstellen einen neuen in folgender Datei:

/etc/config/apache/extra/httpd-vhosts.conf
oder
/etc/config/apache/extra/httpd-vhosts-user.conf

Beide Dateien werden beim Neustart des Apachen geladen.

Ein vHost sieht dann folgendermaßen aus:

<VirtualHost *:80>
ServerName {Servername/Domainname}
DocumentRoot "/share/Qweb/{Webverzeichnis}"
ProxyRequests Off
ErrorLog "/share/Qweb/{Logfileverzeichnis}/error_log"
CustomLog "/share/Qweb/{Logfileverzeichnis}/access_log" custom

<Proxy *>
Order deny,allow
Deny from .ru .ir .it
Allow from .de .com .org .us .net
</Proxy>

ProxyPass / http://{ZielserverIP}/
ProxyPassReverse / http://{ZielserverIP}/
ProxyPass /favicon.ico !

</VirtualHost>

 

Danach restarten wir den Webserver:

/etc/init.d/Qthttpd.sh restart

 

Sofern nichts schiefgegangen ist sollte der vHost jetzt von außen erreichbar sein.
Zur Not kann man den vHost auch simulieren indem man ihn in die lokale hosts Datei einträgt.

Werte der php.ini im Script überschreiben.

Januar 25th, 2012

In letzter Zeit hatte ich bei meiner Installation des DAM (Digital Asset Management) PHP Resource Space
folgende Fehlermeldung beim Versuch ganze Verzeichnisse zu importieren:
Fatal error: Allowed memory size of 134217728 bytes exhausted

Der Fehler trat auf wenn ich das Script /pages/tools/staticsync.php ausführte.

Ich erzeugte also eine neue Datei irgendwas.php mit folgendem Inhalt:

<?php
phpinfo();
?>

Hiermit wollte ich herausfinden welche php.ini angesprochen wird wenn ich das Script direkt über die Konsole ausführe.
Dummerweise stand dort ein Memory_Limit von 128MB obwohl ich in der angesprochenen php.ini den Wert 256M eingetragen hatte.

Also fügte ich dem Script /pages/tools/staticsync.php folgende Zeile am Anfang hinzu:

<?php ini_set("memory_limit","256M"); ?>

Durch diesen Wert wird nun das Memory_Limit der php.ini für dieses Script überschrieben.

Diese Vorgehensweise sollte auch für andere Werte funktionieren.

Timelapse mit Sony Nex 5 und Pclix XT

Januar 9th, 2012

Nachdem ich schon den ersten Versuch einer Timelapse mit der Sony Nex 5 gepostet habe, möchte ich nun noch eine “richtige” Timelapseaufnahme mit der Sony Nex 5 nachschieben.

Dieses mal habe ich mit dem Timelapsomat Pclix XT einige hundert Einzelaufnahmen erstellt.
Diese hab ich dann mit dem Programm Photolapse zusammengefügt.

Den Zoomeffekt hab ich mit FinalCut erzeugt.

Auf Super-hd.com findet ihr noch weitere Timelapse- und Stopmotionaufnahmen welche mit der Sony Alpha Nex 5 und dem Pclix XT gemacht wurden.

Konfiguration bei Nagios checken

Dezember 7th, 2011

Normalerweise ist Nagios beim Restart nicht besonders gesprächig was Fehler in der Konfiguration angeht.

Mit folgender Zeile erfährt man detaillierter was mit der Konfiguration nicht stimmt:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

einfaches Performancelog basierend auf vmstat oder top

November 8th, 2011

Wenn man mal kurzfristig über einen mittellangen Zeitraum das Verhalten von Speicher und CPU in ein Logfile packen möchte, kann man das folgendermaßen bewerkstelligen:

Zunächst mal pastet man folgende Zeile in die Konsole:

/usr/bin/vmstat | /usr/bin/sed "s/^/$(date) | /" > /var/log/perflog.log

Damit erzeugt man die ersten Zeilen des Logfiles. Das macht es im Nachhinein einfacher das Logfile auszuwerten.

Anschließend erzeugt man einen Eintrag im Crontab:
* * * * * /usr/bin/vmstat | /usr/bin/awk 'NR == 3' | /usr/bin/sed "s/^/$(date) | /" >> /var/log/perflog.log

Das bewirkt, daß jede Minute eine neue Zeile in das Logfile geschrieben wird.

Die Logfilelocation kan man natürlich frei wählen.

Eine weitere schöne Möglichkeit bietet sich mit top.

Trägt man folgende Zeile in die Crontab ein:

/usr/bin/top -c -b -n 1 | /usr/bin/sed ':a;N;$!ba;s/[ \t]*\n/;/g' | /usr/bin/awk -F";" '{print $1,"|", $2,"|", $3,"|", $4,"|", $8}' | /usr/bin/sed "s/^/$(date) | /" >> /var/log/performance.log

Wird ein sehr ausführliches Performancelog erstellt.

Hier bitte nicht vergessen das Logrotate (/etc/logrotate.d) zu aktivieren.

Das Tüpfelchen auf dem i bildet folgende Zeile:
* * * * * (/usr/bin/users;COLUMNS=1800 /usr/bin/top -c -b -n 1) | /usr/bin/sed ':a;N;$!ba;s/[ \t]*\n/;/g' | /usr/bin/awk -F";" '{print "users: ", $1,"|",$2,"|", $3,"|", $4,"|", $5,"|", $9}' | /usr/bin/sed "s/^/$(date) | /" | /usr/bin/sed "s/users: top/users: | top/" >> /var/log/performance.log

Hiermit werden die jeweils angemeldeten User, die Speicherauslastung, der CPU-Load, die Uptime und der aktuell cpu-hungrigste Task incl. Timestamp gelogged.

“Servlet is privileged and cannot be loaded by this web application” Fehlermeldung beim Tomcat

Oktober 14th, 2011

Wenn man beim Aufruf einer Applikation auf dem Tomcat von folgender Fehlermeldung überrascht wird:

Servlet is privileged and cannot be loaded by this web application

Kann man dies beheben indem man in der context.xml folgenden Wert ergänzt:

<Context …  muss in <Context privileged=”true”… geändert werden.

Nur noch kurz den Tomcat durchstarten und schwupps müsste der Fehler behoben sein.