Host:Intern: Difference between revisions

From Chaosdorf Wiki
No edit summary
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Host
{{Host
|name=intern.chaosdorf.de
|name=intern.chaosdorf.de
|os=Debian Stretch amd64
|os=Debian 11 amd64
|location=Host:Vm
|location=Host:Vm
|purpose=Interne Dienste (mail (postfix/postgrey/spampd/dovecot/sympa/roundcube), internwiki, cgit...)
|purpose=Interne (Mail-)Dienste
|disk=20GB
|disk=100GB
|ram=2GiB
|ram=4GiB
|swap=4GB
|swap=5GB
|admin_toolkit=Yes
|admin_toolkit=Yes
|ssh_root_keys=/var/cache/ssh/root
|ssh_root_keys=/var/cache/ssh/root
Line 12: Line 12:
|ssh_userlogin=No
|ssh_userlogin=No
|admins=byte, derf, feuerrot
|admins=byte, derf, feuerrot
|netbox_url=https://netbox.chaosdorf.space/virtualization/virtual-machines/11/ VM-ID 11
}}
}}
== SSL ==
== SSL ==


Zertifikat und Key für alle Dienste auf intern liegen unter /etc/ssl.
Zertifikate und Keys für alle Dienste auf intern liegen unter /etc/ssl.
 
Die Zertifikate werden einmal monatlich per certbot (LetsEncrypt) erneuert. Über <tt>/etc/crontab</tt> wird dazu <tt>/usr/local/sbin/refresh-tls-cert</tt> aufgerufen, was per certbot das Zertifikat erneuert und apache2, dovecot und postfix neustartet. Wir nutzen einen nicht ganz üblichen certbot-Workflow mit von uns manuell erstellten CSRs, da wir so sowohl ECDSA- als auch RSA-Keys für unser Zertifikat nutzen können. Apache2 und Dovecot nutzen ECDSA, Postfix RSA.


== Website ==
== Website ==
Line 30: Line 33:
== Git ==
== Git ==


Das Repository für unser Intern-Wiki liegt in <tt>/srv/git/wiki</tt>. SSH-Zugriff über <tt>git@chaosdorf.de:wiki</tt>. Wir nutzen hier bewusst nicht das GitLab, um die Komplexität (und damit Fehleranfälligkeit) für das Intern-Wiki niedrig zu halten.
Das Repository für unser Intern-Wiki liegt in <tt>/srv/git/wiki</tt>. SSH-Zugriff ist über <tt>git@intern.chaosdorf.de:wiki</tt> mit allen im LDAP eingetragenen Keys möglich; zusätzlich ist der SSH-Key von {{H|Wikijs}} hier eingetragen. Wir nutzen hier bewusst nicht das GitLab, um die Komplexität (und damit Fehleranfälligkeit) für das Intern-Wiki niedrig zu halten.


== gitolite ==
== gitolite ==
Line 44: Line 47:
== Quota ==
== Quota ==


Linux-Diskquota auf / via /etc/fstab. 512M soft und 768M hard. Beachten: dovecot weigert sich sobald die Soft-Quota erreicht wurde, irgendwelche Mailoperationen durchzuführen. Gibt ne entsprechende Logmeldung (quota exceeded). Um Userquotas temporär oder auch dauerhaft zu erhöhen: ''edquota -u nutzername''
Ausschließlich via dovecot. Wir verwenden keine Diskquota auf Dateisystem-Ebene.


== Mail ==
== Mail ==
Line 52: Line 55:
=== Postfix ===
=== Postfix ===


Die Config ist recht unspektakulär. Spam wird durch SpamPD als content_filter markiert, Postgrey ist als Policy-Daemon eingetragen.
Die Config ist recht unspektakulär. Spam wird durch SpamPD als content_filter markiert, Postgrey ist als Policy-Daemon eingetragen. Der Dovecot Quota-Service wird beim Empfang ebenfalls konsultiert, so dass Mails bei Over Quota direkt abgelehnt werden und keinen Backscatter generieren.


SASL Auth ist an Dovecot gebunden und nur erlaubt, wenn TLS verwendet wird. Wir bieten SMTP+STARTTLS an, zusätzlich SMTPS (SSL) und Submission (STARTTLS).
SASL Auth ist an Dovecot gebunden und nur erlaubt, wenn TLS verwendet wird. Wir bieten SMTP+STARTTLS an, zusätzlich SMTPS (SSL) und Submission (STARTTLS).
Line 61: Line 64:


Als passdb verwendet Dovecot PAM, da LDAP dort eingebunden ist. Die userdb ist
Als passdb verwendet Dovecot PAM, da LDAP dort eingebunden ist. Die userdb ist
static auf den User vmail eingestellt.
static auf den User vmail eingestellt. Wir erlauben 3GB Quota je Account (+100MB Trash). Der quota-status-Service erlaubt postfix auf Port 12346, vor der Annahme einer Mail den Quota-Status des Zielaccounts abzufragen.
 
Da Dovecot vor 1.2 kein STARTTLS enforcen kann, bieten wir nur POP3S und IMAPS
an.


=== OpenDKIM ===
=== OpenDKIM ===
Line 72: Line 72:
==  MySQL ==
==  MySQL ==


Für Roundcube.
Für Sympa.
 
 
== TLS ==
 
Das TLS-Zertifikat für wird einmal monatlich per certbot (LetsEncrypt) erneuert. Über <tt>/etc/crontab</tt> wird dazu <tt>/usr/local/sbin/refresh-tls-cert</tt> aufgerufen, was per certbot das Zertifikat erneuert und apache2, dovecot und postfix neustartet. Wir nutzen einen nicht ganz üblichen certbot-Workflow mit von uns manuell erstellten CSRs, da wir so sowohl ECDSA- als auch RSA-Keys für unser Zertifikat nutzen können. Apache2 und Dovecot nutzen ECDSA, Postfix RSA.




[[Category:Administration]]
[[Category:Administration]]

Latest revision as of 20:18, 3 June 2024

intern.chaosdorf.de
Ort Host:Vm
Zweck Interne (Mail-)Dienste
OS Debian 11 amd64
Disks 100GB100,000 MB <br />100,000,000 kB <br />0.1 TB <br />
RAM 4GiB4,096 MiB <br />4,194,304 kiB <br />4,294,967,296 B <br />0.00391 TiB <br />4,294.967 MB <br />
Swap 5GB5,000 MB <br />5,000,000 kB <br />0.005 TB <br />
Admin-Toolkit Yes
ssh key path /var/cache/ssh/root
PAM? No
SSH user login? No
Admins byte, derf, feuerrot
NetBox URL VM-ID 11

SSL[edit source]

Zertifikate und Keys für alle Dienste auf intern liegen unter /etc/ssl.

Die Zertifikate werden einmal monatlich per certbot (LetsEncrypt) erneuert. Über /etc/crontab wird dazu /usr/local/sbin/refresh-tls-cert aufgerufen, was per certbot das Zertifikat erneuert und apache2, dovecot und postfix neustartet. Wir nutzen einen nicht ganz üblichen certbot-Workflow mit von uns manuell erstellten CSRs, da wir so sowohl ECDSA- als auch RSA-Keys für unser Zertifikat nutzen können. Apache2 und Dovecot nutzen ECDSA, Postfix RSA.

Website[edit source]

vhosts liegen in /srv/www, vhost-configs in /etc/apache2/sites-enabled.

intern.chaosdorf.de[edit source]

  • HTTP-Requests werden auf HTTPS rewritten
  • Userauth via LDAP
  • roundcube auf /webmail
  • sympa auf /sympa

Git[edit source]

Das Repository für unser Intern-Wiki liegt in /srv/git/wiki. SSH-Zugriff ist über git@intern.chaosdorf.de:wiki mit allen im LDAP eingetragenen Keys möglich; zusätzlich ist der SSH-Key von Wikijs hier eingetragen. Wir nutzen hier bewusst nicht das GitLab, um die Komplexität (und damit Fehleranfälligkeit) für das Intern-Wiki niedrig zu halten.

gitolite[edit source]

Legacy. Wird bald entfernt, Git macht das besser.

Über gitolite@intern.chaosdorf.de können Git-Repositories für begrenzte Personenkreise (nicht automatisch alle Chaosdorfmitglieder) verwaltet werden. Um das Anlegen von Repos und Eintragen von SSH-Keys kümmert sich derf.

Munin[edit source]

HTML und Graphen sind komplett dynamisch, es gibt entspreche Aliases und Rewrites in der Apache2-config. Erreichbar unter <https://intern.chaosdorf.de/munin/>.

Quota[edit source]

Ausschließlich via dovecot. Wir verwenden keine Diskquota auf Dateisystem-Ebene.

Mail[edit source]

Als MTA kommt Postfix zum Einsatz, für POP3S/IMAPS Dovecot.

Postfix[edit source]

Die Config ist recht unspektakulär. Spam wird durch SpamPD als content_filter markiert, Postgrey ist als Policy-Daemon eingetragen. Der Dovecot Quota-Service wird beim Empfang ebenfalls konsultiert, so dass Mails bei Over Quota direkt abgelehnt werden und keinen Backscatter generieren.

SASL Auth ist an Dovecot gebunden und nur erlaubt, wenn TLS verwendet wird. Wir bieten SMTP+STARTTLS an, zusätzlich SMTPS (SSL) und Submission (STARTTLS).

Die Mailboxen sind Maildirs in /srv/mail. Die gültigen User bezieht Postfix über users.ldap aus dem LDAP. Mit forward.ldap werden Mails weitergeleitet, wenn der User ein 'mailRoutingAddress'-Attribut im LDAP-Eintrag hat. intern@ wird via LDAP (ml-intern) und die internal_ok Restriction Class gehandhabt, während die restlichen Mailinglisten über Sympa laufen.

Dovecot[edit source]

Als passdb verwendet Dovecot PAM, da LDAP dort eingebunden ist. Die userdb ist static auf den User vmail eingestellt. Wir erlauben 3GB Quota je Account (+100MB Trash). Der quota-status-Service erlaubt postfix auf Port 12346, vor der Annahme einer Mail den Quota-Status des Zielaccounts abzufragen.

OpenDKIM[edit source]

Hängt als milter in Postfix, signiert ausgehende Mails von *.chaosdorf.de und prüft die Signaturen eingehender Mails. Standardsetup.

MySQL[edit source]

Für Sympa.