PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Debian-server Gut abgesichert ?



TheChris80
04.07.16, 12:58
Moinsen.

Ich habe länger nicht mehr mit Linux gearbeitet und ein Windoofserver kam für mich nicht in frage weil ich Linux in sachen sicherheit einfach besser finde.
Desweiteren empfinde ich die Arbeit (mal abgesehen von den Lizenzgebühren) mit Windows als Strafarbeit. (100 stunden durchs UI klicken und sich mit fehlermeldungen ärgern)

Ich wollte einen Server Mit Voiceserver und nem Gameserver aufsetzen.

1. Fail2ban war direkt das erste was ich drauf gemacht habe um Bruteforce attacken zu unterbinden. (7 Fehlversuche = 24H Ban.)

2. Mysql aus sicherheitsgründen ohne PHPmyAdmin. Ich batche bei bedarf mit Navicat und gebe dafür zeitweise meine eigene IP-zum einspielen frei danach stelle ich es wieder auf localhost damit man kaum eine chance hat.

3. Apache2 nur zum downloaden von modifizierten dateien für den gameserver worauf aber nur der Spielclient zugriff hat da die Links für den Spieler unsichtbar sind.
Die startseite ist ein Stinkefinger mit dem Titel " hier gibt es nicht zu holen" welche einen nach 3 sekunden zu google schiebt. :D

4. Nach beendeter arbeit wird auch Root von Login ausgeschlossen und kann nur noch per "SU" in der Bash angefragt werden.
Wenn ich nicht am server arbeite wird er herunter gefahren bis ich fertig bin.

5. ich wollte aufgrund meiner längeren Auszeit fragen ob ich noch etwas vergessen habe oder noch jemand vorschläge hat.
Denn ich will sicherstellen das mein Server nicht zur Spamschleuder wird.

Liebe Grüße
Chris.

muell200
04.07.16, 13:30
Ich habe länger nicht mehr mit Linux gearbeitet und ein Windoofserver kam für mich nicht in frage weil ich Linux in sachen sicherheit einfach besser finde.


nicht das system ist unsicher, sondern wie man die systeme einrichtet!



Desweiteren empfinde ich die Arbeit (mal abgesehen von den Lizenzgebühren) mit Windows als Strafarbeit. (100 stunden durchs UI klicken und sich mit fehlermeldungen ärgern)


aktuelle windows server haben keine GUI ( stichwort: core-modus )



1. Fail2ban war direkt das erste was ich drauf gemacht habe um Bruteforce attacken zu unterbinden. (7 Fehlversuche = 24H Ban.)


keine passwort nur mit keys arbeiten



3. Apache2 nur zum downloaden von modifizierten dateien für den gameserver worauf aber nur der Spielclient zugriff hat da die Links für den Spieler unsichtbar sind.
Die startseite ist ein Stinkefinger mit dem Titel " hier gibt es nicht zu holen" welche einen nach 3 sekunden zu google schiebt. :D


...
nicht nur der apache sondern auch die installierten module haben sicherheitsluecken bzw. kann man falsch konfigurieren
-> php,...
d.h.: alle module deaktivieren die man nicht braucht
usw.




5. ich wollte aufgrund meiner längeren Auszeit fragen ob ich noch etwas vergessen habe oder noch jemand vorschläge hat.
Denn ich will sicherstellen das mein Server nicht zur Spamschleuder wird.



? schwer zu sagen, habe noch nur einen gameserver installiert...

hat der gameserver keine sicherheitsluecken?

mbo
04.07.16, 14:24
Ich lese da eigentlich keine Sicherheitsvorschläge, sondern nur Workaround, oder vermeintliche Workaround.
Beginne mit der Aufstellung an Software, die benötigt wird. Prüfe
- die Softwareabhängigkeit
- welche Bedingungen eine Minimalinstallation erfüllt
- welche Netzwerkverbindungen / -dienste sind erforderlich
- welche Software nutzt welche Netzwerkverbindungen und -dienste
- SELinux
...

phpmyadmin zu verbannen ist auch kein wirklicher Sicherheitsgewinn. Wenn der Apache Software downloaden kann und sich passender Code unterschieben lässt und dann mit hohen Userrechten gestartet ist ... chroot, suexec, suphp etc.

Die Spielwiese ist einfach riesengroß und Deine Begrifflichkeiten könnten Dir im Wege stehen.

nopes
04.07.16, 14:47
Konkret fallen mir diese Bereiche auf, wo evt noch nachgebessert werden kann:

Backup/Snapshoot Strategie, nehmen wir an, dein System wird gehackt, dann willst du schnell wieder einen validen Zustand herstellen
Verschlüsselung, Zertifakte gibt es inzwischen für umsonst, sorga dafür das verschlüsselt kommuniziert wird, ssh tut dies ja schon, sorge also dafür das Apache und der Voice Dienst das auch tun
die DB sollte nur via Localhost erreichbar ein, ich kenne dieses Navicat nicht, phpmyadmin ist nicht wirklich gut, nutze ssh Portforwading und verwende ein besseres GUI (MySQL Workbench) - so kann evt sogar PHP weg
Intrusion Detection, die beste Backup Strategie nutzt dir nichts, wenn du garnicht erst bemerkst, dass da was nicht mehr stimmt - afaik ist aide hier immer noch standard
Isolation, heute wollen wir alle immer kleinere Häppchen, statt also alle Dienste auf einem Rechner laufen zulassen, installiere Docker oder Vagrant und gebe so vielen Diensten wie möglich eine eigene Umgebung
Monitoring, du willst vermutlich wissen, was gerade auf dem System(en) los ist - Munin und Nagios (oder was vergleichbares)


Das wichtigste ist dabei eindeutig das Backup bzw ein Snapshoot und zwar nicht nur das Erstellen, auch das wieder Einspielen ist wichtig. Weiterhin bietet das Securing Debian Manual (https://www.debian.org/doc/manuals/securing-debian-howto/index.en.html) eine ziemlich gut Grundlage, der Inhalt kann sehr oft auf alle Linux Systeme angewendet werden, das solltest du also einmal lesen, sind auch nicht so viele Seiten ;)

DrunkenFreak
04.07.16, 15:50
Ein Webserver, der läuft, ist ein Sicherheitsrisko, genauso wie jeder andere Dienst. Da bringt auch eine Weiterleitung nichts.



[...]

Backup/Snapshoot Strategie, nehmen wir an, dein System wird gehackt, dann willst du schnell wieder einen validen Zustand herstellen
Verschlüsselung, Zertifakte gibt es inzwischen für umsonst, sorga dafür das verschlüsselt kommuniziert wird, ssh tut dies ja schon, sorge also dafür das Apache und der Voice Dienst das auch tun
die DB sollte nur via Localhost erreichbar ein, ich kenne dieses Navicat nicht, phpmyadmin ist nicht wirklich gut, nutze ssh Portforwading und verwende ein besseres GUI (MySQL Workbench) - so kann evt sogar PHP weg
Intrusion Detection, die beste Backup Strategie nutzt dir nichts, wenn du garnicht erst bemerkst, dass da was nicht mehr stimmt - afaik ist aide hier immer noch standard
Isolation, heute wollen wir alle immer kleinere Häppchen, statt also alle Dienste auf einem Rechner laufen zulassen, installiere Docker oder Vagrant und gebe so vielen Diensten wie möglich eine eigene Umgebung
Monitoring, du willst vermutlich wissen, was gerade auf dem System(en) los ist - Munin und Nagios (oder was vergleichbares)

[...]


Das Backup gilt auch erstmal als verseucht. Das Einfallstor wird da nämlich auch drin sein. Wenn der Angriff sogar erst bemerkt wird, nachdem das letzte "gute" Backup gelöscht wird, ist es sogar noch schlimmer. Da ist neu Aufsetzen meist schneller und besser. Wichtiger ist es zu erkennen, worüber der Angriff kam und das zu beseitigen.

Verschlüsselte Kommunikation ist auch nicht unbedingt für die Serversicherheit gut. Den potentiellen Angreifer wird es vermutlich wenig interssieren, ob er http oder https als Einfallstor nimmt.

Docker halte ich zur Zeit noch nicht für ein System, was die Sicherheit erhöhen kann. Das ist eher eine schnelle Art für ein Deployment.

Wie Monitoring die Sicherheit erhöhen kann, ist mir nicht ganz klar. Ich brauche einen zweiten Server, der in der Regel höchstens genauso sicher ist, wie der zu überwachende. Vermutlich wird dieser dann sogar nur stiefmütterlich behandelt und ist ein noch größeres Einfallstor. Macht für einen Server auch nicht so viel Sinn. Da kann ich mir gleich ein paar Skripte schreiben, die mir bei irgendeinem "Fehlverhalten" eine Mail schicken.

nopes
04.07.16, 17:05
@df: wo habe ich den was von weiterleiten geschrieben? Ich habe vorgeschlagen die Dienst zu isolieren und nur die wirklich notwendigen nach außen freizugeben.

Wenn du deinem Backup nicht traust, ist doch eher die Backup Strategie schuld, man muss doch nur vor dem Backup prüfen, ob soweit alles in Ordnung ist -> IDS

Docker trägt zur Isolierung und damit auch zur Sicherheit bei.

Man will schließlich schnell Informiert werden, ob was nicht stimmt, wenn man dafür Skript verwendet ist das für mich vollkommen ok, in der echten Welt habe ich es aber so erlebt, dass alle einfach mal kucken wollten und alle wollen sie mindestens eine Ampel, so nach dem Motto ups DB ist gelbt, die geht bald vor die Hunde. In dieses System gehört dann auch die IDS, wenn die was merkt, sollte das da bekannt gegeben werden - versteht sich von selbst, dass das Monitoring System nicht von außen erreichbar sein darf (VPN oder was in Richtung nrpe). Davon ab stimmt es, nichts was die Sicherheit erhöht, aber es reduziert die Reaktionszeit, also irgendwie doch ;)

Wer will denn heute noch unverschlüsselt reden? Die Hürden sind doch so klein geworden, dank letsencrypt gibt es heute auch Zertifakte die einfach so funktionieren, keine Browser Warnugn, einfach Installation und so weiter. Ich empfinde es halt komplett anders herum, wenn ich ehrlich bin wäre das ein Grund für mich, mich heute nicht mehr hier zu registrieren (aber es wurde ja Besserung in Aussicht gestellt; ok für den letzten Herbst :()

marce
04.07.16, 19:45
zum Thema Docker und Security gibt's recht viele Artikel - die meisten davon kommen zu dem Schluss: Sicherer wird's damit nicht, zumindest nicht, wenn man auch ansonsten sein Hausaufgaben macht. Außer, man definiert Sicherheit anhand Komplexität.
Zudem, solange man eh schon wenig Ahnung hat sollte man die darauf verwenden, ein möglichst einfaches System abzusichern. Zusätzliche Komplexitätsstufen machen auch die Administration und Absicherung komplexer...

nopes
04.07.16, 20:03
bzgl Sicherheit durch Isolation, die Idee dahinter wird in Sandstrom sehr schön erklärt (wobei Sandstorm vagrant verwendet, bei Docker ist das aber sehr sehr ähnlich) - https://docs.sandstorm.io/en/latest/using/security-practices/
Ansonsten stimme ich da schon mit euch bzw. marce überein, wenn man noch wenig kann, diese extra Verteidigungslinien erst einführen, wenn man sicher im Umgang mit den verwendeten Diensten ist.

marce
04.07.16, 20:19
Isolation ist toll. Aber kein Allheilmittel. Vor allem sollte die konsequent sein - und gerade bei Docker ist's da noch nicht so weit her... (wobei zugegeben an der aktuellen Entwickung nicht 1:1 dran hänge)

http://www.computerwoche.de/a/docker-und-co-ein-sicherheitsrisiko-fuer-unternehmen,3217969
https://www.oreilly.com/ideas/five-security-concerns-when-using-docker
(nur 2 flotte Google-Fundstücke)

Wenn schon Isolation dann komplett mit VMs - alles andere ehöht eher die gefühlte Sicherheit als die reale.

nopes
05.07.16, 00:51
Agreed - wobei:

Ich lese gerade, das sandstrom inzwischen docker verwendet, früher war es mal vagrant -> switchen dazwischen ist wohl relativ einfach möglich
ich denke schon das docker soweit ist, die ganzen Wolkendienste lechzen doch gerade zu danach
aus 1. ergibt sich, dass man das Isolieren gefälligst mit dem startet was man besser kann vm oder docker halt (und das startet man erst dann, wenn man seine Dienst ohnehin im Griff hat)

marce
05.07.16, 07:22
zu (2) - daß die Wolkendiesnte so danach lechzen liegt eher daran, daß man so "problemlos" Applikationscontainer vorbereiten und verteilen kann (auch der große Vorteil für Entwickler) - und das noch problemloser / dynmaischer / einfacher als es mit VMs eh schon geht :-)

Ich sehe den Vorteil der Dinger wirklich im Entwicklungsbereich - für den ernsthaften prod. Einsatz scheint gerade jeder auf den Hype aufzuspringen, wobei ich da die "Vorteile" nicht sehe, zumidnest nicht, wenn ich nicht alles von 0 auf neu hochziehen will und nicht auf hochdynamische Systeme angewiesen bin - für sowas können solche Techniken ihre Vorteile allerdings durchaus ausspielen.

Ok, haben wir den TE nun abgehängt?

Newbie314
05.07.16, 07:45
Ich fürchte der setzt grad nen Windows Server auf,
@TheChris : ich würde mir nen alten Rechner besorgen und dort das gewünschte System testweise zuhause aufsetzen.

1. Minimal Linux, nur die benötigten Dienste (alleine damit bist du schon ne Weile beschäftigt)
2. Zugang nicht per Login sondern per ssh mit Keyfile


Statt Sendmail oder etwas Ähnliches würde ich ein Perlscript namens SendEmail verwenden und das so einbinden dass es bei bestimmten Aktionen Mails an dich schickt, z.B wenn jemand einloggt oder wenn bestimmte Prozesse gestartet werden, dann noch einen Weg um regelmässig Logdateien zu erhalten.


Dann natürlich Updates und Backups und einen "Serversitter" für die Zeiten wenn du in Urlaub bist.

DrunkenFreak
05.07.16, 08:31
@df: wo habe ich den was von weiterleiten geschrieben? Ich habe vorgeschlagen die Dienst zu isolieren und nur die wirklich notwendigen nach außen freizugeben.

Du nicht, aber der TE unter Punkt 3.



Wenn du deinem Backup nicht traust, ist doch eher die Backup Strategie schuld, man muss doch nur vor dem Backup prüfen, ob soweit alles in Ordnung ist -> IDS

Damit kann ich nur überprüfen, ob eine Datei kompormittiert worden ist, aber nicht, ob ich Fehler in irgendwelchen Diensten oder Konfigurationen habe, die Tor und Tür öffnen. Daher würde ich dem Backup erstmal nicht nach einem Servereinbruch vertrauen.



Docker trägt zur Isolierung und damit auch zur Sicherheit bei.

Dürfte sich wohl erledigt haben :)



Man will schließlich schnell Informiert werden, ob was nicht stimmt, wenn man dafür Skript verwendet ist das für mich vollkommen ok, in der echten Welt habe ich es aber so erlebt, dass alle einfach mal kucken wollten und alle wollen sie mindestens eine Ampel, so nach dem Motto ups DB ist gelbt, die geht bald vor die Hunde. In dieses System gehört dann auch die IDS, wenn die was merkt, sollte das da bekannt gegeben werden - versteht sich von selbst, dass das Monitoring System nicht von außen erreichbar sein darf (VPN oder was in Richtung nrpe). Davon ab stimmt es, nichts was die Sicherheit erhöht, aber es reduziert die Reaktionszeit, also irgendwie doch ;)

Eine Überwachung zu installieren ist vielleicht nicht schwer, aber sie sinnvoll zu konfigurieren und zu interpretieren ist hier die Schwierigkeit. Desweiteren brauche ich immer einen zweiten Server, der auch abgesichert werden will und im Idealfall keine Verbindung von außen zulässt. Wenn die Überwachung auf dem zu überwachenden Server läuft, sagt mir ja keiner mehr bescheid, wenn der Server weg ist. Oder soll man da Mails alle 5 Minuten schicken, dass noch alles in Ordnung ist?



Wer will denn heute noch unverschlüsselt reden? Die Hürden sind doch so klein geworden, dank letsencrypt gibt es heute auch Zertifakte die einfach so funktionieren, keine Browser Warnugn, einfach Installation und so weiter. Ich empfinde es halt komplett anders herum, wenn ich ehrlich bin wäre das ein Grund für mich, mich heute nicht mehr hier zu registrieren (aber es wurde ja Besserung in Aussicht gestellt; ok für den letzten Herbst :()

Das ist meiner Meinung nach ein anderes Thema, was nicht unbedingt mit der Sicherheit eines Servers zu tun hat. Wichtig ist hier nur, dass die Kommunikation der Administrationswerkzeuge wie SSH, FTP usw. verschlüsselt ist. Dafür brauche ich aber kein kostenloses Zertifikat von LE. Da tut es auch ein selbstsigniertes Zertifikat.