Serverbased E-mail Security

From
Revision as of 09:24, 6 October 2005 by Jeschke (talk | contribs)
Jump to navigation Jump to search

TODO:

  • Einführung schreiben
  • Szenario Architektur
  • Mailserver Setup beschreiben
  • SMGW Setup beschreiben


Zusammenfassung

Immer mehr kritische Geschäftsprozze werden über Email Kommunikation abgewickelt. Dabei werden vertrauliche Daten direkt oder aber immer mehr auch automatisiert zwischen Applikationen (z.B. SAP Mailkonnektor) ausgetauscht. Das dafür verwendete SMTP Protokoll bietet keine ausreichenden Sicherheitsmechanismen, so dass sich die beiden Verfahren S/MIME und OpenPGP etablieren konnten. Eine standardkonforme Nutzung dieser Verfahren setzt ein enormes Anwenderwissen und relativ komplexe Vorgänge auf den Systemen des Endanwenders voraus. Dadurch werden PKI Infrastrukuren und Emailsignaturen und -verschlüsselungen bisher nicht umfassend eingesetzt. Die serverbasierten Lösungen tragen mehr und mehr dazu bei die genannten Verfahren einer breiten Anwenderzahl zugänglich zu machen und lassen die Nutzung von PKI's, Trustcentern und Emailsicherheit deutlich aufleben. Zusätzlich zu einer Vereinfachung der Anwendung und Administration bietet eine zentrale Lösung die Möglichkeit der Umsetzung von Archivierungen, Viren/SPAM Prüfungen in verschlüsselten Emails, Organisationsweiter Schlüsselhinterlegung (gefordert in ISO 9001 konformen Security Policy's), Anwendung globaler kontrollierbarer Regeln usw.. Da es bisher keine akzeptable freie OpenSource Implementierung gibt, wird hier der Aufbau eines Beispielszenarios auf Basis des SecureMail Gateways der Berliner Firma Zertificon Solutions durchgeführt. Vielen Dank für die Bereitstellung einer kostenfreien Lizenz!


Einleitung

Lange Zeit wurden unter dem Begriff Emailsicherheit lediglich Viren/SPAM Filter verstanden oder allgemeiner Systeme zur Eliminierung ungewollter Emails bzw. Emailinhalte. Eine Erweiterung des schwer einzugrenzenden Begriffs stellt die Anwendung kryptografischer Verfahren, aus dem Gebiet der IT Sicherheit zur Realisierung verschiedener Schutzziele, auf die Emailkommunikation dar. Dafür sind 2 Verfahren sehr weit verbreitet S/MIME und OpenPGP, welche sich ähneln aber nicht zueinander kompatibel sind. Der Anwender muss sich (und alle seine Kommunikationspartner) daher für ein Verfahren entscheiden oder entsprechende Software auswählen, die beide "Welten" unterstützt. Mit Hilfe dieser Verfahren ist es möglich digitale Signaturen zu erzeugen zur Sicherstellung von Integrität, Authentisierung und Verbindlichkeit sowie den Inhalt zu verschlüsseln um Vertraulichkeit zu gewährleisten. Diese beiden Anwendungen basieren auf einem hybriden Verfahren aus asymmetrischer und symmetrischer Kryptografie und erfordern daher eine entsprechende Verwaltung der in Zertifikate eingebetteten Schlüssel. Dabei muss zwischen öffentlichen Zertifikaten der Kommunikationspartner und den privaten internen Zertifikaten unterschieden werden.

Siehe auch:

S/Mime und PKI

S/Mime basiert auf der Nutzung von X.509 Zertifikaten, die Bestandteil einer PKI sind.

Siehe auch:

OpenPGP

OpenPGP nutzt selbsterzeugte Zertifikate, deren Echtheit über die Unterschriftenkette das sogenannte "Web of Trust" bestätigt wird.

Siehe auch:

Zertifikationsverwaltung

Die Zertifikate der Emailkommunikationspartner müssen den Anwendungen zur Verfügung stehen. Zusätzlich müssen alle Zertifikate im Pfad bis zu einer vertrauenswürdigen Wurzel ebenfalls zur Validierung bekannt sein. Das erfordert ein komplexes Zertifikatsmanagement.

Externe Kommunikationspartner

Die öffentlichen Zertifikate der Kommunikationspartner sind größtenteils in Verzeichnisdiensten der Herausgeber (Trustcenter) frei verfügbar oder werden manuell vor einer verschlüsselten Kommunikation oder implizit eingebettet in Signaturen übermittelt. Aus diesen 3 Quellen muss die Anwendung Zertifikate entgegennehmen können und idealerweise lokal speichern. Die Schwierigkeit besteht hierbei in den unterschiedlichen Formaten und Protokollen sowie in der Vielzahl der verfügbaren Trustcenter. Ein zentraler Service stellt daher eine enorme Vereinfachung für den Endwanwender dar. Dieser fungiert als Speicher und Metasuchmaschine und kann sogar bei entsprechendem Vertrauensstatus die Validierung übernehmen. Diese zentralen Zertifikatsdienste werden über Webservices und/oder dem XKMS Protokoll in Anwendungen integriert. Ein Beispiel: Backbone of Trust.

Interne Private Zertifikate

Die internen Zertifikate mit den geheimen Schlüsseln sind sicherheitsrelevante Daten und müssen daher auf entsprechend geschützte Weise verwaltet werden. Dazu können Software PSE auf speziell gehärteten Serversystemen, Hardware Security Module (z.B. spezielle PCI Karten, SmartCards) oder auch remote PSE's mit zertifizierten geschlossen Blackboxsystemen genutzt werden. Für Firmen ist es möglich den Verwaltungsaufwand enorm zu verkleinern durch die Nutzung von Domainzertifikaten. Hierbei wird pro Emaildomain nur ein privates Zertifikat benutzt.

Use Cases

Es gibt viele konkrete Szenarien in denen Emailsicherheit empfehlenswert oder sogar geschäftskritsche Notwendigkeit ist. Für die spezielle Form der serverbasierten Variante wären folgende zu nennen:


  • Viren/SPAM filtern in verschlüsselten Emails
  • Digitale Signatur als Schutz vor Phishing
  • Übermittlung kritischer Daten verschlüsselt per Mail (auch automatisiert und in großen Mengen)
  • Durchsetzung zentraler Regeln zur Anwendung von Kryptografie (z.B. Verbot interner Verschlüsselung zur Informationsflusskontrolle)

OSMS - OpenSecurityMailServer

Im folgenden wird Schritt für Schritt der Aufbau eines aktuell modernen (möglichst) sicheren Mailservers auf Basis von OpenSuSE 10 beschrieben. Bei Verdopplung des hier beschriebenen Systems und entsprechender Konfigurationsanpassung auf eine 2. Domain und IP kann damit ein vollständiges Server2Server Mailroutingszenario abgebildet und getestet werden. Das Verhalten der verschiedenen Sicherheitskomponenten kann eindrucksvoll im Zusammenspiel beobachtet werden. Ebenfalls möglich ist der Nachbau dieses fullfeatured Mailservers auf entsprechender Zielhardware zu Performancemessungen. Das Setup basiert teilweise auf der Beschreibung von Genco YILMAZ.

Aufbau Mailserver

Die Basiskomponenten des Systems sind:

  • Betriebssystem: OpenSuSE 10
  • Datenbank: PostgreSQL
  • MTA: Postfix 2.2 + SASL AUTH + TLS
  • IMAP/POP: Courier IMAPs/POPs
  • Webmail: Squirrelmail
  • Security: SecureMail Gateway 2.3 von Zertificon Solutions (OpenSSL, GnuPG, Bouncycastle)
  • Virenfilter: ClamAV über amavisd-new
  • SpamFilter: SpamAssassin über amavisd-new

Betriebssystem Setup

  • CD 1 oder DVD 1 einlegen und booten vom Medium
  • Auswahl Bootscreen: <Installation>
  • Language: Deutsch
  • Medienpruefung: <Weiter>
  • Lizenz: Ja + <Weiter>
  • Uhr und Zeitzone: Europa + Deutschland + Lokale Zeit + <Weiter>
  • Desktop: Andere + Textmodus + <Weiter>
  • Installationseinstellungen: <Uebernehmen>
  • Installation bestaetigen: <Installieren>
  • nach reboot CD 5 einlegen falls zur Hand ansonsten: <Ueberspringen> + <Ignorieren>

Basiskonfiguration

  • root Passwort setzen
  • Netzwerkkonfiguration:
    • Aendern -> Firewall -> Erlaubte Dienste hinzufuegen fuer die externe Zone:
  DHCP-Client (bei Bedarf), HTTPS,IMAPS,POP3S,SSH,Mailserver
    • Aendern -> Netzwerkschnittstellen -> Bearbeiten:
  Konfigurationsmethode, falls statische IP entsprechend eintragen
  Hostname, Domain, Nameserver, Defaultroute entsprechend Umgebung eintragen
  <Weiter>,<Weiter>
  • Test der Internetverbindung: "Nein" <Weiter>
  • Methode zur Benutzer-Authentifikation: Lokal (/etc/passwd) <Weiter>
  • Neuer Benutzer: <Weiter>,<Ja>
  • Hinweise zur Version: <Weiter>
  • Hardwarekonfiguration: <Weiter>
  • Installation abgeschlossen: <Beenden>

Remotezugang freischalten

als root auf der Konsole anmelden:

vi /etc/ssh/sshd_config:
PermitRootLogin yes
/etc/init.d/sshd restart

Absofort kann die weitere Installation remote ueber eine SSH Sitzung durchgefuehrt werden!

Installation aller Pakete und Onlineupdate

(das Onlineupdate steht für OpenSuSE noch nicht zur Verfügung und muss hier noch ergänzt werden)


Installationsquelle fuer Netzinstallation hinzufuegen

Hinweis: bei lokalem DVD oder CD Satz nicht notwendig!

1. yast starten als root user 2. Falls notwendig proxy einrichten unter Netzwerkdienste -> Proxy-Server:

  (x) Aktivieren, z.B.: http://proxy.domain.loc:3128

3. Software -> Installationsquelle wechseln -> Hinzufuegen:

  http://download.opensuse.org/distribution/SL-OSS-current/inst-source
  http://download.opensuse.org/distribution/SL-OSS-current/inst-source-java/
  <yes>

4. Mit <Auf> die neue Quelle in der Liste nach oben verschieben.

Jetzt koennen beliebige Pakete ohne Installationsmedien hinzugefuegt werden.

Notwendige Softwarepakete installieren

System:

yast -i xntp wget findutils-locate

SecureMail:

yast -i postgresql postgresql-server patch sudo XFree86-libs libtool

Postfix:

yast -i postfix-postgresql postgresql-libs

Cyrus SASL Authentication for SMTPD:

yast -i mysql-shared postgresql-libs cyrus-sasl-sqlauxprop

Courier (and dependencies):

yast -i courier-authlib courier-imap expect fam libtool tcl fam-server

Squirrelmail (and dependencies):

yast -i apache2-prefork apache2 apache2-mod_auth_mysql apache2-mod_php5 php5-gettext php5-iconv \
php5-mbstring php5-openssl ispell-american squirrelmail squirrelmail-plugins

Content Filter:

yast -i amavisd-new spamassassin clamav clamav-db

oder alles zusammen mit:

yast -i xntp wget findutils-locate postgresql postgresql-server patch sudo XFree86-libs libtool \
postfix-postgresql postgresql-libs mysql-shared cyrus-sasl-sqlauxprop courier-authlib courier-imap \
expect fam  tcl fam-server apache2-prefork apache2 apache2-mod_auth_mysql apache2-mod_php5 php5-gettext \
php5-iconv  php5-mbstring php5-openssl ispell-american squirrelmail squirrelmail-plugins amavisd-new \
spamassassin clamav  clamav-db

Alle neuinstallierten Services in den Runleveln verlinken:

 for d in saslauthd spamd freshclam clamd amavis ntp apache2 fam courier-authdaemon courier-imap-ssl courier-pop-ssl
 do
   chkconfig --add $d
 done

Manuelles Hinzufuegen von phpPgAdmin:

cd /srv/www/htdocs/ && \
wget http://mesh.dl.sourceforge.net/sourceforge/phppgadmin/phpPgAdmin-3.5.5.tar.bz2 && \
tar xvjf phpPgAdmin-3.5.5.tar.bz2 && \
rm phpPgAdmin-3.5.5.tar.bz2

SecureMail Gateway installieren

Release auspacken:

tar xvzf smgw-2_3_0-gw-build0150-suse-i386.tar.gz

Anpassungen zur Installation auf OpenSuSE 10:

cd smgw-2_3_0-gw-build0150-suse-i386
perl -pi -e 's/_IDS="SUSE LINUX Enterprise Server/_IDS="SUSE LINUX/;s/-eq 9/-ge 9/' install.sh
perl -pi -e 's/_VERSIONS=9/_VERSIONS="9\t10"/' install/makeenv

Installation starten:

./install.sh

Eingaben zur Installation: Netzwerke zur Firewallkonfiguration aus denen auf das SMGW zugegriffen wird (SSH + WWW) z.B.

NETWORKS = 192.168.0.0/24

Mailrouting (yes auswaehlen): die 1. zu konfigurierende Domain auswaehlen z.B.

Domain name: company1.loc
Recipient domains:
Internal mail server:
External smartrelay:

Runlevel Links erstellen mit:

chkconfig --add smgw

Konfiguration

Anwendung und Testfälle

Fazit

Weiterführende Links

Internet Mail Consortium: S/MIME and OpenPGP
Z1 SecureMail Gateway
Teletrust e.V. (inkl. ISIS-MTT Spezifikation)