Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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).

Geschrieben (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 von JesterDay
Geschrieben
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.

Geschrieben

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

Geschrieben
[...]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.

Geschrieben (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 von JesterDay

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...