Tag Archives: server

Rechner mit zwei IPs und damit auch zwei Standardrouten einrichten

Ich hatte ein Problem: Ein Server von mir sollte zwei IP-Adressen bekommen, beide in verschiedenen Netzen.

Allerdings auch beide mit einem “Default-GW”, und der Rechner sollte über beide voll ansprechbar sein.

Das Problem: Das Interface mit der kleinsten Metrik geiwnnt das Rennen, sprich: Obwohl jemand eine Verbindung an IP B initiieren möchte, werden Antworten darauf über NIC A versandt.

Nach der Lektüre von http://kindlund.wordpress.com/2007/11/19/configuring-multiple-default-routes-in-linux/ und http://www.thomas-krenn.com/de/wiki/Zwei_Default_Gateways_in_einem_System ging mir aber ein Licht auf und nun läuft es.

Folgende Schritte führen zum Erfolg:

Zuerst eine Policy Routing table anlegen (bzw. benamsen):
# echo "1 admin" >> /etc/iproute2/rt_tables

Nun die /etc/network/interfaces anpassen:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
	address 10.34.41.26
	netmask 255.255.255.192
        post-up ip route add 10.34.41.0/26 dev eth0 src 10.34.41.26 table admin
        post-up ip route add default via 10.34.41.1 dev eth1 table admin
        post-up ip rule add from 10.34.41.26/32 table admin
        post-up ip rule add to 10.34.41.26/32 table admin

auto eth1
iface eth1 inet static
	address 192.168.3.236
	netmask 255.255.255.224
	gateway 192.168.3.224
	dns-nameserver 192.168.3.224

Die Logik dahinter ist ganz einfach: “Nimm per Default das GW 192.168.3.224, wenn aber ein Paket von oder an die 10-er IP geht, nimmst du bitte das andere GW”.

Leave a comment

Filed under Administration, Server

Eigenes Apt-Repository für Debian und Ubuntu einrichten

Ich wollte ein eigenes Repository einrichten, um die Verwaltung unserer Server insgesamt zu vereinfachen. Unter anderem soll z.B. die authorized_keys des Users root automatisch auf allen neuen Rechnern eingerichtet werden.

Eigentlich habe ich mich ausschließlich an Tutorials gehalten, die beschreiben, wie neue deb-Pakete zu erstellen sind und wie man sich sein eigenes Repository einrichtet.

Damit das System nicht über fehlende Keys meckert, habe ich ein eigenes Paket erzeugt, dass lediglich das folgende postinst-Skript enthält:

#!/bin/bash

echo "
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

(base64-kodierter PGPKEY, zu bekommen mit "gpg -a --export keyid")
-----END PGP PUBLIC KEY BLOCK-----
"  | apt-key add -

Das Paket zur Erzeugung der ssh-authorized enthält auch nur ein
postinst-Skript:

#!/bin/bash

mkdir -p -m 0700 /root/.ssh/

touch /etc/default/ssh-authkey

cat /etc/default/ssh-authkey > /root/.ssh/authorized_keys

echo "
#####
# Hier bitte auf keinen Fall eigene Änderungen einbringen
# Bitte eigene Keys in die /etc/default/ssh-authkey eintragen!
# Danach dann: apt-get install --reinstall imi-authkey
#####

# (Hier folgt in der echten Datei der Teil mit den GPG-Keys)

" > /root/.ssh/authorized_keys
	

cat /etc/default/ssh-authkey >> /root/.ssh/authorized_keys


chmod 0600 /root/.ssh/authorized_keys

Das ist eigentlich ein bisschen unschön, vor allem, da der User jetzt
nicht mehr an der authorized_keys direkt rumfummeln kann. (Auch nicht
mehr, um z.B. den Command des Backuppc-Aufrufs zu ändern.) Wer weiß, wie
man das besser machen kann: Ich bin über alle Tipps dankbar.

1 Comment

Filed under Administration, Server