ubuntuusers.de

Apache sicher konfigurieren - wie greift man einen Apache an?

Status: Ungelöst | Ubuntu-Version: Ubuntu 14.04 (Trusty Tahr)
Antworten |

md5

Anmeldungsdatum:
26. Oktober 2008

Beiträge: Zähle...

Hallo ☺,

nachdem ich nun bei der Konfiguration meines Servers den ssh und sftp Zugang eingerichtet habe, möchte ich mich an den Webserver machen. Zum Nachverfolgen:

Link zum vorherigen Thema: https://forum.ubuntuusers.de/topic/auf-linux-server-desktop-via-ssh-mit-windows-z/

Mein Plan zur Konfiguration des Apaches ist bisher folgender: Den Apache Dienst installieren und die Standardkonfiguration gerade soweit anpassen, dass ich im Anschluss nur die Module, die ich brauche aktiviert habe (mod_rewrite,... ) und dass ich php integrieren kann. Mysql ist ja bis auf phpmyadmin unabhängig vom Apache oder bzw wie richte ich phpmyadmin sicher ein (habe bereits öfter gelesen, dass das gerne angegriffen wird)?

Dabei würde mich besonders interessieren, welche Punkte ich beachten muss, um meinen Apache sicher zu gestalten. Beziehungsweise anders gefragt, was gibt es für Möglichkeiten einen Apache anzugreifen und wie kann man sich möglichst gut dagegen schützen.

Ich hätte jetzt noch die auf dieser Seite genannten Module aktiviert https://wiki.ubuntuusers.de/Apache/Sicherheit/, kann aber nicht abschätzen, inwieweit diese ausreichen.

(LAMP möchte ich tendenziell eher nicht nehmen, da dies, wie ich gelesen habe, als Entwicklungsumgebung dienen soll und somit viele sicherheitskritische Optionen aktiviert sind.)

Was habt ihr für Tipps und Vorschläge was die Sicherheit von Apache betrifft?

P.S.: ich muss übrigens nochmals betonen, dass das hier ein mega cooles Forum ist 👍

hoerianer

Anmeldungsdatum:
14. August 2012

Beiträge: 3156

Hoi,

Du schreibst von Apache, PHP und MySQL - mir scheint Du erwägst den Betrieb eins CMS? Wenn ja, dann würde ich vorschlagen Du erzählst von dem kompletten Projekt, denn sonst wirst Du wohl für jeden oben genannten Bereich fragen wollen, wie man das absichert? 😉

Ansonsten würde ich sagen kommt es mit auf die Berechtigungen der Daten- und Ordnerstruktur an. Meist wird es hierüber möglich sein, eine Site zu hacken. Ansonsten eben wie immer bei Diensten, die im Internet angeboten werden - aktuell halten.

md5

(Themenstarter)

Anmeldungsdatum:
26. Oktober 2008

Beiträge: 25

Hi,

darauf sollen vorerst ein Cloudsystem laufen, voraussichtlich owncloud, und ein kleines eigenes CMS (benötigt eine Datenbank und Schreibzugriff auf den jeweiligen CMS-Benutzerornder).

Die Daten für das Cloudsystem liegen nicht alle in htdocs, sodass ich entweder den DocumentRoot verlegen muss, oder aber die Daten via externem Speicher einbinden. Wäre praktisch, wenn owncloud dort dann auch schreibrechte hat, muss aber nicht sein, wenn das zu bedenklich ist.

verdooft

Anmeldungsdatum:
15. September 2012

Beiträge: 4427

phpmyadmin hab ich so "abgesichert", dass ich den Alias in der

/etc/apache2/conf-available/phpmyadmin.conf

geändert habe, damit ists nicht mehr unter

https://meinedomain.com/phpmyadmin

erreichbar, sondern unter einer kaum erratbaren URL, kann man natürlich auch noch zusätzlich per .htaccess abersichern.

Theoretisch könnte man die phpmyadmin-Konfiguration auch nur dann enablen, wenn man die gerade braucht.

Mysql: da hab ich

/usr/bin/mysql_secure_installation

ausgeführt und richte pro Anwendung eine extra Mysqldatenbank mit eigenem Benutzer ein.

fail2ban hab ich auch laufen und schaue manchmal in den Logdateien nach Auffälligkeiten.

Wegen dem Apache stelle ich gerade bisschen um, nur noch Schreibzugriff in Ordnern/Dateien, bei denen das im Betrieb auch nötig ist. War zwar anfangs so schön einfach mit vielen Rechten, aber man lernt ja dazu. 😀

Ich verwende schon den Server 16.04, weil dort der Letsencryptclient direkt enthalten ist.

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Du solltest dir das hier durchlesen, und außerdem mal in die /etc/apache2/conf-enabled/security.conf reingucken 😉

md5

(Themenstarter)

Anmeldungsdatum:
26. Oktober 2008

Beiträge: 25

Hey, vielen Dank schonmal für die ganzen Tipps! 👍

Ich werde diese in nächster Zeit erstmal durcharbeiten... 😉

Wer noch weitere Tipps hat, immer gerne ☺

sinusQ

Avatar von sinusQ

Anmeldungsdatum:
27. Oktober 2010

Beiträge: 193

Wohnort: Neudau

https://bettercrypto.org/

Da gibt's ein cooles Paper mit vielen Themen. Unter anderem auch Abschnitte für Apache (und andere Webserver), SSH (falls benötigt), MySQL, ...

Viel Spaß damit 😉

zettberlin

Avatar von zettberlin

Anmeldungsdatum:
23. Oktober 2006

Beiträge: 623

Wohnort: Celle

Apache an sich ist nur sehr schwer anzugreifen, die Voreinstellungen vom Paketmanagement sind ausreichend sicher.

Atacken werden auf so genannten Vektoren möglich, die von *Anwendungen* geöffnet werden, die Apache als Webseite ausliefert.

Es geht also um die Absicherung dieser Anwendungen. OwnCloud ist ziemlich OK, solange man es nicht als Portal für 200 Nutzer betreibt, sondern nur einen Adminnutzer und vielleicht noch eine handvoll vertrauenswürdige Mitnutzer. OwnCloud bringt übrigend noch WebDAV ins Spiel und damit eine Schnittstelle, die über das hinausgeht, was auf normalen CMS passiert. Da solltest Du Dir mal was zu Suchbegriffen wie "Apache webdav security owncloud" raussuchen, wenn Du ganz sicher sein willst.

Allerdings ist mir noch ein Detail aufgefallen:

"Die Daten für das Cloudsystem liegen nicht alle in htdocs"

Sag jetzt nicht, dass Du allen Ernstes XAMP für sowas benutzt. Das ist unter Linux eine sehr schlechte Idee, weil diese Suite unzählige Extras enthält, die Du für Dein Projekt nicht benötigst, die aber einfach, weil sie da sind, unnötige Port aufmachen und selbst auch Vektoren für Angriffe bieten.

Und

"LAMP möchte ich tendenziell nicht nehmen.."

OwnCloud läuft auf LAMP, LAMP ist nicht anderes als Linux plus Apache plus Mysql/MariahDB plus eine Scriptsprache mit P, meistens PHP wie für Owncloud. Das ist keine Testumgebung, sondern genau das, was 90% der Internetseiten antreibt. XAMP ist eine Testumgebung.

Hoerbert

Avatar von Hoerbert

Anmeldungsdatum:
3. Oktober 2007

Beiträge: 375

Eine Sache hätte ich da noch: Wozu genau soll es eigentlich phpMyAdmin sein? Das macht meines Erachtens nur Sinn, wenn man sonst keine Möglichkeit hat, direkt auf den MySQL-Dienst zuzugreifen (was in diesem Fall nicht so ist), oder aber damit rechnet ständig von anderen Rechnern darauf zugreifen zu müssen.

Warum man drauf verzichten sollte: Jede zusätzliche Web-Anwendung, die auf dem Server läuft, bietet zusätzliche Angriffsfläche und muss bei Sicherheitsproblemen gepatcht werden. Das kann man sich, gerade bei phpMyAdmin, sehr schön sparen, wenn man es nicht verwendet. Und wenn man eh schon SSH-Zugriff auf den Server hat, dann ergibt es meines Erachtens mehr Sinn sich mit einem MySQL-Client-Programm (bspw. der MySQL Workbench) per SSH auf den Dienst zu Verbinden. Eine Sache weniger, um die man sich kümmern müsste 😉

Gruß

Torben

zettberlin

Avatar von zettberlin

Anmeldungsdatum:
23. Oktober 2006

Beiträge: 623

Wohnort: Celle

Hoerbert schrieb:

Eine Sache hätte ich da noch: Wozu genau soll es eigentlich phpMyAdmin sein? Das macht meines Erachtens nur Sinn, wenn man sonst keine Möglichkeit hat, direkt auf den MySQL-Dienst zuzugreifen (was in diesem Fall nicht so ist), oder aber damit rechnet ständig von anderen Rechnern darauf zugreifen zu müssen.

Warum man drauf verzichten sollte: Jede zusätzliche Web-Anwendung, die auf dem Server läuft, bietet zusätzliche Angriffsfläche und muss bei Sicherheitsproblemen gepatcht werden. Das kann man sich, gerade bei phpMyAdmin, sehr schön sparen, wenn man es nicht verwendet. Und wenn man eh schon SSH-Zugriff auf den Server hat, dann ergibt es meines Erachtens mehr Sinn sich mit einem MySQL-Client-Programm (bspw. der MySQL Workbench) per SSH auf den Dienst zu Verbinden. Eine Sache weniger, um die man sich kümmern müsste 😉

Das ist bestimmt richtig aber viele können/wollen sich nicht so tiefschürfend mit SQL beschäftigen. Aber dafür gibt es einen Trick: man installiert PHPmyAdmin lokal auf dem Heimrechner und klickt sich damit die auf dem Server gewünschten Layouts zusammen. PHPMyAdmin zeigt für die meisten Aktionen den erzeugten SQL-Code an und so bekommt man ziemlich schnell einen Einblick in die Syntax und Konventionen ... und Material, das man in den Komandozeilenclient auf dem Server kopieren kann 😉

Gruß

Torben

Hoerbert

Avatar von Hoerbert

Anmeldungsdatum:
3. Oktober 2007

Beiträge: 375

Moment mal: Auch mit der Workbench kann man mittels Assistenten Tabellen erstellen lassen oder Daten einfügen ohne SQL-Syntax kennen zu müssen. Das ist also keine Ausrede, die ich zählen lassen würde 😉

Antworten |