Mein allererster Server im World Wide Web - wie versaue ich es nicht?

DFFVB

Rear Admiral
Registriert
Dez. 2015
Beiträge
5.593
Hallo zusammen, zum Black Friday hab ich mir einen kleinen Webserver bei Netcup gegönnt (8/512).

Nun liest man ja häufig, dass Server gehackt werden, Normalsterbliche können die gar nicht absichern. Wer nicht einen Abschluss in Quantentheorie hat kann eh heimgehen. Gleichzeitig gibt's ja auch genug Server und auch Leute die die einsetzen und das klappt auch irgendwie. Ein Bekannter betreibt seinen seit Jahren gar ohne Firewall...

Daher hier mal meine Vorgehensweise:

  • Admin Passwort ändern
  • SSH härten
    • Public Key mit PIV auf einem Yubikey
    • Root und password no
    • Standard Port ändern
  • Ufw allow openssh
  • Ufw enable
  • Fail2ban
  • Logwatch

So dann ist die Kiste erstmal relativ dicht. Aber läuft noch nichts drauf. Geplant ist erstmal Plex mit einem anderen als dem Standard Port und 2FA.

Stellt sich die Frage nach einem Reverse Proxy. Lohnt das schon für einen Dienst?

Darüber hinaus würde ich gerne wissen wie dicht die Kiste ist. Wie finde ich das raus?

Ich dachte dabei an Honeypots. Theoretisch müssten die ja still bleiben, weil nichts reinkommt?
 
  • Gefällt mir
Reaktionen: 3!93D
Wenn du Login mit Zertifikat machst, brauchst du ja eigentlich keinen erlaubten Login mit Passwort.
Port ändern kann man machen, hilft aber eher die Logs sauber zu halten als echte Sicherheit zu bringen.
Port knocking wäre auch noch eine Möglichkeit die du dir anschauen könntest.

Bei Reverse Proxy ist die Frage, ob du der Software mehr vertraust als der eigentlichen Software die dahinter laufen soll. Du schließt halt ein mögliches Loch indem du ein potentielles anderes öffnest.
Kann man aber machen.

Was immer wichtig ist, ist die Software zu patchen. All die Vorsichtsmaßnahmen bringen nichts, wenn z.B. dein Plex oder Reverse Proxy eine Sicherheitslücke hat.
Möglichst alle Software mit eingeschränkten Usern laufen zu lassen wirst du ja sicher schon bedacht haben.
 
  • Gefällt mir
Reaktionen: DFFVB
DFFVB schrieb:
Ein Bekannter betreibt seinen seit Jahren gar ohne Firewall...
Geht ja auch ohne "Firewall". Eine Firewall (i.d.R. ist hier ja ein Paketfilter gemeint) braucht man ja nur, wenn man zwar einen Service gestartet hat der auf einem externen Interface lauscht aber dieser soll gar nicht von extern erreichbar sein.
Wenn man das nicht hat, weil man darauf achtet seine Dienste so zu konfigurieren, das die das nicht sinnloserweise machen, braucht man auch keine Ports abdichten.

Da sollte generell das Augenmerk hingehen. Server werden i.d.R. ja nicht "als solches" angegriffen, sondern ein Dienst der darauf läuft. Der muss sicher konfiguriert werden (und auch dafür sorgt, das Security-Patches zeitnah eingespielt werden) und idealerweise sogar noch "jailed" werden.

Bei SSH würde ich das Login auf jeden Fall mit 'nem Public-Key machen statt mit einem Passwort. Dann braucht man auch keine Sorge vor "Angreifer probiert alle Passwörter durch"-Szenarien zu haben.

Das die Passwörter die man sonst noch so hat, gute Passwörter (also insbesondere lang) und vorhandene geändert gehören, versteht sich ja von selbst.

Generell macht sich gut, wenn man das mal an einem heimischen Rechner (kann ja auch in einer VM sein durchspielt und ausprobiert, bevor man anfängt sich an ein offen im Internet stehenden Server auszuprobieren.
 
  • Gefällt mir
Reaktionen: DFFVB, h2f, Masamune2 und eine weitere Person
Wenn du keine Public Dienste anbieten willst, dann packe alles hinter ein VPN wie Wireguard.

DFFVB schrieb:
SSH härten - Ufw allow openssh

Kommt ein Exploit vorbei und übernimmst direkt den Dienst. Oder ist der öffentlich?

Ich würde ein VPN zum Server-Zugriff auch auf bekannte Netzbereiche/AS einschränken solange du nicht public Dienste im Internet anbieten willst.
 
  • Gefällt mir
Reaktionen: DHundt und madmax2010
Ich würde auch keine Administratorenkonten haben wollen, die wie Administratorenkonten heißen.
 
  • Gefällt mir
Reaktionen: DFFVB und aragorn92
DFFVB schrieb:
  • Admin Passwort ändern

Root Passwort, und ja, kann man machen

DFFVB schrieb:
  • SSH härten
    • Public Key mit PIV auf einem Yubikey
unnötiger Aufwand

DFFVB schrieb:
    • Root und password no

Richtig, wobei das mit nem richtigen Passwort auch nicht wirklich ein Problem ist.

DFFVB schrieb:
    • Standard Port ändern
Unnütz, hält nur Scriptkiddies ab und die Logs sauber. Zieht auch Anpassungen an UFW und Fail2ban nach sich.


DFFVB schrieb:
  • Ufw allow openssh

richtig


DFFVB schrieb:

richtig

DFFVB schrieb:
richtig

DFFVB schrieb:
kann man machen.

Was man noch machen sollte:

Regelmässige Updates von allen Sachen.
Regelmässige Backups
- Server neumachen ist einfacher als nach einem Eindringen versuchen das zu beheben

Nur das installieren, wovon man Ahnung. hat. ein offenes Emailrelay ist schnell versehentlich eingerichtet.
(Ich rate generell zu externen Mailservern und Smarthosts)

Nicht einfach blind Befehle aus Anleitungen kopieren.

Was mach machen kann:

SSH mit 2FA per TOTP (Google Auth, Aegis usw)

Ergänzung ()

DFFVB schrieb:
Lohnt das schon für einen Dienst?
Für Plex definitv, schon wegen SSL. Wobei ich persönlich Plex nie ins offene Internet hängen würde. Stichwort VPN
Ergänzung ()


DFFVB schrieb:
Wie finde ich das raus?
Gar nicht. Alles was Testen könnte, testet nur auf bekannte Sachen und die sind bei regelmässigen Updates meistens gefixt.

Mach dich nicht verrückt, wenn was passierst dann sperrt erstmal Netcup den Server, du machst den platt und spielst die Daten zurück.
Ergänzung ()


DFFVB schrieb:
Ich dachte dabei an Honeypots
lass es, vorallem macht man das nicht auf einem Produktivsystem. Du lässt damit wissentlich fremde Leute, öffnest Ports usw. Sowas macht man auf vom Rest abgeschotten Systemen oder VMs

Lass die Software des Honeypots einen Fehler haben.
 
Zuletzt bearbeitet:
To be honest:
Keep it simple: Starkes Passwort, kein Root oder Admin als Benutzer verwenden und dann passt das schon. Wenn du extra Sicherheit willst MFA mittels Google einrichten, das ist mehr als genug. Alle Dienste die du anbinden willst, per Reverse Proxy. Alle Dienste die mehrere Container brauchen, in ein eigenes Docker Netzwerk schieben und bspw. nur das Frontend nach außen Exposen anstatt Backend und DB.
 
Firewall braucht man im Allgemeinen nicht. netstat -lp sollte nur Dienste an der öffentlichen IP anzeigen, die auch wirklich öffentlich zugreifbar sein sollen, alle anderen gehören abgeschaltet.

Unattended-upgrades unbedingt anschalten.

Viel spannender als OpenSSH und nginx ist z.B. die Frage, wie genau Du Plex installieren und aktuell halten willst.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Der_Picknicker
Zurück
Oben