Ich habe hier mal nen kleines TuT gefunden wie man einen vServer absichern kann.
es wird bestimmt einigen helfen.
Da Sicherheit bei einem Server kein uninteressantes Thema sein sollte, ist es für Admins sehr wichitg ein gewisses Grundwissen zu haben, bzw sich anzueigenen da man ja bekantlicherweil in einem gewissen Bereich für seinen Server haftbar gemacht weredn kann.
Ich möchte hier einmal eine Anleitung erarbeiten wie man seinen Server grundsätzlich absichern sollte um ungewünschte Hackerangriffe abzuwehren.
Diese ist keinenfalls als vollständig anzusehen, aber mit Sicherheit ein guter Anfang.
Dies ist nicht alles auf meinem Mist gewachsen, sondern ist eine Sammlung von Informationen
Einleitung:
Zunächst solltet man sein System immer aktuell halten:
Bei Debiandistributionen:
Zitatapt-get update dann apt-get (dist-)upgrade
Die Firewall (im V-Server Controll Panel) sollte so konfiguriert sein, dass nur die Ports erreichbar (offen) sind, die man wirklich braucht. D.h. man Sperrt alle Ports außer SSH*, FTP*, Web, POP/SMTP Ports.
* Der SSH-Port sowie der FTP Port kann auch gesperrt werden, da man ihn bei Bedarf innerhalb vion 30 Sekunden entsperren kann
Sichere Passwörter verwenden:
ein sicheres Passwort ist nicht:
Zitattest123
ein sicheres passwort wäre:
Zitat!<t31!carolin77>&<t83!werner75>!
Natürlich ist das schwer zu merken, dafür aber auch schwer zu knacken.
Weitere Informationen über Linux und Serveradministration die man sich auf jeden Fall durchlesen sollte findet ihr hier:
http://www.tim-bormann.de/</a>
http://www.i-eye.net/linux/index.php
So nun aber zum eigentlichen Tutorial
1. Regelmäßige Prüfung eurer Log Files.
Eure Logs findet ihr meist unter /var ,weitere unter /var/log
Diese müssen regelmäßig, am besten täglich auf irgendwelche Auffälligkeiten hin geprüft werden.
Man kann sich auch die Logfile per Mail zusenden lassen (=> Google)
2. Rootlogin verbieten und SSH-Port ändern
2.1 SSH Port ändern
Obwohl das ändern des SSH Ports nur eine Scheinsicherheit ist, lassen sich damit jedoch sehr gut automatisierte angriffe abwehren, den den Hackbots ist es zu viel Aufwand jeden Port zu scannen.
Ich persönlich empfehle Ports ab 40000.
2.2 Rootlogin
Dieser sollte nicht für Root erlaubt sein, sondern für einen unpreviligierten User, mit einem vernünftigen Passwort, eventuell einem Key, der auf dem lokalen Rechner liegt
Man verbietet den Root Login indem man in der /etc/ssh/sshd_config die option
ZitatPermitRootLogin yes
auf no setzt.
Schaut dabei auch gleich ob ihr in der sshd_conf euer SSH auf
Protokoll 2 gestellt habt.
Ein weiterer Punkt wäre den SSH-Port per Firewall zu sperren, wenn man ihn nicht benötigt.
3. Der Mailserver
Dieser sollte kein offenes Relay darstellen. Bei einem offenen Relay kann jeder über deinen Server irgendwas verschicken, eben auch Spam.
Ausserdem sollten die bestehenden Zugänge vernünftig abgesichert werden, und die Passwörter sauber gesetzt werden.
Zum Schluss kann man sich überlegen, ob man den Zugang nur noch über SSL erlauben will, denn sonst könnte jemand den gesammten Netzwerkverkehr mitlesen.
Wie das funktioniert, ist bei den einzelnen Mail-Servern unterschiedlich.
Hier mal ein Beispiel für den meist verbreiteten MailServer Postfix
Zitat
Hier findet ihr alles was dazu notwenig ist.
Überprüfen sollte man abschließend ob ein offenes Relay existiert. Das kann an auf folgender Website machen:
Zitat
Sollte das der Fall sein, ist eurer Server auf dem besten Weg dazu eine Spamschleuder zu werden. Also alle offenen Relays sofort schließen
3. Der Webserver
Hier sollten die Zugriffsrechte für Verzeichnisse sauber gesetzt sein, so dass man nicht einfach irgendwohin auf dem Server gelangen kann.
Des Weiteren sollten wichtige Bereiche, wie Adminbereiche, SysCP oder phpmyAdmin, mit einem Passwort geschützt werden; Stichwort HtAccess.
http://de.selfhtml.org/servercgi/server/htaccess.htm
Eine Weitere Möglichkeit besteht in der Änderung eurer Konfigurationsdatei des Webservers. Indem man einen Alias in der Config setzt und einen ungewöhnlichen Namen benutzt, wird PHPmyAdmin deutlich schwerer zu erreichen.
Ausserdem sollte man darauf achten, dass einzelne Skriptsprache wie bespielsweise PHP richtig abgesichert sind.
Hier gibt es Konfigurationen die das System nicht wirklich sicher machen.
Bei PHP beispielsweile sollten folgende Punkte in der PHP.ini folgendermaßen konfigueriert sein:
Zitatdisable_functions = show_source, exec, shell_exec, system, popen, proc_open, proc_nice, ini_restore, passthru, dl
register_globals = Off
allow_url_fopen = Off
display_errors = Off
open_basedir = [path to the directory of the web server / virtual host]
safe_mode = On
3.1 MySQL Server
Ich persönlich habe den MySQL Port von außen per Firewall gesperrt. Ich denke das ist die einfachste Lösung. Wichtig ist hier wieder die korrekte Konfiuration von Webserver und PHP, denn durch Fehleinstellungen, gelangt der Angreifer sehr schnell an eure MySQL Zugangsdaten und kann beispielsweise eine Datenbank mit Kinderpornolinks anlegen.
Das würde euch mit Sicherheit nicht gefallen.
4. FTP-Server
Ich persönlich empfehle hier vsftp. Ein einfacher uns sicherer FTP-Server
Was wichtig ist, Wenn ihr den FTP nicht braucht sperrt eueren FTP Port (21) per Firewall.
Richtige Konfiguration: sftpd ist von Haus aus so konfiguriert, dass anonyme Benutzer sich einloggen dürfen. Sie dürfen in der Standardkonfiguration jedoch nur in /home/ftp lesen. Sie dürfen dieses Verzeichnis nicht verlassen und auch nirgends schreiben. Möchte man anonyme Logins komplett deaktivieren, so müsste man hier
Zitat# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
das YES in NO ändern.
Als nächstes sollte man Lokalen Benutzern den Login erlauben:
Zitatlocal_enable=YES
Damit geschrieben werden kann ist diese Zeile hier wichtig:
Zitatwrite_enable=YES
Die letzte wichtige Option wäre es die lokalen Benutzer auf ihr Homeverzeichnis - also /home/benutzername - zu beschränken.
Dies macht man folgendermaßen:
Zitatchroot_local_user=YES
Bitte auch hier noch weiterlesen:
http://wiki.ubuntuusers.de/vsftpd
5. Nützliche Tools
Das System sollte regelmäsig geupdatet werden, und immer auf dem neuesten Stand sein.
6. Die Programme am besten per Cronjob ausführen
Es ist wichitg, dass Ihr so früh wie möglich von einer Infektion erfahrt und darauf reagieren könnt.
Dieses Skript (Ursprung) führt ClamAV aus (der dann die Verzeichnisse /root, /home und /tmp scannt), chkrootkit und rkhunter -- und mailt Euch dann die Logfiles.
--> E-Mail Adresse ersetzen, und ggf. die Logfile Pfade ändern. Der Ordner muss exisitieren, die Dateien selbst werden dann erstellt, wenn das Script ausgeführt wird (nach Datum sortiert).
ZitatAlles anzeigen#!/bin/sh
### LOG FILES PFADE ###
logfile1=/var/log/security/chkrootkit_scan_`date +%y%m%d`.log
logfile2=/var/log/security/rkhunter_scan_`date +%y%m%d`.log
logfile3=/var/log/security/clamav_scan_`date +%y%m%d`.log
### E-MAIL EMPFAENGER ###
email=deine@adresse.tld
### CHKROOTKIT ###
/usr/sbin/chkrootkit > $logfile1
cat $logfile1 | mail -s "chkrootkit !TREFFER!" $email
### RKHUNTER ###
/usr/bin/rkhunter --update >> /dev/null
/usr/bin/rkhunter -c --cronjob --quiet >> $logfile2
cat $logfile2 | mail -s "rkhunter !TREFFER!" $email
### CLAMAV ###
clamscan -r --quiet -l $logfile3 /home /root /tmp
cat $logfile3 | mail -s "ClamAV-Scan REPORT" $email
7. Keine schlecht programmierte unsichere Scripte verwenden
quelle: forum.netcup.de vom user Scaleo