• Ändern der Hauptkonfigurationsdatei httpd.conf
  • Konfiguration der einzelnen virtuellen Webserver
  • AuthUserFile D:\Programme\apache\w1\.htpasswd
  • SSLDisable
  • SSLCertificateFile /etc/apache-ssl/ktds.cert.cert SSLCertificateKeyFile /etc/apache-ssl/ktds.cert.key
  • Lösung der Querschnittsaufgaben: Client für Mailserver
  • Implementierung des Lösungskonzepts




    Download 15,32 Kb.
    Sana17.09.2020
    Hajmi15,32 Kb.
    #11404

    Implementierung des Lösungskonzepts:
    Mit dem Tool dselect ging die Installation des Apache-SSL Servers und des für die Aufgabe benötigten PHP-Moduls (beinahe) problemlos. Zu diesem Zeitpunkt steht Apache-SSL bereits als voll funktionsfähiger Webserver zur Verfügung.
    Ändern der Hauptkonfigurationsdatei httpd.conf:

    Nach der Installation waren verschiedene Einstellungen in der httpd.conf vorzunehmen:

    1.) Den Namen des Servers auf localhost stellen. Das ist besser, weil erstens noch keine DNS-Auflösung zur Verfügung stand und die Einstellung sowieso von den VirtualHosts überschrieben wird.

    2.) Den Befehl "AddType application/x-httpd-php .php" einfügen, damit Apache-SSL weiß, was er mit PHP-Dateien anzufangen hat.

    3.) Im letzten Teil der Datei befindet sich eine Beispielkonfiguration eines SSL-Servers, die teilweise unkommentiert ist. Diese Konfiguration haben wir komplett auskommentiert damit sie uns nicht in die Quere kommt. Die nachfolgenden VirtualHost Einstellungen haben wir gelöscht.

    Alle restlichen Einstellungen konnten weitestgehend übernommen bzw. ignoriert werden.

    4.) Es müssen Listen- und NameVirtualHost- Direktiven in eingefügt werden, die den Server auf allen verwendeten Ports horchen lassen:

    Listen 80

    Listen 443

    NameVirtualHost www.ktds-labor.de:80

    NameVirtualHost www.intern.ktds-labor.de:80
    Konfiguration der einzelnen virtuellen Webserver:

    Als Grundvoraussetzung haben wir drei Verzeichnisse "w1", "w2" und "w3" erstellt, auf denen später unsere Virtuellen Server operieren sollen.


    Server W1:

    Für den W1 sollte der Zugriff mit einer Passwortabfrage gesichert werden. Dies haben wir folgendermaßen realisiert:

    1.) Die Konfiguration unseres VirtualHost unterscheidet sich an sich nicht von den anderen:

    ServerAdmin webmaster@ktds-labor.de

    DocumentRoot /etc/apache-ssl/w1

    ServerName www.ktds-labor.de


    2.) Folgende Directory-Anweisung musste eingefügt werden:

    Options Indexes FollowSymLinks

    AllowOverride All

    Order allow,deny

    Allow from all

    Insbesondere der rote Teil ist wichtig. Hier wird dem Apache-SSL mitgeteilt, dass es für .htaccess-Dateien im Verzeichnis "/etc/apache-ssl/w1" gestattet ist, Einstellungen der httpd.conf lokal zu überschreiben.


    3.) Eine .htpasswd-Datei musste angelegt werden, in der ein Zugriffberechtigter Benutzer registriert ist. Dies geht mit der in der Apache-SSL Installation enthaltenen Datei htpasswd.

    htpasswd -c /etc/apache-ssl/.htpasswd ktds

    Dies erstellt eine neue .htpasswd-Datei im Verzeichnis /etc/apache-ssl mit dem Benutzer ktds. Das Programm fragt dann weiterhin nach einem Passwort für ktds.
    4.) Im Verzeichnis des W1 (/etc/apache-ssl/w1) musste eine .htaccess-Datei mit folgendem Inhalt angelegt werden:

    AuthType Basic

    AuthName "geschuetztes Verzeichniss"

    AuthUserFile D:\Programme\apache\w1\.htpasswd

    require valid-user

    Dies sagt dem Apache-SSL, dass er den Zugriff auf das Verzeichnis nur gestatten soll, wenn sich ein in der .htpasswd registrierter Benutzer sich mit seinem korrekten Passwort anmeldet.


    5.) Alle in dem Verzeichnis enthaltenen Dateien sind nun geschützt. Zum testen haben wir eine simple index.html erstellt, die den Namen des Webservers ausgibt.
    Server W2:

    Für den W2 sollte PHP Einbindung realisiert werden und eine PHP-Infoseite angezeigt werden können. Dies war die einfachste Aufgabe, da nach der Installation des PHP-Moduls PHP Einbindung bereits global zur Verfügung stand.

    1.) Die Konfiguration des VirtualHosts:

    ServerAdmin webmaster@ktds-labor.de

    DocumentRoot /etc/apache-ssl/w2

    ServerName www.intern.ktds-labor.de


    1.) Es musste eine PHP-Datei erstellt werden, die die Informationen anzeigt. Wir nannten sie info.php. Sie hat folgenden, sehr einfachen Inhalt:

    Dies ruft einzig und allein die netterweise schon zur Verfügung stehende PHP-Funktion phpinfo auf, die sich um alles weitere kümmert.
    2.) Jetzt musste nur noch eine index.html erstellt werden, die den Namen des Servers ausgibt und einen Link auf die info.php enthält. Fertig.
    Server W3:

    Der W3 soll eine sichere Verbindung via SSL aufbauen. Dies war im Gegensatz zum W2 die mit Abstand schwierigste Aufgabe.

    1.) Als Erstes muss ein Sicherheitszertifikat für die Verbindung erstellt werden. Dies geschieht mit dem Programm openssl, dessen Paket bei der Installation von Apache-SSL mitinstalliert wurde. Die Erstellung des Zertifikats und der zugehörigen Key-File geschieht mit folgenden Befehlen:

    openssl req -new > /etc/apache-ssl/ktds.cert.csr

    openssl rsa -in privkey.pem -out /etc/apache-ssl/ktds.cert.key

    openssl x509 -in /etc/apache-ssl/ktds.cert.csr -out /etc/apache-ssl/ktds.cert.cert -req -signkey /etc/apache-ssl/ktds.cert.key -days 365

    Damit sind Zertifikat ktds.cert.cert und der Key ktds.cert.key ab jetzt für 365 Tage gültig.
    2.) Die httpd.conf muss um einige SSL-Direktiven erweitert werden:

    SSLDisable

    SSLNoCAList

    SSLRandomFile file /var/tmp 1024

    SSLCacheServerPath /etc/apache-ssl/bin/gcache

    SSLCacheServerPort 1234

    SSLCacheServerRunDir /tmp

    SSLSessionCacheTimeout 15

    Dies sind global notwendige Einstellungen für SSL! (Das mit dem voll funktionsfähigen Browser war also nicht ganz korrekt, denn zumindest die Direktiven SSLCacheServerPath und SSLCacheServerPort sind notwendig, damit der Server überhaupt erst startet)

    SSLDisable gibt weiterhin an, dass alle normalen Server kein SSL verwenden sollen.

    3.) Wieder die VirtualHost Konfiguration, aber diesmal wesentlich komplexer wegen serverspezifischen SSL-Direktiven:

    443>

    DocumentRoot /etc/apache-ssl/w3

    ServerAdmin webmaster@ktds-labor.de

    ServerName www.praktikum.ktds-labor.de

    SSLCertificateFile /etc/apache-ssl/ktds.cert.cert

    SSLCertificateKeyFile /etc/apache-ssl/ktds.cert.key

    SSLVerifyClient 0

    SSLVerifyDepth 10

    SSLBanCipher NULL-MD5:NULL-SHA

    CustomLog logs/ssl_log "%t %{version}c %{cipher}c %{clientcert}c"

    SSLEnable

    Hier wird dem virtuellen Server gesagt, dass er die eben erzeugten Zertifikatdateien benutzen soll um die Verbindung zu erstellen und dann wird für ihn noch SSL eingeschaltet. Der Port 443 ist der Standardport für SSL.


    4.) Es fehlt noch eine Directory-Direktive, die den Verzeichniszugriff nur auf SSL beschränkt:

    SSLRequireSSL

    Damit kann das Verzeichnis nur noch mit SSL betreten werden.
    5.) Jetzt nur noch eine index.html mit dem Namen des Webservers erstellen und fertig.


    Lösung der Querschnittsaufgaben:
    Client für Mailserver:
    Für die Verbindung zu einem Mailserver werden verschiedene Programme benötigt. Als erstes wäre da fetchmail, mit dem die eingetroffenen Mails vom Mailserver abgeholt werden und im lokalen spool-Verzeichnis gespiechert werden können. Dafür müssen zuerst Einträge der lokalen Benutzer in die Konfigurationsdatei /etc/fetchmailrc gemacht werden. Das sieht in etwa so aus:

    poll Pop3-Servername protocol pop3 user "Benutzername" there with password "Passwort" is Lokaler_Benutzername here

    Jeder Benutzer hat seinen eigenen Eintrag in der Datei.

    Der Aufruf von fetchmail sähe dann etwa so aus: fetchmail -f /etc/fetchmailrc.

    Lokal berabeitet werden können die Mails dann mit einem beliebigen Bearbeitungsprogramm, z.B. mail.

    Für das versenden der Mails an den Mailserver benötigt man selber einen kleinen lokalen Mailserver wie z.B. sendmail oder exim. Dieser Muss natürlich auch erstmal korrekt eingerichtet werden um die Mails der lokalen Benutzer zu sammeln und an den Mailserver weiterzuzleiten. Mal ausgegangen von sendmail kann man die Mails (sofern nicht als Dienst konfiguriert) dann mit einem Befehl wie sendmail -qf sammeln und versenden.


    Client für DNS / DHCP:
    Durch die Ausführung des scripts /etc/init.d/networking restart wird das komplette netzwerk automatisch konfiguriert. Wenn ein DHCP Server verfügbar ist wird die IP Adresse dann direkt dorther bezogen und wenn ein DNS Server verfügbar ist steht dann DNS Auflösung zur Verfügung.
    Client für SAMBA:
    Die einfachste Art auf eine SAMBA-Freigabe zuzugreifen ist mit dem Tool smbclient. Durch den Aufruf smbclient //Servername/Freigabename -U Benutzername kann auf die Freigabe wie auf einen FTP Server zugegriffen werden. Sollte dem Clientcomputer der Hostname des Servers nicht bekannt sein, kann man diesen durch die Angabe einer IP Adresse mit folgendem Befehl umgehen: smbclient //Servername/Freigabename -I IP-Adresse -U Benutzername. Mit dem Befehl smbclient -M Servername -U Benutzername lässt sich eine Liste aller Freigaben auf einem Server anzeigen.
    Download 15,32 Kb.




    Download 15,32 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Implementierung des Lösungskonzepts

    Download 15,32 Kb.