Kategorien
IPTables Linux security

IP Filter…

Um Dienste von dem Zugriff durch bestimmte IP-Adressen zu sperren oder bestimmte IP Ports zu verbieten bietet sich ein IPTables Block an.

iptables -N block-enemy
iptables -A block-enemy -j DROP

Ziel-Port in die Blockliste aufnehmen

iptables -I INPUT 1 -p tcp --dport 3306 -j block-enemy
iptables -I INPUT 1 -p tcp --dport 8080 -j block-enemy

Eine IP-Adresse in die Liste Aufnehmen:

iptables -I INPUT 1 -p tcp --source 190.17.238.139 -j block-enemy

Eine Anwendung (MySQL Standartport) die Liste Aufnehmen:

iptables -I INPUT 1 -p tcp --dport 3306 -j block-enemy

Entfernen lässt sich der Inhalt des Blocks wieder mit:

iptables --flush block-enemy
Kategorien
lighttpd Linux

Wie finde ich heraus ob mein Webserver die Seiten gzip komprimiert ausliefert…

Am Beispiel des Heise Servers holem wir zuerst die Daten via wget.

$ wget --header="Accept-Encoding: gzip, deflate" http://heise.de
--2012-01-04 15:50:08-- http://heise.de/
Resolving heise.de... 193.99.144.80, 2a02:2e0:3fe:100::8
Connecting to heise.de|193.99.144.80|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.heise.de/ [following]
--2012-01-04 15:50:08-- http://www.heise.de/
Resolving www.heise.de... 193.99.144.85, 2a02:2e0:3fe:100::7
Connecting to www.heise.de|193.99.144.85|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17439 (17K) [text/html]
Saving to: `index.html'

100%[=======>] 17,439 --.-K/s in 0.05s

2012-01-04 15:50:08 (316 KB/s) - `index.html' saved [17439/17439]

jetzt schauen wir, ob die geholte index Datei gzip komprimiert ist:

$ strings index.html|head -n 1
goNY

ok… das sieht nicht nach sinollem Text aus, könnte GZIP sein…
um dies zu prüfen entpacke ich die Datei mittels gzip:

$ mv index.html index.html.gz
gzip -d index.html.gz

und prüfen ob der Inhalt der Erwarteten HTML Datei entspricht.

strings index.html|head -n 1
< !DOCTYPE html>

Das ist der vollständigste Weg zu prüfen ob eine Seite von Webserver gzip koprimiert ausgeliefert wird.?

Kategorien
lighttpd Linux

WordPress rewrite im Lighttpd

Um WordPress in dem Webserver Lighttpd mit „schönen URLs“ zu betreiben ist ein Rewrite der Adresse notwendig.
Die benötigte „modrewrite“ Regel in der Lighttpd habe ich für mich als Erinnerung folgend hinterlegt.:

$HTTP[”host”] =~ “^(?:www\.)?DOMAINNAMEN\.TLD(?::|$)” {
server.document-root = “/var/www/hosts/DOMAIN.TLD/”
accesslog.filename = “/var/www/logs/DOMAIN.TLD-access.log”
url.rewrite = ( “^/(wp-admin/|wp-content/|wp-includes/|wp-login\.php|xmlrpc\.php|robots\.txt|sitemap\.xml|wp-).*” => “$0″,
“^” => “index.php” )
}

 

Kategorien
lighttpd Linux

Lighttpd 1.5 – rebuild

System vorbereiten

aptitude install checkinstall python-mysqldb liblua5.1-dev libmysqlclient-dev \
libssl-dev libbz2-dev libpcre3-dev libgtkhtml2-0 libgtkhtml2-dev \
libsqlite-dev libsqlite3-dev libmemcache-dev libaio-dev libldap2-dev \
automake1.9 libgeoip-dev e2fsprogs e2fsprogs-devel \
aptitude remove --purge automake1.4 automake1.7 automake1.8

alleine wegen den Konfigurations und startscripten:

aptitude install lighttpd

Quellen herunterladen

cd /usr/src svn co svn://svn.lighttpd.net/lighttpd/trunk/
mv /usr/src/trunk /usr/src/lighttpd-1.5.0
cd /usr/src/lighttpd-1.5.0
./autogen.sh

GeoIP Modul für Lighttpd 1.5

wget http://redmine.lighttpd.net/attachments/download/717/mod_geoip_for_1.5.c
mv mod_geoip_for_1.5.c src/mod_geoip.c
vi src/Makefile.am
nach der letzter "lib_LTLIBRARIES" Zeile folgendes einfügen:
lib_LTLIBRARIES += mod_geoip.la
mod_geoip_la_SOURCES = mod_geoip.c
mod_geoip_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
mod_geoip_la_LIBADD = $(common_libadd) -lGeoIP

GeoIP Datenbanken herunterladen

wget -O /var/www/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget -O /var/www/GeoLiteCity.dat.gz http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip /var/www/*.dat.gz

 

/etc/lighttpd/conf-available/10-geoip.conf
#### GeoIP
geoip.db-filename = „/var/www/GeoIP.dat“
geoip.memory-cache = „enable“
#### GeoIP Lite City
# geoip.db-filename = „/var/www/GeoLiteCity.dat“
# geoip.memory-cache = disable
server.modulesi += ( „mod_geoip“ )

./configure –enable-maintainer-mode –prefix=/usr –with-openssl –with-lua=lua5.1 –with-memcache –with-gdbm –with-webdav-props –with-ldap –with-attr –with-linux-aio –with-mysql –with-webdav-locks

make
checkinstall –install=no -D –default –pakdir=/usr/src –gzman=yes

aptitude remove lighttpd

dpkg -i lighttpd_1.5.0-1_i386.deb

Kategorien
Linux

Nützliche OpenSSL Commands

Formatwandlung eines Zertifikates vom .pem in das .pkcs12 Format

openssl pkcs12 -export -out mycert.p12 \
-inkey $HOME/.globus/userkey.pem \
-in $HOME/.globus/usercert.pem -name „My Certificate“

Formatwandlung eines Host Zertifikates vom .pkcs12 in das .pem Format

openssl pkcs12 -in host.domain.p12 -clcerts -nokeys -out host.domain.cert.pem
openssl pkcs12 -in host.domain.p12 -nocerts -nodes -out host.domain.key.pem

# These files should then be placed in /etc/grid-security and httpd.conf
# modified accordingly. host.domain.cert.pem can safely be world readable
# but host.domain.key.pem must only be readable by root!:
chown root.root host.domain.key.pem
chmod 0400 host.domain.key.pem

Formatwandlung eines Benutzer Zertifikates vom .pkcs12 in das .pem Format

openssl pkcs12 -in export.p12 -clcerts -nokeys -out $HOME/.globus/usercert.pem
openssl pkcs12 -in export.p12 -nocerts -out $HOME/.globus/userkey.pem

# The user certificate can safely be world readable, but userkey.pem
# must only be readable by you!
chmod 0400 $HOME/.globus/userkey.pem

Passwort des Private keys ändern

openssl rsa -in $HOME/.globus/userkey.pem -des3
# you will be prompted for the old passphrase, the new passphrase
# and to verify the new passphrase

Informationen aus dem Zertifikat anzeigen.

# viele Informationen
openssl x509 -text -in cert.pem

# Aussteller
openssl x509 -noout -in cert.pem -issuer

# subject
openssl x509 -noout -in cert.pem -subject

# in welchem Zeitraum ist es gültig?
openssl x509 -noout -in cert.pem -dates

# Der Hash wert des Zertifikates
openssl x509 -noout -in cert.pem -hash

# Der MD5 Fingerprint
openssl x509 -noout -in cert.pem -fingerprint

Zertifikat überprüfen

openssl verify cert.pem

Kategorien
Linux security Workstation

todo, Gedächtnisstütze für den Administrator…

todo nennt sich ein kleines Programm, welches dabei hilft mit den Notizen zu administrativen Aufgaben nicht immer wieder den gesamten Schreibtisch zu vermüllen.

Bei dem Wechsel in das entsprechende Verzeichniss sieht das ungefär wie folgt aus:


1.Script zum löschen gelöschter E-Mail-Konten korrigieren.

2.Logfile Analyse!

[schranz@server:/var/www/]>

zuerst todo installieren:

apt install devtodo

anschließend dafür sorgen das das todo auch beim wechsel in das Verzeichniss angezeigt wird:
echo ‚export PROMPT_COMMAND=“todo“‚ >> ~/.bashrc

jetzt kann in jedem beliebigen Verzeichniss mit todo -a ein neues Memo angelegt werden, mit todo -e 1 lässt sich das Memo 1 bearbeiten und mit todo -d 1 auch als erledigt markieren.

Kategorien
Linux

Squashfs modifizieren

Das Dateisystem Squashfs wird bereits seit längerer Zeit für viele LiveCD’s wie beispielsweise gOS und Ubuntu verwendet.

Auf LiveCD’s befindet sich das Squashfs Dateisystem in der Regel im Ordner casper und trägt den Namen filesystem.squashfs. (zuletzt geprüft bei Ubuntu DVD 20.04.3)

Die folgende Anleitung hilft beim Ändern der Squashfs Dateisysteme.

Unter Debian GNU/Linux benötigen wir hierzu die Pakete squashfs-modules-KERNEL und squashfs-tools.:

apt install squashfs-modules-´uname -r´ squashfs-tools

Leider ist das extrahieren mit unsquashfs nicht in jedem Fall erfolgreich, ich empfehle das Image zu mounten und anschließend die Daten zu kopieren:

mount dir.sqsh /mnt/quelle/ -t squashfs -o loop
cp -a /mnt/quelle/* /mnt/ziel

Im Anschluss kann mit chroot in das /mnt/strong Verzeichnis gewechselt werden und beliebige Änderungen vorgenommen werden.

chroot /mnt/ziel

Hinweis: sollten Domains nicht erreichbar, das Netzwerk jedoch verfügbar sein, kopiere die Datei /etc/resolv.conf nach /mnt/ziel/etc/ kopieren.

Nach dem alle gewünschten Änderungen abgeschlossen sind, können wir den Befehl exit verwenden um das System wieder zu verlassen.
Jetzt können wir mit dem folgenden Befehl das neue Image erstellen.:

mksqashfs /mnt/ziel filesystem.sqashfs -check_data

Abschließend ersetzen wir die Squashfs Datei in dem Ordner aus dem wir sie haben, im Normalfall „casper“, durch die neu erstellte Datei.

Kategorien
Linux

Linux Gedankenstützen

Ersetze <? durch <?php in allen php Dateien

find . -type f -name "*.php" -exec perl -i -pe 's#< \?$#<?php#' {} \;;

Große Dateien Suchen

ls -lahS $(find / -type f -size +10000k);

Dateien finden und löschen

find -name [DATEINAME] -exec rm '{}';

Dateien finden und löschen

find -name [DATEINAME] -exec rm '{}';

Superbloks eines ext2 oder ext3 Dateisystems finden

mkfs.ext2 -n /dev/[DEVICENAME]

Status eines Linux Raid herausfinden

mdadm -Q --scan /dev/md0

Details eines Linux Raid anzeigen

mdadm -Q --detail /dev/md0
Kategorien
Linux

Minimalsystem (Fortsetzung)

Ich beziehe mich auf diesen Post, Einrichtung, und führe die Idee des Minimalsystems fort. Wir installieren einen Webbrowser, Instant Messaging (ICQ, AIM, Jabber, …), IRC, Multimedia (Musik und Videoplayer), E-Mailclient, Filebrowser (mit integriertem Editor), einen Kalender (mit Eventhandling) und einen kleinen Rechner.

apt-get install links finch irssi mp3blaster mplayer alpine mc pal concalc

Dazu bräuchte man noch eventuelle Codec für die Musik und Videowiedergabe (gstreamer, libdvdcss). Das alles sind Kommandozeilentools, welche eine einfache konfiguration und einfache Bedienung besitzen. Zusammen mit der Fluxbox kann man ein sehr schlankes und schnelles System auch auf älteren Rechnern aufsetzen.

Vielleicht noch ein paar Tools, die das (Office)leben erleichtern (PDF Reader, Office Writer und Tabellenkalkulation, GTK Taschenrechner, Rechtschreibprüfung):

apt-get install xpdf abiword gnumeric gcalctool myspell-de-de
Kategorien
Linux

Hardwareinformationen

Sollte die Hardware einer Maschiene vollkommen unbekannt sein, kann man diese Informationen mit dem Programm hwinfo auslesen.

apt install hwinfo
hwinfo --bios

Liest alle wichtigen Daten aus dem BIOS heraus. Mit einem grep kann man die Suche nach relevanten Daten (Speichertaktung) herausfinden (grep -i Speed)

Folgende selbsterklärende Optionen bietet hwinfo an:

all, bios, block, bluetooth, braille, bridge, camera, cdrom, chipcard, cpu,
disk, dsl, dvb, floppy, framebuffer, gfxcard, hub, ide, isapnp, isdn,
joystick, keyboard, memory, modem, monitor, mouse, netcard, network,
partition, pci, pcmcia, pcmcia-ctrl, pppoe, printer, scanner, scsi, smp,
sound, storage-ctrl, sys, tape, tv, usb, usb-ctrl, vbe, wlan, zip