Host:Intern: Difference between revisions

From Chaosdorf Wiki
(Created page with " name="frontend.chaosdorf.de" standort="VM auf vm" zweck="Extern erreichbare Dienste (v.a. Web und Mail)" os="Debian Squeeze amd64" ssh_root_keys="/var/ca…")
 
No edit summary
 
(43 intermediate revisions by 4 users not shown)
Line 1: Line 1:
name="frontend.chaosdorf.de"
{{Host
standort="VM auf [[vm.chaosdorf.de|vm]]"
|name=intern.chaosdorf.de
zweck="Extern erreichbare Dienste (v.a. Web und Mail)"
|os=Debian 11 amd64
os="Debian Squeeze amd64"
|location=Host:Vm
ssh_root_keys="/var/cache/ssh/root"
|purpose=Interne (Mail-)Dienste
ssh_pam="Ja"
|disk=100GB
ssh_userlogin="Nur SFTP"
|ram=4GiB
|swap=5GB
|admin_toolkit=Yes
|ssh_root_keys=/var/cache/ssh/root
|ssh_pam=No
|ssh_userlogin=No
|admins=byte, derf, feuerrot
|netbox_url=https://netbox.chaosdorf.space/virtualization/virtual-machines/11/ VM-ID 11
}}
== SSL ==


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


* 20G Festplatte. `/dev/vda1` auf `/`, keine weitere Unterteilung
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.
* 1G RAM
* kein Swap


= SSL =
== Website ==


Zertifikat und Key für alle Dienste auf frontend liegen unter `/etc/ssl`.
vhosts liegen in /srv/www, vhost-configs in /etc/apache2/sites-enabled.


= Website =
=== intern.chaosdorf.de ===
 
vhosts liegen in `/srv/www`, vhost-configs in `/etc/apache2/sites-enabled`.
 
== eh2002.chaosdorf.de ==
 
Statische EasterHegg-Seite, nichts besonderes.
 
== intern.chaosdorf.de ==


* HTTP-Requests werden auf HTTPS rewritten
* HTTP-Requests werden auf HTTPS rewritten
* Userauth via LDAP
* Userauth via LDAP
* ikiwiki auf `/`
* <del>roundcube auf /webmail</del>
* roundcube auf `/webmail`
* sympa auf /sympa
* cgit auf `/git`
* roundup auf `/tickets`
 
== www.chaosdorf.de ==
 
* HTTP/HTTPS erlaubt
* ikiwiki auf `/`
* Userdirs auf `/~username`
* diverse rewrites für Backwards Compatibility
* mit HTTPS: ldap-auth für ikiwiki-editscript
 
= Wikis =
 
Wikis sind in `/etc/ikiwiki/wikilist` gelistet und können mit
`ikiwiki-mass-rebuild` automatisch neugebaut werden. Configs liegen ebenfalls
in `/etc/ikiwiki`.
 
== website ==
 
* `/srv/ikiwiki/website` -> `/srv/www/de.chaosdorf.www`
* git: `website`
* apache2: `www.chaosdorf.de`
* mit CGI (per HTTPS)


== wiki ==
== Git ==


* `/srv/ikiwiki/wiki` -> `/srv/www/de.chaosdorf.intern`
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.
* git: `wiki`
* apache2: `intern.chaosdorf.de`
* mit CGI


= WWW-Userdirs =
== gitolite ==


Nutzer können sich per SFTP auf frontend einloggen. Wenn sie dort Dateien in
Legacy. Wird bald entfernt, {{H|Git}} macht das besser.
`public_html` ablegen, sind diese unter `https://www.chaosdorf.de/~USER`
erreichbar.


Über `/etc/pam.d/sshd` wird `/usr/local/sbin/addquota` ausgeführt, um für neue
<del>Über <tt>gitolite@intern.chaosdorf.de</tt> 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 {{U|derf}}</del>.
User (!= root) einmalig ein Quota zu setzen.


= Ticketsystem =
== Munin ==


Roundup mit MySQL-Datenbank. Die Instanz befindet sich unter `/srv/roundup`.
HTML und Graphen sind komplett dynamisch, es gibt entspreche Aliases und Rewrites in der Apache2-config. Erreichbar unter <https://intern.chaosdorf.de/munin/>.


= Git =
== Quota ==


Webview mit `cgit` unter <https://intern.chaosdorf.de/git>. SSH-Zugriff über
Ausschließlich via dovecot. Wir verwenden keine Diskquota auf Dateisystem-Ebene.
`git@chaosdorf.de:reponame`.


= Munin =
== Mail ==
 
Läuft alle 5 Minuten per Cron.
HTML-Ausgabe erfolgt direkt nach `/srv/www/de.chaosdorf.intern/munin`, siehe
<https://intern.chaosdorf.de/munin/>.
 
Fragt [[backend]], [[frontend]], [[shells]], [[vm]] und [[figurehead]] ab, die
Verbindungen sind unverschlüsselt.
 
= Mail =


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


== Postfix ==
=== Postfix ===


Die Config ist recht unspektakulär. Spam wird durch SpamPD als content_filter
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.
markiert, Postgrey ist als Policy-Daemon eingetragen.


SASL Auth ist an Dovecot gebunden und nur erlaubt, wenn TLS verwendet wird.
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).
Wir bieten SMTP+STARTTLS an, zusätzlich SMTPS (SSL) und Submission (STARTTLS).


Die Mailboxen sind Maildirs in `/var/mail`, die dem User vmail gehören. Die
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.
gültigen User bezieht Postfix über `ldap_users.cf` aus dem LDAP. Mit
`ldap_forward.cf` werden Mails weitergeleitet, wenn der User ein
'mail'-Attribut im LDAP-Eintrag hat. `ldap_groups.cf` leitet
$list@chaosdorf.de an die Mitglieder der Gruppe ml-$list weiter.


== Dovecot ==
=== Dovecot ===


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.
 
=== OpenDKIM ===


Da Dovecot vor 1.2 kein STARTTLS enforcen kann, bieten wir nur POP3S und IMAPS
Hängt als milter in Postfix, signiert ausgehende Mails von *.chaosdorf.de und prüft die Signaturen eingehender Mails. Standardsetup.
an.


==  MySQL ==


= MySQL =
Für Sympa.


''?''


[[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.