Login
Newsletter
Werbung

Sa, 4. Februar 2006, 00:00

Teil 1: Den Server kennenlernen

schroedi@emilie:~$ sudo apt-get install lshw
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
 hwdata lshw-common
The following NEW packages will be installed:
 hwdata lshw lshw-common
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 883kB of archives.
After unpacking 3056kB of additional disk space will be used.
Do you want to continue? [Y/n] y

Danach können Sie als root das Kommando lshw starten und erhalten eine sehr ausgiebige Liste mit Server- und Hardware-Informationen. Am besten leiten Sie sich diese Ausgabe mit lshw >> /tmp/lshw_out.txt in eine Datei um und sichern diese Ausgabedatei auf Ihrem lokalen Rechner.

Um mal schnell zu schauen, was im Server verbaut ist, erhalten Sie mit lshw -short eine Ausgabe, wie es HP-UX mit einem IOScan anzeigen würde. Dies ist sicherlich besser als die umfangreiche Auswertung der gesamten LSHW-Ausgabe.

 H/W path Device Class Description
=====================================================
 system VT8601
/0 bus 601-686B
/0/0 memory BIOS
/0/4 processor Intel(R) Celeron(TM) CPU 1200MHz
/0/4/8 memory L1 cache
/0/4/9 memory L2 cache
/0/19 memory System Memory
/0/19/0 memory None
/0/19/1 memory None
/0/e0000000 bridge VT8601 [Apollo ProMedia]
/0/e0000000/1 bridge VT8601 [Apollo ProMedia AGP]
/0/e0000000/1/0 display CyberBlade/i1
/0/e0000000/7 bridge VT82C686 [Apollo Super South]
/0/e0000000/7.1 storage VT82C586A/B/VT82C686/A/B/VT823x/A/CPIPC Bus Master IDE
/0/e0000000/7.1/0 ide0 bus IDE Channel 0
/0/e0000000/7.1/0/0 /dev/hda disk IC35L040AVVN07-0
/0/e0000000/7.4 bridge VT82C686 [Apollo Super ACPI]
/0/e0000000/d eth0 network RTL-8139/8139C/8139C+

Dienste deaktivieren

In der Regel sind auf einem neu eingerichteten Server diverse Dienste aktiv. Dies erhöht natürlich das Interesse eines Angreifers, insbesondere, wenn die Dienste auf der einen Seite nicht genutzt werden, auf der anderen Seite dann auch nicht gepflegt und nicht den regelmäßigen Sicherheitspatches unterzogen werden. Sie können sich mit dem Befehl netstat die Verbindungen von und auf Ihren Server und die derzeit offenen Sockets anzeigen lassen.

Serververbindungen via TCP

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 48 120.18.37.37:22 84.182.150.220:62333 ESTABLISHED
tcp 0 0 120.18.37.37:22 84.182.150.220:62328 ESTABLISHED
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 120.18.37.37:123 0.0.0.0:*
udp 0 0 127.0.0.1:123 0.0.0.0:*
udp 0 0 0.0.0.0:123 0.0.0.0:*

Die 1. Spalte zeigt das Protokoll an. In unserem Fall TCP. Die 2. Spalte kann außer Acht gelassen und getrost übersprungen werden. Die 3. Spalte zeigt die IP-Adresse des Senders, in diesem Fall unseren Server und nach dem Doppelpunkt den Port. In der 4. Spalte finden wir die Adresse des Kommunikationspartners. Überschrieben ist die Zeile mit »Foreign Address«. Wie in Spalte 3 ist sie wieder mit IP-Adresse und Port gekennzeichnet.

An dieser Stelle sei gesagt, dass bis zum jetzigen Zeitpunkt eigentlich »nur« der Port 22 für SSH auf dem Server geöffnet sein sollte.

Die letzte Spalte zeigt den Zustand der Verbindungen an. In unserem Fall haben wir »Listen«, was soviel bedeutet wie, dass der SSH-Daemon auf dem Port, der in der Zeile angegeben ist, hört. In diesem Fall wäre es Port 22. Unsere beiden Verbindungen auf dem Server werden mit »ESTABLISHED« angezeigt.

Offene Socket-Verbindungen

Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 5 [ ] DGRAM 1102 /dev/log
unix 3 [ ] STREAM CONNECTED 138994
unix 3 [ ] STREAM CONNECTED 138993
unix 3 [ ] STREAM CONNECTED 138607
unix 3 [ ] STREAM CONNECTED 138606
unix 2 [ ] DGRAM 27966
unix 2 [ ] DGRAM 1161
unix 2 [ ] DGRAM 1113

Auf diesen Bereich werden wir zu einem späteren Zeitpunkt eingehen.

In der Regel sollte auf einem »frischen« System nicht mehr als der Port 22 geöffnet sein.

Mit den Waffen des Gegners kämpfen

Um noch einen anderen Blickwinkel zu erhalten, scannen wir mit dem Portscanner NMAP unseren Server von unserem Client aus. Ich muss nicht dazu sagen, dass Sie bitte nur ihren eigenen Server scannen.

Mit dem Befehl nmap [Servername] erhalten Sie dann eine Ausgabe wie die folgende:

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-01-15 17:53 CET
Interesting ports on (120.18.37.37):
(The 1661 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
22/tcp open ssh
445/tcp filtered microsoft-ds
Nmap finished: 1 IP address (1 host up) scanned in 7.681 seconds

Um jetzt einen unerwünschten Dienst zu deaktivieren und zu entfernen, ist es am besten, ihn komplett zu deinstallieren, denn ein nicht vorhandenes Programm kann keinen Schaden anrichten: apt-get remove [Paketname]. Sollte der Dienst danach immer noch laufen, müssen Sie ihn von Hand killen oder neu booten. Normalerweise sollte das nicht der Fall sein, aber prüfen sollte man es. Verwenden Sie die Option --purge, um auch gleich alle zugehörigen Konfigurationsdateien loszuwerden.

Einen Dienst, der über (x)inetd gestartet wird, können Sie auch deaktivieren, ohne ihn gleich zu deinstallieren. Verwenden Sie dazu update-inetd -remove [Dienst] (zum Beispiel Telnet, wenn dieser laufen würde).

update-inetd --remove telnet

Und danach müssen Sie den Superserver inetd neu starten. Dies können Sie mit dem Befehl /etc/init.d/inetd restart tun:

/etc/init.d/inetd restart
Restarting internet superserver: inetd.

Nun sollten nur noch die Dienste laufen, die auch wirklich erwünscht sind.

Ausblick

Im kommenden Teil unseres Workshops werden wir uns mit dem Absichern des Servers beschäftigen. Hierzu werden wir mit dem GRSECURITY-Patch unseren Kernel patchen und diesen nach erfolgreichem Kompilieren in unserem System installieren und nach einem kurzen Ausflug über Grub und LILO erfolgreich booten. Außerdem werden wir an dieser Stelle noch auf Troubleshooting eingehen, was zu tun ist, wenn der Kernel nicht bootet.

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