Archive for the ‘howtos’ Category

Squid Logfiles auswerten mit SARG

Posted on the February 1st, 2009 under howtos by

Wer die Logfiles seines Squid Proxy Servers grafisch darstellen möchte, für den bietet sich SARG – der Squid Analysis Report Generator – an.

Das Auswertungstool ist bei allen gängigen Distributionen als Paket verfügbar und kann mit den üblichen Paketmanagern installiert werden. Ohne weitere Parameter vermutet sarg die Squid Logdatei unter /var/log/squid/access.log und möchte seine HTML Ausgabe nach /var/www/squid-reports/ schreiben. Dies kann man aber problemlos übersteuern:

[code language="css"]sarg -o /absolute/path/to/outputdir -l access.log[/code]

Nach dem Aufruf findet sich eine übersichtliche HTML Statistik im outputdir. Diese zeigt unter anderem eine trafficbasierte Auswertung von Proxybenutzern und besuchten Webseiten an. Schnell lässt sich herausfinden welche Seiten am häufigsten besucht wurden, welcher Benutzer den meisten Traffic verursacht hat oder welche Dateien runtergeladen wurden.

sarg_1sarg_2

SARG ist optimal für die tägliche Auswertung der Squid Logfiles mittels eines Cronjobs geeignet. Weitere Anwendungsmöglichkeiten und Parameter verrät die Manpage oder sarg --help.

SARG Homepage

Ubuntu Intrepid Ibex auf dem Dell XPS M1330

Posted on the October 30th, 2008 under howtos by

Wer das aktuelle Ubuntu 8.10 auf seinem Dell XPS M1330 mit nvidia Grafikkarte installiert, wird sich vielleicht über die nervenden lauten Lüftergeräusche wundern. Dies hängt mit dem aktuellen nvidia Treiber und der installierten BIOS Revision zusammen. Um den Lüfter zum Schweigen zu bringen, muss ein BIOS Upgrade durchgeführt werden.

Das BIOS Upgrade kann direkt aus dem Systembetrieb durchgeführt werden. Dazu muss zuerst das Paket libsmbios-bin installiert werden:

[code language="css"]# aptitude install libsmbios-bin[/code]

Anschließend müssen wir die System ID herausfinden.

[code language="css"]# sudo getSystemId
Libsmbios: 0.12.1
System ID: 0x01DD
Service Tag: DT6WLB1
Express Service Code: 30063287773
Product Name: Dell DM061
BIOS Version: 2.3.2
Vendor: Dell Inc.
Is Dell: 1
[/code]

Den Wert bei System ID notieren und dann die aktuelle BIOS Version (höchste Versionsnummer) bei Dell runterladen. In dem BIOS Ordner befindet sich eine Datei bios.hdr, die wir zum Upgrade benötigen.

[code language="css"]# sudo dellBiosUpdate -u -f ./bios.hdr
Supported RBU type for this system: (MONOLITHIC)
Using RBU v2 driver. Initializing Driver.
Setting RBU type in v2 driver to: MONOLITHIC
Prep driver for data load.
Writing RBU data (4096bytes/dot): ............................
..............................................................
.......................
Notify driver data is finished.
Activate CMOS bit to notify BIOS that update is ready on next boot.
Update staged sucessfully. BIOS update will occur on next reboot.
[/code]

Der Rechner muss nun neu gestartet werden. Nach dem Systemneustart sollte der Lüfter wieder normal arbeiten. Weitere Infos finden sich im Dell Linux Wiki.

DNS Server auf Cache Poisoning testen

Posted on the July 16th, 2008 under howtos by

Aktuell ist immer noch die von Dan Kaminsky gefundene DNS Lücke im Gespräch, die Cache Poisoning vereinfacht. Als Hauptgrund für die Lücke werden anfällige DNS Server, die keine zufälligen Ports generieren, genannt.

Zur Prüfung des eigenen Nameservers bzw. des Nameservers des Providers auf diese Schwachstelle, hat das DNS-OARC einen extra DNS Dienst zur Verfügung gestellt, der einem Auskunft über das Verhalten des genutzten DNS Servers gibt. Abgefragt wird der Dienst mittels des dig Clients aus der BIND Familie:

Um den auf dem aktuellen System eingestellten DNS Resolver zu prüfen, reicht folgender Befehl:

[code language="css"]dig +short porttest.dns-oarc.net TXT
z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"217.237.150.202 is POOR: 27 queries in 4.8 seconds from 26 ports with std dev 160.37"[/code]

Dieser DNS Server ist von der Schwachstelle betroffen. T-Online muss also noch was an seinen DNS Servern tun.

Um andere DNS Server zu prüfen, geben wir diese einfach mit einem vorangestellten @ an:

[code language="css"]dig +short @my.nameserver.net porttest.dns-oarc.net TXT
z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"212.11.11.11 is GOOD: 226 queries in 799.3 seconds from 226 ports with std dev 18383.92"[/code]

Der nun getestete Nameserver verhält sich schon besser – die Quellports werden zufällig vergeben, so dass ein Schutz vor der weitreichenden DNS Schwachstelle bestehen dürfte.

via

Howto: UMTS mit o2 Surf Card unter Linux

Posted on the May 2nd, 2008 under howtos,tests,tipps by

o2 Surf Card

Da mein Adminhandy kein HSDPA kann und mein Kollege kürzlich einfach so eine neue PCMCIA-UMTS Karte bestellt hat, stand ich neulich vor der Aufgabe, das Ding unter Linux zum Laufen zu bekommen – was sich als nicht ganz trivial herausstellte.
Zuerst habe ich die Karte einfach in den PCMCIA-Slot meines Laptop geknallt und siehe da: es tat sich sogar etwas! Ein neues Gerät wurde erkannt! Die LED der Karte blinkte freudig! Es wird doch wohl nicht etwa auf Anhieb klappen? Ein neues USB-Storage Device wurde gefunden! Ääääh? Neugierig habe ich die 1. Partition (FAT) gemountet und siehe da, sie ist völlig leer. Nach einiger Recherche bin ich dann zu folgenden Ergebnissen gekommen:

  • die Karte wird erstmal als OHCI USB Mass Storage Device erkannt (ja, über PCMCIA, ja, das geht!), der Windows Treiber “switcht” dann um und sie ist plötzlich ein über USB angebundenes Serial Device
  • Das Ding wird auch “GlobeTrotter GT MAX 3.6″ geschimpft

So, jetzt wollen wir das Ganze mal zum Laufen bringen.

mod_auth_mysql, Apache 2.2 und Debian Etch

Posted on the April 7th, 2008 under howtos by

Authentifizierung gegen eine MySQL Datenbank mit Apache 2.2 wird dem Anwender unter Debian Etch ziemlich schwer gemacht. Warum? Es gibt das allseits beliebte libapache2-mod-auth-mysql Paket nicht mehr im Etch Repository, da es nicht sauber gegen Apache 2.2 gebaut werden kann. Da ich alle anderen Lösungen für unnötig kompliziert oder zu unsicher halte, hier eine kleine Anleitung, um das Modul per Hand zu kompilieren.

Offlinekopie einer Website mit wget

Posted on the April 3rd, 2008 under howtos by

Wer auf die Schnelle einen lokalen Mirror seiner Homepage erstellen will, muss nicht auf spezielle Tools zurückgreifen. Das Standardtool wget(1) macht hier einen exzellenten Job:

[code language="css"]wget -m -k -K -E http://www.yoursite.com[/code]

Hiermit wird eine Kopie von der angegeben URL in dem lokalen Ordner www.yoursite.com erstellt. Dabei wird bei dynamischem Content die Dateiendung .html hinzugefügt sowie alle internen Verlinkungen und Pfade angepasst.

Die Bedeutung der verwendeten Parameter im Einzelnen:

-m Optionen für das Spiegeln (-r -N -l inf --no-remove-listing)
-k konvertiert die Links innerhalb der HTML Dokumente
-K Sicherung der Originaldateien vor Konvertierung (Dateiendung .orig)
-E Anhängen der .html Endung

Mehr Optionen und eine genauere Beschreibung liefert man wget.

Stoppt den Bilderklau mit lighttpd

Posted on the March 14th, 2008 under howtos by

Viele Leute suchen sich ihre Bilder bei Google & Co zusammen und verlinken diese dann direkt auf ihrer Homepage oder eBay Auktion. Zwar kostet Traffic heute lange nicht mehr so viel, wie noch vor einigen Jahren. Dennoch stört der Bilderklau und verfälscht Statistiken. Die Lösung: eine Überprüfung des Referers.

Folgender Code wird beim vHost eingetragen, dessen Bilder geschützt werden sollen:

[sourcecode language="css"]
$HTTP["referer"] != "http://www.adminlife.net" {
url.access-deny = ( ".jpg", ".jpeg", ".png", ".gif" )
}
[/sourcecode]

Ab sofort werden Bilder nur noch angezeigt, wenn der Referrer http://www.adminlife.net entspricht.

Wem das zu radikal ist, der kann mit regulären Ausdrücken weitere Subdomains oder Hosts erlauben. Im folgenden Beispiel werden alle Google Seiten sowie alle meine Domains mit Subdomains erlaubt.

[sourcecode language="css"]
$HTTP["referer"] !~ "^($|(http|https)://.*\.(google\.*|adminlife\.(net|de|org)))" {
url.access-deny = ( ".jpg", ".jpeg", ".png", ".gif" )
}
[/sourcecode]

Howto: Software-RAID 1 unter FreeBSD

Posted on the January 19th, 2008 under howtos by

Um einem FreeBSD Server die nötige Datensicherheit zu geben, muss es nicht immer ein teures Hardware-RAID sein. Ein Software-RAID mit den GEOM Tools bietet gute Performance und hohe Sicherheit zum Nulltarif.

Nach der Installation auf einer der beiden Festplatten können wir im laufenden Betrieb das RAID definieren. Dazu müssen wir jedoch zuerst den Sicherheitsschutz der Festplatte im Kernel deaktivieren:
[sourcecode language="css"]# sysctl kern.geom.debugflags=16
kern.geom.debugflags: 0 -> 16[/sourcecode]

Danach können wir die Platte mit dem Betriebssystem unserem RAID Verbund hinzufügen:

[sourcecode language="css"]# gmirror label -v -b round-robin gm0 /dev/ad0
Metadata value stored on /dev/ad0[/sourcecode]

Mittels des Parameters -b round-robin wählen wir den Round-Robin Algorithmus zum Lesen und Schreiben der Daten im RAID Verbund. Weitere Verfahren finden sich in gmirror(8). Die frisch erstellten RAID Devices finden sich unter /dev/mirror/ wieder.
Damit das nötige GEOM Kernel Modul geladen wird und unser RAID 1 beim Bootvorgang erkannt wird, fügen wir folgende Zeile in die loader.conf ein:

[sourcecode language="css"]# echo geom_mirror_load="YES" >> /boot/loader.conf[/sourcecode]

Zusätzlich müssen noch die Einträge in der fstab angepasst werden:

[sourcecode language="css"]# sed -i.bak ‘s%ad%mirror/gm%’ /etc/fstab[/sourcecode]

Hierdurch werden Einträge wie /dev/ad0s1a zu /dev/mirror/gm0s1a.
Nun ist es an der Zeit das System neu zu starten. Beim Bootvorgang sollte nun der GEOM Kernel Treiber geladen werden und Meldungen wie diese erscheinen:

[sourcecode language="css"]GEOM_MIRROR: Device gm0 created (id=2125638583).
GEOM_MIRROR: Device gm0: provider ad0 detected.
GEOM_MIRROR: Device gm0: provider ad0 activated.
GEOM_MIRROR: Device gm0: provider mirror/gm0 launched.
GEOM_MIRROR: Device gm0 already configured.
Mounting root from ufs:/dev/mirror/gm0s1a[/sourcecode]

Wieder im laufenden System hängen wir die zweite Platte ins RAID ein, da ein RAID 1 mit nur einer Festplatte wenig Sinn macht:

[sourcecode language="css"]# gmirror insert gm0 /dev/ad2
GEOM_MIRROR: Device gm0: provider ad2 detected.
GEOM_MIRROR: Device gm0: rebuilding provider ad2.[/sourcecode]

Die Synchronisierung des RAID Verbunds wird gestartet. Den aktuellen Status können wir uns mit gmirror anschauen:

[sourcecode language="css"]# gmirror list
Geom name: gm0
State: DEGRADED
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 2125638583
Providers:
1. Name: mirror/gm0
Mediasize: 10262568448 (9.6G)
Sectorsize: 512
Mode: r6w5e2
Consumers:
1. Name: ad0
Mediasize: 10262568448 (9.6G)
Sectorsize: 512
Mode: r1w1e1
State: ACTIVE
Priority: 0
Flags: DIRTY
GenID: 0
SyncID: 1
ID: 3986018406
2. Name: ad2
Mediasize: 10262568448 (9.6G)
Sectorsize: 512
Mode: r1w1e1
State: SYNCHRONIZING
Priority: 0
Flags: DIRTY, SYNCHRONIZING
GenID: 0
SyncID: 1
Synchronized: 1%
ID: 1946262342[/sourcecode]

Sobald der Rebuild Vorgang abgeschlossen ist, erscheint folgende Meldung:

[sourcecode language="php"]GEOM_MIRROR: Device gm0: rebuilding provider ad2 finished.
GEOM_MIRROR: Device gm0: provider ad2 activated[/sourcecode]

Unser System ist nun mit einem voll funktionierenden Software-RAID 1 abgesichert. Zur Überwachung empfehle ich dieses Nagios Plugin, um bei einer defekten Festplatte schnell reagieren zu können.

via