Login
Newsletter
Werbung

So, 23. April 2006, 00:00

Teil 2: Den Server absichern

Sudo

Sudo ermöglicht es einem Benutzer, Programme oder Skripte mit den Rechten des Superusers root auszuführen. Dieser Benutzer muss in einer speziellen Datei sudoers festgelegt werden. Ebenfalls kann in dieser Datei festgelegt werden, wer welche Kommandos absetzen darf, als welcher Benutzer er das tun darf usw.

In der Regel sollte der Benutzer nach Eingabe von sudo Befehl sein User-Passwort, nicht das Root Passwort, zur Authentifizierung eingeben. Nach dieser Authentifizierung ermöglicht Sudo durch Setzen eines Zeitstempels die mehrfache Ausführung des sudo-Kommandos ohne erneute Authentifizierung.

Wie bereits in den ersten Zeilen von /etc/sudoers steht, müssen Sie diese Datei mit dem Programm visudo bearbeiten.

Aufbau von /etc/sudoers

In der Datei befinden sich vordefinierte Kommentare, die helfen sollen, die Datei übersichtlich zu gestalten.

# /etc/sudoers
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
schroedi ALL=(ALL) ALL

Den Eintrag root ALL=(ALL) ALL können Sie auskommentieren.

Mögliche Beispiele für die Verwendung von sudo:

sudo -u www-data vim /var/www/htdocs/index.html

Hier verwenden Sie den User www-data, um mit dem Editor die Datei index.html zu bearbeiten.

Um einen Server neu zu booten, verwenden Sie folgendes. Dieses Recht sollte nicht jedem Benutzer zugestanden werden.

sudo shutdown -r +15 "quick reboot"

Standardmäßig loggt sudo die Aktivitäten im Zusammenhang mit dem Sudo-Kommando ins Syslog, wo die Meldungen in den Dateien /var/log/auth.log oder /var/log/messages erscheinen. Beispiel:

Feb 20 16:22:38 127.0.0.1 sudo: schroedi : TTY=pts/1 ; PWD=/home/schroedi ;
USER=root ; COMMAND=/bin/ls -al /root/
Feb 20 16:23:12 127.0.0.1 sudo: schroedi : TTY=pts/1 ; PWD=/home/schroedi ;
USER=root ; COMMAND=/bin/cat /etc/passwd

Sollten Personen, die nicht Mitglieder der Sudoers sind (nicht in der Datei /etc/sudoers eingetragen sind), einen Befehl mit sudo ausführen wollen, wird dies ebenfalls geloggt und möglicherweise eine Email generiert.

Envelope-to: root@localhost
To: root@localhost
Subject: *** SECURITY information for localhost***
From: "M. Schroeder" <schroedi@localhost>
localhost : Jan 17 07:51:36 : schroedi : user NOT in sudoers ; TTY=pts/0 ;
PWD=/home/schroedi/.ssh ; USER=root ; COMMAND=/sbin/ifconfig eth0

An dieser Stelle werden Sie erkennen, dass sudo nicht nur ein erheblicher Sicherheitsgewinn sein kann, wenn Sie es restiktiv verwenden, sondern auch, dass Sie jederzeit nachvollziehen können, wer auf Ihrem Server was gemacht hat.

Diese Logging-Konfiguration kann ebenso durch Optionen in der Datei /etc/sudoers verändert werden.

Außerdem können Sie nun nach Art von Apple oder Ubuntu den Root-Account deaktivieren, da dieser zum Arbeiten nicht mehr verwendet wird. Ich verbiege in der Datei /etc/passwd die Standard-Shell auf /bin/false, danach sollte das Einloggen und das su - nicht mehr funktionieren.

root:x:0:0:root:/root:/bin/false

Server absichern

Firewall

Vorweg sollte gesagt werden:

Es wird nie und nimmer eine hundertprozentige Sicherheit geben. Dennoch können Sie es einen Angreifer so schwierig wie möglich machen, Ihren Server auszuhebeln. In diesem Kapitel möchte ich Ihnen zeigen, wie Sie Ihren Server mit einer Firewall absichern können, was es hierbei zu beachten gibt und vor allem, wo es den einen oder anderen Trick gibt.

Firewall in der Praxis

In der Praxis ist ein Server, der ohne Firewall betrieben wird, ein gefundener Spielplatz für üble Zeitgenossen und Skriptkiddies.

Der Betrieb einer Firewall ist also unumgänglich. Es ist nur eine Frage der Zeit, bis Ihr Server von einem Portscanner überprüft wird und dann durch einen Angreifer als offen erkannt wird.

Es gibt sicher zahlreiche Bücher über Firewalls und Serversicherheit. An dieser Stelle will ich Ihnen zeigen, wie Sie Ihren Server sicher machen können. Außerdem erhalten Sie einen Einblick in den Sinn und Zweck einer Firewall sowie deren Konfigurationsphasen.

Warum sollte man eine Firewall überhaupt einsetzen?

Auch wenn auf der Webseite einiger Provider erklärt wird, dass auf einem Rootserver eine Firewall nicht notwendig ist, ist es meines Erachtens sehr sinnvoll, seinen Rechner nur die Ports oder Dienste zur Verfügung stellen zu lassen, die Sie wirklich benötigen.

Ein weiterer Vorteil ist die Kontrolle des Datenverkehrs auf den einzelnen Ports. Sie können ihn entweder komplett unterbinden, nur von innen nach außen zulassen oder an einen bestimmten Port weiterleiten.

Außerdem werden Sie in einem weiteren Workshop-Teil lernen, wie Sie den ein- und ausgehenden Traffic ermitteln können und diesen grafisch aufbereitet als HTML-Datei darstellen.

Sofern Sie sich über eine Rechnerverbindung an Ihrem Server anmelden, dann sollten Sie zunächst dafür sorgen, dass Sie nur sichere Dienste verwenden. Verwenden Sie Telnet oder Dienste wie rlogin, sollten Sie wissen, dass das Passwort dort im Klartext übertragen wird. Es könnte also von jemandem mitgeschnitten (gesnifft) werden. Mit SSH werden die Anmeldepasswörter nicht im Klartext übertragen.

Sollten Sie sich immer über einen bestimmten Rechner auf Ihrem Server einloggen, dann können Sie diese Information ebenfalls für das Absichern verwenden. Sie können dann den SSH-Login auf eine bestimmte IP-Adresse limitieren oder, sofern Sie sich über einen Provider einwählen und nicht sicher sein können, dass Sie immer die gleiche IP-Adresse erhalten, einen Adressbereich definieren. In der Regel benutzen Provider immer den gleichen Pool von IP-Adressen.

Auch andere Dienste wie HTTP, POP3/IMAP oder SMTP sind gefragt bei der Gegenseite. Im Internet kursieren zahlreiche Exploits für einschlägige Servertypen. Wollen Sie einen Mailserver mit den Diensten POP und SMTP nur für einen Bereich von Personen oder Rechnern verwenden, dann können Sie diese Ports ebenfalls auf einen Bereich beschränken.

Ihr Ziel sollte es sein, nur die Ports zu öffnen, die Sie für den Betrieb des jeweiligen Dienstes benötigen. Das hat für Sie den Vorteil, dass ein Angreifer nicht umhin kommt, einen Exploit auf den Dienst anzuwenden, oder anderweitig manipulieren muss.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung