Installation und Konfiguration eines sicheren Webservers



Ähnliche Dokumente
Kleines SSL Handbuch. Inhaltsverzeichnis. Daniel Klaenbach Einleitung 2

Mit Putty und SSH Key auf einen Linux Server zugreifen. Vorbereitungen auf dem Client Rechner

ViMP 3.0. SSL Einrichtung in Apache 2.2. Verfasser: ViMP GmbH

SSH Authentifizierung über Public Key

Einführung in CAcert. Sebastian Bötzl

Apache Webserver with SSL on Windows

Betriebssystem Windows - SSH Secure Shell Client

Installation eines SSL Zertifikates unter Apache http Server 2.x

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Das neue Volume-Flag S (Scannen erforderlich)

Kurzanleitung um Transponder mit einem scemtec TT Reader und der Software UniDemo zu lesen

Umbenennen eines NetWorker 7.x Servers (UNIX/ Linux)

Installation mit Lizenz-Server verbinden

How to install freesshd

Migration Howto. Inhaltsverzeichnis

Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier)

Apache HTTP-Server Teil 1

SFTP SCP - Synology Wiki

Mac OS X Consoliero Teil 14: Webmail Agent unter Mac OS X Server 10.2

Apache HTTP-Server Teil 2

Anleitung zum Prüfen von WebDAV

Einrichten der TSM-Backup-Software unter dem Betriebssystem Windows


E r s t e l l u n g e i n e s Gateway-Zertifikats

Anleitung zum Prüfen von WebDAV

HowTo für ein VPN mit X.509 Zertifikaten Intranator <=> Lancom (LCOS v6.x)

Netzwerksicherheit Übung 5 Transport Layer Security

SWISSVAULT StorageCenter Console Version 5 Kurzanleitung für SWISSVAULT Combo Partner

Netzwerksicherheit Übung 5 Transport Layer Security

Apache HTTP-Server Teil 1

Guide DynDNS und Portforwarding

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Löschen eines erkannten aber noch nicht konfigurierten Laufwerks

Test mit lokaler XAMPP Oxid Installation

Wifiway auf einer VMware Workstation auf einem Windows Rechner anwenden & VM Workstation installieren

Readme-USB DIGSI V 4.82

MobiDM-App Handbuch für Windows Mobile

Publizieren von Webs mit SmartFTP

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen

OP-LOG

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

EasyProfil unter Windows 7 64-Bit Home Premium (Die Installation der VirtualBox und EasyProfil)

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

TSM-Client unter Windows einrichten

Aufbau einer Testumgebung mit VMware Server

Installationsanleitung unter Windows

Comtarsia SignOn Familie

USB Treiber updaten unter Windows 7/Vista

Step by Step Webserver unter Windows Server von Christian Bartl

Netzsicherheit I, WS 2008/2009 Übung 12. Prof. Dr. Jörg Schwenk

HTBVIEWER INBETRIEBNAHME

Installationsanleitung SSL Zertifikat

Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden.

Einrichten der TSM-Backup-Software unter dem Betriebssystem Mac OSX

Konfiguration des Novell GroupWise Connectors

Themen. Apache Webserver Konfiguration. Verzeichnisse für Web-Applikationen. Server Side Includes

HOW TO. Celvin NAS Server So greifen Sie über das Internet auf Ihren Celvin NAS Server zu. DDNS und Portweiterleitung am Celvin NAS Server einrichten

VPN / IPSec Verbindung mit dem DI 804 HV und dem SSH Sentinel

Der Adapter Z250I / Z270I lässt sich auf folgenden Betriebssystemen installieren:

1. Zugriff auf das Lonza Netzwerk von ihrem privaten PC oder von einem Internet Café

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Wireless LAN Installation Windows XP

Konfiguration IKMZ / Universitätsrechenzentrum des Cisco VPN-Clients v3.6 Netze und Datenkommunikation

ISA Server Exchange RPC over HTTPS mit NTLM-Authentifizierung

Switching. Übung 2 System Management. 2.1 Szenario

WebDAV-Zugang unter Windows 7 mit NetDrive

Lizenzen auschecken. Was ist zu tun?

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich?

Installations-Dokumentation, YALG Team

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Tutorial -

MOUNT10 StoragePlatform Console

VPN Tunnel Konfiguration. VPN Tunnel Konfiguration IACBOX.COM. Version Deutsch

EEX Kundeninformation

Infinigate (Schweiz) AG. Secure Guest Access. - Handout -

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Konfiguration Zentyal 3.3 Inhaltsverzeichnis

R-ADSL2+ Einrichthinweise unter Windows 98/ME

TSM-Client unter Mac OS X einrichten

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Workshop: Eigenes Image ohne VMware-Programme erstellen

Gezieltes Kontakt- und Kundenmanagement. Die Software für Ihren Erfolg 2,8 Millionen Anwender weltweit! Installationsleitfaden

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Einrichten der TSM-Backup-Software unter dem Betriebssystem Windows

Im Folgenden wird die Konfiguration der DIME Tools erläutert. Dazu zählen die Dienste TFTP Server, Time Server, Syslog Daemon und BootP Server.

VAX2go ein Projekt der Gruppe Damn small VAX

Securepoint Security Systems

Installation und Start der Software AQ2sp Installation and Start of the software AQ2sp

Tips, Tricks und HOWTOs Virtualisierung für Profis und Einsteiger Serverkonsolidierung, Testumgebung, mobile Demo

1 Konfigurationsanleitung Hosted Exchange

UM ALLE DATEN ZU KOPIEREN. ZUNÄCHST die Daten des alten Telefons auf einen Computer kopieren

1. Voraussetzungen S Installation des OpenVPN Clients S OpenVPN Client installieren S Entpacken des Zip Ordners S.

DynDNS Router Betrieb

2. Einrichtung der Verbindung zum Novell-NetStorage-Server

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

HowTo: Einrichtung & Management von APs mittels des DWC-1000

SSH-Zugang zu Datenbanken beim DIMDI

Transkript:

Installation und Konfiguration eines sicheren Webservers Waldemar Brodkorb wbrodk2s@smail.inf.fh-brs.de Christian Louis clouis2s@smail.inf.fh-brs.de 18. Dezember 2002 1

Inhaltsverzeichnis 1 Einleitung 3 2 Hardware 3 3 Betriebssystem 3 4 Webserver - Apache 3 5 Administration - Secure Shell 4 6 Datensynchronisation - Unison 5 7 Administration - Public Keys 5 8 Logauswertung - Awstats 6 9 Sicherheit 6 2

1 Einleitung Ziel unseres kleinen Projektes ist es einen sicheren, performanten und leicht wartbaren Webserver aufzubauen. Als Komponenten wählten wir einen älteren Rechner und OpenSource Software. Die Pflege der Webinhalte sollte möglichst komfortabel und sicher implementiert werden und von allen gängigen Betriebssystemen aus funktionieren. 2 Hardware Zum Einsatz kam ein standard x86-rechner, mit folgender Ausstattung: CPU Pentium 350 Mhz 128 MB Hauptspeicher Adaptec SCSI Controller 2940 IBM 4 GB SCSI Festplatte 3 COM 3c905-TX PCI NIC Diese Ausstatung sollte auch für dynamische Webseiten ausreichend dimensioniert sein. 3 Betriebssystem Als Betriebssystem haben wir ein freies BSD Derivat gewählt. FreeBSD [1] ist für den Betrieb als Webserver optimiert und ist mit zwei Disketten und einer Internetanbindung schnell installiert. Die Installationsroutine ist auch für einen Unix- Einsteiger leicht zu bewältigen, wenn die Dokumentation [2] vorher gelesen wurde. Die Hardware wird komplett unterstützt (siehe dmesg im Anhang). Die Version 4.6.2 wurde installiert, aktuell ist momentan 4.7. Die Maschine ist in das Netzlabor integriert und die Netzwerkkonfiguration in der /etc/rc.conf eingestellt worden: defaultrouter="194.95.66.1" hostname="pc-2n07.inf.fh-brs.de" ifconfig_xl0="inet 194.95.66.117 netmask 255.255.255.0" 4 Webserver - Apache Webserver? Apache [3], was sonst. Apache ist eines der bekanntesten OpenSource Projekte, und sehr weit verbreitet. Wir haben uns dazu entschieden, die neue Version 2 auszuprobieren. Die Installation ist sehr einfach, wir installierten Apache aus dem Quellcode: 3

$ wget http://www.apache.org/dist/httpd/httpd-2.0.43.tar.gz $ tar -xzvf httpd-2.0.43.tar.gz $ cd httpd-2.0.43 $./configure --enable-rewrite --enable-so --enable-ssl \ --enable-cgi --prefix=/var/www --exec-prefix=/var/www $ make Nach der Kompilierung der Programme muß als Administrator root, die Software installiert werden und rc.local modifiziert werden, um den Webserver auch nach einem Neustart des Rechners automatisch zu starten. # make install # echo /var/www/bin/apachectl start >> /etc/rc.local Als letztes erfolgte die Konfiguration als Virtual Webserver. Dafür wurde von den Systemadministratoren des Fachbereichs netterweise ein CNAME für den Rechner im DNS eingerichtet, sodaß der Hostname leischner.inf.fh-brs.de auf die IP- Addresse des Webservers zeigt. Alle HTTP 1.1 fähigen Web-Browser senden bei einer Anfrage an den Server, den gewünschten Hostnamen mit, sodaß der Webserver, auf unterschiedliche Webseiten verweisen kann. Der entsprechende Ausschnitt aus der /var/www/conf/httpd.conf: NameVirtualHost 194.95.66.117:80 <VirtualHost 194.95.66.117:80> ServerAdmin martin.leischner@fh-bonn-rhein-sieg.de DocumentRoot /var/www/vhosts/leischner/htdocs ServerName leischner.inf.fh-brs.de ServerAlias leischner.inf.fh-bonn-rhein-sieg.de ServerAlias leischner.inf.fh-rhein-sieg.de CustomLog /var/www/vhosts/leischner/logs/access.log combined ErrorLog /var/www/vhosts/leischner/logs/error.log ScriptAlias "/cgi-bin/" "/var/www/vhosts/leischner/cgi-bin/" </VirtualHost> Der Webserver kann über folgenden Befehl gestartet werden: # /var/www/bin/apachectl start Nach Änderung der Konfiguration muß er neugestartet werden: # /var/www/bin/apachectl graceful 5 Administration - Secure Shell OpenSSH s [4] freie Implementierung des Secure Shell Protokolls, wird beim Basissystem von FreeBSD mitinstalliert. Die Konfiguration des SSH-Dämon s wurde verfeinert, sodaß Zugriffe auf den Webserver nur über PublicKey-Verfahren möglich sind. Die Konfigurationsdatei /etc/ssh/sshd config findet sich im Anhang. Über einen Login auf den Webserver, kann das System komplett gewartet, konfiguriert und upgedatet werden. 4

6 Datensynchronisation - Unison Die Datensynchronistation erfolgt über Unison [5], ein frei verfügbares, auch graphisch verwendbares Tool zum automatischen Abgleich zweier Verzeichnisse. Unison überträgt dabei nur die Änderungen (Deltas) in den beiden Verzeichnissen, um so einen gleichen Stand möglich zu machen. Unison wird hier zum Abgleich des htdocs - Verzeichnisses mit einem beliebigen Verzeichnis auf dem Clientrechner genutzt. Wir gehen im Folgenden davon aus, dass auf dem Clientrechner eine aktuelle Windows-Version installiert ist. Zunächst muss auf dem Rechner ein SSH - Client installiert werden. Wir empfehlen aus Effizienzgründen und aufgrund der einfachen Installation hier den Einsatz der kommerziellen SSH Secure Shell for Workstations [7], die jedoch auch in einer nichtkommerziell kostenlos nutzbaren Version zur Verfügung steht. Nach dem Download und der Installation dieser SSH-Version befinden sich verschiedene Verknüpfungen auf dem Desktop. Durch den Aufruf von SSH Secure Shell Client gelangt man in ein Terminalprogramm für SSH. Über die Menüpunkte Edit - Settings - Global Settings - User Authentication - Keys - Generate New generiert man nun ein neues SSH Keypaar mit den Parametern DSA / 2048. Dieses Keypaar kann bei Bedarf eine Passphrase enthalten, diese muß dann allerdings bei jedem Abgleich eingegeben werden. Nachdem der Prozess der Schlüsselerzeugung abgeschlossen ist (dies kann durchaus dauern), erscheint der Schlüssel in der Liste der Private Keys. Hier wird er nun über die Option Export in eine Textdatei exportiert. Es werden automatisch zwei Dateien, eine mit dem geheimen Schlüssel (ohne Endung) und eine mit dem öffentlichen Schlüssel ([name].pub) erzeugt. Die Textdatei mit dem öffentlichen Schlüssel wird nun dem Administrator übersandt, der sie in /etc/ssh/authorized keys einpflegt. Nachdem dies geschehen ist, wird noch im Dialog zum Schlüsselmanagement die Public-key Authentication für den ssh2 - Kommandozeilenclient aktiviert. Im Anschluß daran installiert man nun in einem beliebigen Verzeichnis die graphische Unison-Version für Windows unison.win32-gtkui.exe. Zusätzlich kopiert man in dieses Verzeichnis die Datei ssh2.exe aus dem SSH-Programmverzeichnis und benennt diese in ssh.exe um. Nun startet man die Unison-Anwendung und erzeugt ein neues Profil. Ein Assistent hilft nun bei der Angabe der abzugleichenden Verzeichnisse. Zunächst wählt man das Verzeichnis auf dem lokalen Rechner aus, in dem die Webseiten gespeichert sind. Im nächsten Dialog wählt man die Option SSH aus und trägt die Parameter Host: (leischner.inf.fh-brs.de) und User: ein. Unter Directory wählt man hier das Zielverzeichnis auf dem Webserver, also /var/www/vhosts/leischner/htdocs aus. Im Folgenden sieht man nun eine Übersicht über die abzugleichenden Dateien und kann den Abgleich starten. Bei Problemen empfiehlt es sich, einen Blick in das zweite geöffnete Fenster, die Konsole zu werfen. Insbesondere beim ersten Login erscheint hier der Hostkey der Zielmaschine, den man überprüfen sollte. Eine graphische, CuteFTP-artige Darstellung ermöglicht das ebenfalls zur SSH- Suite gehörende Tool SSH Secure File Transfer Client, das ebenfalls auf dem Desktop verlinkt ist. 7 Administration - Public Keys Der durch die kommerziellen SSH-Versionen erzeugte Public Key ist leider nicht ohne Probleme mit der freien OpenSSH Implementation zu verwenden aufgrund von nicht kompatiblem Format. OpenSSH beherrscht jedoch die Konvertierung der Schlüsseltypen. Dieses Verfahren ist jedoch ein wenig anspruchsvoller als die Erzeugung des Schlüssels durch ein graphisches Frontend und sollte daher dem erfahrenen 5

Administrator überlassen werden. Eine Sicherheitslücke entsteht hierdurch nicht, da OpenSSH auf Public-Key- Verfahren fußt und die Sicherheit dieser Verfahren durch die Weitergabe des öffentlichen Schlüssels nicht beeinträchtigt wird (u.a. Sinn des Public-Key-Verfahrens). Der öffentliche Schlüssel wird zunächst mittels der üblichen File-Transfer-Verfahren auf den Server überspielt. Nun wird der eigentliche Konvertierungsprozess mit Hilfe des Befehls: ssh-keygen -i -f [name] > openssh-publickey.out durchgeführt. Anschließend wird der Schlüssel durch cat openssh-publickey.out >> /etc/ssh/authorized\_keys eingepflegt. Der Benutzer kann sich daraufhin per SSH, SFTP oder via Unison zu dem Server konnektieren. 8 Logauswertung - Awstats Die Logauswertung, auch als Erfolgsmessung für die Webpräsenz anzusehen, wurde über die freie Software Awstats [6] realisiert. Die Auswertung ist über folgende URL zu ereichen: http://leischner.inf.fh-brs.de/cgi-bin/awstats.pl Die Installation erfolgte direkt in das CGI-BIN-Verzeichnis des Vhosts /var/www/vhosts/leischner/cgi-bin/, dort ist auch die Konfigurationsdatei awstats.conf zu finden, die der Benutzer nach seinen Wünschen anpassen kann. Aus Zeitgründen ist es haben wir den sicheren Zugriff auf die Logauswertung noch nicht implementieren können. Es sollte eine über SSL gesicherte Passwortauthentifizierung erfolgen, bevor die Seite erscheint. Diese Konfigurationsarbeit wird der folgende Systemadministrator einrichten. Der Webserver ist bereits SSL fähig. 9 Sicherheit Beim ersten Login über Secure Shell, sollte der Fingerprint des Hostkeys verglichen werden, sollte dieser sich irgendwann ändern (Warnung beim Login), sollte dringend der Systemadministrator benachrichtigt werden. DSA key fingerprint is 97:77:c8:91:bb:1b:65:a8:53:4e:fa:bd:3a:08:d7:a8 or xikaz-vyzem-dybah-nugez-bebak-kihyl-zudop-hihek-cugym-mypim-sexax RSA key fingerprint is 26:ee:fc:c6:4f:ae:38:03:53:a3:36:e5:96:49:f4:96 or xoheb-byrac-dopar-lubyn-folih-zolud-sasyk-mytog-siboh-gebeb-dexax Für den Betrieb als SSL/TLS fähigen Webserver werden X.509-Zertifikate benötigt, im folgenden werden alle benötigten openssl-befehle [8] aufgezeigt. Wir betreiben dabei eine eigene CA und sparen uns das Geld für eine Browserintegrierte kostenpflichtige CA Signierung. Das Zertifikat der CA kann vor dem erstmaligen Aufbau einer Verbindung in den Browser importiert werden. Urls zum Abruf: https://pc-2n07.inf.fh-brs.de/ca.crt 6

https://pc-2n07.inf.fh-brs.de/ca.der Fingerprints zum Vergleich: MD5 Fingerprint=03:9D:85:8D:16:F4:F0:A4:4A:1D:C2:FE:21:E0:4D:76 SHA1 Fingerprint=49:05:5C:57:1C:A1:4B:B1:D6:9E:96:DA:F8:46:03:6F:9F:76:CC:0E Erstellung des CA Schlüssels: # openssl genrsa -des3 -out private/ca.key 2048 warning, not much extra random data, consider using the -rand option Generating RSA private key, 2048 bit long modulus...+++... e is 65537 (0x10001) Enter PEM pass phrase: Verifying password - Enter PEM pass phrase: CA Signierungs Wunsch: # openssl req -new -key /etc/ssl/private/ca.key -out ca.csr Using configuration from /etc/ssl/openssl.cnf Enter PEM pass phrase: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter., the field will be left blank. ----- Country Name (2 letter code) [DE]: State or Province Name (full name) [NRW]: Locality Name (eg, city) [Sankt Augustin]: Organization Name (eg, company) [FH Bonn Rhein Sieg]: Organizational Unit Name (eg, section) [Netzlabor]: Common Name (eg, YOUR name) []:CA Eigensignatur der CA: # openssl x509 -req -days 999 -in ca.csr -signkey private/ca.key -out ca.crt Signature ok subject=/c=de/st=nrw/l=sankt Augustin/O=FH Bonn Rhein Sieg/OU=Netzlabor/CN=CA Getting Private key Enter PEM pass phrase: Schlüssel für den Webserver: # openssl genrsa -out www.key 2048 warning, not much extra random data, consider using the -rand option Generating RSA private key, 2048 bit long modulus......+++ e is 65537 (0x10001) Signierungswunsch: 7

pc-2n07# openssl req -new -key www.key -out www.csr Using configuration from /etc/ssl/openssl.cnf You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter., the field will be left blank. ----- Country Name (2 letter code) [DE]: State or Province Name (full name) [NRW]: Locality Name (eg, city) [Sankt Augustin]: Organization Name (eg, company) [FH Bonn Rhein Sieg]: Organizational Unit Name (eg, section) [Netzlabor]: Common Name (eg, YOUR name) []:pc-2n07.inf.fh-brs.de Signierung durch die eigene CA, Erstellung des Zertifikates: # openssl x509 -req -days 999 -in www.csr -CA /etc/ssl/ca.crt -CAkey /etc/ssl/private/ca.key -CAcreateserial -out www.crt Signature ok subject=/c=de/st=nrw/l=sankt Augustin/O=FH Bonn Rhein Sieg/OU=Netzlabor/CN=pc-2n07.inf.fh-brs.de Getting CA Private Key Enter PEM pass phrase: CA Certs in DER-Format (für Internet Explorer): # openssl x509 -in /var/www/conf/ssl/ca.crt -outform der -inform pem -out ca.der Die openssl-konfigurationsdatei ist im Anhang. Man kommt zwar auch ohne aus, aber es spart einem Zeit ;) Und hier noch die entsprechenden Passagen aus httpd.conf: NameVirtualHost 194.95.66.117:80 Include conf/ssl.conf <VirtualHost 194.95.66.117:80>... Und in ssl.conf: # general AddType application/x-x509-ca-cert.crt.der AddType application/x-pkcs7-crl.crl SSLPassPhraseDialog builtin SSLSessionCache dbm:logs/ssl_scache SSLSessionCacheTimeout 300 SSLMutex file:logs/ssl_mutex SSLRandomSeed startup builtin SSLRandomSeed connect builtin <VirtualHost 194.95.66.117:443> DocumentRoot "/var/www/htdocs" 8

ServerName pc-2n07.inf.fh-brs.de ServerAdmin wbrodk2s@smail.inf.fh-brs.de ErrorLog logs/error_log TransferLog logs/access_log SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /var/www/conf/ssl/www.crt SSLCertificateKeyFile /var/www/conf/ssl/www.key SSLCACertificateFile /var/www/conf/ssl/ca.crt <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> Ein kurze Überprüfung der über Netzwerk erreichbaren Ports mit dem Netzwerkscanner nmap [9] ergibte folgendes Ergebnis: # nmap -ss -O -P0 194.95.66.117 (The 1592 ports scanned but not shown below are in state: closed) Port State Service 22/tcp open ssh 25/tcp filtered smtp 80/tcp open http 139/tcp filtered netbios-ssn 443/tcp open https 445/tcp filtered microsoft-ds 515/tcp filtered printer 1433/tcp filtered ms-sql-s 1524/tcp filtered ingreslock Too many fingerprints match this host for me to give an accurate OS guess Nur die erwünschten Ports sind geöffnet. 9

Quellen [1] FreeBSD http://www.freebsd.org/ [2] FreeBSD http://www.freebsd.org/doc/en US.ISO8859-1/books/handbook/index.html [3] Apache Webserver http://httpd.apache.org/ [4] OpenSSH http://www.openssh.com/ [5] Unison http://www.cis.upenn.edu/ bcpierce/unison/ [6] Awstats http://awstats.sourceforge.net/ [7] SSH http://www.ssh.com/products/security/secureshellwks/ [8] OpenSSL http://www.openssl.org [9] Nmap http://www.nmap.org 10

OpenSSH sshd-konfiguration: # $OpenBSD: sshd_config,v 1.56 2002/06/20 23:37:12 markus Exp $ # $FreeBSD: src/crypto/openssh/sshd_config,v 1.4.2.8.2.1 2002/07/16 12:33:10 des Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options change a # default value. # Note that some of FreeBSD s defaults differ from OpenBSD s, and # FreeBSD has a few additional options. #VersionAddendum FreeBSD-20020629 Port 22 Protocol 2 #ListenAddress 0.0.0.0 #ListenAddress :: # HostKey for protocol version 1 #HostKey /etc/ssh/ssh_host_key # HostKeys for protocol version 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # Lifetime and size of ephemeral version 1 server key #KeyRegenerationInterval 3600 #ServerKeyBits 768 # Logging #obsoletes QuietMode and FascistLogging #SyslogFacility AUTH #LogLevel INFO # Authentication: #LoginGraceTime 120 PermitRootLogin no #StrictModes yes RSAAuthentication no PubkeyAuthentication yes AuthorizedKeysFile /etc/ssh/authorized_keys # rhosts authentication should not be used #RhostsAuthentication no # Don t read the user s ~/.rhosts and ~/.shosts files #IgnoreRhosts yes 11

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts #RhostsRSAAuthentication no # similar for protocol version 2 #HostbasedAuthentication no # Change to yes if you don t trust ~/.ssh/known_hosts for # RhostsRSAAuthentication and HostbasedAuthentication #IgnoreUserKnownHosts no # To disable tunneled clear text passwords, change to no here! PasswordAuthentication no PermitEmptyPasswords no # Change to no to disable PAM authentication ChallengeResponseAuthentication no # Kerberos options #KerberosAuthentication no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes #AFSTokenPassing no # Kerberos TGT Passing only works with the AFS kaserver #KerberosTgtPassing no #X11Forwarding yes #X11DisplayOffset 10 #X11UseLocalhost yes #PrintMotd yes #PrintLastLog yes #KeepAlive yes #UseLogin no UsePrivilegeSeparation yes Compression yes #MaxStartups 10 # no default banner path #Banner /some/path #VerifyReverseMapping no # override default of no subsystems Subsystem sftp /usr/libexec/sftp-server # # OpenSSL example configuration file. # This is mostly being used for generation of certificate requests. # # $FreeBSD: src/crypto/openssl/apps/openssl.cnf,v 1.1.1.1.2.4 2001/07/04 23:19:09 kris Exp $ # This definition stops the following lines choking if HOME isn t # defined. HOME =. RANDFILE = $ENV::HOME/.rnd 12

# Extra OBJECT IDENTIFIER info: #oid_file = $ENV::HOME/.oid oid_section = new_oids # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] # We can add new OIDs in here for use by ca and req. # Add a simple OID like this: # testoid1=1.2.3.4 # Or use config file substitution like this: # testoid2=${testoid1}.5.6 #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir =./democa # Where everything is kept certs = $dir/certs # Where the issued certs are kept crl_dir = $dir/crl # Where the issued crl are kept database = $dir/index.txt # database index file. new_certs_dir = $dir/newcerts # default place for new certs. certificate = $dir/cacert.pem # The CA certificate serial = $dir/serial # The current serial number crl = $dir/crl.pem # The current CRL private_key = $dir/private/cakey.pem# The private key RANDFILE = $dir/private/.rand # private random number file x509_extensions = usr_cert # The extentions to add to the cert # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs # so this is commented out by default to leave a V1 CRL. # crl_extensions = crl_ext default_days = 365 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = md5 # which md to use. preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied fields are just that :-) policy = policy_match 13

# For the CA policy [ policy_match ] countryname = match stateorprovincename = match organizationname = match organizationalunitname = optional commonname = supplied emailaddress = optional # For the anything policy # At this point in time, you must list all acceptable object # types. [ policy_anything ] countryname = optional stateorprovincename = optional localityname = optional organizationname = optional organizationalunitname = optional commonname = supplied emailaddress = optional #################################################################### [ req ] default_bits = 1024 default_keyfile = privkey.pem distinguished_name = req_distinguished_name #attributes = req_attributes x509_extensions = v3_ca # The extentions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret # output_password = secret # This sets a mask for permitted string types. There are several options. # default: PrintableString, T61String, BMPString. # pkix : PrintableString, BMPString. # utf8only: only UTF8Strings. # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). # MASK:XXXX a literal mask value. # WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings # so use this option with caution! string_mask = nombstr # req_extensions = v3_req # The extensions to add to a certificate request [ req_distinguished_name ] countryname = Country Name (2 letter code) countryname_default = DE countryname_min = 2 countryname_max = 2 stateorprovincename = State or Province Name (full name) stateorprovincename_default = NRW 14

localityname = Locality Name (eg, city) localityname_default = Sankt Augustin 0.organizationName = Organization Name (eg, company) 0.organizationName_default = FH Bonn Rhein Sieg # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalunitname = Organizational Unit Name (eg, section) organizationalunitname_default = Netzlabor commonname = Common Name (eg, YOUR name) commonname_max = 64 #emailaddress = Email Address #emailaddress_max = 40 # SET-ex3 = SET extension number 3 [ req_attributes ] challengepassword = A challenge password challengepassword_min = 4 challengepassword_max = 20 unstructuredname = An optional company name [ usr_cert ] # These extensions are added when ca signs a request. # This goes against PKIX guidelines but some CAs do it and some software # requires this to avoid interpreting an end user certificate as a CA. basicconstraints=ca:false # Here are some examples of the usage of nscerttype. If it is omitted # the certificate can be used for anything *except* object signing. # This is OK for an SSL server. # nscerttype = server # For an object signing certificate this would be used. # nscerttype = objsign # For normal client use this is typical # nscerttype = client, email # and for everything including object signing: # nscerttype = client, email, objsign # This is typical in keyusage for a client certificate. # keyusage = nonrepudiation, digitalsignature, keyencipherment 15

# This will be displayed in Netscape s comment listbox. nscomment = "OpenSSL Generated Certificate" # PKIX recommendations harmless if included in all certificates. subjectkeyidentifier=hash authoritykeyidentifier=keyid,issuer:always # This stuff is for subjectaltname and issueraltname. # Import the email address. # subjectaltname=email:copy # Copy subject details # issueraltname=issuer:copy #nscarevocationurl = http://www.domain.dom/ca-crl.pem #nsbaseurl #nsrevocationurl #nsrenewalurl #nscapolicyurl #nssslservername [ v3_req ] # Extensions to add to a certificate request basicconstraints = CA:FALSE keyusage = nonrepudiation, digitalsignature, keyencipherment [ v3_ca ] # Extensions for a typical CA # PKIX recommendation. subjectkeyidentifier=hash authoritykeyidentifier=keyid:always,issuer:always # This is what PKIX recommends but some broken software chokes on critical # extensions. #basicconstraints = critical,ca:true # So we do this instead. basicconstraints = CA:true # Key usage: this is typical for a CA certificate. However since it will # prevent it being used as an test self-signed certificate it is best # left out by default. # keyusage = crlsign, keycertsign # Some might want this also # nscerttype = sslca, emailca 16

# Include email address in subject alt name: another PKIX recommendation # subjectaltname=email:copy # Copy issuer details # issueraltname=issuer:copy # DER hex encoding of an extension: beware experts only! # obj=der:02:03 # Where obj is a standard or added object # You can even override a supported extension: # basicconstraints= critical, DER:30:03:01:01:FF [ crl_ext ] # CRL extensions. # Only issueraltname and authoritykeyidentifier make any sense in a CRL. # issueraltname=issuer:copy authoritykeyidentifier=keyid:always,issuer:always dmesg Ausgabe vom FreeBSD Webserver: Copyright (c) 1992-2002 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 4.6.2-RELEASE #0: Sun Nov 17 23:30:09 CET 2002 wbx@pc-2n07.inf.fh-brs.de:/usr/src/sys/compile/generic Timecounter "i8254" frequency 1193182 Hz CPU: Pentium II/Pentium II Xeon/Celeron (350.80-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x652 Stepping = 2 Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,F real memory = 134205440 (131060K bytes) avail memory = 125681664 (122736K bytes) Preloaded elf kernel "kernel" at 0xc04d0000. Pentium Pro MTRR support enabled md0: Malloc disk Using $PIR table, 6 entries at 0xc00f0d10 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Intel 82443BX (440 BX) host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1: <Intel 82443BX (440 BX) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <VGA-compatible display device> at 0.0 irq 11 isab0: <Intel 82371AB PCI to ISA bridge> at device 4.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <Intel PIIX4 ATA33 controller> port 0xd800-0xd80f at device 4.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0xd400-0xd41f irq 9 at device 4.2 on pc usb0: <Intel 82371AB/EB (PIIX4) USB controller> on uhci0 usb0: USB revision 1.0 uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered chip1: <Intel 82371AB Power management controller> port 0xe800-0xe80f at device 4.3 on pci0 17

xl0: <3Com 3c905-TX Fast Etherlink XL> port 0xd000-0xd03f irq 12 at device 10.0 on pci0 xl0: Ethernet address: 00:60:08:2c:0b:f3 miibus0: <MII bus> on xl0 nsphy0: <DP83840 10/100 media interface> on miibus0 nsphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto ahc0: <Adaptec 2940 Ultra SCSI adapter> port 0xb800-0xb8ff mem 0xe1800000-0xe1800fff irq 10 a aic7880: Ultra Wide Channel A, SCSI Id=7, 16/253 SCBs isa0: too many dependant configs (8) isa0: unexpected small tag 14 orm0: <Option ROMs> at iomem 0xc0000-0xc7fff,0xc8000-0xcc7ff on isa0 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 kbd0 at atkbd0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/9 bytes threshold plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 Waiting 15 seconds for SCSI devices to settle Mounting root from ufs:/dev/da0s1a cd0 at ahc0 bus 0 target 2 lun 0 cd0: <PLEXTOR CD-ROM PX-32TS 1.03> Removable CD-ROM SCSI-2 device cd0: 20.000MB/s transfers (20.000MHz, offset 15) cd0: Attempt to query device size failed: NOT READY, Medium not present da0 at ahc0 bus 0 target 6 lun 0 da0: <IBM DCAS-34330 S65A> Fixed Direct Access SCSI-2 device da0: 20.000MB/s transfers (20.000MHz, offset 15) da0: 4134MB (8467200 512 byte sectors: 255H 63S/T 527C) 18