• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Erster vServer: Thema Sicherheit

Hallo Community,

da dies mein erster Beitrag ist, möchte ich mich kurz vorstellen: Mein Name ist Markus, bin 23 Jahre alt, wohne in Graz und studiere dort Informatik im 5. Semester.
Hobbymäßig betreibe ich eine Web-Plattform (social Community, CMS, Groupware...) - bisher auf einem Standard-Webhosting-Paket.
Leider ist man bei solchen Paketen an gewisse Limits gebunden, um diese zu umschiffen muss man auf jeden Fall irgendwie "pfuschen" - im Endeffekt viel Denkarbeit dafür, dass dann wenig bis gar nix brauchbares dabei rauskommt.
Deshalb: Ein vServer muss her.
Habe aber zuerst einige Tutorials gewälzt um den Aufwand abschätzen zu können.
Ziel war es, eine relativ sichere LAMP-Umgebung zu betreiben.
Der vServer war dann schnell bestellt, und ich habe die letzten 2 Tage damit verbracht, alles einzurichten.

Was dabei gemacht wurde:

* sicheres ROOT-Passwort*
* SSH-Standard Port auf einen anderen Port gelegt.
* SSH-Root-Login verweigert (SSH-Login-User mit sicherem Passwort*)
* SSH Protocol 2
* Apache läuft unter eigenem User
* Apache verwendet virtuelle Hosts
* unnötige Mods deaktiviert
* Firewall: iptables > Port 21 (FTP), Port 80 (Apache) und Port XXYYY (ssh) offen, Rest wird geblockt.
* fail2ban für Apache und SSH
* MySQL-Server auf localhost beschränkt
* Sichere MySQL-Passwörter* (root, phpmyadmin, db1_admin, db1_web)
* gesonderter MySQL-Benutzer für Webanwendung (keine Strukturänderungen erlaubt)
* FTP-User mit sicherem Passwort*
* FTP-User ins Home-Verzeichnis gesperrt
* kritische PHP-Funktionen gesperrt
* kein url-fopen
* open-basedir
* brav die Software aktuell halten
* brav Security-Maillisten abbonieren

(* 16 Zeichen, A-Za-z0-9, zufallsgeneriert, keine Wörter)

Mir ist zwar klar, dass Sicherheit nicht wirklich nach oben hin begrenzt ist, jedoch würde ich gern wissen, wie ich mit dieser Konfiguration - ohne übermäßige paranoia - so dastehe, vor allem, da es mein erster vServer ist.

Vielen Dank soweit,
Markus
 

/dev/null

Moderator
Teammitglied
Hallo Markus,

und willkommen im Forum!
Zuerst einmal: Du hast schon recht viel gemacht! Und wie du schon geschrieben hast, "Sicherheit (ist) nicht wirklich nach oben hin begrenzt". Und sie ist kein einmal festgelegter Status, sondern ein dynamischer Zustand. Aber auch da bis du ja aktiv, wie ich lese (und von einem Informatik-Studenten erwarte).

Trotzdem ein paar Bemerkungen von mir.
* SSH-Standard Port auf einen anderen Port gelegt.
=> Security through obscurity. Bringt nicht viel und hält nur Scriptkiddies ab. Ein "richtiger" Angreifer nimmt sich Zeit, und klärt vorher gründlich ab.

* SSH-Root-Login verweigert
=> ja, das ist eine Selbstverständlichkeit. Sehr gut!

(SSH-Login-User mit sicherem Passwort*)
=> Ich sehe es als eine Pflicht an, jegliche Anmeldung mit Benutzername+PW zu verbieten (PasswordAuthentication no), und ausschließlich die Anmeldung mit asymmetrischen Schlüsseln zuzulassen (PubkeyAuthentication yes).
Damit nimmst du auch den Spielmatzen die Chance, mit ihren automatischen Tools Benutzernamen auszutesten.
Hier solltest du allerdings zuerst die Anmeldung mit asymmetrischen Schlüsseln einrichten und gründlich testen und erst danach die Anmeldung mit Benutzername+PW verbieten. Nicht, dass du dich wegen einer Fehlkonfiguration selber aussperrst. Der Server benötigt kein eigenes Schlüsselpaar, es sind lediglich die public Keys der zugriffsberechtigten Nutzer (von allen zugriffsberechtigten Rechnern) in die .ssh/authorized_keys des Nutzers auf dem Server einzutragen. Ich empfehle 4K-Schlüssel.

* fail2ban für Apache und SSH
=> Nettes Spielzeug! Es hält dir das Log rein und verprellt Scriptkiddies. Fachleute erkennen das recht schnell und kennen Wege, dieses zu umgehen. Sicherheit bringt es dir keine (außer vielleicht einen kleinen Zeitvorteil). Sicherheit bringt nur ssh mit PubkeyAuthentication!


Als ftp-Server den vsftp eingesetzt?
ftps oder sftp (wenn nur Linuxnutzer)?


Viel Spaß mit deinem Server!

MfG Peter
 

gehrke

Administrator
Teammitglied
/dev/null schrieb:
(SSH-Login-User mit sicherem Passwort*)
=> Ich sehe es als eine Pflicht an, jegliche Anmeldung mit Benutzername+PW zu verbieten (PasswordAuthentication no), und ausschließlich die Anmeldung mit asymmetrischen Schlüsseln zuzulassen (PubkeyAuthentication yes).
Damit nimmst du auch den Spielmatzen die Chance, mit ihren automatischen Tools Benutzernamen auszutesten.
Hier solltest du allerdings zuerst die Anmeldung mit asymmetrischen Schlüsseln einrichten und gründlich testen und erst danach die Anmeldung mit Benutzername+PW verbieten. Nicht, dass du dich wegen einer Fehlkonfiguration selber aussperrst. Der Server benötigt kein eigenes Schlüsselpaar, es sind lediglich die public Keys der zugriffsberechtigten Nutzer (von allen zugriffsberechtigten Rechnern) in die .ssh/authorized_keys des Nutzers auf dem Server einzutragen. Ich empfehle 4K-Schlüssel.

Ich würde ebenfalls jedem zum PubKey-Verfahren raten und Passworte deaktivieren.

In unserem Wiki gibt es eine Seite dazu, vielleicht schaust Du da mal rein:
http://linupedia.org/opensuse/Einrichten_von_public_keys_mit_ssh

cu, gehrke
 
OP
C

cd_brenner

Newbie
Danke für die netten Beiträge, demnach werde ich heute ein wenig mit der PubkeyAuthentication herumspielen, und zusätzlich eine Passphrase definieren. Danke für den tollen Link, gehrke.

=> Nettes Spielzeug! Es hält dir das Log rein und verprellt Scriptkiddies. Fachleute erkennen das recht schnell und kennen Wege, dieses zu umgehen. Sicherheit bringt es dir keine (außer vielleicht einen kleinen Zeitvorteil). Sicherheit bringt nur ssh mit PubkeyAuthentication!
Ich denke, das reine bruteforcen der Passwörter kann durch dieses Tool schon gewaltig erschwert werden, jedoch brauchen meine Passwörter ca. 7 Milliarden Jahre um geknackt zu werden.

Als ftp-Server den vsftp eingesetzt?
ftps oder sftp (wenn nur Linuxnutzer)?

Nein, ich verwende den "proFTPd" mit folgenden Einstellungen:
Code:
RequireValidShell off
DefaultRoot ~ ftpuser
DenyGroup !ftpuser
Hier wäre sicher noch eine verschlüsselte Verbindung angesagt.

Aus ideologischen Gründen würde ich mich gerne an den Standard von http://www.wirspeichernnicht.de/ halten, vermute aber, dass mir das loggen der IP-Adressen - insbesondere mit fail2ban - schon eine gewisse Sicherheit bringt.
Wie seht ihr das?

Vielen Dank für die tollen Antworten,
Markus
 
OP
C

cd_brenner

Newbie
UPDATE: SSH-Login jetzt nur noch über das Public-Key-Verfahren und ausschließlich nur für den SSH-User.
 
Oben