Tux the penguin

February 24, 2006

Virtuelle Interfaces und zusaetzliche IP Adressen unter Linux

Filed under: — 15:55

Unter Linux hat man die Moeglichkeit auf einem tatsaechlichen Interface mehrere IP Adressen zu setzen. Dazu benutzt man virtuelle Netzwerkinterfaces. Wenn eth0 das physikalische Interface ist, laesst sich fuer eth0:1 die zusaetzliche IP 10.10.10.10 setzen:

ifconfig eth0:1 10.10.10.10 up

Um das ganze auch nach dem naechsten Reboot automatisch gesetzt zu haben, muss man unter Debian die Datei /etc/network/interfaces diesem Beispiel folgend anpassen:

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0 eth0:1
iface eth0 inet dhcp

iface eth0:1 inet static
address 10.10.10.10
netmask 255.255.255.0
broadcast 10.10.10.255
gateway 10.10.10.1

February 18, 2006

reliable rsync

Filed under: — 01:11

rsync ist der Quasi Standard fuer die Synchronisation von Daten, da nur neue Dateien und die Aenderungen an bestehenden Dateien uebertragen werden.

Rsync ist aber recht anfaellig wenn die Netzverbindung unterbrochen wird und bricht dann mit einem Fehler ab. Um grosse Datenmenge zuverlaessig, ueber nicht ganz stabile Verbindungen, transportieren zu koennen ist das follgende kurze Script gut geeigenet.

Durch den Parameter
--partial
werden bereits uebertragene Teile von Daten bei einem Verbindungsabbruch nicht geloescht und bei einer Wiederaufnahme an dieser Stelle fortgesetzt.

Rsync lauft so lange in einer Endlos-Schleife bis es per Strg+C abgebrochen wird oder ohne Fehler beendet ist. Dabei sollte man natuerlich im Auge behalten, dass man in keine Dead-Lock Situtation laeuft, z.B. durch Zugriffsbeschraenkungen oder Aehnlichem.

#!/bin/bash
while (true)
do
rsync -az --partial --progress /home/user user@backup:/home/user
last=$?
if [ $last = 0 -o $last = 20 ]; then break; else echo $last; fi
done
exit 0

Zahlen Intervall in der Bash

Filed under: — 00:56

Mit dem Befehl seq laesst sich ganz bequem auf der Konsole ein Zahlen Intervall ausgeben. Besonderst praktisch, wenn eine for Schleife durchlaufen werden soll:

for a in $(seq 1 100); do echo $a; done

conspy

Filed under: — 00:44

conspy ist eine Art VNC fuer die virtuellen Konsolen unter Linux.

Sehr praktisch, wenn man im Serverraum vergessen hat ein Programm auf der Konsole zu beenden und sich nicht ausgeloggt hat. Auch die Fehlerausgaben, die einige Programme direkt auf der Konsole schreiben kann man damit verfolgen.

Der Befehl

conspy 1

zeigt den Inahlt der ersten virtuellen Konsole und nimmt Eingaben entgegen. Um conspy zu beenden muss man drei Mal hintereinander die ESC Taste druecken.

December 20, 2005

Logfile Auswertung mit Piep

Filed under: — 18:04

Wer ein Logfile auswertet, laesst dieses oft mit tail -f in der Konsole laufen, um immer die neusten Eintraege zu sehen.
Wenn man beim Auftreten eines bestimmten Suchbegriffes mit einem Piepen darauf aufmerksam gemacht werden moechte, kann man mit sed dem Suchbegriff einfach die Kontrollsequenz \a voranstellen. Dann piept das Terminal jedes Mal bevor der Suchbegriff ausgegeben wird:

tail -f /var/log/messages | sed s/SUCHBEGRIFF/`echo -e "\a&"`/

December 15, 2005

Mailman, Postfix, Virtual Domains und Debian

Filed under: — 00:20

Das Debian Paket des Mailinglisten Managers Mailman bringt ein interessantes Script mit, dass die Zusammenarbeit von Mailman mit einer Postfix Installation, die sich auf virtuelle Domains stuetzt, vereinfacht.

Das Script liegt nach der Installation in /var/lib/mailman/bin/postfix-to-mailman.py.

Zuerst sollte man eine Subdomain speziell fuer die Mailinglisten einrichten. Oft wird dafuer lists.my.domain verwendet.
Man braucht auf jeden Fall einen A Record und einen MX Record fuer diese Subdomain.

Um das Webinterface und die Mailinglisten Archive von Mailman nutzen zu koennen muss man noch den Webserver anpassen. Im Falle von Apache muss man folgende Zeilen in /etc/apache/httpd.conf einfuegen:

< VirtualHost *:80>
ServerName lists.my.domain
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /images/mailman/ /usr/share/images/mailman/
< Directory /usr/lib/cgi-bin/mailman/>
AllowOverride ALL
Options ExecCGI FollowSymLinks
Order allow,deny
Allow from all
< /Directory>
< /VirtualHost>

Folgende Zeilen sind in die Datei /etc/postfix/main.cf einzufuegen bzw. zu ergaenzen:

transport_maps = hash:/etc/postfix/transport
mailman_destination_recipient_limit = 1
relay_domains = lists.my.domain
owner_request_special = no
virtual_alias_maps = ..... hash:/var/lib/mailman/data/aliases

Das oben angesprochene Script wird in der Datei /etc/postfix/master.cf benutzt:

mailman unix - n n - - pipe
flags=FR user=list
argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}

Die Datei /etc/postfix/transport muss mit folgenden Inhalt angelegt werden:

lists.my.domain mailman:

und annschliessend das Kommando postmap /etc/postfix/transport ausgefuehrt werden.

Die Konfigurationsdatei von Mailman /etc/mailman/mm_cfg.py sollte wie folgend ergaenzt und angepasst werden:

DEFAULT_EMAIL_HOST = 'lists.my.domain'
DEFAULT_URL_HOST = 'lists.my.domain'
MTA='Postfix'
DEB_LISTMASTER = 'postmaster@my.domain'
POSTFIX_STYLE_VIRTUAL_DOMAINS = 'lists.my.domain'
POSTFIX_ALIAS_CMD = '/usr/sbin/postalias/index.html'
POSTFIX_MAP_CMD = '/usr/sbin/postmap/index.html'

Jetzt noch alle beteiligten Komponenten neustarten:

/etc/init.d/mailman restart
/etc/init.d/apache restart
/etc/init.d/postfix restart

December 11, 2005

munin: easy to use system monitoring

Filed under: — 17:03

munin ist ein kleines, praktisches Programm um ein System ueberwachen zu koennen ohne viel einrichten zu muessen.

munini: Speicher Auslastung


Unter Debian reicht ein
apt-get install munin munin-node
um munin zu installieren und einzurichten.

Anschliessend noch in /etc/munin/munin-node.conf die Zeile host * in host 127.0.0.1 aendern und
munin neu starten:
/etc/init.d/munin restart

Ggf. in /var/www/munin eine .htaccess Schutz erstellen, damit nicht jeder die Statistiken lesen kann.

Anschliessend mit dem Webbrowser http://www.domain.tld/munin/ besuchen und man hat die Moeglichkeit die folgenden Statistiken zu sehen:

munin capabilities

November 24, 2005

Mit lsof Prozesse finden, die umount verhindern

Filed under: — 11:30

root@lara:/ # umount /mnt/usb
umount: /mnt/usb: device is busy

root@lara:/ # lsof /mnt/usb
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 7256 root cwd DIR 0,13 4096 2 /mnt/usb

root@lara:/ # lsof -F p /mnt/usb | cut -b2-
7256

Auch sehr hilfreich in diesem Zusammenhang:
root@lara:/ # umount -lf /mnt/usb

November 12, 2005

ssh Version 4: 'ControlMaster' und 'HashKnownHost' Option

Filed under: — 08:31

Die aktuelle Version 4 von OpenSSH hat einige interessante Neuerungen auf der Client Seite gebracht.

HashKnownHosts
In der Datei ~/.ssh/known_hosts wurde schon vorher der Hostname bzw. die IP Adresse mit dem Hostkey des jeweiligen Systems gespeichert um nach der ersten Authentifizierung sicherstellen zu koennen, dass man sich wieder mit dem richtigen Rechner verbindet und keine boesen Hacker einen auf einen anderen Rechner umleiten und das Passwort ausspionieren.
Seit Version 4 wird der Hostname bzw. die IP Adresse per Default als Hash in ~/.ssh/known_hosts gespeichert, damit wird verhindert, dass falls ein Angreifer erfolgreich ein System kompromiert hat, er weiter lohnende Ziele in dieser Datei findet.

Allerdings kann es auch vorkommen, dass man ein System neu installiert oder ein Rettungssystem wie Knoppix bootet oder einfach ein Rechner eine IP Adresse bekommen hat, ueber die man sich vorher auf einem anderen Rechner angemeldet hat.
In all diesen Szenarien verhindert der ssh Client, dass man sich auf dem ssh Server anmelden kann. Wenn man sich sicher ist, warum sich der SSH Host Key geaendert hat, genuegt es die korespondierende Zeile aus ~/.ssh/known_hosts zu loeschen.

Da, per Default, der Hostname bzw. die IP Adresse nur noch als Hash-Wert gespeichert werden ist das loeschen aber deutlich erschwert. Abhilfe schafft der Eintrag von

HashKnownHosts no

in die Systemweite Datei /etc/ssh/ssh_config oder in der Benutzer eigene Datei ~/.ssh/config

ControlMaster
Sehr praktisch ist die Moeglichkeit mit der ControlMaster Option eine bestehende SSH Verbindung zu einem Host fuer weiter Verbindungen wieder zu verwenden. Dadurch entfaellt der Overhead der anfaellt wenn beim Verbindungsaufbau das Protokoll ausgehandelt wird und damit auch, falls man sich nicht per Public Key Authentication verbindet, die erneute Eingabe des Passworts. Damit wird die SSH Verbindung deutlich schneller hergestellt.

Noetig sind dafuer die beiden folgenden Zeilen in /etc/ssh/ssh_config oder ~/.ssh/config

ControlMaster auto
ControlPath ~/.ssh/controls/%r@%h:%p

Anschliessend muss man noch das Verzeichnis fuer den ControlPath anlegen und restriktive Rechte setzen:

mkdir -p ~/.ssh/controls
chmod 0700 ~/.ssh/controls

Auch scp und sftp Verbindungen profitieren dann von der Master Verbindung.

Der einzige Nachteil ist, dass man die erste Verbindung zu jedem Host, die Master Verbindung, erst wieder schliessen kann wenn alle anderen Verbindungen beendet sind,

Weiter Details findet man in dem Blog Eintrag Reusing existing OpenSSH v4 connections auf der Webseite Debian Administration.

November 8, 2005

Kubuntu und Ubuntu auf gleicher Hoehe

Filed under: — 14:47

Bei OS News bin ich ueber einen Artikel gestoplert, in dem zu lesen ist, dass Mark Shuttleworth, der Geldgeber von Ubuntu, seit einiger Zeit die Schwester Distribution Kubuntu auf seinen Desktop einsetzt und Kubuntu in allen Belangen mit Ubuntu gleich setzen moechte. Ab dem naechsten Release werden dann auch Kubuntu CDs kostenfrei verschickt.

Juhu ein Hoch auf die groesse Auswahl in der Open Source Community. Ich finde, dass ist ein guter Zug von Mark. Aber meine Breezy CDs sind immer noch nicht angekommen :(

Impressum
Powered by bBlog
Provided by allweil.net
Hosted by Lime Webapplications