Merkmale des Setups¶
Das hier vorgestellte Vorgehen zum Setup eines Apache Servers versucht möglichst einfache und griffige Konzepte umzusetzen. Ganz allgemein könnte man das Konzept mit folgenden Worten charakterisieren.
opt-in wird präferiert
Deaktivierung aller opt-out Settings die eine Distribution mit sich bringt. Es sei denn, es bestehen gute Gründe, wie z.B. Apsekte der Sicherheit, diese Optionen – wie vom Distributor vorgesehen – beizubehalten.
alles dicht machen
Der Zugriff auf alle Resourcen wird im default erst mal verwehrt
expliziete Freigabe
Jede Resource, die über den WEB-Server freigegeben werden soll, muss in einer eigenen Konfiguration (Stite) expliziet freigegeben werden.
Es wird ein möglichst einfaches Vorgehen gewählt, das – sofern möglich und angebracht – die (deb) Pakete aus dem Paketmanger (apt) bezieht.
Diese Pakete sind nicht immer ganz aktuell und beinhalten u.U. noch Exploits die bereits bekannt und auch behoben sind. Für einen Server im Internet sollten ggf. die original Sourcen verwendet werden, die tagesaktuell sind.
Benutzerauthentifizierung¶
Die Authentifizierung der WEB-Anwendungen erfolgt – insofern erforderlich – über PAM (wiki) (siehe /etc/apache2/conf-available/authnz_external.conf). Nicht Teil dieses Apache-Setups ist beispielsweise ein NSS PAM LDAP mit das PAM gegen einen LDAP Server gebunden werden kann.
Die Authentifizierung über die Benutzerkonten des OS eignet sich nicht für Server die im Internet betrieben werden. Jedoch reicht es um die Aspekte der Authentifizierung in einem Apache-Setup exemplarisch zu verdeutlich.
Entwicklertools & Dokumentationen¶
Es werden Dokumentation und Werkzeuge wie z.B die Apache Dokumentation oder die build-Tools eingerichtet. Das Setup verletzt damit seine eigene Charactere leicht und installiert tendenziell mehr Komponenten (zur Wartung/Entwicklung) als sie erforderlich wären, um den Server im Internet zu betreiben.
Datenbanken¶
Web-Anwendungen die eine Datenbank (DB) benötigen aber nur von einem kleineren Nutzerkreis genutzt werden, sollten mit einer SQLite DB ausreichend ausgestattet sein. Hier im Setup werden – sofern es die Anwendung zulässt – SQLite Datenbanken eingerichtet.
Für Entwicklerzwecke empfiehlt sich Installation passender (GUI-) DB-Clients.
Weiterführende Hinweise¶
Das zu diesem Setup gehörende Skript apache_setup.sh
installiert die
Setup-Dateien aus dem TEMPLATE
-Ordner. In den Setup-Dateien aus diesem
Ordner finden sich noch Anmerkungen, die über die Grundlagen – welche hier im
handsOn Erwähnung finden – hinausgehen. Auch die Debian/Ubuntu Pakete
installieren bereits Setup-Dateien, die für den Betrieb relevant sind. Auch
darin finden sich viele wertvolle Anmerkungen (einfach mal alles unter
/etc/apache
anschauen und ggf. anpassen).