Debian Apache2: Unterschied zwischen den Versionen
Erich (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Erich (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 7: | Zeile 7: | ||
==Erweiterungen installieren== | ==Erweiterungen installieren== | ||
apt-get install libapache2-mod-php5 libapache2-mod-ruby libapache2-mod- | apt-get install libapache2-mod-php5 libapache2-mod-ruby libapache2-mod-wsgi libapache2-mod-perl2 | ||
apt-get install php5 php5-common php5-curl php5-dev php5-xcache php5-xsl | apt-get install php5 php5-common php5-curl php5-dev php5-xcache php5-xsl | ||
apt-get install php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt | apt-get install php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt | ||
apt-get install php5-memcache php5-mhash php5-ming php5-pspell php5-recode | apt-get install php5-memcache php5-mhash php5-ming php5-pspell php5-recode | ||
apt-get install php5-snmp php5-sqlite | apt-get install php5-snmp php5-sqlite php5-tidy php5-xmlrpc | ||
==Konfiguration== | ==Konfiguration Apache2.2== | ||
Editieren der Datei/etc/apache2/mods-available/dir.conf… | Editieren der Datei/etc/apache2/mods-available/dir.conf… | ||
vi /etc/apache2/mods-available/dir.conf | vi /etc/apache2/mods-available/dir.conf | ||
Zeile 78: | Zeile 78: | ||
SSLEngine on | SSLEngine on | ||
SSLCertificateFile /etc/ssl/CA/server-cert.pem | SSLCertificateFile /etc/ssl/CA/certs/server-cert.pem | ||
SSLCertificateKeyFile /etc/ssl/CA/server-key.pem | SSLCertificateKeyFile /etc/ssl/CA/key/server-key.pem | ||
</VirtualHost> | </VirtualHost> | ||
{{Hinweis| | |||
Die Zeilen '''SSLCertificateFile''' und '''SSLCertificateKeyFile''' können zusammengefasst werden, falls ein Zertifikat vorliegt, das auch den Key enthält ([[Debian_OpenSSL#Zertifikat und Key verwalten|→ siehe auch hier]]). Es genügt dann die Zeile: | |||
SSLCertificateFile /etc/ssl/CA/certs/server.pem | |||
}} | |||
==Konfiguration Apache2.4== | |||
Editieren der Datei/etc/apache2/mods-available/dir.conf… | |||
vi /etc/apache2/mods-available/dir.conf | |||
Zeile DirectoryIndex ändern: | |||
<IfModule mod_dir.c> | |||
#DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm | |||
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml | |||
</IfModule> | |||
'''SSL Konfiguration:''' | |||
'''Voraussetzung:''' | |||
- [[Debian_OpenSSL|Server Zertifikat erzeugt]] | |||
Default SSL Virtualhost hinzufügen: | |||
vi /etc/apache2/sites-enabled/000-default | |||
Folgende Zeilen am Ende anfügen: | |||
<VirtualHost *:443> | |||
ServerAdmin webmaster@'''''domain.org''''' | |||
DocumentRoot /var/www/ | |||
<Directory /> | |||
Options FollowSymLinks | |||
AllowOverride None | |||
</Directory> | |||
<Directory /var/www/> | |||
Options Indexes FollowSymLinks MultiViews | |||
AllowOverride None | |||
Require all granted | |||
</Directory> | |||
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ | |||
<Directory "/usr/lib/cgi-bin"> | |||
AllowOverride None | |||
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch | |||
Require all granted | |||
</Directory> | |||
ErrorLog /var/log/apache2/error.log | |||
Alias /doc/ "/usr/share/doc/" | |||
<Directory "/usr/share/doc/"> | |||
Options Indexes MultiViews FollowSymLinks | |||
AllowOverride None | |||
Require local | |||
</Directory> | |||
SSLEngine on | |||
SSLCertificateFile /etc/ssl/CA/certs/server-cert.pem | |||
SSLCertificateKeyFile /etc/ssl/CA/key/server-key.pem | |||
</VirtualHost> | |||
{{Hinweis| | |||
Die Zeilen '''SSLCertificateFile''' und '''SSLCertificateKeyFile''' können zusammengefasst werden, falls ein Zertifikat vorliegt, das auch den Key enthält ([[Debian_OpenSSL#Zertifikat und Key verwalten|→ siehe auch hier]]). Es genügt dann die Zeile: | |||
SSLCertificateFile /etc/ssl/CA/certs/server.pem | |||
}} | |||
Zeile 103: | Zeile 168: | ||
Daneben gibt es noch eine Vielzahl von "bösen" Bots, die sich nicht daran halten. Um solche Bots auszusperren siehe [[Debian_Iptables#Webserver Apache|Fail2ban]]. | Daneben gibt es noch eine Vielzahl von "bösen" Bots, die sich nicht daran halten. Um solche Bots auszusperren siehe [[Debian_Iptables#Webserver Apache|Fail2ban]]. | ||
==Zertifikat im Client== | |||
Das Root-CA-Zertifikat sollte in den verwendeten Internet Browsern (Firefox,Internet Explorer, ...) importiert werden. Dadurch kann der Client das vorgezeigte SSL-Zertifikat als vertrauenswürdig einstufen und es erscheint keinerlei Warnung, dass dem Zertifikat nicht vertraut wird. | |||
Details zum Import [[Debian_OpenSSL#Zertifikat im Client importieren|→ siehe auch hier]]. |
Aktuelle Version vom 15. Mai 2015, 11:39 Uhr
Grundinstallation
Hier wird Apache2 und zahlreiche Erweiterungen wie PHP5 und Python instaliert.
Für dieses Unterfangen sind unter Debian zahlreiche Pakete erforderlich:
apt-get install apache2 apache2-doc apache2-mpm-prefork apt-get install apache2-utils apache2-suexec libexpat1 ssl-cert
Erweiterungen installieren
apt-get install libapache2-mod-php5 libapache2-mod-ruby libapache2-mod-wsgi libapache2-mod-perl2 apt-get install php5 php5-common php5-curl php5-dev php5-xcache php5-xsl apt-get install php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt apt-get install php5-memcache php5-mhash php5-ming php5-pspell php5-recode apt-get install php5-snmp php5-sqlite php5-tidy php5-xmlrpc
Konfiguration Apache2.2
Editieren der Datei/etc/apache2/mods-available/dir.conf…
vi /etc/apache2/mods-available/dir.conf
Zeile DirectoryIndex ändern:
<IfModule mod_dir.c> #DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml </IfModule>
SSL Konfiguration:
Voraussetzung:
- Server Zertifikat erzeugt
Damit per SSL auf den Server zugegriffen werden kann, muss folgende Konfiguration durchgeführt werden:
vi /etc/apache2/ports.conf
Folgende Änderung (in fett gedruckt) durchführen:
<IfModule mod_ssl.c> # SSL name based virtual hosts are not yet supported, therefore no # NameVirtualHost statement here NameVirtualHost *:443 Listen 443 </IfModule>
Default SSL Virtualhost hinzufügen:
vi /etc/apache2/sites-enabled/000-default
Folgende Zeilen am Ende anfügen:
<VirtualHost *:443> ServerAdmin webmaster@domain.org DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> SSLEngine on SSLCertificateFile /etc/ssl/CA/certs/server-cert.pem SSLCertificateKeyFile /etc/ssl/CA/key/server-key.pem </VirtualHost>
Hinweis: | |
Die Zeilen SSLCertificateFile und SSLCertificateKeyFile können zusammengefasst werden, falls ein Zertifikat vorliegt, das auch den Key enthält (→ siehe auch hier). Es genügt dann die Zeile: SSLCertificateFile /etc/ssl/CA/certs/server.pem |
Konfiguration Apache2.4
Editieren der Datei/etc/apache2/mods-available/dir.conf…
vi /etc/apache2/mods-available/dir.conf
Zeile DirectoryIndex ändern:
<IfModule mod_dir.c> #DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml </IfModule>
SSL Konfiguration:
Voraussetzung:
- Server Zertifikat erzeugt
Default SSL Virtualhost hinzufügen:
vi /etc/apache2/sites-enabled/000-default
Folgende Zeilen am Ende anfügen:
<VirtualHost *:443> ServerAdmin webmaster@domain.org DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Require all granted </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted </Directory> ErrorLog /var/log/apache2/error.log Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Require local </Directory> SSLEngine on SSLCertificateFile /etc/ssl/CA/certs/server-cert.pem SSLCertificateKeyFile /etc/ssl/CA/key/server-key.pem </VirtualHost>
Hinweis: | |
Die Zeilen SSLCertificateFile und SSLCertificateKeyFile können zusammengefasst werden, falls ein Zertifikat vorliegt, das auch den Key enthält (→ siehe auch hier). Es genügt dann die Zeile: SSLCertificateFile /etc/ssl/CA/certs/server.pem |
Module aktivieren
a2enmod ssl a2enmod rewrite a2enmod suexec a2enmod include
Apache neustarten:
/etc/init.d/apache2 restart
Indizierungs Roboter ausschließen
Google und eine Zahl weiterer Suchmaschinenanbieter verwenden sog. Roboter (Robots), um das Internet nach aktualisierten und neuen Webseiten "abzugrasen". Wenn verhindert werden soll, dass die eigenen Seiten oder Teile davon in den Suchindizes landen, kann dies folgendermaßen verhindert werden:
vi /var/www/robots.txt
Folgende zwei Zeilen einfügen:
User-agent: * Disallow: /
Auf diese Weise können sämtliche "guten" Roboter ausgeschlossen werden, die sich an die Vorgabe halten und zunächst versuchen das robots.txt File herunterzuladen und den Inhalt auszuwerten.
Daneben gibt es noch eine Vielzahl von "bösen" Bots, die sich nicht daran halten. Um solche Bots auszusperren siehe Fail2ban.
Zertifikat im Client
Das Root-CA-Zertifikat sollte in den verwendeten Internet Browsern (Firefox,Internet Explorer, ...) importiert werden. Dadurch kann der Client das vorgezeigte SSL-Zertifikat als vertrauenswürdig einstufen und es erscheint keinerlei Warnung, dass dem Zertifikat nicht vertraut wird. Details zum Import → siehe auch hier.