Backtrack 1.0

Backtrack Screenshot Die Projekte Auditor Security Collection und WAHX wurden zusammengelegt und haben die erste Version der neuen Security-Live-CD unter dem Namen Backtrack veröffentlicht. Weitere Informationen und der Download finden sich hier.

Ip-Port weiterleiten mit iptables

Einen Ip-Quellport kann mit dem Tool iptables leicht auf eine andere Ziel-IP und/oder Zielport weitergeleitet werden.

iptables -t nat -A PREROUTING -p tcp –-dport 8080 -i eth0 -j DNAT –-to 192.168.13.1:80

Muss nur der Quellport auf dem lokalen Server umgelenkt werden, reicht der fogende Befehl.

iptables -t nat -I PREROUTING 1 -p tcp –-dport 8080 -j REDIRECT –-to-port 80

Um alle NAT-Regeln anzeigen zu lassen, kann das Kommando iptables -t nat -n -L verwendet werden.

Netscreen und PPTP

PPTP verwendet für die Kommunikation den Server-Port 1723 (TCP) sowie das Ip-Protokoll 47. GRE – das Protokoll 47, in welches die PPP-Pakete verpackt werden – kennt keine Ports. So ist die Netscreen auf eine eindeutige Absender-Ip-Adresse angewiesen, um die Pakete korrekt zu beantworten.

Wenn man nur eine externe Adresse zur Verfügung hat und mit Hilfe einer VIP die PPTP-Pakete auf einen internen Server leiten, muss man die Netscreen mit dem VIP multi-port command in die Lage versetzt werden, auf mehr als einem Port zu lauschen. Das Kommando set vip multi-port wird mit einer Warnung quittiert, welche über den notwendigen Neustart informiert.

set vip multi-port
save
reset

Das multi-port command verwendet immer den ersten Custom Service, dessen Port angesprochen wird.

set service CustomPPTP group "other" 47 src 2048-2048 dst 2048-2048
set service CustomPPTP + tcp src 0-65535 dst 1723-1723
set interface eth3 vip untrust-ip 2048 CustomPPTP 192.168.13.5
set policy from untrust to trust "Any" VIP(ethernet3) CustomPPTP Permit

Weitere Links

Google Map

Mit der Google Map API ist es wirklich einfach, einen gewünschten Standort per Karte oder Satelitenbild in die eigenen Homepage einzubinden.

Vorausetzung ist ein Key, welcher sehr einfach zu besorgen ist. Einfach einen Google Account anlegen und unter http://google.com/apis/maps einen entsprechenden Schlüssel generieren.

Viele Beispiele und eine Erklärung, die sich auf das wesentliche bezieht, runden das gute Bild von diesem Web 2.0 Baustein ab.

Einen ersten Versuch (Zeitaufwand weniger als 5 Minuten) kann man unter http://www.bob-team.de/gmap/ bewundern.

Festplatte in Software-RAID

Im ersten Schritt die neue Festplatte mit fdisk, genau wie die noch funktionierende partitionieren. Hat man eine funktionierende Platte /dev/sda und möchte deren Partitionen auf das neue Device /dev/sdb spiegeln, geht man wie folgt vor.

  • Kommando fdisk /dev/sda starten (funktionierende Platte)
  • mit Befehl p die Partitionstabelle anzeigen
  • mit Befehl q fdisk verlassen
  • Kommando fdisk /dev/sdb starten (neue Platte)
  • neue Partitionen mit Befehl n anlegen (die Start- und Endpunkte können direkt von der Tabelle der funktionierenden Platte übernommen werden)
  • den Typ fd auf alle neuen Partitionen mit t setzen
  • neue Partitionstabelle mit w schreiben

Mit raidhotadd müssen dann die Raid-Devices wieder aufbauen. Im folgenden wird dies beispielhaft am md0 gezeigt. Die Information, welches Partition zu welchem Device gehört, findet man in der Datei /etc/mtab.

raidhotadd /dev/md0 /dev/sdb1

Zuletzt überprüft man mit dem Kommando cat /proc/mdstat, das der Spiegel wieder aufgebaut wird bzw. aufgebaut wurde.

Installation Nagios 2.0

Die folgende Beschreibung basiert auf einem Fedora Core 5.

Sicherung der Verzeichnisse /etc/nagios und /usr/lib/nagios.

mkdir nagios20
cd nagios20
mkdir etc_nagios
cp -rp /etc/nagios/* etc_nagios/
mkdir usr_lib_nagios
cp -rp /usr/lib/nagios/* usr_lib_nagios/
mkdir var_lib_mysql
cp -rp /var/lib/mysql/* var_lib_mysql/

Um die Daten auf den neuen Server zu spielen, wird die Windows-Freigabe mit dem neuen The Common Internet File System (CIFS) eingebunden. Die neue Fedora Core benutzt dieses anstatt von smbmount.

mount -t cifs -o username=administrator //dc01/public /mnt/lan

Downlaod der neuen Mysql- und Perl-Pakete:

wget MySQL-client-standard-5.0.18-0.rhel4.i386.rpm
wget MySQL-server-standard-5.0.18-0.rhel4.i386.rpm
wget MySQL-shared-standard-5.0.18-0.rhel4.i386.rpm
wget perl-DBI-1.40-5.i386.rpm

Deinstallation der vorhandenen Pakete:

rpm -e perl-DBD-MySQL-2.1021-3
rpm -e perl-DBD-Pg-1.21-2
rpm -e perl-DBI-1.32-9 --nodeps
rpm -e mysql-server-3.23.58-2.3
rpm -e mysql-devel-3.23.58-2.3
rpm -e mysql-3.23.58-2.3 --nodeps
mv /var/lib/mysql/nagio* /tmp/

Installtion des neuen MySQL:

rpm -ivh MySQL-shared-standard-5.0.18-0.rhel4.i386.rpm
rpm -ivh MySQL-client-standard-5.0.18-0.rhel4.i386.rpm
rpm -ivh MySQL-server-standard-5.0.18-0.rhel4.i386.rpm
rpm -ivh perl-DBI-1.40-5.i386.rpm
chkconfig mysql on

Der MySQL läuft nur, wenn SELinux deaktiviert ist. Wurde es bei der Installation eingerichtet, kann es über die Datei /etc/sysconfig/selinux wieder deaktiviert werden.

Hat man die Mysql-Tabellen von einer früheren Version verwendet, müssen diese aktualisiert werden:

cat /usr/share/mysql/mysql_fix_privilege_tables.sql | /usr/bin/mysql --no-defaults --force --user=root --host=localhost --database=mysql -u root -p

Für die Plugins macht es Sinn alle möglichen Perl-Module zu installieren. Des weiteren benötigt der Grundwork-Apache die libphp5 Datei.

yum install perl-*
yum install php
yum install libXpm.so.4

Die Ip-Adresse des neuen Nagios-Servers muss aufgelöst werden. Am einfachsten kann man dies über die /etc/hosts/ realsisieren.

/usr/bin/mysqladmin -u root password ’new-password‘
/usr/bin/mysqladmin -u root -h nagios2.federn-brand.de password ’new-password‘

Kennwort vom MySQL-Server zurücksetzen:

mysqladmin -u root -p password ''

Installation des neuen Nagios:

rpm -ivh groundwork-monitor-os-4.5-11.i586.rpm

Linux-Konsole am seriellen Kabel

Mit Hilfe der Datei /etc/inittab kann man ein getty an die serielle Schnittstelle binden. Beim folgenden Eintrag steht ttyS0 für COM1: unter Windows.

T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

Die Konsole lässt sich über ein serielles Null-Modem-Kabel mit einer Geschwindigkeit von 9600 bps, ohne Parität und mit 8 Datenbits nutzen.

Möchte man auch den Bootloader über die serielle Konsole steuern, muss man entsprechende Parameter setzen.

Anpassungen für GRUB in der /boot/GRUB/menu.lst:

title Debian GNU/Linux, kernel 2.6.15-1-k7
root (hd0,0)
kernel /boot/vmlinuz root=/dev/sda1 ro console=tty0 console=ttyS0,9600n8
initrd /boot/initrd.img-2.6.15-1-k7
savedefault
boot

Änderungen für LILO in der /etc/lilo.conf:

image = /boot/vmlinuz
root = /dev/hda3
label = "Debian GNU/Linux, kernel 2.6.15-1-k7"
append ="console=tty0 console=ttyS0,9600n8"

Bei LILO darf der Befehl lilo nicht vergessen werden, um die Änderungen zu übernehmen.

Weitere Infos finden sich im Serial HOWTO und Linux-Konsole und Bootloader über serielles Kabel.

JavaServer Faces (JSF)

statische Navigation

Ist das action-Attribut einer UICommand-Komponente schon bei der Erstellung der JSP-Seite bekannt, spricht man von statischer Navigation.

<h:commandLink action=“links“>
   <h:outputText value=“zur Linkseite“ />
</h:commandLink>

Der Wert des action-Attributs ist fest codiert. JSF schaut in der Konfigurationsdatei nach, ob es für die Seite, die diese Aktion ausgelöste hat, eine Navigationsregel gibt, welche einen Navigationsfall besitzt, der den Rückgabewert (Wert des action-Attributs) erwartet. Ist dies der Fall, wird auf die Folgeseite weitergeleitet. Ist keine entsprechende Regel definiert, wird die gleiche Seite nochmal angezeigt.

dynamische Navigation

<h:commandLink action=“#{LinkList.update}“>
<h:outputText value=“zur Linkseite“ />
</h:commandLink>

Bei der dynamischen Navigation wird beim action-Attribut auf eine Methode verwiesen. Diese muss folgende Anforderungen erfüllen:

  • Sie muss öffentlich (public) sein.
  • Sie muss in einer Managed-Bean definiert sein und dieses muss in der Anwendungskonfigurationsdatei registriert sein.
  • Sie darf keine Parameter erwarten.
  • Sie muss einen String als Rückgabewert liefern.

In der faces-config.xml wird nach einem Navigationsfall gesucht, dessen
<from-outcome>-Attribut mit dem Rückgabewert der Methode übereinstimmt. Ist dies der Fall, wird auf die entsprechende Seite weitergeleitet, ansonsten auf die auslösende Seite zurückverwiesen.

Cancel

Verwendet man Konverter oder Validatoren kann es vorkommen, das man eine Seite verlassen möchte auch wenn die Validierung fehlschlägt. Das Attribut immediate verhindert ein Update des Modells.

<h:commandButton immediate="true" action="success" value="Cancel" />

Links