Apache - Ampache - Sicherheit

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi alle!

    Habe erfolgreich den Musik-Streamer Ampache installiert, der verwaltet meine doch schon recht große Musik-Sammlung bestens, hatte bislang im Heimnetzwerk keine Probleme, auf Laptop und Netbook zu streamen.

    Wenn ich auf meinem Netgear-Router das Port-Forwarding aktiviere, kann ich auch von "außen" meine Musik streamen, auch über meine Billig-Android Smartphone ZTE-Blade hat alles (mit Just player und Ampache Provider) geklappt.

    Weil ich halt doch nur ein General-Dilettant bin, frage ich mich natürlich schon, ob so eine Standard-Installation von Apache und Ampache und das Port-Forwarding womöglich ein Sicherheitsrisiko ist. Vor allem würde ich gerne wissen, wie man eine solche Konfiguration quasi "nach Lehrbuch" ordentlich absichert.

    Schon jetzt Danke für Antworten!

    LG


    raphael68

  • Zunächst sollte man vielleicht erwähnen das nichts absolut 100% sicher sein kann, da morgen jederzeit jemand einen neuen exploit (eine Schwachstelle im Code) herrausfinden könnte der dann ggf erst in einem Monat von den Entwicklern gestopft werden würde.. Das ist normaler Lauf der Dinge

    Dennoch gibt es natürlich einiges das man beachten kann um einigermasse Sicher zu sein.
    (ich hol ein bischen weiter aus damit auch verstanden wird, wieso)

    1)
    Die meisten privaten Internetverbindungen sind dynamisch, das heisst die IP wird bei jeder Einwahl vom Provider neu vergeben.
    Ausserdem gibt es meistens eine sog. Zwangstrennung nach 24 Stunden.. Man muss sich also alle 24 Stunden neu einwählen und kriegt dann auch eine neue IP.
    Einige Ausnahmen gibts dabei aber auch wenn man Kabel-Internet nutzt, gibt es oft keine Zwangstrennung oder man hat sogar eine statische IP

    In jedem Fall sollte es für "Fremde" schwierig sein an die IP Adresse von Dir zu kommen - dazu gehört aber natürlich auch eine gewisse Vorsicht wenn man sich im Internet bewegt; wozu nicht nur das Posten von zB Logs in Foren gehört (weil man zB ein Problem hat und deshalb unbewusst seine Externe IP erwähnt); oder das surfen auf "unseriösen Seiten":

    Es ist zwasr schwierig aber nicht unmöglich: Es gibt viele die ganze IP-Ranges (8.8.8.1 bis 8.8.8.255) nach potenziellen Zielen abscannen, nicht nur Privatpersonen sondern auch unseriöse Webseiten oder automatisiere Programme (bots).. Je nach Aufwand werden aber meistens nur die Standard-Ports abgescannt und da kommen wir auch schon zum nächsten Punkt:


    2)
    Der externe, übers Internet ansprechbare, Port sollte kein Standard-Port sein.
    Das bedeutet wenn der Standard-Port von apache2 80 ist, sollte der externe Port ein anderer sein, am besten ausgedacht also sowas wie 54321.
    Der Grund dafür ist dass ein möglicher Angreifer bei einem Standard-Port quasi sofort weiss was für ein Dienst und Protokoll sich dahinter verbirgt also zum Beispiel:
    Port 21 ist ein FTP-Server wie zB proftpd, Protokoll: ftp
    Port 22 ist ein SSH-Server wie zB opemssh, Protokoll: ssh
    Port 80 ist ein Webserver wie zB apache2, Protokoll: http
    Port 443 wäre ebenfals ein Webserver, Protokoll: https
    Port 8080 wäre ein Proxy-Server wie zB squid

    Nutzt man aber irgendeinen Port muss der Angreifer erstmal herrausfinden um was für einen Dienst es sich dabei handelt um dann den richtigen Exploit wählen zu können..

    3)
    Oft kann man den Zugriff auf Webseiten einschränken, das zB nur du darauf zugreifen kannst - vorraussetzung dafür wäre allerdings das du von Unterwegs eine dyndns nutzt und ich kenne jetzt auch nur eine Beschreibung für apache2 aber vermutlich könnte das auch über iptables geregelt werden..

    4)
    Man könnte auch VPN nutzen und das so einstellen das eine Verbinung zum Webserver nur über VPN möglich wäre

  • Zitat


    Weil ich halt doch nur ein General-Dilettant bin,...

    Der is' nich schlecht :lol:, aber lass mal du bist warscheinlich nicht der einzigste.

    Zitat


    ... man eine solche Konfiguration quasi "nach Lehrbuch" ordentlich absichert.

    Quasi nach Lehrbuch gibts nicht, wäre es nach Lehrbuch wäre es auch ein Lehrbuch für den 'Angriff'.
    Mein Vorredner(schreiber) hat es im wesentlichen schon auf den Punkt gebracht. Es hängt im wesetlichen von so einigen Faktoren ab. Oberste Devise erstmal alles dicht machen und nur das zulassen was unbedingt nötig ist. Sieht man hier immer mal wieder wie salopp schon mit Dateirechten umgegangen wird, das ist dann schonmal äußerst verherend bei einem Angriff.
    Es fängt immer ganz klein an als da wären sichere Passwörter und/oder Standardbenutzer, Ich möchte nicht wissen wieviele pi's mit PW raspberry im Internet erreichbar sind.
    And den Schutz des Webservers wird ja manchmal noch gedacht aber an den Rest des Netzwerkes in den allerwenigsten Fällen.

    Nun, es es hängt auch immer am (Er)Kenntnisstand des Users die geeignete Sicherheitsstrategie auszuwählen. Und es wird auch bei Experten über Dieses und Jenes bei den Strategien kontrovers gestritten.
    Ich vertrete die Auffassung, das solange der Netzwerkverkehr quasi über eine NIC abläuft, die der des Routers, ist das nicht unbedingt sicher. Die Maßnahmen des Einschalten von Forwardregeln ist zwar schon ein wesentlicher Schritt aber in der Endkonsequenz nicht zuendegedacht und nur bedingt brauchbar weil die Router zu wenig Spielraum geben.
    Ohne Zusätzliche Hardware sind solche Maßnahmen wie eine DMZ nicht zu realisieren.
    Aber auch mit 'Bordmittel' kann man schon eine Menge erreichenaber wie du es auch machst und welchen Aufwand du auch treibst 100%ige Sicherheit gibt es schon lange nicht mehr.

    Du merkst also schon das das nicht mit ein paar Haken hier- und dortran und Configzeile xyz in 'blasülz' umändern gemacht ist. Den ersten und schonmal ganz wichtigen Schritt hast du schon getan - du hinterfragst es. Jetzt bleibt dir nur noch viel lesen!

    waren das Zeiten, als Ordner noch Verzeichnisse waren

  • Naja, auf einen anderen Port legen bringt auch nicht viel. Ein Rechner ist recht schnell gescanned und anschliessend nachgucken was auf dem Port läuft ist auch kein Problem.

    Portknocking Clients gibt es für alle Rechner und auch für die Smartphone Betriebsysteme.
    Leite einfach wie aktuell alles auf den Webserver auf die PI. Per iptables blockst Du aber alles was auf Port 80 rein kommt. Wenn Du mit Deinem Gerät zugreifen willst öffnest Du kurz den Portknocking Client und knockd wird Deine IP so per iptables in die Firewall eintrage das Du von da aus auf den Webserver zugreifen kannst.


    Code
    sudo apt-get install knockd

    Du klopfst damit dann auf Port 7000,8000 und 9000 an und anschliessend kannst Du dann zugreifen.
    Wenn Du das wieder zu machen willst kannst Du einfach Port 5000 und 4000 kurz anklopfen und die Firewall macht wieder dicht.
    Du kannst es auch so einstellen, das offen gemacht wird und nach Zeit X automatisch wieder die iptables Regel rausgenommen wird. Dann kann man das auch nicht vergessen.

    Wenn Du willst das der Webserver immer erreichbar ist kannst Du ihn auch die ganze Zeit im Netz lassen und beschränkst den Zugriff mit Username und Password. Apache2: mod_auth, htaccess, htpasswd http://httpd.apache.org/docs/2.2/howto/auth.html. Webserver nginx: http://wiki.nginx.org/HttpAuthBasicModule


  • Der externe, übers Internet ansprechbare, Port sollte kein Standard-Port sein.


    Security through Obscurity funktioniert nicht. Nie.

    Zitat

    Man könnte auch VPN nutzen und das so einstellen das eine Verbinung zum Webserver nur über VPN möglich wäre


    Das währe die einzige Lösung bei der man von 'sicher' sprechen könnte.

    Auf jeden Fall sollte man aber die in Ampache eingebauten Möglichkeiten (Nutzerverwaltung, ACL ...) nutzen und das möglichst 'dicht' machen.


  • Security through Obscurity funktioniert nicht. Nie.

    Full Ack.


    Das währe die einzige Lösung bei der man von 'sicher' sprechen könnte.

    Auf jeden Fall sollte man aber die in Ampache eingebauten Möglichkeiten (Nutzerverwaltung, ACL ...) nutzen und das möglichst 'dicht' machen.

    Vor allem sollte vielleicht überlegt werden, ob man den Login nicht besser über SSL macht, da reicht auch ein SelfSignCert oder ein kostenloses von z.B. StartSSL. Weil was bringt UserAuth, wenn es jeder mitsniffen könnte.


  • Naja, auf einen anderen Port legen bringt auch nicht viel. Ein Rechner ist recht schnell gescanned und anschliessend nachgucken was auf dem Port läuft ist auch kein Problem.


    Security through Obscurity funktioniert nicht. Nie.


    Da scheinen sich schon die Geister zu spalten :D

    Die meisten scannen nur die standard Ports und damit es schneller geht wird nur geprüft ob der Port offen ist - nur die wenigsten prüfen anschliesend was sich hinter dem Port verbirgt bzw erst dann wenn das was sie erwarten nicht zutrifft (zB Port 22 = ssh)

    Desweiteren melden sich nicht alle Dienste mit "ich bin OpenSSH v4.2" oder sowas wenn man sich damit zu verbinden versucht.. Was also bedeutet das mehr Aufwand nötig wäre den aber kaum jemand für Private PC's aufbringt weil es sich schlicht nicht lohnt..

    Botnetze suchen meistens auch nur nach bereits infizierten, also wo zB ein bestimmter Port ansprechbar ist - wenn der nicht offen ist gehen sie zur nächsten IP...

    In VPN kann aber genauso eine Schwachstelle vorhanden sein die bisher nur noch nicht offiziel entdeckt wurde - oder die gewählte Verschlüsselung ist zu einfach/niedrig gewählt dann kann man sich auch dort rein hacken..

    Die Frage ist nur wer soviel Aufwand betreiben würde in ein Privates System einzudringen.. Bzw wieviel Aufwand letzlich nötig wäre wenn unsichere Zugangsdaten genutzt werden..


    Aber da können wir denk ich jetzt ewig weiter drüber diskutieren - eins sollte nun aber klar werden:

    Nichts ist absolut 100%ig sicher

    Es fängt meistens schon beim Anwender an (Stichwort: Internetführerschein), wie der sich verhällt, was der beachtet und wie der es einrichtet und konfiguriert


    Aber das bringt dem TE denk ich jetzt herzlich wenig -- es gibt genug andere RPI Nutzer die das ja auch irgendwie übers Internet nutzen aber von denen sind auch keine "Nachrichten" bekannt das sich dort jemand rein gehackt hätte usw oder?


  • Botnetze suchen meistens auch nur nach bereits infizierten, also wo zB ein bestimmter Port ansprechbar ist - wenn der nicht offen ist gehen sie zur nächsten IP...

    ähm, NOT. Botnetze wollen sich verschleiern, da brauchen sie nicht unbedingt noch andere Botnetzbetreiber im Revier, die vielleicht dann auch noch an Informationen kommen könnten um darüber dann direkt noch weitere Botnetze des anderen zu übernehmen.


    Die Frage ist nur wer soviel Aufwand betreiben würde in ein Privates System einzudringen.. Bzw wieviel Aufwand letzlich nötig wäre wenn unsichere Zugangsdaten genutzt werden..

    Gerade in ein privates System eindringen. Da sind die meisten unsicheren Paswörter, keine oder veraltete Schutzsoftware, keine aktuellen Versionen installiert usw. usw.
    Ausserdem wird man da auch nicht von einem IDS usw. belästigt die einen auffliegen lassen. Ausserdem bekommen die wenigsten davon etwas mit. siehe unten.


    Aber das bringt dem TE denk ich jetzt herzlich wenig -- es gibt genug andere RPI Nutzer die das ja auch irgendwie übers Internet nutzen aber von denen sind auch keine "Nachrichten" bekannt das sich dort jemand rein gehackt hätte usw oder?

    Genau die das irgendwie ins Internet stellen und nicht mal den Standarduser und das Passwort geändert haben. Das es nicht bekannt ist wird sehr wahrscheinlich mit 2 einfachen Gründen gesagt werden können.

    1. Bemerkt und dann schnell neu aufgesetzt und bloß nicht drüber reden.
    2. Die meisten wird das hier betreffen: Sie bekommen davon überhaupt nicht davon mit und der Angreifer macht im Hintergrund und unbemerkt seinen Job, ohne das er an irgend etwas gehindert wird.

    Ich tippe da auf den 2. Punkt der die meisten betrifft. Das wird nichts anderes sein, wie die ganzen VServer und Dedicated Server Mietern, die sich so einen Server anschaffen, weil die nichts mehr kosten. Aber richtig damit auseinandersetzen und verstehen das in der heutigen Zeit ein unsicherer Rechner zur Waffe wird, das will kaum einer.

    Nur mal kurz als Info: Auf meinen Servern sind im letzten Monat 3846 Attacken gelaufen, davon ist ein Großteil aus Root-/V-Server netzen und aus DailUp Netzen wie Arcor, T-Online usw.
    Ja IDS ist schon was feines. Man muss es aber auch beachten und kontrollieren, weil 100% alleine wert das auch nicht alle Attacken ab.

  • Habe auch schon seit über 15 Jahren die selben Server aber habe nicht ansatzweise soviele Attacken, also mache ich anscheint irgendwas anders :s :angel:


    Aber egal - das wird hier langsam aber sicher offtopic ;)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!