Server administrieren - wo fange ich an?

  • Puhhh. Vielleicht erstmal nen Apachen direkt aufsetzen bevor man alles in Docker packt? Fänd ich zumindest besser.

    Und jetzt schon docker? Würde ich erstmal noch aufschieben...

    Alles gut, dann lasse ich das erstmal. Wusste ja nicht das docker schon so ein Ding ist :) Deswegen sag ich ja wo ich hinmöchte und warte darauf was ihr sagt ;) Dann lese ich mich mal in Apache ein :)

    apt wird von der Änderung des ssh-Ports nicht berührt. Das funktioniert weiterhin.

    Je nachdem wie die ufw konfiguriert ist könnte sie apt blockieren.

    Wie kann ich das überprüfen?

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • apt zeigt ja an, was es holt (hier überwiegend 80, manches auch via 443).


    also einfach mal deine apt cmds laufen lassen…


    edit: sinnvoll wäre evtl. wenn du spoilerst, was du in UFW eingestellt hast.

    »Hauptsache BogoMIPS!«

    Fleischfresser

    2 Mal editiert, zuletzt von Olivetti ()

  • Outgoing per default allowed ist aber jetzt nicht unbedingt sonderlich zugenagelt. Um nicht zu sagen da kannste dir die Firewall auch sparen aktuell :)

    Aber ich dachte Outgoing is alles was von meinem Server raus geht, also alles was ich als root oder sudo starte, oder nicht? Wieso ist das dann nicht gut?

    Nicht falsch verstehen, will mich nicht "gegen" deine Aussage oder so stellen, will nur die Logik dahinter verstehen =)


    Also mach ich deny outgoing und schalte nur meinen SSH port frei plus 80 für Apache?

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Klar, frag gerne. Ich kann mich natürlich auch täuschen. Weiß man ja nie.


    Also kurz erklärt: Eine Firewall unterbindet die Kommunikation auf einem Port. Wir brauchen aber eingehend quasi garkeine Firewall weil da sowieso kein Programm läuft was antworten könnte - auf keinem Port. Außer aktuell auf deinem SSH Port. Den jetzt aber eingehend durch die Firewall zu sperren nützt nix weil sich dann ja keiner verbinden kann. Was ja aber der Sinn von SSH ist. Du könntest natürlich eingehend nur für deine IP erlauben. Solange die sich nicht oft ändert würde das sogar Sinn machen. Nur unterwegs vom Handy kannst du deinen Server halt dann schlecht erreichen.


    Nun aber zu dem -theoretischen- Bedrohungsszenario warum manche hier eine Firewall empfehlen: Jeder User auf deinem System kann einen Port aufmachen und damit läuft dann ein Dienst dort. Das willst du verhindern. Und während ich das schreibe fällt mir auf dass genau dieses Szenario auch von Inbound Deny verhindert wäre. Theoretisch zumindest. Wenn aber von Inbound eine Verbindung nach außen aufgebaut wird (Reverse Shell) das würde dann aber gehen. Also dass jemand einen erreichbaren Dienst laufen lässt hast du blockiert. Aber dass er sich von dir aus zu einem Dienst verbindet nicht. Und dieser Dienst kann ein Server sein der dann dauerhaft die Verbindung offen hält.


    Puhhh, das am Handy zu tippen ist echt schwer. Kann man es trotzdem verstehen?


    PS: Das ist natürlich alles sehr theoretisch, aktuell ist es quasi ausgeschlossen dass jemand auf dein System kommt. Aber wenn du dann mal Dienste laufen hast wo ein Dienst eventuell eine Sicherheitslücke hat dann würde der Angreifer über den Dienst auf dein System kommen. Und eine bequemere Verbindung (Reverse Shell) ist dann der erste Step. Eine zugenagelte Firewall macht das komplizierter, aber da derjenige ja eh schon "drin" ist, ist es sowieso schon zu spät.

  • Alles gut, dann lasse ich das erstmal. Wusste ja nicht das docker schon so ein Ding ist :) Deswegen sag ich ja wo ich hinmöchte und warte darauf was ihr sagt ;) Dann lese ich mich mal in Apache ein :)

    Wie kann ich das überprüfen?

    Wenn du dich dann mit Docker beschäftigst, am besten auch gleich mit Revers Proxys (das ist die Antwort auf die Häufige Frage wie lasse ich Dienst x auf 443 und Dienst y auf 443 laufen, beides auf einer eignen Sub Domain) - nach deiner vorherigen Antwort zu urteilen, hasst du ja vor allem vor - nicht klassische Webseiten auf dem Server laufen zu lassen (also Sachen die nicht auf den Webhosting gehen).

    Für Docker kann man dann (auch später) Portainer nutzen (schönes UI und praktische Multi Server Verwaltung) und für Reverse Proxies setze ich gerne NPM (Ngnix Proxy Manger) ein, hat auch schönes UI (man kann es aber nartülich auch mit Treafik - fast automatisch dafür nur Docker - oder Ngnix pur machen).

  • naja, die paketbasierte Firewall schützt aber insbesondere auch bei versehentlicher Installation/Einrichtung anderer Dienste.

    Ein Anfänger hat schnell mal irgendwas installiert, was nach außen garnicht erreichbar sein sollte.


    Schade, dass Netcup hier keine Firewall mit Webinterface anbietet.

  • Okay, danke schon mal für die ausführliche Erklärung. Ich glaube zu 100% habe ich es nicht verstanden, aber ich denke ich weiß was du verhindern möchtest.

    Ich hab jetzt mal apache nochmal runtergeschmissen und die freigegebenen Ports auf ufw wieder entfernt.

    outgoing ist nun auch deny

    Allerdings sind meine SSH ports nur ALLOW IN - passt das? und warum gibt es das ganze 4 mal?


    Theoretisch brauche ich ja nur tcp, oder? und die beiden v6 kann ich ja auch löschen.

    Aber dafür müsste ich beim tcp in und out einstellen, richtig?

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Schade, dass Netcup hier keine Firewall mit Webinterface anbietet.

    Ich verstehe deinen Gedankengang bzw. den Sinn hinter deiner Aussage, aber ich bin eigentlich recht dankbar dafür. So muss ich es von Anfang an vernünftig lernen.

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Und jetzt schon docker? Würde ich erstmal noch aufschieben...

    Das wird zuviel auf einmal.

    Naja so schlecht wäre es mit Docker auch nicht - an sich ist Revers Proxy + Docker Container + einen Firewall (die nur 443 + SSH und unter Umständen 80 erlaubt), also nur den Proxy1 raus lässt - gar nicht so schlecht als Setup.

    (Dazu die Domain eventuell noch hinter Cloudflare - aber die IP kann nartülich trotzdem gefunden werden, zumindest die IPV4 vergleiche Shodan)


    Statt Docker kann man nartülich auch Podman verwenden, dann hat man es rootles was einiges an Angriffsfläche entfernt (kurz rootles ist in diesem Kontext wichtig, da selbst wenn man nur einem Docker User, also einem User ohne root Rechte (also ohne sudo) , der aber Docker Rechte hat, 'erobert' - kann man sich ziemlich leicht root rechte geben, da Docker selber mit root Recht läuft - häufiges Szenario bei Hack the Box oder Tryhackme - kann aber auch real passieren)

  • +1 für die Umsetzung von Anwendungen in Docker! Docker verwenden heißt ja nicht, das Linux "Handwerkszeug" nicht lernen. Aber in der Tat sind die Sachen so viel schöner kompartimentiert und besser transportabel. Zudem kann man einen Containerbuild jederzeit wieder löschen und neu builden, wenn man eine Anwendung einmal verbaselt hat, hat man ggfalls im OS ein Problem.


    Docker ist schon auch noch mal ein Brett, aber extrem lohnenswert und wenn man weiß wies geht, kann man in nullkommanichts komplexe Anwendungen aus diversen Bestandteilen spawnen.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

    Gefällt mir 1
  • Ich kann mich aRaphael da nur anschließen: Das wird zu viel für den Anfang.


    Lasst Bud das ganze System mal langsam kennen lernen. Die ersten Gehversuche sind doch auch so schon schwer genug. Für Docker & Co. hat er 2023 noch genügend Zeit, das muss nicht gleich am zweiten Tag sein...

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    Gefällt mir 5
  • Kann ich mir irgendeinen Port als SSH einfallen lassen?

    Argh, die xxx. Wiederholung desselben Einstiegsthemas, welches mit steter Regelmäßigkeit im Forum auftaucht. ;(

    • Wäre schön, wenn zumindest Nutzer mit vierstelliger Anzahl von Postings erst einmal die Forensuche bemühen.
    • Wäre noch viel schöner, wenn eine der ersten Antworten auf die existierenden Diskussionsfäden hinweisen würde (Spoiler: SSH-Standardport im VPN, denn wenn ein Außenstehender da 'reinkommt, hat man eh andere Probleme; wenn man einen öffentlichen SSH-Zugang benötigt, sichert man den durch port knocking, d.h. ohne "Sesam-öffne-Dich"-Sequenz kommt da keiner 'rein, und damit gibt's da auch nicht viel mitzuloggen/-lesen/-filtern).


    Ähhm Port ändern kann sehr sinnvoll sein, je nach Dienst. Du kannst durch einen Portscan nur offene ports erkennen, aber nicht welcher Dienst läuft.

    Änderst du den ssh Port, finden z.B. keine Zugriffe mehr durch irgendwelche bots statt.

    Linktip: Service and Version Detection (Viele geben auf, aber nicht alle Bösewichte; psad meldet unregelmäßig sehr umfangreiche Scans.)

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE/edit?usp=sharing

    Gefällt mir 1
  • Weils hier noch garnicht aufgetaucht ist, Bud : Kannst du was mit Büchern anfangen?

    Das Linux Referenzwerk im deutschsprachigen Raum ist "Der Kofler". Er erklärt super, erklärt so ziemlich alles was man erstmal wissen muss und wenn man ne Kakerlakenplage hat hilft das Buch auch weiter. Damit bekommt man sogar die ganz fetten Kakerlaken zerquetscht. Wenn das kein Argument ist!


    https://www.amazon.de/-/en/gp/aw/d/3836284421


    Gibts direkt beim Verlag auch als Ebook oder Bundle!

  • [netcup] Claudia H.

    Hat den Titel des Themas von „Server... was?“ zu „Server administrieren - wo fange ich an?“ geändert.
  • Ich finde auch etwas krass was hier direkt empfohlen wird, obwohl scheinbar bei null angefangen wird ^^ Die grobe Einrichtung wäre wahrscheinlich besser und Feintuning kann man dann später betreiben. Hier mal noch mein Senf zu angesprochenen Themen:


    Ubuntu und Debian sind für den Einstieg super. Ich bin auch mit Ubuntu eingestiegen und bin dann auf Debian umgestiegen, weil es einfach noch ressourcenschonender ist und nicht mit Snap und Gedöns daherkommt :) Für die beiden Distributionen gibt es gefühlt unendlich Hilfe im Netz!


    Absicherung per SSH Keys und Firewall sind für den Anfang das wichtigste. Gerade als Anfänger finde ich die Firewall unverzichtbar, eben falls du versehentlich einen Port öffnest, ohne es rechtzeitig zu merken. Default Deny Incoming und Default Allow Outgoing sind völlig in Ordnung. Damit machst du alles dicht (SSH Port freigeben!), aber kannst auf alles zugreifen. APT funktioniert weiterhin, da das ganze Stateful abläuft -> du machst die Verbindung auf, also darf auch etwas zurückgeschickt werden. Bei Bedarf kannst du dann später noch mehr dicht machen.


    Ein Webserver als erstes Projekt ist super. Webserver der Wahl installieren, eine Hello World ähnliche index.html schreiben und den Port in der Firewall freigeben. Dadurch sieht man direkt was man erschaffen hat und kann darauf aufbauen und lernt dann die Syntax der Webserver Konfiguration kennen :)


    Theoretisch brauche ich ja nur tcp, oder? und die beiden v6 kann ich ja auch löschen.

    Aber dafür müsste ich beim tcp in und out einstellen, richtig?

    Ja, TCP reicht bei SSH. Ein kleines ufw allow 22/tcp reicht da schon, um deinen Server zu erreichen. Wenn du dann wiederum mit SSH raus willst und wirklich eine Default Deny Outgoing Regel hast, brauchst du noch eine extra Regel, ja.

    IPv6 wäre natürlich wünschenswert, aber musst du nicht zwingend einrichten :P

  • Kannst du was mit Büchern anfangen?

    Yes, kann ich :) Ich hab mir das Buch auf meine Wishlist, werde es mir dann aber erst im August holen, wenn ich den Kopf dafür habe mich wirklich einzulesen.


    Aktuell liegt mein Fokus eher darauf das ganze ein bisschen "spielerisch" kennenzulernen wenn ich Zeit habe. Dieser Satz mag bei den meisten von euch den Magen umdrehen, allerdings ist hoffentlich trotzdem schon rauszulesen das mir das Absichern eines Servers wichtig ist.

    IPv6 wäre natürlich wünschenswert, aber musst du nicht zwingend einrichten :P

    Meinst du jetzt direkt für den SSH Zugang? Wieso wäre IPv6 da wünschenswert?

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE