. .

Kategorie: Linux RSS-Feed für diese Kategorie

0

Python: Script zur Überwachung von Dateisystemereignissen mit pyinotify

observeDirs_email_overview

Inhalt Beschreibung Quellcode Projektdaten Beschreibung Mit dem Python-Modul Pyinotify können alle Änderungen auf dem Dateisystem verfolgt werden. Pyinotify bezieht die Informationen direkt vom Subsystem „inotify“ (inode notify) des Kernels, um bestmögliche Performance zu gewährleisten. Das Script „observeDirs“ überwacht rekursiv alle Verzeichnisse, die in der Liste „dirs_recursive_to_observe“ in „oD_configuration.py“ vorkommen. dirs_recursive_to_observe = [ '/etc', '/root', '/usr' ] dirs_recursive_to_ignore = [ '/usr/portage', ] regexs_to_ignore = [ '^/root/.viminfo*', ]   Mit pyinotify werden in den konfigurierten Verzeichnissen folgende Veränderungen an Dateien oder Unterverzeichnissen behandelt: Neu-Erstellung, Bearbeitungen von Dateien, Metadatenänderungen (z.B. Berechtigungen), Löschungen und Verschiebungen. Über jede diese Veränderungen wird man per eMail informiert.

0

gentoo Linux: mySQL-Datenbankserver für eine chroot-Umgebung einrichten

chrooted mysql

Ich beschreibe hier, wie ein mySQL-Datenbankserver in eine chroot-Umgebung auf gentoo Linux installiert werden kann. Ziel ist es, dass es in dieser chroot-Umgebung keine Shell oder sonst irgendwelche unnötigen Programme gibt, die zum Laufen des Datenbankservers nicht notwendig sind. Als Basisverzeichnis der neuen Umgebung wird /chroot angenommen. Als erstes muss mySQL natürlich installiert werden. Die USE-Flags sollten bereits so gesetzt sein, wie man sie braucht. emerge -q dev-db/mysql emerge –config dev-db/mysql Nach der Installation und Konfiguration des mySQL-Servers sind noch kleine Vorbereitungen zu treffen. Die Skripte mkjailenv und addjailsw werden benötigt, die im Paket app-misc/jail zu finden sind. Zudem habe

, , ,
0

gentoo Linux: Installation auf einem Strato-Server

strato server

Es ist mal wieder soweit: ein neuer Server muss her. Da Strato bisher gute Arbeit machte, fiel die Wahl wieder auf einen Server dieses Hosters (Root Server Linux Level Medium). Leider gibt es aber bei den Vorinstallationen kein gentoo Linux zur Auswahl, weshalb ich einfach ein openSuSE 13.1 Linux vorinstallieren lies, mit dem Plan, danach wie schon die Jahre zuvor wieder Gentoo zu installieren. Das ausgewählte System hat nur eine SSD-Festplatte, weshalb kein RAID möglich ist. Die Boot-Partition auf dem SuSE-Linux ist mit 1GB recht großzügig, daher nahm ich gleich diese, um das Gentoo-Installations-Image zu entpacken. Man könnte aber auch

0

virtual framebuffer X server zur Erstellung von Webseiten-Screenshots verwenden

Screenshot gentoo.org

Ich zeige hier eine Möglichkeit, wie mit der Verwendung eines virtual framebuffer X Servers Screenshots von Webseiten erstellt werden können, ohne auf Drittanbieter wie zum Beispiel url2png.com angewiesen zu sein. Wie der Titel schon verrät ist hierbei aber die Installation von X Server Libraries notwendig. Das ist allerdings unter Umständen auf einigen Systemen nicht möglich bzw. nicht erwünscht. Das Script wurde mit bash v4.2.45 auf gentoo Linux ausgeführt. Bei diesem Betriebssystem ist es nötig, das xorg-server Paket mit dem USE-Flag „xvfb“ zu kompilieren. Außerdem werden in dem folgenden Shell-Script auch Programme aus diesen Paketen verwendet: x11-misc/xdotool, x11-apps/xwd und media-libs/netpbm. xdotool

0

Perl: w00tw00t-Einträge im Apache-Log automatisch für iptables-Firewallregeln verwenden

Perl: w00tw00t-Einträge im Apache-Log automatisch für iptables-Firewallregeln verwenden

Im Apache-Errorlog finden sich bei mir immer wieder einige Einträge dieser Art: „[Wed Apr 07 23:17:01 2010] [error] [client 88.191.61.110] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:“. Diese Einträge entstehen wohl, wenn Apache von einem Tool namens `dfind‘ gescannt wird. `dfind‘ sucht nach Schwachstellen in der verwendeten Server-Software. Da solche Log-Einträge ziemlich überhand nahmen, schrieb ich ein kleines Perl-Script, dass ähnlich wie `tail‘ das Apache-Logfile beobachtet und bei einem Eintrag nach entsprechendem Muster („.*request without hostname.*w00tw00t.*“) iptables anweist, die Client-IP zu sperren – falls diese IP ohnehin nicht schon gesperrt ist. Das Script setzt sich selbst

0

Perl: veraltetete Distfiles von gentoo Linux automatisiert löschen

Perl: veraltetete Distfiles von gentoo Linux automatisiert löschen

Gentoo Linux verwendet bekanntermaßen den sogenannten Portage zur Verwaltung der Software auf dem System. Wenn mittels `emerge‘ ein Paket installiert wird, zieht der Portage die Quelldateien der Software aus dem Netz und speichert diese standardmäßig in /usr/portage/distfiles/. Je nach Konfiguration in /etc/portage/make.conf belässt der Portage die Quelldateien auf dem Dateisystem, um bei Änderungen der USE-Flags und der daraus erforderlichen Recompilierung des Pakets die Dateien nicht erneut herunterladen zu müssen. Aktualisiert man nun die Paketinformationen mit `emerge –sync‘, werden veraltete ebuilds entfernt. In diesen ebuilds (bzw. dessen Manifest-Dateien) ist hinterlegt, welches Quellpaket in welcher Version verwendet werden soll. Ist also ein

0

Python: kompilierte gentoo Linux Pakete automatisiert in gechrootete Verzeichnisse übertragen

Python: kompilierte gentoo Linux Pakete automatisiert in gechrootete Verzeichnisse übertragen

Aus Sicherheitsgründen werden bestimmte Dienste wie Web-, Mail- oder FTP-Services gechrooted, um den Diensten den Zugriff außerhalb des gechrooteten Basis-Verzeichnisses zu verwehren. Sollte der Dienst einem erfolgreichen Angriff erlegen sein, befindet sich der Angreifer in einer eingeschränkten Umgebung, die nur für das erfolgreiche Laufen des Dienstes konfiguriert ist bzw. sein sollte. Dadurch kann die Sicherheit des restlichen Systems bzw. der restlichen Dienste erhöht werden. Unter gentoo Linux wird zur Packetverwaltung (der sog. Portage) das Tool `emerge‘ verwendet. Logischerweise werden von den „eingesperrten“ Diensten bestimmte Bibliotheken und auch Binaries benötigt, um überhaupt laufen zu können. Wenn mit `emerge‘ ein Software-Paket installiert

0

Installation der Kamera Canon EOS 450D (gentoo Linux)

Installation der Kamera Canon EOS 450D (gentoo Linux)

Das verwendete System ist ein Dual-Opteron auf gentoo Linux mit dem Kernel 2.6.24. Eigentlich ist die Inbetriebnahme der Kamera kein großes Problem. Allerdings kann die Kamera nicht wie die meisten anderen Kameras als normales USB-Block-Device angesprochen werden. Prüfen Sie mit dem Kommando usbview, ob die Kamera ordnungsgemäß angeschlossen ist. emerge usbview usbview Da müsste in roter Schrift die Kamera erscheinen. Als nächstes muss das Programm gthumb installiert sein. Dazu ist notwendig, gthumb mit dem USE-Flag „gphoto2″ und ggf. „raw“ (wenn Sie Fotos im Raw-Format speichern) zu installieren. Dadurch wird das Programm media-libs/libgphoto2 ebenfalls angezogen. Als Konfiguration hierzu muss der Kameratyp mit

0

SSH ohne Passwortabfrage über SSH-Key

SSH ohne Passwortabfrage über SSH-Key

Der Client ist ein Dual-Core AMD Opteron(tm) Processor 2210 System auf gentoo Linux mit dem Kernel 2.6.19-gentoo-r5. Der Server ist ein sun4u TI UltraSparc IIIi System auf gentoo Linux mit dem Kernel 2.6.20-gentoo-r6. Ich erkläre hier, wie man sich auf entfernte Rechner per SSH ohne Passwortabfrage über einen SSL-Key einloggen kann. Prinzipiell ist es zwar unsicherer, sich per Key einzuloggen und nicht über die Passwortabfrage, komfortabler ist dies aber allemal. Der Client hat einen privaten Schlüssel, während der öffentliche Schlüssel im home-Verzeichnis des entsprechenden Benutzers auf dem Server liegt. Da das Ziel ist, keine Passworteingabe machen zu müssen, darf dem

0

Kompilieren im RAM (gentoo Linux)

Kompilieren im RAM (gentoo Linux)

Das verwendete System ist ein Dual – TI UltraSparc IIIi mit dem Kernel 2.6.20-gentoo-r6. Unter Linux ist es ohne große Probleme möglich, Teile des Arbeitsspeichers in den Verzeichnisbaum zu mounten. Da unter gentoo Linux bei einer Aktualisierung des Systems mittels emerge die Festplatte recht gut in Mitleidenschaft gezogen wird, entschloss ich mich für eine Nutzung des RAMs zum Kompilieren der Programmpakete.Dies hat generell mehrere Vorteile: mechanische Schonung der Festplatte Fragmentierungsverminderung schnelleres Kompilieren, da meistens die Festplatte der limitierende Faktor ist Dennoch gibt es auch Nachteile: Mindestens 1,5 GB RAM ist noetig, wenn man nicht auf Probleme stoßen will eventuelles Volllaufen

0

Erstellung und Installation eines SSL-Zertifikats für Apache

Erstellung und Installation eines SSL-Zertifikats für Apache

Das verwendete System ist ein Dual-Opteron mit dem Kernel 2.6.19-ck2-r3. Ich beschreibe hier kurz, wie man selbst ein Zertifikat für einen Webserver erstellt, um SSL-Verbindungen erlauben zu können. In Benutzung ist Apache Version 2.0.59. Zuerst benötigt Ihr ein RSA Zertifikat: openssl genrsa -out /etc/apache2/ssl/sysalyser.de/server.key 1024 Da ich mehrere virtuelle Server unter Apache laufen lasse, habe ich zuerst den Ordner /etc/apache2/ssl/sysalyser.de/ erstellt. Dies bleibt Euch natürlich frei, wohin Ihr die Zertifikate speichern wollt. Als nächstes braucht Ihr eine Art Zertifikatsantrag, um dies einer Zertifizierungsstelle übermitteln zu können (ganz theoretisch): openssl req -new -key /etc/apache2/ssl/sysalyser.de/server.key -out /etc/apache2/ssl/sysalyser.de/server.csr You are about to be

0

Installation und Konfiguration des Teledat X120 (gentoo Linux)

Installation und Konfiguration des Teledat X120 (gentoo Linux)

Das verwendete System ist ein Laptop mit dem Kernel 2.4.20-wolk.4.10s-pre7. In diesem Kernel sind standardmäßig keine Treiber für einen Fritz!xUSB ISDN-Adapter integriert, also muss man die Module selbst kompilieren. Als erstes müssen wir sicher gehen, dass alle benötigten Module im Kernel aktiviert sind. Insgesamt werden wir folgende Module brauchen: usbcore, usb-uhci, (ehci-hcd,) slhc, fxusb, kernelcapi, capiutil, capidrv, capi, capifs, isdn Dies prüfen wir, indem wir die Kernelconfig betrachten: cd /usr/src/linux && make menuconfig [*] Code maturity level options — Prompt for development and/or incomplete code/drivers <M> USB Support — Support for USB [*] USB Support — Preliminary USB device filesystem