Debian

Tip’s Tricks und Problemlösungen zu Linux im allgemeinen und Debian im speziellen.

Datei /etc/networks/interfaces bearbeiten.

Den dhcp-Eintrag des betreffenden Interfaces durch “static” ersetzen. Die Einträge für address, netmask, broadcast und network hinzufügen:

Bild
Abb.: Inhalt der Datei “interfaces”

Netzwerk neu starten:

/etc/init.d/networking restart

oder Rechner neu starten. Per ifconfig die Konfiguration der Interfaces einsehen:

Bild
Abb.: Ausgabe “ifconfig”

Ausgehend vom Artikel:

http://www.heise.de/newsticker/meldung/Linux-Rootkits-missbrauchen-SSH-Dienst-1810406.html

Mittels

dpkg -l libkeyutils*

Anzeigen, ob die Libkey-Utilities installiert sind.

Wenn diese nicht installiert sind, kommt der im Artikel beschrieben Trojaner nicht in Frage.

Wenn sie installiert sind, sollte die Signatur des installierten Systems verifiziert werden:

apt-get install debsums

(DEB-Summenprüfung installieren)

Testen des Paketes:

debsum -a libkeyutils1

Sollten alle Pakete und Abhängigkeiten “OK” anzeigen, ist alles i.O.

Wer in seinem Netzwerk eine Linux-Rechner mit eigenem DNS-Server unter BIND dazu überreden muß, eine Active Directory-Struktur zu erreichen, der muss eine dazu passende Zone anlegen (beispiel.local) und die Zonendatei bearbeiten:

/var/lib/bind/beispiel.local.hosts

Hierin muß eine A-Eintrag für AD existieren, über den der PDC erreichbar ist:

pdc-servername.beispiel.local. IN A xxx.xxx.xxx.xxx

wobei xxx.xxx.xxx.xxx durch dessen IP-Adresse ersetzt werden muss.

Nun müssen noch die Dienste, die auf diesem PDC erreichbar sein sollen in dieser Zone publiziert werden:

_ldap._tcp.beispiel.local. SRV 0 0 389 pdc-servername.beispiel.local.
_kerberos._tcp.beispiel.local. SRV 0 0 88 pdc-servername.beispiel.local.
_ldap._tcp.dc._msdcs.beispiel.local. SRV 0 0 389 pdc-servername.beispiel.local.
_kerberos._tcp.dc._msdcs.beispiel.local. SRV 0 0 88 pdc-servername.beispiel.local.

Nach Neustart des BIND und ggf. Aktualisierung des DNS-Caches auf den Arbeitsstationen sollte die AD nun erreichbar sein.

Kommentarzeilen in Konfigurationdateien sind sinnvoll, ohne Frage. Aber wenn man sehr große Konfigurationsdateien hat und nach etwas bestimmtem sucht kanns doch schon zu qual werden (zumal wenn man weiß was man macht). Aus diesem Grund benenne ich die Originaldatei um und erzeuge aus ihr eine “befreite” Version. Als Beispiel soll hier die squid.conf des Proxyprogramms dienen. Sie sieht im Original so aus:

Bild

Abb. Auschnitt aus der Squid.conf

Mittels

mv squid.conf squid.conf.orig

wird nun die Originaldatei in die initiale Originalkopie umbenannt. Das hat den Vorteil, daß die Optionen und ihre Beschreibungen als “default” erhalten bleiben, man kann diese Datei als Vorlage Benutzen um Änderungen an der neuen Konfigurationsdatei zu machen oder deren Funktionsweise (so dokumentiert) einzusehen.

Die neue Konfigurationsdatei wird dann mittels

cat squid.conf.org | grep -v ^# | grep -v ‘^$’ >> squid.conf

erzeugt. Diese Kommandozeile beseitigt alle Kommentarzeilen und erzeugt eine neue Konfigurationsdatei namens squid.conf. Diese sieht intern dann in etwa so aus:

Bild

Abb. Konfigdatei ohne Zeilenkommentare

Da sich die Viren, Würmer und Rootkits nun auch für Linux verbreiten ist es notwendig, nicht nur nach Viren, sondern auch nach den anderen Entgleisungen von Programmierern zu suchen. Als Rootkit-Suche reicht debsums offensichtlich nicht mehr aus, ich hatte gerade eine Site, bei der debsums alles als “OK” angezeigt hatte, die betroffenen Dateien (libkeyutils) aber alles andere als in Ordnung waren.

Anders als bei “normalen” Virenscannern kann man bei Rootkit-Suchprogrammen keinen Fehler machen, wenn man mehrere besitzt.

apt-get install chkrootkit
apt-get install rkhunter

chkrootkit läßt sich einfach von der Konsole aus aufrufen:

chkrootkit

rkhunter kann per Befehlszeile aktualsisiert werden:

rkhunter –update

Die Rootkit-Suche erfolgt per

rkhunter -c

Der Bequemlichkeit halber können beide Suchprogramme in einen cron-job eingebunden werden, das Ergebnis kann man in eine Log-Datei schreiben und einem Auswerter zumailen.

Als absolut erste Aktion: Daten sichern! Beschriben ist hier wieder der Update-Vorgang in einer Xen-Maschine.

Nun die /etc/apt/sources.list editieren, die bestehenden Einträge folgendermaßen erweitern oder neu eintragen:

deb http://ftp.de.debian.org/debian/ squeeze main
deb-src http://ftp.de.debian.org/debian/ squeeze main 

Der Rest wird per “#” auskommentiert.

GPG-Key holen und installieren (Version 5.5)

wget -q http://updates.vmd.citrix.com/XenServer/5.5.0/GPG-KEY -O- | apt-key add -

Die Antwort sollte “OK” sein.

Sollte sich der Key nicht importieen lassen, dann folgendes probieren:

gpg –keyserver pgpkeys.mit.edu –recv-key 841D6D8DFE3F8BB2
gpg -a –export 841D6D8DFE3F8BB2 | apt-key add -

Wenn auch das nicht klappen sollte, dann im Verzeichnis ./gnupg die Datei gpg.conf editieren, den Eintrag

keyserver hkp://subkeys.pgp.net

anstelle des bestehenden Eintrages (keyserver hkp://keys.gnupg.net) setzen.

Danach per pgp den Schlüssel importieren:

gpg –recv-keys 841D6D8DFE3F8BB2

und exportieren/adden:

gpg –export 841D6D8DFE3F8BB2|apt-key add -

Die Datei menu.lst im Verzeichnis /boot/grub editieren, die Menüeinträge für den bisherien Kernel sichern:

title Debian GNU/Linux, kernel 2.6.32-5-686-bigmem
root (hd0,0)apt-get upda
kernel /boot/vmlinuz-2.6.32apt-get update-5-686-bigmem root=/dev/xvda1 ro console=hvc0 quiet
initrd /boot/initrd.img-2.6.32-5-686-bigmem

title Debian GNU/Linux, kernel 2.6.32-5-686-bigmem (single-user mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-5-686-bigmem root=/dev/xvda1 ro console=hvc0 single
initrd /boot/initrd.img-2.6.32-5-686-bigmem

Diese werden benötigt, um nach dem Dist-Upgrade Grub wieder korrekt einzustellen.

Jetzt wird APT bemüht um das System auf den neuesten Stand zu bringen:

apt-get update
apt-get install apt dpkg aptitude
apt-get dist-upgrade

Hierdurch wird das System komplett aktualisiert. Alle Fragen mit den Std-Antworten beantworten und den Dienst-Neustartst zustimmen.

apt-get install grub-legacy

Zum Abschluß die originären Einträge der menu.lst wieder an ihre richtige Stelle rücken (So sie sich denn von den neuen Werten unterscheiden!).

Nach Neustart und der Überprüfung aller Dienste sollte die Welt wieder in Ordnung sein.

Sollte mysql nach der Lenny-Squeeze-Migration nicht mehr starten, so kann dies an Konfigurationsdaten liegen, die die aktuelle mysql-Distribution nicht mehr versteht. Sie zeigt deshalb auch an, daß sie noch nicht konfuguriert sei. In meinem Fall half das Beseitigen des Eintrages “skip-bdb” in der Konfigurationsdatei (/etc/mysql/my.cnf). Danach ließ sich das Paket mysql-server problemlos installieren.

Da der Xenserver 5.x von Debian 6 nichts wissen kann (zu alt!) ist es nicht so ohne weiteres möglich, eine aktuelle Debian-Version paravirtualsiiert zu installieren, da kein Template dafür existiert. Wer von einer neueren Xen-Version ein Squeeze auf den 5.X ‘er Xenserver installiert, erlebt eine Überraschung: es booted nicht…. Man kann das bestehende Debian Lenny-Template aber umformen, um doch in den Genuss von Squeeze zu kommen.

…zuerst die UUID des Lenny-Templates ermitteln:

xe template-list

uuid ( RO) : <LENNY UUID>
name-label ( RW): Debian Lenny 5.0
name-description ( RW): Template that allows VM installation from Xen-aware Debian-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http://<server>/<path>

Dieses Template klonen wir zweimal, für Debian 6 32bit und für Debian 6 64 bit:

xe vm-clone uuid=<LENNY UUID> new-name-label=”Debian 6 (Squeeze) (32bit)”< /STRONG>

xe vm-clone uuid=cf969939-d809-d84e-1d8a-b8f3e3633e8b new-name-label=”Debian 6 (Squeeze) (64bit)”< /STRONG>

Beide Klonvorgänge erzeugen eine identische Kopie des Lenny-Templates mit anderem Namen. Die jeweils angezeigte UUID wird noch benötigt; deshalb notieren oder merken….

Nun die VM-Parameter anpassen:

xe vm-param-set uuid=deef958a-77c6-53a3-71a8-0ce7c5586176 other-config:debian-release= squeeze other-config:install-repository= “http://ftp.de.debian.org/debian/”< /STRONG>

xe vm-param-set uuid=<UUID des geklonten Templates> other-config:debian-release= squeeze other-config:install-arch= amd64 other-config:install-repository= “http://ftp.de.debian.org/debian/”< /STRONG>

Sichergestellt sein muß, daß der Xenserver selbst ins Internet kommt.

Als Virenscanner benutze ich seit Jahren Clam-AV. Viele kritisieren diesen Scanner wegen seiner Erkennungsraten, ich sehe einen Virenscanner aber nicht als das Allheilmittel an, dem man sich und sein System vollends anvertraut, ein Virenscanner ist nur ein Teil der Hygiene, die man auf einem produktiven System besitzen und durchsetzen muß. Die Nachteile von Virenscanner-Lösungen mit höheren Erkennungsrraten liegen auf der Hand: Sie bremsen das System aus. Es ist wohl so, dass das sicherste System das ist, das nicht mehr arbeitet. Ich denke nur das Zusammenspiel aus Firewall/Systemupdates/Systemdesign und Anwenderverhalten macht ein System beherrschbar sicher.

Um clamav unter squeeze zu installieren einfach

apt-get install clamav

eingeben und die fehelenden Abhängigkeiten u.U. per

apt-get update

installieren. Danach die Definitionsdateien holen:

freshclam

…und das system scannen (am besten aus der root ;-) )

clamscan -r

Bootchart ist ein prima Programm um den Bootvorgang zu beobachten und ggf. zu optimieren. Leider ist dieses Programm in der aktuellen Debian-Distribution nicht mehr vorhanden. Erst in der nächsten (Wheezy) und übernächsten (Sid) ist es wieder enthalten. Es bleiben nur zwei Möglichkeiten: entweder die Quellen holen und Kompilieren oder das apt-repositry um die Reps der zukünftigen Distibutionen erweitern. Bei beiden Varianten ist Vorsicht geboten; zumal zur Kompilierung viele Pakete (unter anderem das JDK) installiert werden müssen, die eventuell ein Sicherheitsrisiko darstellen, aber auch das Einbinden der sid- Repo’s ist nicht ohne, da diese Release noch nicht den Status “stable” besitzt.
Weiterlesen

Wer ntpd nutzen möchte kommt bei der Installation und Konfiguration u.U. nicht um ntpdate herum um die Systemzeit an die “Realität” anzugleichen. Wenn das aber geschehen ist, sollte ntpdate wieder deinstalliert oder deaktiviert werden, da der von ntpdate benutzte Port blockiert ist und ntpd solange wartet bis der Port frei ist. So wird ein Systemstart unnötig verlangsamt und folgender Fehler ausgegegeben:

lockfile creation failed: exceeded maximum number of lock attempts

Nach deinstallation von ntpdate ist die Welt (und die Zeit) dann wieder in Ordnung.