# HG changeset patch # User heiko # Date 1155856253 0 # Node ID 255598cae35f8a5bf398f4c1f0af9942d304fde3 # Parent 72ba031fec206463e4c30c8dc608252201798969 Doku fertig, letztes Probelesen fehlt noch diff -r 72ba031fec20 -r 255598cae35f ldap.schema --- a/ldap.schema Thu Aug 17 22:38:38 2006 +0000 +++ b/ldap.schema Thu Aug 17 23:10:53 2006 +0000 @@ -9,7 +9,7 @@ # |[mailPrimaryAddress]: hans.hanson (from --address or the user) # |mail: h.hanson (from --alias) # |mail: hanson (from --alias) -# |mailGroup: edv, postmaster +# |[mailGroup]: edv, postmaster # |uid: hh # |userPassword: {crypt}* # |sn: Hanson diff -r 72ba031fec20 -r 255598cae35f manual.tex --- a/manual.tex Thu Aug 17 22:38:38 2006 +0000 +++ b/manual.tex Thu Aug 17 23:10:53 2006 +0000 @@ -4,13 +4,25 @@ % $URL: https://svn.schlittermann.de/is/mailAdmin/trunk/manual.tex $ \usepackage{ius} +\usepackage{bold-extra} \usepackage{makeidx} +\usepackage[german]{varioref} +\setlength{\LTleft}{\parindent} +\setlength{\LTright}{\fill} \newcommand{\N}[1]{\textit{#1\/}} % name -\newcommand{\T}[1]{\texttt{#1}} % typed -\newcommand{\U}[1]{\underline{#1}} -\newcommand{\C}[1]{} +\newcommand{\V}[1]{\textit{#1\/}} % variable / name +\newcommand{\T}[1]{\texttt{#1}} % typed +\newcommand{\F}[1]{\texttt{#1}} % file +\newcommand{\U}[1]{\underline{#1}} % underline +\newcommand{\C}[1]{\texttt{\textbf{#1}}} +\newcommand{\NL}{\tabularnewline} +\newcommand{\Tilde}{\~{}} +\newcommand{\Prompt}{\texttt{linux:\Tilde\#\,}} -\title{Mailsystem --- Deutsche Post AG / TCB --- Systemdokumentation} +\newcommand{\Notice}[1]{\marginpar{\footnotesize\raggedright{}#1}} +\newcommand{\Linux}[1]{\Prompt#1\newline} + +\title{Mailsystem --- CMS-AG --- Systemdokumentation} \author{$<$hs@schlittermann.de$>$} \date{\today} %\makeindex @@ -18,415 +30,601 @@ \begin{document} \maketitle -%\begin{abstract} \subsubsection*{Zusammenfassung} - Ein Mailserver. Post wird per \N{fetchmail} geholt, an \N{exim} - (SMTP) übergeben und dann in den \N{cyrus}-Mailstore gelegt. Dort - ist dann alles per POP/IMAP verfügbar. -%\end{abstract} + Ein Mailserver. \N{Exim} als SMTP-Server und \N{Cyrus} als Mailstore, + der dann alles über POP3/IMAP zur Verfügung stellt. Dazu noch + \N{SpamAssassin} und \N{AMaViS} und auch noch LDAP für Nutzer und + \N{Mailman} für die Mailinglisten/Verteiler. -\parskip0mm -\tableofcontents -\parskip0.5em - -%\setlength{\parindent}{0mm} -%\setlength{\parskip}{1em} +{\parskip0mm\tableofcontents} \section{Verwendete Komponenten} - \begin{tabular}{ll} - Post-Abholer & fetchmail \\ - SMTP-Server & exim 4.5x \\ - POP3/IMAP-Server & cyrus 2.2 \\ - OpenLDAP & 2.2 \\ - \end{tabular} + Der Mailserver läuft auf einem normalen Debian/GNU Linux-System. Die + folgenden relevanten Komponenten sind neben dem Basissystem + installiert: + + \begin{longtable}{llrl} + \textbf{Dienst} & \textbf{Software} & \textbf{Version} & + \textbf{Bemerkung} \\\hline + \endhead + Betriebssystem & Debian GNU/Linux & 3.1 & stable, Codename \qq{sarge} \\ + SMTP-Server & Exim & 4.62 \\ + POP3/IMAP-Server & Cyrus & 2.2.13 \\ + OpenLDAP & OenLDAP & 2.2.23 \\ + Spam-Scanner & SpamAssassn & 3.1.1 \\ + Viren-Entpacker & AMaViS & 2.4.1 \\ + Virenscanner & Vexira-Antivir & 2.1.7 & Lizenz bis 16. Juni 2009 \\ + & Clam-Antivirus & 0.88.3 \\ + \end{longtable} + + Wenn nicht anders erwähnt, stehen alle Komponenten unter der \emph{GNU Public + Licence} oder ähnlichen freien Lizenzen. + +\section{Struktur} + + Mails kommen von außen und werden vom SMTP-Server \N{Exim} entgegen + genommen. Dieser läßt die Mails schon während des Empfangs vom + Spamscanner \N{SpamAssassin} prüfen und übergibt sie anschließend an + den Virenscanner. + + Sind die Nachrichten vom Virenscanner geprüft werden Sie vom + SMTP-Server an das \qq{Mailstorage} \N{Cyrus} übergeben. + + Der Cyrus-Server verwaltet die Mailboxen und stellt sie für einen + Zugriff über POP3 bzw. IMAP zur Verfügung. + + Ausgehende Mails werden vom jeweiligen Client direkt an den + SMTP-Server geliefert, dieser besorgt, nach Virentests, dann die + Zustellung. + + Die Nutzerverwaltung erfolgt komplett im LDAP. + + \subsection{Sicherheit} + \label{p:security} + + Wenn möglich versendet der SMTP-Server die Nachrichten über + TLS/SSL-gesicherte Verbindungen. Für eingehende Mails stellt er + TLS/SSL zur Verfügung. -\section{LDAP} + Anmelde-Daten (SMTP-Authentifizierung, POP- bzw. + IMAP-Authentifizierung) \emph{sollten} ausschließlich über TLS- bzw + SSL-gesicherte Verbindungen gesandt werden. Im internen Netz + (LAN-Seite des Mailservers) sind POP/IMAP-Verbindungen derzeit auch + ungesichert möglich.\Notice{Das sollte schnellstens geändert + werden!} + + Jeder der beteiligten LDAP-Server stellt seine Daten + auf \T{ldap://127.0.0.1/} und SSL-verschlüsselt auf \T{ldaps:///} zur Verfügung. + Damit ist sichergestellt, daß eine Übertragung im Netz + ausschließlich verschlüsselt erfolgt. Das ist auch bei Verwendung + von LDAP-Clients (LDAP-Browser, LDAP-Editor) zu beachten. + + Der Zugriff auf die Daten des LDAP-Servers ist für jeden möglich, + Passwort-Information wird jedoch nur nach einer entsprechenden + Anmeldung am LDAP-Server geliefert. + + +\section{Nutzerverwaltung (LDAP)} + + Sämtliche Informationen über Nutzer (Namen, Passworte, + Weiterleitungen, \qq{Verteiler}) werden im LDAP verwaltet. + + LDAP-Server ist der LDAP-Master auf dem Fileserver. Von dort werden + die Daten zum Mailserver repliziert. Der Mailserver ist vollwertiger + LDAP-Slave mit einer Kopie der Masterdaten. Er ist also auch + lebensfähig ohne den Master. + + Diese im LDAP verwalteten Nutzer haben nichts mit den auch im LDAP + abgelegten Windows-Nutzern der Fileserver zu tun und auch nichts mit + eventuellen Unix-Nutzern auf dem Host \T{daten.cms.de}. Das + Mail-Storage \N{Cyrus} nutzt den LDAP-Dienst nur für seine eigene + interne Nutzerverwaltung. + + Änderungen direkt im LDAP-Verzeichnis sind möglich, sollten aber mit + Bedacht erfolgen, da z.B. ein dort neu eingetragener Nutzer nicht + automatisch sicherstellt, daß auch die zugehörige Infrastruktur + (Mailbox etc.) angelegt wird. + + Mit einem LDAP-Browser ist jederzeit der Zugang zum LDAP-Server + möglich, so sind kleine Änderungen relativ einfach und schnell + möglich (Zugangsdaten Abschnitt \vref{p:zugangsdaten}). + + \subsection{Struktur} + + Es existieren zwei Typen von Objekten: Nutzer und Aliase. Beide + dieser Objekttypen haben eine Reihe von Attributen. - Im LDAP sind die Nutzerdaten (Accounts, Passworte, \ldots) hinterlegt. - Mit einem LDAP-Browser ist jederzeit der Zugang zum LDAP-Server - möglich, so sind Änderungen relativ einfach und schnell möglich.\index{LDAP-Tools} + Für die Verteilung der Mails auf verschiedene Nutzer sind + parallele Mechanismen implementiert: alternative Mailadressen, + Aliase, Mailgruppen und Weiterleitungen. + + + \subsubsection{Reale Nutzer} + + Zu jedem realen Nutzer gehört eine Mailbox (\N{Inbox}). Zu dieser + gehören Name (\N{UID}) und Passwort. Jede UID darf nur einmal + im LDAP-Verzeichnis vorkommen. + + Jeder Nutzer bekommt die Mails, die an seine UID gesendet werden. + + \subsubsection{Alternative Mailadressen} + + Zu jedem realen Nutzerobjekt im LDAP gehört eine Liste von + alternativen Mailadressen. Diese alternativen Adressen sollten + vor allem für verschiedene Schreibweisen der Mailadresse (mit Vorname, + ohne Vorname, \dots) genutzt werden. Jede alternative Adresse + sollte also auch nur \emph{genau einmal} im gesamten Verzeichnis + vorkommen. + + Der reale Nutzer bekommt alle Mails zugestellt, die an eine seiner + alternativen Adressen gerichtet sind. + + + \subsubsection{Aliase} + + Die Aliase entsprechen dem altbekannten Aliasmechanismus der + \F{/etc/aliases}. Jeder \qq{virtuellen} Adresse werden beliebig + viele andere Adressen zugeordnet. Problematisch ist hierbei, daß + z.B. beim Löschen eines Nutzers auch alle Aliase überprüft werden + müssen. + + Diese Aliase sollten nur noch für die Zuweisung von funktionalen + Adressen (wie z.B. \N{postmaster}) an einzelne Personen oder + Personengruppen verwendet werden. + + \subsubsection{MailGroups} + + Zu den Attributen eines jeden Nutzers gehören die Mailgroups, zu + denen er gehört. Dieser Mechanismus arbeitet \qq{rollenbasiert}. + Mails an eine solche Gruppe wird dann allen Nutzern zugestellt, in + deren Attributen dieser Gruppenname auftaucht. + + Der reale Nutzer bekommt alle Mails zugestellt, die an eine seiner + Gruppen gerichtet ist. - \subsection{SSL/TLS} + \subsubsection{Weiterleitung} + + Nach der Auflösung von Aliasen und Gruppen wird kurz vor der + Zustellung an das Postfach überprüft, ob es einen + Weiterleitungseintrag für den Nutzer gibt. Hier können eine Reihe + von Mailadressen hinterlegt werden, u.a. auch die des Nutzers + selbst. Diese Eigenschaft sollte für Weiterleitungen in + eigentlichen Sinne (Urlaubsvertretung, \dots) verwendet werden. + + \subsection{LDAP-Baum} + + Unterhalb des Knotens \N{ou=Mail} sind alle Objekte angelegt, die + zum Mailsystem relevant sind, also Daten für die Authentifizierung + der Nutzer, für die Mailboxen, die alternativen Mailadressen, Aliase und die + Mailgruppen-Zugehörigkeiten. + + Es gibt im \N{ou=Mail}-Zweig zwei Unterzweige, einen für die + Nutzer-Informationen (\N{ou=Users}) und einen für die Alias-Daten + (\N{ou=Aliases}). + + Für jeden Nutzer muß es ein LDAP-Objekt unterhalb von \N{ou=Users} + geben. Wichtige Bestandteile der Mail-Accounts in \N{ou=Users} sind: + - Der LDAP-Server stellt seine Dienste unverschlüsselt zur Verfügung. Verschlüsselung über - STARTTLS bzw. \texttt{ldaps:///} ist möglich und konfiguriert. Die Herausforderung ist - aber, daß dann der Client das auch unterstützen muß und vor allem mit den von einer nicht - offiziellen CA signierten Zertifikaten auskommen muß. + \begin{longtable}{ll} + \textbf{Attribut} & \textbf{Inhalt} \NL\hline + objectClass & \N{uidObject}, \N{cmsMailRecipient}, \N{person} \\ + uid & Nutzer-ID (Anmeldung am POP3/IMAP-Server, Name der Mailbox) \\ + userPassword & Passwort für SMTP/POP3/IMAP (Klartext)\\ + cmsMailPrimaryAddress & primäre Mailadresse (incl. Domain-Name \N{cms.de})\\ + cmsMailAddress & alternative Adressen \\ + cmsMailGroup & Mitgliedschaft in Mailgruppen \\ + cmsMailForwardingAddress & Weiterleitungsadresse (analog \N{\Tilde/.forward}) \\ + sn & Nachname (ungenutzt, muß aber gesetzt sein) \\ + cn & allgemeiner Name (ungenutzt, muß aber gesetzt sein) + \end{longtable} + + Für Weiterleitungsinformation analog zur klassischen + \F{/etc/aliases} steht der \N{ou=Aliases}-Zweig zur Verfügung. + + Die Alias-Objekte bestehen aus folgenden Attributen: + + \begin{longtable}{ll} + \textbf{Attribut} & \textbf{Inhalt} \NL\hline + objectClass & \N{cmsMailAlias} \\ + mail & allgemeiner Name des Aliases (hier: \qq{linke Seite} des Alias-Eintrags) \\ + cmsMailForwardingAddress & Alias, also der Empfänger \\ + \end{longtable} \subsection{LDAP-Browser} Es gibt einige GUI-LDAP-Browser. - \begin{description} - \item{\N{ldapbrowser}} Bei Google man nach \qq{ldapbrowser java} - suchen. Er läuft unter Linux und unter Win32 mit einer aktuellen - Java-Runtime. + \begin{description} + \item{\N{ldapbrowser}} Bei Google kann man nach \qq{ldapbrowser java} + suchen. Er läuft unter Linux und unter Win32 mit einer aktuellen + Java-Runtime. + + \item{\N{JXplorer}} Alternative zu dem o.g. für alle Plattformen - \item{\N{JXplorer}} Alternative zu dem o.g. - \end{description} + \item{\N{gq}} Ein graphischer LDAP-Browser/Editor unter Linux + + \item{Web-Interface} Ohne es weiter getestet zu haben: unter + \T{https://daten.cms.de/ldap} steht ein Webinterface zum + Master- und zum lokalen Slave zur Verfügung. + \end{description} Und es gibt natürlich noch für die (Linux)-Kommandozeile einiges. Am besten geeignet: \N{ldapvi}. Für die Kontrolle über die letzten Schrauben dann \N{ldap\{add,delete,modify\}}. Für - \N{ldapvi} ist ein Alias \T{ldapvi} in der \T{~.bashrc} eingetragen, - der sich versucht, als Admin an den LDAP-Server zu binden. - - Die Zugangsdaten $\rightarrow$ Seite~\pageref{p:Zugangsdaten}. - - \subsection{Struktur} - - Unterhalb des Knotens \N{ou=MailAccounts} sind Nutzer-Objekte angelegt, die - für die Authentifizierung notwendig sind. Außerdem enthalten diese - Objekte auch alternative Mail-Adressen und die Mailgruppen-Zugehörigkeit - für die jeweiligen Nutzer. - - \begin{sloppypar} - Unterhalb von \N{ou=MailAliases} sind Objekte, die den bisherigen - Aliasen/Verteilerlisten aus \T{/etc/aliases} entsprechen. - \end{sloppypar} - - Es existieren also zwei Mechanismen für eine Realisierung von Alias-ähnlichen - Verteilern: über \N{ou=MailAliases} und über das \N{MailGroup}-Attribut. + \N{ldapvi} ist ein Alias \T{ldapvi} in der \F{\Tilde/.bashrc} eingetragen, + der versucht, sich als Admin an den Master-LDAP-Server zu binden. - \fussy - Wichtige Bestandteile der Mail-Accounts sind: - - \begin{tabular}{ll} - objectClass & \N{uidObject}, \N{tcbMailRecipient}, \N{person} \\ - uid & Nutzer-ID (Anmeldung am POP3/IMAP-Server, Name der Mailbox) \\ - userPassword & Passwort für SMTP/POP3/IMAP \\ - tcbMailPrimaryAddress & primäre Mailadresse \\ - tcbMailAddress & alternative Adressen \\ - tcbMailGroup & Mitgliedschaft in Mailgruppen \\ - tcbMailForwardingAddress & Weiterleitungsadresse (analog .forward) \\ - sn & Nachname (ungenutzt, muß aber gesetzt sein) \\ - cn & allgemeiner Name (ungenutzt, muß aber gesetzt sein) \\ - \end{tabular} - - Die Aliase sind einfacher aufgebaut: - - \begin{tabular}{ll} - objectClass & \N{tcbMailAlias} \\ - mail & allgemeiner Name des Aliases (hier: \qq{linke Seite}) \\ - tcbMailForwardingAddress & Alias, als der Empfänger \\ - \end{tabular} + Die Zugangsdaten sind in Abschnitt \vref{p:zugangsdaten} zu finden. \subsection{Files} - \begin{tabular}{ll} - Konfiguration & \T{/etc/ldap/*} \\ - Logfiles & \T{/var/log/syslog} \\ - Datenbank & \T{/var/lib/ldap/*} \\ - Backup & \T{/var/backups/ldap.week*} \\ - \end{tabular} + \begin{longtable}{ll>{\raggedright}p{0.6\textwidth}} + \textbf{Funktion} & \textbf{Datei} \NL\hline + Konfiguration & \F{/etc/ldap/*} & Achtung: \F{ldap.conf} ist für Clients, \F{slapd.conf} ist für den Server \NL + Logfiles & \F{/var/log/syslog} \\ + Datenbank & \F{/var/lib/ldap/*} & Slave-Kopie \NL + \end{longtable} \subsection{Administration} Am LDAP-Server selbst ist nicht viel zu administrieren. Nutzer an- - und ablegen ist auf Seite~\pageref{p:admin} beschrieben. - - \subsection{Backup/Recovery} - - Sollte das LDAP sich über Datenbank-Probleme beschweren, gibt es - etwa folgenden Weg: - - \begin{enumerate} - \item LDAP-Server neustarten: \T{service lap restart} - \item Datenbank-Recovery versuchen: - \begin{quote}\T{% - service ldap stop \\ - cd /var/lib/ldap\\ - db41\_recover\\ - service ldap start\\ - }\end{quote} - \item Backup wieder einspielen: - \begin{quote}\T{% - service ldap stop \\ - rm -r /var/lib/ldap/* \\ - bzcat $} gesetzt und die \N{From:} und \N{Sender:}-Header - bleiben unverändert. Mit dieser Einstellung sollte die Mail dann - (wegen des leeren Return-Path) die meisten Mailserver passieren - können.\footnote{Die meisten. Einige prüfen inzwischen auch die - Verfügbarkeit von brauchbaren Header-Zeilen \N{From:} und - \N{Sender:}.} + \subsection{Files} - In \N{CC:}, \N{Reply-To:}, \N{To:}-Headern wird, wenn sie eine - Adresse \N{@tcb.deutschepost.de} enthalten, diese ersetzt durch die - primäre Adresse des entsprechenden Nutzers (gesucht wird im Ldap - nach Einträgen, deren \N{tcbMailAddress} dem Nutzer lokalen Teil der - fraglichen Adresse entspricht). - - \subsection{Files} - - \begin{tabular}{ll} - Konfiguration \N{Exim} & \T{/etc/exim/*} \\ - SMTP-Spool & \T{/var/spool/exim/*} \\ - SMTP-Log & \T{/var/log/exim/\{main,reject,panic\}.log} \\ - \end{tabular} + \begin{longtable}{ll} + \bf Funktion & \bf Datei \NL\hline + Konfiguration \N{Exim} & \F{/etc/exim4/*} \\ + SMTP-Spool & \F{/var/spool/exim/*} \\ + SMTP-Log & \F{/var/log/exim4/\{main,reject,panic\}log} \\ + \end{longtable} + + Nach Änderungen der Konfiguration muß im Konfigurationsverzeichnis + \C{make} aufgerufen werden, damit die Änderungen wirksam werden. \subsection{Administration} Viel zu administrieren sollte es am \N{Exim} nicht geben. Ab und zu - kann man die Warteschlange mit \T{mailq} oder \T{exipick} kontrollieren. - Eingefrorene Mails sollten nach einigen (7) Tagen verschwinden. - + kann man die Warteschlange mit \C{mailq} oder besser \C{exipick} kontrollieren. + Eingefrorene Mails sollten nach einigen (7) Tagen automatisch verschwinden. + Im Zweifelsfall ist ein Blick in die Logfiles (vor allem - \T{panic.log} und \T{reject.log}) interessant. + \F{paniclog} und \F{rejectlog}) interessant. - Zum Adress-Test biete sich folgendes an: - - \begin{quote}\T{exim -v -bv hans@domain.de}\end{quote} + Zum Adress-Test (um zu überprüfen, wie eine bestimmte Mail geroutet + werden \emph{würde}) kann das folgende Kommando verwendet werden: - Damit können lokale und auch externe Adressen getestet werden und es - ist zu erkennen, wie der Mailserver die jeweilige Adresse routen - würde. + \Linux{\C{exim4 -v -bv} \V{user@domain}} + Damit können lokale und externe Adressen getestet werden. Mails + werden bei diesem Test keine verschickt. \section{POP3/IMAP} Vom SMTP-Server \N{Exim} kommt die Mail per LMTP zum \N{Cyrus}. Der - verwaltet sein eigenes Mailstore in \T{/var/spool/cyrus}. Dort - manuell einzugreifen ist nicht die beste Idee, da der \N{Cyrus} sich + verwaltet sein eigenes Mailstore in \F{/var/spool/cyrus}. Dort + manuell einzugreifen ist nicht die beste Idee, da \N{Cyrus} sich Index-Dateien erzeugt, über die er dann den Zustand der Mailboxen zu kennen glaubt. - \subsection{Clients} Die Clients können per POP3 und/oder IMAP auf ihre Postfächer - zugreifen. Allerdings steht per POP3 nur die Inbox zur Verfügung. + zugreifen. Allerdings steht per POP3 nur die Inbox zur Verfügung, + die Unterpostfächer sind nur über IMAP verfügbar.\Notice{Es gibt + noch kein Backup vom Mailserver!} + + Zum Zugriff auf die Postfächer ist eine Anmeldung erforderlich. + Zur Sicherheit siehe \vref{p:security}. - Der übertragenen User-Name wird im LDAP unter \N{ou=MailAccounts} - gesucht und dann wird über ein LDAP-Bind die Korrektheit des - Passworts geprüft. + Der übertragene User-Name wird im LDAP unter + \N{ou=Users,ou=Mail,\dots} gesucht. Genau dieser Name ist dann auch + der Name der Mailbox. + + Als Mailclient empfehlen wir \emph{dringend} + \N{Mozilla-Thunderbird}. Dieser Client ist auf allen Plattformen + (Windows, Unix) verfügbar, ist in der Lage, mehrere Konten zu + verwalten und beherrscht auch die verwendeten + Verschlüsselungsprotokolle. Über kostenfreie Plugins ist auch + GnuPG-Verschlüsselung und Signatur der Mails möglich. \subsection{Files} - \begin{tabular}{ll} - Konfiguration & \T{/etc/imapd.conf} \\ - & \T{/etc/cyrus.conf} \\ - Spool & \T{/var/spool/cyrus} \\ - Logfiles & \T{/var/log/mail.log} - \end{tabular} + \begin{longtable}{ll} + \bf Funktion & \bf Datei \NL\hline + Konfiguration & \F{/etc/imapd.conf} \\ + & \F{/etc/cyrus.conf} \\ + Spool & \F{/var/spool/cyrus} \\ + Logfiles & \F{/var/log/mail.log} + \end{longtable} + + Nach Änderungen an den Konfigurationsdatein muß \C{invoke-rc.d + cyrus22 restart}\footnote{bzw. \C{invoke-rc.d cyrus restart}} + aufgerufen werden, sonst sind die Änderungen unwirksam + \subsection{Administration} - Sollten die unten (S.~\pageref{p:admin}) beschriebenen Werkzeuge - nicht ausreichen, ist mit \T{cyradm} noch einiges zu retten: - \T{cyradm localhost}: + Sollten die in Abschnitt \vref{p:admin} beschriebenen Werkzeuge + nicht ausreichen, ist mit \C{cyradm} noch einiges zu retten: + \C{cyradm -u \V{Cyrus-Nutzer} localhost}. Hier eine kurze + beispielhafte Sitzung: - \begin{verbatim} - lm # alle Mailboxen anzeigen - cm user/hannes # Mailbox anlegen für hannes - lm user/hannes # Hannes Mailbox - lam user/hannes # Berechtigungen zeigen - sam user/hannes root all # Berechtigungen setzten - lq user/hannes # Quota anzeigen - sq user/hannes STORAGE 200 # Quota auf 200k setzen - \end{verbatim} + \begin{longtable}{ll} + \Linux{\C{cyradm -u cyrus localhost}}\\ + Passwort: \C{*}\\ + localhost$>$ \C{lm} & \# alle Mailboxen anzeigen \\ + localhost$>$ \C{cm user/hannes} & \# Mailbox für hannes anlegen \\ + localhost$>$ \C{cm user/hannes} & \# Mailbox anlegen für hannes\\ + localhost$>$ \C{lm user/hannes} & \# Hannes Mailbox \\ + localhost$>$ \C{lam user/hannes} & \# Berechtigungen zeigen \\ + localhost$>$ \C{sam user/hannes root all} & \# Berechtigungen setzten \\ + localhost$>$ \C{lq user/hannes} & \# Quota anzeigen \\ + localhost$>$ \C{sq user/hannes STORAGE 200} & \# Quota auf 200k setzen\\ + localhost$>$ \C{quit}\\ + \Linux{\_} + \end{longtable} + + Mehr Information findet sich wie immer in der Manual-Seite + \T{cyradm(8)}.\footnote{Aufruf:\C{man cyradm}} Eine direkte Verbindung mit den Mailboxen ist mit jedem beliebigen - IMAP-Client möglich, z.B. auch mit Mutt: + IMAP-Client möglich, z.B. auch mit \N{Mutt}: - \begin{quote} - \T{mutt -f imap://cyrus@localhost/user/hannes} - \end{quote} - - bzw.\ direkt als Hannes: - - \begin{quote} - \T{mutt -f imap://hannes@localhost/} - \end{quote} - + \Linux{\C{mutt -f imaps://\U{cyrus}@localhost\U{/user/hannes}}} + \Linux{\C{mutt -f imap://\U{hannes}@localhost/}} -\section{Administration}\label{p:admin} + +\section{Administration des Mailsystems} +\label{p:admin} Zur Administration des Mailsystem liegt ein einfach(!) zu benutzender - Script \T{ma} vor. Die aktuelle Dokumentation dazu ist \N{ma(8)} zu entnehmen. + Script \N{ma} vor. Dieser Script verfügt über eine Reihe von + Optionen. Die jeweils aktuell unterstützten Optionen sind als + Kurzreferenz verfügbar: + + \Linux{ma --help} + Eine komplette Referenz über Optionen und Aufrufmöglichkeiten steht + mit der Manualseite zu \C{ma(8)} zur Verfügung. + + Die Administration beschränkt entsprechend der Darstellung in + Abschnitt~\vref{p:struktur} auf zwei Teilbereiche: die + Mail\emph{accounts} und die Mail\emph{aliase}. \subsection{Accounts} + \label{ss:account} + + Accounts entsprechen Mailboxen. Auch zum Versenden von Mail ist ein + Account notwendig. \subsubsection{Anzeigen} - Vorhandene Accounts können angezeigt werden: + Vorhandene Accounts können angezeigt werden: - \begin{quote} - \T{ma \U{account} --ls}\\ - \T{ma \U{account} --ls `h*'} - \end{quote} + \Linux{\C{ma \U{account} --ls}} + \Linux{\C{ma \U{account} --ls 'h*'} \# Alle Nutzer beginnend mit `h'} - \subsubsection{Anlegen}\label{ss:account} + \subsubsection{Anlegen} Beim Anlegen werden nur Accounts und Mailboxen angelegt, wenn sie - noch nicht da sind. In bestehende Accounts werden nur die - Mail-Attribute (\N{tcbMailPrimaryAddress}, \N{tcbMailAddress}) eingetragen, - wenn Sie noch nicht vorhanden sind. Andernfalls gehen wir davon - aus, daß es kein Neueintrag ist. + noch nicht vorhanden sind. + In bestehende Accounts werden nur die + Mail-Attribute (\N{cmsMailPrimaryAddress}, \N{cmsMailAddress}) + eingetragen, sofern sie nocht nicht vorhanden sind. - \begin{quote} - \T{ma \U{account} \U{--add} --fullname='Hans Hanson' --other='hh' hans.hanson} - \end{quote} + \Linux{\C{ma \U{account} \U{--add} --fullname='Hans Hanson' --other='hh' hans}} - Weitere Optionen sind: + Als primäre Mailadresse wird der Nutzername + \N{cms.de} angenommen. + + Weitere Optionen sind: - \begin{description} - \item[\T{--address=s}] Primäre Mailadresse (default: entspricht dem Account-Namen) - \item[\T{--fullname=s}] Klartext-Name (default: -) - \item[\T{--other:s}] Weitere alternative Mailadressen für \emph{diesen\/} Nutzer (default: -) - \item[\T{--imap\_quota=i}] Imap-Quota in MegaByte (default: 300\,MB) - \item[\T{--[no]mbox}] Anlegen der Mailbox (default: Mailbox wird angelegt) - \item[\T{--password=s}] Passwort (default: \{pwgen\}, d.h.\ es wird generiert und - dann angezeigt) - \item[\T{--group:s}] Zugehörigkeit zu Mailgruppen. - \end{description} + \begin{description} + \item[\T{--address=s}] Primäre Mailadresse (default: entspricht dem Account-Namen) + \item[\T{--fullname=s}] Klartext-Name (default: -) + \item[\T{--other:s}] Weitere alternative Mailadressen für \emph{diesen\/} Nutzer (default: -) + %\item[\T{--imap\_quota=i}] Imap-Quota in MegaByte (default: 300\,MB) + \item[\T{--[no]mbox}] Anlegen der Mailbox (default: Mailbox wird angelegt) + \item[\T{--password=s}] Passwort (default: \{pwgen\}, d.h.\ es wird generiert und + dann angezeigt) + \item[\T{--group:s}] Zugehörigkeit zu Mailgruppen. + \end{description} - \subsubsection{Verändern}\label{ss:change} + \subsubsection{Verändern} + \label{ss:change} Vorhandene Einträge können natürlich auch verändert werden: - \begin{quote} - \T{ma \U{account} \U{--modify} --fullname='Hans-Georg Hanson' hans.hanson}\\ - \end{quote} + \Linux{\C{ma \U{account} \U{--modify} --fullname='Hans-Georg Hanson' hans.hanson}} - Für einige Attribute ist eine kumulative Änderung möglich (z.B. - Hinzufügen von alternativen Namen), bei anderen (primary - Mailadresse) nur ein Verändern. Der Präfix \T{+} oder \T{-} ist - wichtig, ohne den Präfix wird das Attribut \emph{genau\/} auf den - angegebenen Wert gesetzt: + Für einige Attribute (primäre Adresse) ist nur ein Neusetzen + möglich, für andere (z.B. Mailgruppen) auch eine kumulative + Änderung. Der Präfix \T{+} oder \T{-} ist wichtig, ohne den + Präfix wird das Attribut \emph{genau\/} auf den angegebenen Wert + gesetzt: - \begin{quote} - \T{ma \U{account} \U{--modify} --also=+hans,-hh hans.hanson} \\ - \T{ma \U{account} \U{--modify} --also=h.hanson hans.hanson} - \end{quote} + \Linux{\C{ma \U{account} \U{--modify} --also=+hans,-hh hans.hanson}} + \Linux{\C{ma \U{account} \U{--modify} --also=h.hanson hans.hanson}} - Veränderbar sind die selben Optionen wie oben - (\ref{ss:account}).\footnote{Außer die Mailbox-Option, das ist + Veränderbar sind die selben Optionen wie oben (Abschnitt \vref{ss:account}).\footnote{Außer die Mailbox-Option, das ist noch nicht implementiert.} \subsubsection{Löschen} - \emph{Vorsicht.\/} Es wird rigoros der komplette LDAP-Eintrag - gelöscht! Und bei Bedarf die Mailbox. + \fbox{\emph{Vorsicht.\/} Es wird rigoros der komplette + LDAP-Eintrag gelöscht! Und eventuell die Mailbox.} - \begin{quote} - \T{ma \U{account} \U{--delete} hans.hanson}\\ - \T{ma \U{account} \U{--delete} --nombox hans.hanson}\\ - \end{quote} + \Linux{\C{ma \U{account} \U{--delete} hans.hanson}} + \Linux{\C{ma \U{account} \U{--delete} --nombox hans.hanson}} - Die zweite Zeile würde die Mailbox bestehen lassen. - Optionen gibt es keine weiteren. + Die zweite Zeile würde die Mailbox bestehen lassen. Optionen gibt es keine weiteren. \subsection{Aliase} + Die Aliase dienen der Zuordnung von einzelnen Funktionsadressen + (\N{postmaster}) zu bestimmten Accounts. + \subsubsection{Anzeigen} - Alle vorhandenen Aliase werden in einem bequemen - \T{/etc/aliases}-Format ausgegeben: + Alle vorhandenen bzw. ein Teil der Aliase werden in einem bequemen \F{/etc/aliases}-Format ausgegeben: - \begin{quote} - \T{ma \U{alias} --list} \\ - \T{ma \U{alias} --list `h*'} - \end{quote} + \Linux{\C{ma \U{alias} --list}} + \Linux{\C{ma \U{alias} --list 'h*'}} + + Alias, die über Mailgruppen-Zuordnungen erfolgen, sind duch einen + \qq{$\Rightarrow$} statt des Doppelpunktes gekennzeichnet. \subsubsection{Anlegen} - Beim Anlegen wird der Eintrag nur gemacht, wenn er noch nicht - vorhanden ist. + Beim Anlegen wird der Eintrag nur gemacht, wenn er noch nicht vorhanden ist. + Die Gruppenzuordnungen werden über den Account eines einzelnen + Nutzers verändert. - \begin{quote} - \T{ma \U{alias} \U{--add} --members=hans,suse fam.ente} - \end{quote} + \Linux{\C{ma \U{alias} \U{--add} --members=hans,suse fam.ente}} Das trägt einen Alias \N{fam.ente} ein, der als Verteiler wirkt und die Mails an \N{hans} und \N{suse} weiterleitet. Weitere Optionen gibt es nicht. - + \subsubsection{Verändern} - Zum Verändern gilt das selbe wie schon in~\ref{ss:change} zu den - Accounts. Hinzufügen von Mitgliedern und Entfernen von - Mitgliedern ist möglich. Dabei sind auch \qq{Masseneintragungen} - möglich: + Zum Verändern gilt das selbe wie schon in + Abschnitt~\vref{ss:change} zu den Accounts. Hinzufügen von + Mitgliedern und Entfernen von Mitgliedern ist möglich. Dabei sind + auch \qq{Masseneintragungen} möglich: - \begin{quote} - \T{ma \U{alias} \U{--modify} --members=+big.brother '*'} - \end{quote} + \Linux{\C{ma \U{alias} \U{--modify} --members=+big.brother '*'}} \subsubsection{Löschen} Der gesamt Alias-Eintrag wird entfernt. - \begin{quote} - \T{ma \U{alias} \U{--delete} fam.ente} - \end{quote} + \Linux{\C{ma \U{alias} \U{--delete} fam.ente}} + \subsection{Shared Mailboxen} @@ -434,45 +632,72 @@ Alle vorhandenen Shared Mailboxen können mit einem einfachen - \begin{quote} - \T{ma \U{shared} --list} \\ - \T{ma \U{shared} --list `h*'} - \end{quote} + \Linux{\C{ma \U{shared} --list}} + \Linux{\C{ma \U{shared} --list `h*'}} angezeigt werden. Anlegen und Löschen können mit \T{--add} bzw. \T{--del} erledigt werden. Die Zugriffsrechte zu den Mailboxen müssen derzeit per Hand geändert werden - mit \T{cyradm}. + mit \C{cyradm}. -\section{Zugangsdaten}\label{p:Zugangsdaten} -\index{Passwort} +\section{Einstellungen für Clients} + + \begin{longtable}{lllr>{\raggedright}p{0.4\textwidth}} + \bf Dienst & & \bf Host & \bf Port & \bf Bemerkung \NL\hline + \endhead + + SMTP-Server & Post-Ausgang & daten.cms.de & 25 + & Authentifizierung ist notwenndig; TLS (nicht SSL!) ist notwendig \NL + + POP3-Server & Post-Eingang & daten.cms.de & 110 + & auf diesem Port ohne Verschlüsselung, wird früher oder später + abgeschaltet, nicht aus dem Internet erreichbar \NL - \subsection{LDAP} + POP3s-Server & Post-Eingang & daten.cms.de & 995 + & SSL-Verschlüsselung (nicht TLS!) \NL + + IMAP-Server & Post-Eingang & daten.cms.de & 143 + & auf diesem Port ohne Verschlüsselung, wird früher oder später + abgeschaltet, nicht aus dem Internet erreichbar \NL + + IMAPs-Server & Post-Eingang & daten.cms.de & 993 + & SSL-Verschlüsselung (nicht TLS!) \NL + + Webmail-Server & & \multicolumn{2}{l}{https://daten.cms.de/webmail} & \NL + + Listen-Server & Mail-Verteiler & \multicolumn{2}{l}{https://daten.cms.de/mailman} & \NL - \begin{tabular}{ll} - Server:Port & mail.tcb.deutschepost.de:389 (Plain + STARTTLS)\\ - & mail.tcb.deutschepost.de:636 (SSL) \\ - Base-DN & \T{dc=tcb,dc=deutschepost,dc=de} \\ - Admin-User (Bind-DN) & \T{cn=admin,dc=tcb,dc=deutschepost,dc=de}\\ - Admin-Passwort & \T{anfang} \\ - \end{tabular} + \end{longtable} - \subsection{IMAP} +\section{Zugangsdaten} +\label{p:zugangsdaten} + + \begin{longtable}{ll} + \bf Eigentschaft & \bf Wert \NL\hline + \endhead - \begin{tabular}{ll} - Server:Port & mail.tcb.deutschepost.de:143 \\ - Admin-User & \T{cyrus} \\ - Admin-Passwort & \T{anfang} \\ - Korrespondierender LDAP-Eintrag & \T{uid=cyrus,ou=Cyrus,\dots} \\ - \end{tabular} + \multicolumn{2}{l}{\bf LDAP-Server} \NL + Server:Port & daten.cms.de:636 (ldaps) \\ + Base-DN & \T{dc=cms,dc=de} \\ + Admin-User (Bind-DN) & \T{cn=admin,dc=cms,dc=de} \\ + Admin-Passwort & \T{x} \\[1em] + + \multicolumn{2}{l}{\bf IMAP-Server} \NL - Um die nervigen Fragen nach Passworten\index{Passwort} für LDAP und IMAP zu umgehen, - können die Passworte in Umgebungsvariablen abgelegt werden: \T{export + Server:Port & daten.cms.de:143 (Klartext) \\ + & daten.cms.de:993 (imaps) \\ + Admin-User & \T{cyrus} \\ + Admin-Passwort & \T{x} \\ + Korrespondierender LDAP-Eintrag & \T{uid=cyrus} \\ + \end{longtable} + + Um die nervigen Fragen nach Passworten für LDAP und IMAP zu umgehen, + können für \C{ma} die Passworte in Umgebungsvariablen abgelegt werden: \T{export IMAP\_PASS=XXX} und \T{export LDAP\_PASS=XXX}. -\printindex +% \printindex \vfill Stand: \verb!$Id: manual.tex 1501 2005-11-04 06:22:25Z heiko $!\\