The_Prodigy Geschrieben 1. September 2008 Geschrieben 1. September 2008 Hallo, ich setze derzeit einen Webserver auf, als Betriebssystem dient mir ein Ubuntu 8.04 ServerVersion. Aufgespielt habe ich derzeit: Apache2, Php5, mysql, myphpadmin, ssh. Nun stellt sich mir die Frage wie ich das System gegen Angriffe absichere, gerade für den Apache2 finde ich keine guten security Infos, mod_security wird für die aktuellen Versionen wohl nicht mehr benötigt. Habt ihr HowTo's für Securityeinstellungen die ich am Webserver vornehmen sollte ? Könnt ihr mir sonst Tips geben ? Wie verhindere ich beispielsweise sql injections ? Bin ziemlicher neuling auf diesem Gebiet... Danke und Gruß Jens
Amstelchen Geschrieben 1. September 2008 Geschrieben 1. September 2008 da gibt es einiges; in der absteigenden reihenfolge der wichtigkeit, wie ich sie spontan empfinde: - basissystem, php und apache aktuell halten - logs beobachten (nicht nur error_log, auch /var/log, etc.) - ssh gegen angriffe sichern - sicheres root-pw, PAM, - nur bekannte user ins system lassen. - mysql mit sicherem root-pw - korrekte scriptrechte im serverroot - sql injections mit spezifischen PHP-funktionen absichern - regelmässig auf neue releases beobachten; ich lasse mir seit apache 2.0.35 die announcements zukommen und die kommen noch und nöcher - apache betreffend: Security Tips - Apache HTTP Server s'Amstel
Crash2001 Geschrieben 2. September 2008 Geschrieben 2. September 2008 Da Ubuntu ja auf Debian aufsetzt, würde ich zudem mal checken, ob du nicht noch eine SSH-Version mit dem OpenSSH-Bug hast. Ubuntu 8.04 LTS (Hardy) und Ubuntu “Intrepid Ibex” (development): libssl <= 0.9.8g-8 sind davon jedenfalls betroffen. Zusätzlich zu den bei apache genannten Tipps würde ich noch empfehlen, dir anzuschauen, auf wie lange die maximale Ausführdauer eines PHP-Scripts liegt und ob du Includes von fremdem Webspace zulassen möchtest oder nicht (ich würde zu nicht raten).
geloescht_JesterDay Geschrieben 2. September 2008 Geschrieben 2. September 2008 (bearbeitet) och eine SSH-Version mit dem OpenSSH-Bug hast. Ubuntu 8.04 LTS (Hardy) und Ubuntu “Intrepid Ibex” (development): libssl <= 0.9.8g-8 sind davon jedenfalls betroffen. Bei Hardy gab es doch schon lange ein Update, auch die ssl-blacklist hab ich seitdem schon hunderte mal wieder als Update dabei gehabt. (?) Ich denke nicht, dass mod_security in der aktuellen Version nicht mehr gebraucht wird, denn es ist ja ein Zusatz, welcher eingehende Anfragen nach gewissen Mustern überprüft und durchläst oder blockt. Also schon ähnliche einem Virenscanner. Das sowas fest in den Apache eingebaut ist wäre mir neu (aber kann durchaus sein, hab damit im Moment nicht mehr so viel zu tun). Vielleicht ist mod_security nur nicht in den Ubuntu-Repositories drin (auch keine Ahnung), aber dann kannst du das ja einfach runterladen und bei dir einbinden. (Hast halt keine automatische Einbindung und keine automatischen Updates o.ä. Da du die Einbindung nicht direkt in die Config schreibst sondern dir dafür eine eigene kleine config anlegst und einen Symlink zum einbinden dannn, machen auch Updates vom Apache und neue Configfiles da nichts aus) Nachtrag: mod_security ist nichts, was man braucht um den Server sicher zu machen. Es ist nur ein Bonus sozusagen, der aber auch wieder Performance frißt. Es kommt vorallem drauf an was du da laufen läßt und vorallem die ersten paar Tips hier (sichere Passwörter, regelmäßige Updates, am besten ssh nicht per PW sondern nur per Key, und kein root login per ssh etc) sind eigentlich ausreichend. mod_security ist z.B. auch gegen Fehler in Anwendungen (bestimmte anfragen und Parameter etc) und Skripten, aber wenn du genau weißt was du da laufen hast ist das u.U. unnötig. Vorallem ist es gut, wenn du fremden erlaubst irgendwas auf dem Server laufen zu lassen (Webserver) oder Webspace vermietest etc. (Wobei ich nicht weiß ob großes ISP sowas wegen der Performance einsetzen) Schaden tut es aber u.U. auch nicht. Und noch was: Wenn du ein ziemlicher Neuling auf dem Gebiet bist, dann solltest du deinen Rechner nicht gleich ins Internet hängen :eek Ein Root-Server ist nichts was man mal so zum Spass betreibt ohne Ahnung zu haben. Ich hab meine Erfahrungen vorallem im Intranet gesammelt erstmal, da hast du doch viel weniger Risiko Ja, geht nicht immer, leider. Aber ganz ohne zu überlegen scheinst du da ja nicht ranzugehen, ich will das ja nicht schlecht reden. Nur finde ich das schon schlimm, wenn man die tausende Postings sieht: Ich hab 0 Ahnung, aber einen Root-Server. P.S. Ich hab selbst trotzdem keinen Root-Server, sondern einen managed-Webspace bei einem Provider. Nicht ganz soviel Freiheit, aber es reicht. Ich hab mal einen VirtualServer ausprobiert, aber der Webspace reicht vollkommen für die meisten (inkl mir ). Bearbeitet 2. September 2008 von JesterDay
Crash2001 Geschrieben 2. September 2008 Geschrieben 2. September 2008 Bei Hardy gab es doch schon lange ein Update[...]Nur weil es ein Update dafür gibt, heisst das ja noch lange nicht, dass es auch eingespielt ist. Zudem weiss ich nicht, von welchem Medium das Ubuntu installiert wurde und ob überhaupt irgendwelche Updates gefahren wurden bisher.
The_Prodigy Geschrieben 2. September 2008 Autor Geschrieben 2. September 2008 Hi, danke erstmal für die Antworten, beim lesen kamen ein paar Fragen auf: - basissystem, php und apache aktuell halten - logs beobachten (nicht nur error_log, auch /var/log, etc.) - ssh gegen angriffe sichern - sicheres root-pw, PAM, - nur bekannte user ins system lassen. - mysql mit sicherem root-pw - korrekte scriptrechte im serverroot - sql injections mit spezifischen PHP-funktionen absichern - regelmässig auf neue releases beobachten; ich lasse mir seit apache 2.0.35 die announcements zukommen und die kommen noch und nöcher - apache betreffend: Security Tips - Apache HTTP Server 1.Kann man sich die Logs per Mail zusenden lassen ? 2.Ist PAM erforderlich ? Habe anderen SSH2 Port festgelegt und wegen Ubuntu müsste der Hacker doch 2 Pw's herrausfinden, erst für den Benutzer und dann für sudo, seh ich das richtig ? 3. Um die SQL Injections zu verhindern benötige ich doch mod_security oder gibts noch eine andere möglichkeit ? Zusätzlich zu den bei apache genannten Tipps würde ich noch empfehlen, dir anzuschauen, auf wie lange die maximale Ausführdauer eines PHP-Scripts liegt und ob du Includes von fremdem Webspace zulassen möchtest oder nicht (ich würde zu nicht raten). Kannst du kurz erläutern wo ich diese Parameter finde ? Und noch was: Wenn du ein ziemlicher Neuling auf dem Gebiet bist, dann solltest du deinen Rechner nicht gleich ins Internet hängen :eek Ein Root-Server ist nichts was man mal so zum Spass betreibt ohne Ahnung zu haben. Ich hab meine Erfahrungen vorallem im Intranet gesammelt erstmal, da hast du doch viel weniger Risiko Ja, geht nicht immer, leider. Aber ganz ohne zu überlegen scheinst du da ja nicht ranzugehen, ich will das ja nicht schlecht reden. Nur finde ich das schon schlimm, wenn man die tausende Postings sieht: Ich hab 0 Ahnung, aber einen Root-Server. P.S. Ich hab selbst trotzdem keinen Root-Server, sondern einen managed-Webspace bei einem Provider. Nicht ganz soviel Freiheit, aber es reicht. Ich hab mal einen VirtualServer ausprobiert, aber der Webspace reicht vollkommen für die meisten (inkl mir ). Der Rechner ist eine VM im Betrieb meines Arbeitgebers, wenn ich nicht am probieren bin, schalte ich die Kiste gerade mal ab Grüße Jens
Crash2001 Geschrieben 2. September 2008 Geschrieben 2. September 2008 [...]Kannst du kurz erläutern wo ich diese Parameter finde ?[...] max_execution_time = 30 ; Maximum execution time of each script, in seconds max_input_time = 60 ; Maximum amount of time each script may spend parsing request data max_input_nesting_level = 64 ; Maximum input variable nesting level memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) Die 4 Parameter solltest du entsprechend deinen Anforderungen anpassen. Zu finden sind sie in der php.ini Wie genau das andere (die Einschränkung der Quellen die man includen kann) angeht, das weiss ich auf Anhieb nicht. Werde aber mal auf meinem Server nachher schauen, ob ich das dort finde.
geloescht_JesterDay Geschrieben 2. September 2008 Geschrieben 2. September 2008 (bearbeitet) allow_url_fopen = false Das kann aber unter Umständen schon gewünscht sein bzw von manchen anwendungen genutzt werden. Es ist eine Abwägungssache und im Normalfall ist das nicht schädlich. SQL-Injections ist etwas, was mod_security unterbinden kann, aber nur wenn die nach einem bekannten Muster geschehen. Genauso wie ein Antivirus heute schon unbekannte Viren erkennen kann, wenn die sich nach einem bestimmten Muster verhalten. Komplett neue Verhaltensweisen gehen da ungesehen durch. So ist das auch bei mod_security. (Bei mod_security hast du, wie bei einem Antivirus, eine Liste mit Regeln hinterlegt, und gegen diese werden die Anfragen an den Webserver getestet. Erst dann kommen sie wirklich beim Server an, oder werden eben verworfen) SQL-Injections verhinderst du erstmal (und auch am allerwichtigsten!) in der Anwendung, indem du alles was von "draußen" kommt als böse ansiehst und erst nach einer Prüfung nutzt und in eine DB abfrage einfügst. Oder, bei SQL-Injections noch besser, indem du PreparedStatements benutzt. Das hat aber mit dem Apache nichts zu tun. Und für Ubuntu brauchst du für sudo nur das Nutzerpasswort, nicht 2 Passworte. Es sei denn du hast noch einen weiteren, nicht privilegierten Nutzer angelegt. Ich hatte aber, muss ich gestehen, noch nie 2 Nutzer auf einem Ubuntu-System, kann das gar nicht sagen. :hells: EDIT: Logs kannst du dir natürlich per Mail zusenden lassen, oder sonst was damit tun Einfach ein kleines Skript, welches dir die Logs sendet und was jede Nacht ausgeführt wird (per Cron). vielleicht gibt es da ja aber auch schon was fertiges. Aber gehen tut alles. Bei mod_security ist es wirklich wie bei einem Antivirus. Man kann auch ohne seinen Rechner sauber halten, wenn man aber einen Installiert, nimmt der Ressourcen weg. Und beim Apache, den man nur selber nutzt, ist es noch einfacher als bei einem Windowssystem darauf zu verzichten Man muss aber evtl. Fremdsoftware updaten, wenn da ein Fehler vorliegt o.ä. Bearbeitet 2. September 2008 von JesterDay
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden