Kurztipp: Mit Bash neuste Datei(en) in einem Verzeichnis finden
Geschrieben am 31. März 2011 um 16:52 Uhr 2 Kommentare
apticron+apt-listbugs: Nie mehr ein Update verpassen
Geschrieben am 1. Dezember 2007 um 13:58 Uhr Kein KommentarDer geplagte Sysadmin hat den ganzen Tag soviel zu tun – eines davon ist, die ausstehenden Patches im Auge zu behalten. Üblicherweise werden dazu RSS-Feeds und Mailinglisten abonniert und im Falle von Debian regelmäßig
aptitude update && aptitude dist-upgrade
ausgeführt, um nach Aktualisierungen der Debian-Pakete zu suchen.
Was für selbst compilierte Software nicht so richtig geht, ist für die Debian-Pakete möglich: Die Automatisierung des Checks.
Es gibt einige Admins, denen der manuelle Updatevorgang auch noch zu müselig ist und die das Update (mit Parametern) ebenfalls via cron erledigen. Ich bin allerdings der Meinung, dass dies zu “gefährlich” ist, da es in manchen Fällen vorkommt, dass die geupdateten Dienste nicht mehr starten oder andere Fehler produzieren. Ein waches wachsames Auge des Sysadadmins kann da schon helfen.
Also suchte ich nach einer Möglichkeit zeitnah über neue Pakete und deren Bugfixes informiert zu werden und fand sie:
apticron informiert via Mail, sobald neue Pakete zur Verfügung stehen. Im Zusammenspiel mit dem Perl-Skript apt-listbugs sieht man in der Infomail (und auch bei jedem manuellem Updatevorgang) auch gleich, welche Bugs gefixt wurden und kann so nach Wichtigkeit das Update planen.
So sieht eine Beispielmail dann im Ergebnis aus:
apticron report [Sat, 01 Dec 2007 06:35:14 +0100] ======================================================================== apticron has detected that some packages need upgrading on: fqdn.tld [ 123.123.123.123 ] The following packages are currently pending an upgrade: libmysqlclient15off 5.0.32-7etch3 mysql-client-5.0 5.0.32-7etch3 mysql-common 5.0.32-7etch3 mysql-server-5.0 5.0.32-7etch3 ======================================================================== Package Details:Lese Changelogs... --- Änderungen für mysql-dfsg-5.0 (libmysqlclient15off mysql-client-5.0 mysql-common mysql-server-5.0) --- mysql-dfsg-5.0 (5.0.32-7etch3) stable-security; urgency=high * SECURITY: Fix for CVE-2007-5925: The convert_search_mode_to_innobase function in ha_innodb.cc in the InnoDB engine in MySQL 5.1.23-BK and earlier allows remote authenticated users to cause a denial of service (database crash) via a certain CONTAINS operation on an indexed column, which triggers an assertion error. (closes: #451235) -- Norbert Tretkowski <nobse@debian.org> Thu, 15 Nov 2007 18:51:30 +0100 mysql-dfsg-5.0 (5.0.32-7etch2) stable-security; urgency=high * Security release prepared for the security team by the Debian MySQL maintainers. The patches were mostly taken from the Ubuntu project. * CVE-2007-2583: The in_decimal::set function in item_cmpfunc.cc in MySQL allowed context-dependent attackers to cause a denial of service (crash) via a crafted IF clause that results in a divide-by-zero error and a NULL pointer dereference. Closes: #426353 * CVE-2007-2691: MySQL did not require the DROP privilege for RENAME TABLE statements, which allows remote authenticated users to rename arbitrary tables. Closes: #424778 * CVE-2007-2692: The mysql_change_db function in MySQL did not restore THD::db_access privileges when returning from SQL SECURITY INVOKER stored routines, which allowed remote authenticated users to gain privileges. Closes: #424778 * CVE-2007-3780: It was discovered that MySQL could be made to overflow a signed char during authentication. Remote attackers could use crafted authentication requests to cause a denial of service. * CVE-2007-3782: Phil Anderton discovered that MySQL did not properly verify access privileges when accessing external tables. As a result, authenticated users could exploit this to obtain UPDATE privileges to external tables. -- Christian Hammers <ch@debian.org> Tue, 6 Dec 2007 21:54:01 +0100 ======================================================================== You can perform the upgrade by issuing the command: aptitude dist-upgrade as root on fqdn.tld It is recommended that you simulate the upgrade first to confirm that the actions that would be taken are reasonable. The upgrade may be simulated by issuing the command: aptitude -s -y dist-upgrade -- apticron
Zu installieren sind beide Tools ganz leicht über aptitude.
Notizzettel: DKIM und Postfix
Geschrieben am 25. November 2007 um 16:05 Uhr Kein KommentarDa ich mich mit DKIM im Zusammenhang mit Postfix noch einmal auseinander setzen will, hier mal als Merkzettel 2 Links zu Tutorials bzw. Konfigurationshinweisen…
Wenn ich das mal mit etwas Zeit umgesetzt habe, kommt hier sicherlich noch eine genauere Beschreibung meinerseits.
Linktip: ClamAV zur Spambekämpfung nutzen
Geschrieben am 12. November 2007 um 13:38 Uhr Kein KommentarAus aktuellem Anlass möchte ich nochmals an die Möglichkeit erinnern, durch zusätzliche Signaturen in Clam-AV Spam zu erkennen. Gerade der PDF- und Bilder-Spam wird dabei sehr zuverlässig ausgesiebt.
Hilferuf (für pimp my mailgraph)
Geschrieben am 6. November 2007 um 10:48 Uhr 8 KommentareHallo allerseits,
nachdem meine persönlichen Kontakte in dieser Frage leider nicht helfen konnten nun die Frage an die Allgemeinheit, also DICH:
Wenn Du einen Server mit Debian Etch betreibst und darauf Postfix mit dem amavisd-new Standard-Deb laufen hast, würde ich mich freuen, wenn Du mir mal einen Logauszug (mail.log) für folgende Fälle zusenden kannst:
- Spam (Kill-Level)
- Spam-Tag (Tag-Level)
- Virus
- Banned
Die Einträge können selbstverständlich anonymisiert sein, denn es geht mir nur um die Syntax der Einträge.
Patch erzeugen mit diff
Geschrieben am 4. November 2007 um 11:44 Uhr 1 KommentarEs gibt Dinge, die macht man nicht oft genug, um sie sich wirklich zu merken. Daher kann ich ja mal meinen Blog als Notizzettel verwenden, wenn ihr gestattet.
Um einen Patch einer Datei zu erhalten macht man einfach folgendes:
diff -u datei.org datei.bearbeitet > datei.patch
Die Dateinamen sprechen für sich, die Option -u führt dazu, dass nicht nur die geänderte Zeile angegeben wird, sondern auch noch umgebende Zeilen. Wenn sich also durch Anwendung mehrerer Patches die Zeilennummern geändert haben, so findet man leichter die richtige Position.
Ein Beispiel dazu findet ihr unter der Quelle: DOLINUX Protokoll vom 21.11.2001
duplicity 0.4.4 und ftplicity
Geschrieben am 29. Oktober 2007 um 14:26 Uhr 12 KommentareACHTUNG: Die in diesem Artikel besprochenen Versionen sowohl von ftplicity als auch duplicity sind bereits veraltet. Die grundsätzlichen Erklärungen sind zwar weiterhin valid, aber die Syntax oder Konfigurationsparameter könnten sich geändert haben. Bitte verwendet den Such-Tag “duplicity” bzw. den Such-Tag “ftplicity” und die Kommentare, um aktuelle Informationen zu finden.
duplicity ist gerade in der Version 0.4.4RC4 veröffentlicht worden und dort wurde u.a. die komplette Syntax für Befehle umgebaut.
Resultat: ftplicity geht nicht mehr.
Da dies ja kein Zustand ist, habe ich meine ftplicity-Version selbst geupdatet und stelle sie hier allen Interessierten zum Download zur Verfügung.
ACHTUNG: Diese Version funktioniert dann nicht mehr mit duplicity < 0.4.4RC4!
In diesem Zuge habe ich auch gleich noch 3 Parameter in ftplicity eingeführt, die ich für sehr sinnvoll hielt. Diese werden in der main.conf eingerichtet und heißen wie folgt:
- USESHORTNAMES : wird dieser Parameter gesetzt, werden die Volumennamen erstens kürzer und zweitens wird dabei auf Zeichen wie Doppelpunkte usw. im Dateinamen verzichtet, sodass das Backup z.B. auch auf einem Windowsrechner abgelegt werden kann.
- SETFULLIFOLDER: wird dieser Parameter gesetzt, wird trotz Aufrufes von “ftplicity backup” (inkrementelles Backup) ein volles Backup erstellt, wenn das letzte volle älter als die angegebene Zeitspanne ist.
- SETVOLSIZE: wird dieser Parameter gesetzt, wird die Größe der Volumen von 5MB (Standard) auf die angegebene Größe (in vollen MB) gesetzt
(zur Beispielkonfiguration für ftplicity 1.2)
Ich habe es zwar getestet, aber evtl. sind doch noch Syntaxfehler in der Datei. Bugreports sind daher willkommen.
Hier gehts zum Download: ftplicity 1.2
Plädoyer für mehr Verschlüsselung
Geschrieben am 22. Oktober 2007 um 16:04 Uhr 24 KommentareNicht erst seit den Vorstößen der europäischen Innenminister, allen voran Herrn Schäuble, die informationelle Selbstbestimmung des Bürgers gegenüber dem Staat vollends aufzuheben, ist es eine gute Idee, sämtliche Informationen, die einem lieb und teuer sind, vor fremden Zugriff zu schützen.
Wenn man einmal bedenkt, welche Informationen tagtäglich ungeschützt und unbeglaubigt den Benutzer wechseln, kann einem schon ganz anders werden.
Über welche Bereiche des virtuellen Lebens spreche ich eigentlich?
weiterlesen…
policyd-weight: Score-basierte Spamabwehr für Postfix
Geschrieben am 13. September 2007 um 0:05 Uhr 3 KommentareEs ist immer wieder das gleiche: Sobald man denkt, dass man das System perfekt eingerichtet hat, bekommt/ findet man gleich mehrere Hinweise, die einen daran zweifeln lässt.
Ausgangslage
Bei vielen, die sich halbwegs um einen spamgeschützten Postfix-Mailserver kümmern, wird die Konfiguration ungefähr so aussehen:
[...]
smtpd_recipient_restrictions =
permit_sasl_authenticated
permit_mynetworks
reject_invalid_hostname
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_unauth_destination
reject_unknown_sender_domain
reject_unknown_recipient_domain
reject_rbl_client dnsbl.ahbl.org
reject_rbl_client cbl.abuseat.org
reject_rbl_client sbl-xbl.spamhaus.org
reject_rbl_client dul.dnsbl.sorbs.net
reject_rbl_client bl.spamcop.net
check_policy_service inet:127.0.0.1:60000
reject_unknown_client
warn_if_reject reject_unknown_hostname
permit
[...]
Anmerkung: Diese Konfiguration hatte ich bereits hier gepostet, wurde von mir nun aber mehrfach verfeinert (siehe weiter unten).
Wie man sehen kann, sind mehrere RBL-Checks (Realtime-Blackhole-List) in der Konfiguration, welche bei jedem SMTP-Connect von anderen Mailservern überprüft werden und bei einem positiven Treffer sofort zum REJECT führen. Dies hat zwar funktioniert, birgt aber die Gefahr, dass man einen legitimen Mailserver ablehnt, weil er durch einen Fehler in einer der RBL landete.
Besser wäre es also doch, wenn man nachschauen könnte, ob der Mailserver in mehr als einer dieser RBLs steht. Mit Boardmitteln von Postfix ist dies vorerst nicht möglich.
Einführung in policyd-weight
Hier kommt policyd-weight als policy-Server ins Spiel und bietet folgende Zusatzfunktionen in der Standardkonfiguration an (Auszug von der Website):
- Score-basierte Auswertung von RBL/RHSBL
- Score-basierte Auswertung der Beziehung und Korrektheit von DNS-Einträgen, HELO und MAIL-FROM
- Caching von a) DNS-Request und b) Score-Ergebnissen (= Beschleunigung und weniger Traffic)
- eigene, schnelle DNS-Lookup.Routine
- frei konfigurierbare Scores und RBLs (sinnvolle Standardwerte bereits enthalten)
- keine Datenbank-Abhängigkeit
- Einrichtung auch nur für eine Teilmenge von Mails/Mailservern nutzbar (via postfix restriction classes)
Policyd-weight arbeitet als Policy-Server mit Postfix zusammen und entgegen z.B. AMAViS noch auf der Ebene des SMTP-Connects und ist daher in der Lage, Postfix einen REJECT der Verbindung zu empfehlen und die Mail erst gar nicht anzunehmen zu lassen. (Dies ist auch im Hinblick auf die Rechtslage ein wichtiger Unterschied.)
Diese Vorteile sprechen ja deutlich für den Einsatz von policyd-weight und daher nahm ich mir auch gleich die Installation vor, welche im Folgenden beschreiben werde.
Mail-Logs im Auge behalten
Geschrieben am 10. September 2007 um 2:56 Uhr 2 KommentareIch habe mir, nachdem ich der Postfix-Mailgruppe mehrere Hinweise las, die diversen Tools zur Logfile-Analyse angesehen und mich danach entschieden, ein paar auf regelmäßiger Basis einzusetzen.
Folgende Tools sind nun bei mir im Einsatz:
- pflogsumm: Postfix-Logs analysieren und zusammengefasst ausgeben (englische Version / deutsche Version)
Es läuft nächtlich als cron, analysiert den vorherigen Tag und wird mir via Mail zugesendet. - mailgraph: Postfix-Logs graphisch darstellen (z.B. ACCEPTs, REJECTs, BOUNCEs usw.) (Beispielausgabe)
- queuegraph: Postfix-Queue-Belastung wird graphisch aufbereitet
- couriergraph: Courier-Logs graphisch darstellen (z.B. LOGINs)
Die *graph-Tools sind jeweils eine Kombination aus Perl-Script (laufen als cron (queuegraph) oder daemon (mailgraph/couriergraph)) und Web-CGI für die Ausgabe im Web.
Sämtliche Tools sind zwar als Debian-Pakete erhältlich, aber die deutsche Pflogsumm-Version kann man derzeit nur über den o.g. Download installiert werden.
Fragen? Probleme? Immer her damit, denn dafür sind die Comments da…
automysqlbackup: versionierte Sicherung von mysql-Datenbanken
Geschrieben am 26. August 2007 um 18:44 Uhr 10 KommentareDie Sicherung von Datenbanken ist immer wieder eine Aufgabe, die man schnell vergisst und, wenn man sich dann damit befasst, für Kopfschmerzen sorgen kann.
Die Gründe:
- Während des Betriebs des Datenbankservers ist es meist nicht möglich einen konsistenten Abzug der Datendateien zu erhalten.
- Ein Anhalten des Datenbank-Server hat aber Auswirkungen auf das gesamte System.
- Selbst wenn man die Dateien kopieren kann, ist es nicht 100%ig sicher, dass man nach einem Absturz die Daten in einen neuen DB-Server mit vielleicht veränderter Versionsnummer einspielen/ einkopieren kann.
Es bietet sich daher an, statt der Datenbankdateien nur die gespeicherten Daten zu sichern. Dies ist mittels eines sog. dumps (eng. “Halde”) möglich, bei dem die Daten im Klartextformat ausgegeben und optimalerweise gleich in die Befehle eingeschlossen werden, die die Daten automatisiert wieder in einen neuen Datenbankserver einspielen können.
Auch wenn MySQL bereits von Hause aus Tools mitbringt, die diese Sicherungsmethode ermöglichen und auch Hilfstools wie phpMyAdmin eine Option zum Erzeugen von DB-dumps bieten, suchte ich eine noch simplere Methode, die ggf. noch Mehrwert bietet.
automysqlbackup
Das Projekt automysqlbackup ist unter sourceforge gelistet und derzeit in der Version 2.5 aktuell. Das Projekt scheint nicht mehr weiterentwickelt zu werden, denn der letzte Release ist vom 14.02.2006. Dies ist aber nicht weiter problematisch, da es sich im Prinzip nur um einen Wrapper für das mysql-tool mysqldump handelt und damit nicht sonderlich wartungs- oder weiterentwicklungsbedürftig ist.
Die Vorteile der Nutzung von automysqlbackup sind (von der Homepage):
- Backup aller oder ausgewählter Datenbanken
- gesamtes Backup in eine Datei oder einzelne Dateien pro Datenbank
- Platzsparend durch wahlweise Komprimierung mit gzip oder bzip2
- Sicherung auch von entfernten Servern
- Manueller Start oder cron-job-Steuerung möglich
- Ermöglicht die Zusendung des Logs oder der DB-Sicherung an eine bestimmte Mailadresse
Nach Befolgung der Installationsanweisungen auf der Homepage erzeugt das Tool regelmäßige Backups in dem gewählten Ordner und ermöglicht durch verschiedene Ordner ein versioniertes Backup, durch das man auch Zugriff auf ältere Versionen einer Datenbank hat.
Alles in allem ein sehr sinnvolles Tool und ich möchte es nicht mehr missen.
Fragen? Probleme? –> Schreib mir!
htop: topper als top
Geschrieben am 17. August 2007 um 21:25 Uhr Kein KommentarDank eines Beitrags von Matthias (ja, diese Seite ist sehr beliebt bei mir
), habe ich – genau wie er – mit dem Tool htop das altehrwürdige top ersetzen können.
Mit freier Sortierung, Baumansicht a la pstree und der Möglichkeit sämtliche Signals an einen Prozess zu senden (direkt aus der Liste) macht sich dieses Tool fast täglich bewährt – und man kann sogar Putty in den Vollbildmodus nehmen und hat auch was davon (entgegen der festen Breite bei top).
Hier gehts zum Artikel von Matthias mit Screenshots und allem drum und dran…
rootTV: wichtige Logs im Überblick behalten
Geschrieben am 17. August 2007 um 18:36 Uhr 10 KommentareEs ist ein Befehl, den ich sehr zu schätzen gelernt habe und fast täglich beim Debuggen brauche…
tail -f filename.log
Es erzeugt einen ständig aktualisierten Output für die betreffende Datei – perfekt, um das syslog nach einer Config-Änderung im Blick zu behalten.
Oder eben als rootTV: Den ganzen Tag einfach
tail -f /var/log/syslog
laufen haben und spannende Dinge sehen… zumindestens spannender als im deutschen Fernsehen.
Und mit
echo "tail -f /var/log/syslog" > ~/syslog.sh
chmod u+x ~/syslog.sh
~/syslog.sh
hat man einen noch schnelleren Weg, das syslog aufzurufen.
ftplicity: inkrementelle Backups sicher ablegen
Geschrieben am 17. August 2007 um 17:54 Uhr 74 KommentareACHTUNG: Die in diesem Artikel besprochenen Versionen sowohl von ftplicity als auch duplicity sind bereits veraltet. Die grundsätzlichen Erklärungen sind zwar weiterhin valid, aber die Syntax oder Konfigurationsparameter könnten sich geändert haben. Bitte verwendet den Such-Tag “duplicity” bzw. den Such-Tag “ftplicity” und die Kommentare, um aktuelle Informationen zu finden.
Nachdem ich durch einen Beitrag von Matthias wieder mal erinnert wurde, dass nicht Jeder Backups macht bzw. sie aktuell hält, dachte ich, dass ich mal kurz einen Teil meiner Backuplösung vorstelle:
Vorteile
In einem (schon älterem) Artikel der c’t (13/2006) wurde ein Tool vorgestellt mit dem man eine einfache und sichere Backup-Strategie für z.B. Root-Server fahren kann. Das Tool heißt ftplicity und ist im Prinzip nur ein Wrapper für das umfangreichere duplicity. Wie der Name schon sagt, kann möchte ftplicity nur via FTP kommunizieren, denn dies ist laut c’t (und auch meiner Erfahrung nach) der häufigste und simpelste Weg einen Backupspace zu erreichen.
Nun beseitigt ftplicity bzw. das dahinterliegende duplicity gleich mehrere Probleme, die bei dem “plain old Dir-to-FTP-sync” enstehen:
- Übertragungsqualität: FTP tendiert bei längeren durchgehenden Übertragungen (= eine große Datei) zu Fehleranfälligkeit und der ganze Upload muss noch einmal begonnen werden oder (was viel schlimmer ist) die Backupdatei ist zerstört/ fehlerhaft und lässt sich im Ernstfall nicht mehr richtig wiederherstellen.
Lösung: kleine Dateien übertragen durch Erstellung von Volumes
- Vertraulichkeit: Wer einen zweiten Server mit guter Anbindung hat braucht sich um diesen Punkt nicht zu sorgen, aber alle anderen, die entweder etwas Platz bei einem Bekannten in Anspruch nehmen oder von Ihrem Provider einen gewissen Platz an FTP-Space zur Verfügung gestellt bekommen (z.B. Strato, Hetzner) müssen sich schon fragen, ob denn der jeweilige Serveradmin nicht nachts mal aus Interesse sich durch das Mailbackup wühlt.
Lösung: Verschlüsselung der Daten mittels GPG
- Authentizität: Das oben genannte Problem wirft ebenfalls die Frage auf, wie weit man den so gesicherten Daten noch vertrauen kann, wenn “Unbekannte” auf die Daten Zugriff hatten. Nichts wäre wohl schlimmer, als dass man sich mit dem Restore auch gleich eine passwd-Datei mit neuen SSH-Usern runterzieht (nette Idee, btw).
Lösung: Die Signatur der Daten mittels GPG, welche auch beim Restore geprüft werden.
- Datenvolumen: Je mehr Daten man gesichert hat, desto leichter findet ein Restore statt. Allerdings nimmt damit auch das Übertragungsvolumen zu, was erstens mehr Backupzeit kostet und zweitens in den meisten Hosterverträgen auch begrenzt ist.
Lösung: Inkrementelle Backups (nur geänderte Daten) unter Nutzung der erprobten rsync-Bibliothek
Diese Probleme werden also von der hier vorgestellten Lösung bereits vermieden. Aber – richtig eingerichtet – kann es noch mehr:
Weitere Vorteile
- Einzelrestore: Wer kennt das nicht: Schnell mal die Config vom Mailserver bearbeitet und statt die alte Zeile auszukommentieren löscht man sie… und siehe da, rien ne va plus! Der Mailserver startet nicht mehr und man kann sich partout nicht mehr an die besagt Zeile erinnern. Wohl dem, der ein Backup von den Configdateien hat und noch wohler dem, der nicht das ganze Backup wiederherstellen muss, um die Einzeldatei zu erhalten.
Lösung: ftplicity besitzt einen Befehl, mit dem man Einzeldateien oder -ordner an einen beliebigen Ort wiederherstellen kann
- Versionierung: Manchmal wäre es schön, wenn man eine Datei nicht nur in dem Zustand des nächtlichen Backups erhielte, sondern sich auch mal die Config ansehen könnte, wie sie vor zwei Wochen war.
Lösung: Ein Argument des oben erwähnten Befehls ermöglicht es, ein Datum oder einen Zeitraum für die wiederherzustellende Datei anzugeben.
So, als ich diese Punkte damals alle las, war für mich klar: Das will ich haben! Wenn es DIR jetzt auch so geht, dann lies jetzt weiter, denn ein kleines Howto folgt. weiterlesen…
screen: Start eines Linux-Programms als daemon
Geschrieben am 16. August 2007 um 19:53 Uhr 2 KommentareAuch wenn es vielleicht nur mich interessiert:
Das Problem: Ein Programm soll im Hintergrund laufen, also unabhängig von der aktuellen (Putty-)Sitzung, damit es auch noch dem Logout weiterläuft.
Die Lösung: Es gibt diverse Methoden für diese Problemstellung, das Programm screen ist für mich aber die schönste:
screen -dmS SITZUNGSNAME Programm.sh
Es startet das Programm in einer separaten Sitzung. Die offenen Sitzungen kann man sich mit
screen -ls
anzeigen lassen und (sofern nur eine läuft) sich mit
screen -r
mit der Sitzung verbinden um die Programmausgaben zu sehen.
Wichtig ist, sich dann mittels “Ctrl+A” danach “D” von der Sitzung zu trennen, damit man das Programm nicht aus Versehen beendet.
Die noch viel weitreichenderen Möglichkeiten findet man wie immer mit
screen --help
oder
man screen
Ich hoffe, das kann so manchen helfen, der nach einer schnellen, sauberen Lösung sucht.
PS: Es macht natürlich nur für Programme Sinn, die auch von selbst im Loop laufen (z.B. Server).



