Apache 2.0

Betrifft OS:
FreeBSD

Nachdem das Betriebssystem installiert ist (Installation von FreeBSD 6.1) kann der Apache installiert werden. Hier die Installation des Apache 2.0 auf FreeBSD.

Bereite die Installation vor

Trage die benötigten Optionen für den Port in der /etc/make.conf Datei ein.

.if${.CURDIR:M*/ports/www/apache20}
WITH_SSL_MODULES=  yes
WITH_BERKELEYDB=   db4
.endif

Installiere den Apache Web Server

# cd /usr/ports/www/apache20
# make install WITH_SSL_MODULES=yes WITH_BERKELEYDB=db4 clean

Die angegebenen Optionen müssen genutzt werden, wenn Apache mit SSL und Subversion benutzt werden soll. Stelle Apache so ein, dass er automatisch gestartet wird. Dafür muss die Datei /etc/rc.config editiert werden. Dort muss folgender Eintrag eingegeben werden:

apache2_enable=YES

Bei Apache 2.2 mit folgendem Eintrag:

apache22_enable=YES

Starte den Server manuell

# /usr/local/etc/rc.d/apache.sh start

Wenn er nicht startet, so kann es ein Problem mit der Namensauflösung sein. Bei DHCP musste ich in /etc/hosts bei 127.0.0.1 den Namen der Maschine angeben (Bei FQDN und Kurzname). Die Datei mag dann etwa so aussehen:

127.0.0.1    localhost localhost.doma.in
123.123.123.123  host.doma.in host

Installiere die SSL Unterstützung für Apache 2.0

Generiere ein eigenes Zertifikat

# cd /usr/local/etc/apache2
# openssl genrsa -out hostname.key 1024
# openssl req -new -key hostname.key -out hostname.csr

Signiere den Schlüssel mit einer Gültigkeit von 365 Tagen:

# openssl x509 -req -days 365 -in hostname.csr -signkey hostname.key -out hostname.crt

Lösche die Datei hostname.csr

# rm hostname.csr

Editiere die !SSL Konfiguration des Apache Servers. Die Datei ist in der Regel /usr/local/etc/apache2/ssl.conf Füge folgende Zeilen ein (In der Regel gibt es die schon auskommentiert).

SSLCertificateFile /usr/local/etc/apache2/hostname.crt
SSLCertificateKeyFile /usr/local/etc/apache2/hostname.key

Stelle Apache so ein, dass SSL möglich ist. Dafür muss die Datei /etc/rc.config editiert werden. Dort muss folgender Eintrag eingegeben werden:

apache2ssl_enable=YES

Starte den Webserver neu

# /usr/local/etc/rc.d/apache2.sh restart

Prüfe ob der Port 443 aktiv ist

# netstat -an

oder

# sockstat -4

Konfiguriere Apache 2.0

Editiere die Datei /usr/local/etc/apache2/httpd.conf Ändere die Anzahl der Clients die gleichzeitig zugreifen können, um den Absturz des Servers zu unterbinden. Zum Beispiel:

MaxClients 20

Setze die Variable zur Herausgabe des Server Tokens

ServerTokens Prod

Schalte die Server Signatur aus

ServerSignature Off

Stelle sicher, dass niemand .htaccess Dateien herunterladen kann

   <Files ~"^\.ht">
     Order allow,deny
     Deny from all
     Satisfy all
   </Files>

Optional - Leite den gesamten Verkehr auf HTTPS um

     RewriteEngine On
     RewriteRule %{HTTPS} != on
     RewriteRule "^(.*)$" "https://%{SERVER_NAME}$1"[R,L]

Optional - Verlange ein Passwort, um auf den Server zuzugreifen

  • Erzeuge Passwort Dateien
   # cd /usr/local/www
   # mkdir access
   # cd access
   # htpasswd -c <passwordfile> <user>
  • Für weitere Benutzer folgender Eintrag
   # htpasswd <passwordfile> <user>

Setze den Basispfad in httpd.conf so, dass ein Passwort verlangt wird

        <Directory /usr/local/www/data/>
           Satisfy all
           AuthType Basic
           AuthName "web"
           AuthUserFile /usr/local/www/access/passwordfile
           Require valid-user
        </Directory>

Ports

Standardmäßig benutzen Webserver den Port 80, um ihre Dienste anzubieten. Für SSL ist der Port 443 Standard. Beide Ports können aber in der Datei /usr/local/etc/apache2/httpd.conf geändert werden.