Ein OpenBSD-E-Mail-Server mit OpenSMTPD, Dovecot, Rspamd und RainLoop

Einführung

Dieses Tutorial zeigt einen voll funktionsfähigen E-Mail-Server, der unter OpenBSD mit OpenSMTPD, Dovecot, Rspamd und RainLoop ausgeführt wird. OpenSMTPD ist der Standard-Mailserver für OpenBSD. Wählen Sie eine Vultr Compute Cloud-Instanz mit viel Speicherplatz für die erwartete Anzahl von Benutzern.

Vorbereitende Schritte

Richten Sie Ihr Benutzerkonto so ein, dass Aufgaben als Root ausgeführt werden.

su -
usermod -G wheel <username>
echo "permit nopass keepenv :wheel" > /etc/doas.conf
exit

Richten Sie das Paket-Repository für OpenBSD ein.

doas su
echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl
exit

Fügen Sie die erforderlichen Pakete hinzu.

doas pkg_add opensmtpd-extras opensmtpd-filter-rspamd dovecot dovecot-pigeonhole rspamd redis

Konfigurieren Sie OpenSMTPD

Standardmäßig überwacht OpenSMTPD nur localhost. Es muss explizit konfiguriert sein, um externe Schnittstellen abzuhören. Es sollte so konfiguriert sein, dass aus Sicherheitsgründen virtuelle Benutzer anstelle von Systembenutzern verwendet werden.

Sichern Sie die Standarddatei /etc/smtpd.confund erstellen Sie eine neue von Grund auf neu.

cd /etc/mail
mv smtpd.conf smtpd.conf.default

Erstellen Sie eine neue smtpd.confwie unten gezeigt. Ersetzen Sie example.comdurch Ihre Domain. Diese Erstkonfiguration aktiviert den rspamd-Filter beim Testen von OpenSMTP nicht. Der Spamfilter wird später aktiviert.

pki "mail" cert "/etc/ssl/mail.crt"
pki "mail" key "/etc/ssl/private/mail.key"

table aliases file:/etc/mail/aliases
table credentials passwd:/etc/mail/credentials
table virtuals file:/etc/mail/virtuals

filter "rspamd" proc-exec "/usr/local/libexec/smtpd/filter-rspamd"

# To accept external mail, replace with: listen on all

# listen on all tls pki "mail" hostname "mail.example.com"
listen on egress port submission tls-require pki "mail" hostname "mail.example.com" \
  auth <credentials>

action "local_mail" mbox alias <aliases>
action "domain_mail" maildir "/var/vmail/example.com/%{dest.user}" \
  virtual <virtuals>
action "outbound" relay

# Uncomment the following to accept external mail for domain "example.org"

# match from any for domain "example.com" action "domain_mail"
match from local for local action "local_mail"

match from local for any action "outbound"
match auth from any for any action "outbound"

Erstellen Sie die Datei / etc / credentials

OpenSMTPD und Dovecot können eine Authentifizierungsdatenbank gemeinsam nutzen. Diese Datenbank ähnelt im Format der Systemkennwortdatei mit zwei zusätzlichen Feldern für Dovecot. Die beiden Spezialfelder definieren das virtuelle Ausgangsverzeichnis und den E-Mail-Speicherort. Passwörter sind im Blowfish-Format. In diesem Tutorial werden drei Beispielbenutzer erstellt.

Generieren Sie die Passwörter und verknüpfen Sie sie mit der /etc/mail/credentialsDatei.

doas su
smtpctl encrypt example_password1 >> /etc/mail/credentials
smtpctl encrypt example_password2 >> /etc/mail/credentials
smtpctl encrypt example_password3 >> /etc/mail/credentials
exit

Die Ausgabe sieht ungefähr so ​​aus:

$2b$10$agmNBPvFm1zqCjbbZC3JbO4Ns2jJNZQfTS45MAnKi.IPrkKITyTa6
$2b$10$LwkcKVVnwG8hDxu2W4YKD.K0kQ2oylOmQ9SBUb0hIopBsmNxYPb4e
$2b$10$bgLW/GMZyRXKbROgRQIvRu4xbeOqOJJXlgEAKuS5sIrBvfdPvEzeq

Bearbeiten /etc/mail/credentials, um die erforderlichen Felder hinzuzufügen. Jede Zeile ist einem Systemkonto ( vmail ) mit UID und GID von 2000 zugeordnet . Ersetzen Sie example.com durch Ihre Domain. Der virtuelle Benutzername ist die vollständige E-Mail-Adresse.

john@example.com:$2b$10$agmNBPvFm1zqCjbbZC3JbO4Ns2jJNZQfTS45MAnKi.IPrkKITyTa6:vmail:2000:2000:/var/vmail/example.com/john::userdb_mail=maildir:/var/vmail/example.com/john
adam@example.com:$2b$10$LwkcKVVnwG8hDxu2W4YKD.K0kQ2oylOmQ9SBUb0hIopBsmNxYPb4e:vmail:2000:2000:/var/vmail/example.com/adam::userdb_mail=maildir:/var/vmail/example.com/adam
natalie@example.com:$2b$10$bgLW/GMZyRXKbROgRQIvRu4xbeOqOJJXlgEAKuS5sIrBvfdPvEzeq:vmail:2000:2000:/var/vmail/example.com/natalie::userdb_mail=maildir:/var/vmail/example.com/natalie

Erstellen Sie ein virtuelles E-Mail-Konto und legen Sie die Sicherheit fest

  • Legen Sie die /etc/mail/credentialsBerechtigungen für schreibgeschützte Benutzer _smtpdund _dovecotSystembenutzer als schreibgeschützt fest .
  • Erstellen Sie den vmailSystembenutzer, die Gruppe und das Ausgangsverzeichnis.

    • Wenn Sie den Benutzer des vmail-Systems erstellen, erhalten Sie die folgende Warnung : useradd: Warning: home directory '/var/vmail' doesn't exist, and -m was not specified. Dies wird erwartet. Dadurch wird vermieden, dass das Verzeichnis mit Punktdateien aus überfüllt wird /etc/skel. Sie sind nicht erforderlich, da das vmail-Konto keine Anmeldung zulässt.

      doas chmod 0440 / etc / mail / Anmeldeinformationen doas chown smtpd: dovecot / etc / mail / Anmeldeinformationen doas useradd -c "Virtuelles Mail-Konto" -d / var / vmail -s / sbin nologin -u 2000 -g = uid -L Mitarbeiter vmail doas mkdir / var / vmail doas chown vmail: vmail / var / vmail

Erstellen Sie die virtuelle Benutzerzuordnung

Erstellen Sie /etc/mail/virtuals, um die gültigen E-Mail-Adressen zu definieren.

  • In den ersten vier Zeilen werden Aliase für Missbrauch , Hostmaster , Postmaster und Webmaster von john@example.com zugewiesen .
  • In den letzten drei Zeilen werden die E-Mail-Adressen dem vmail-Konto zugeordnet. OpenSMTPD übermittelt die Nachrichten an /var/vmail/example.com/<user>.
  • E-Mail-Zustellversuche für Adressen, die nicht in dieser Datei definiert sind, werden mit einer Zustellungsstatusbenachrichtigung zurückgeschickt.

    missbrauch@example.com: john@example.com hostmaster@example.com: john@example.com postmaster@example.com: john@example.com webmaster@example.com: john@example.com john@example.com: vmail adam@example.com: vmail natalie@example.com: vmail

Erstellen Sie öffentliche / private Schlüssel für OpenSMTPD

In diesem Beispiel wird ein selbstsigniertes Zertifikat verwendet. Verwenden Sie ein gültiges signiertes Zertifikat, falls Sie eines haben. Stellen Sie sicher, dass der FQDN des Servers übereinstimmt, wenn Sie zur Eingabe des allgemeinen Namens aufgefordert werden. In diesem Beispiel wird mail.example.com verwendet.

doas su
cd /etc/ssl
openssl genrsa -out private/mail.key 4096
openssl req -x509 -new -nodes -key private/mail.key -out mail.crt -days 3650 -sha256
chmod 0400 /etc/ssl/private/mail.key
exit

Testen Sie den Server

Verwenden Sie die OpenSMTPD-Konfigurationssyntaxprüfung. Wenn keine Probleme gefunden werden, starten Sie den smtpd-Daemon neu.

doas smtpd -n
doas rcctl restart smtpd

Senden Sie von einem externen E-Mail-Konto aus eine Test-E-Mail an einen der Benutzer.

  • OpenSMTPD erstellt die unten stehende Maildir-Ordnerstruktur /var/vmailund sendet die E-Mail an /var/vmail/example.com/<username>/new.
  • Navigieren Sie als Root-Benutzer zu diesem Speicherort und stellen Sie sicher, dass Sie eine Datei mit dem folgenden Namen haben : 1576339842.4d64757b.example.com:2,.
  • Überprüfen Sie den Inhalt der Datei, einschließlich aller E-Mail-Header, um sicherzustellen, dass die E-Mail-Zustellung ordnungsgemäß funktioniert.

    Return-Path: <n0244e80da3-54b1ed125c5342fc-adam===example.org@bounce.example.org>
    Delivered-To: adam@example.com
    Received: from spruce-goose-ba.twitter.com (spruce-goose-ba.twitter.com [199.59.150.96])
        by mail.example.com (OpenSMTPD) with ESMTPS id 75b514d3 (TLSv1.2:ECDHE-RSA-AES256-GCM-    SHA384:256:NO)
        for <adam@example.com>;
        Sat, 14 Dec 2019 11:10:40 -0500 (EST)
    DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=twitter.com;
        s=dkim-201406; t=1576339839;
        bh=jhKB5/w9v87GaXSuizT576ntJ/72gvLRDhsqmGQQrCE=;
        h=Date:From:To:Subject:MIME-Version:Content-Type:List-Unsubscribe:
        Message-ID;
        b=TWn/QVUJ1VDlWiweWoanwHLABCL1nqmm0+TBzh3PjmYNm0quRMXB7QL2ykzHGME5A
        DTz/JFHa0cOvQsrdhxxbjOLFKimK0nF+Ou5kI+2HzTzfVNZS0qGnTVP/tZyaIsWjjl
        an5EiR6HFOHG4iClOOEOJW4oLDEZfPTefrlW+378bmHGIRUNDvVKrbXKunL9fJFAb3
        JSrhWQNwbrF/aARFzw4nKfb1I7vTRSrN1eXE5JxzGwI2XAjqDIWdR5ExwUNbJH5ZPs
        wQ85j8KLZEEgQkbH9CypgeUMJWsVK95FqOCCaqKMS10M7intGMb3aeiiFcB7yDHi9t
        u7rVESm4eGp/g==
    X-MSFBL: DM7pSZns+YDRgNEmGNre9aPjZTtc1tDlN97w5rQDBts=|eyJ1IjoibWF0dEBnb2J
        sYWNrY2F0LmNvbUBpaWQjIzU0YjFlZDEyNWM1MzQyZmNiNThiMzVmNzI0NDZlMGF
        mQHVzYiMjNkAyNDRAMTA4MjgwNTAxMDYzNzk1MDk3NkAwQDA4MjY5ZWI4OTI3YzR
        kNTFiNTZkMjY3YzY2OGRmN2IwY2Y4M2ExZGIiLCJyIjoibWF0dEBnb2JsYWNrY2F
        0LmNvbSIsImciOiJCdWxrIiwiYiI6InNtZjEtYmd4LTM0LXNyMS1CdWxrLjE4NiJ
        9
    Date: Sat, 14 Dec 2019 16:10:39 +0000
    ...
    

Konfigurieren Sie Dovecot IMAP

Legen Sie die Anmeldeklasse fest

Dovecot erfordert die Fähigkeit, eine größere Anzahl von Dateien zum Lesen und Schreiben zu öffnen, als die Standardklasse zulässt. Andernfalls treten Fehler auf, die nur schwer zu beheben sind.

Definieren Sie eine Anmeldeklasse für den Dovecot-Daemon. Fügen Sie am Ende /etc/login.confdie folgenden Zeilen hinzu.

    dovecot:\
        :openfiles-cur=1024:\
        :openfiles-max=2048:\
        :tc=daemon:    

Erstellen Sie die Dovecot-Konfigurationsdatei

Erstellen /etc/dovecot/local.conf.

auth_mechanisms = plain
first_valid_uid = 2000
first_valid_gid = 2000
mail_location = maildir:/var/vmail/%d/%n
mail_plugin_dir = /usr/local/lib/dovecot
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex  imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve
mbox_write_locks = fcntl
mmap_disable = yes
namespace inbox {
  inbox = yes
  location =
  mailbox Archive {
  auto = subscribe
  special_use = \Archive
  }
  mailbox Drafts {
  auto = subscribe
  special_use = \Drafts
  }
  mailbox Junk {
  auto = subscribe
  special_use = \Junk
  }
  mailbox Sent {
  auto = subscribe
  special_use = \Sent
  }
  mailbox Trash {
  auto = subscribe
  special_use = \Trash
  }
  prefix =
}
passdb {
  args = scheme=CRYPT username_format=%u /etc/mail/credentials
  driver = passwd-file
  name =
}
plugin {
  imapsieve_mailbox1_before = file:/usr/local/lib/dovecot/sieve/report-spam.sieve
  imapsieve_mailbox1_causes = COPY
  imapsieve_mailbox1_name = Junk
  imapsieve_mailbox2_before = file:/usr/local/lib/dovecot/sieve/report-ham.sieve
  imapsieve_mailbox2_causes = COPY
  imapsieve_mailbox2_from = Junk
  imapsieve_mailbox2_name = *
  sieve = file:~/sieve;active=~/.dovecot.sieve
  sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
  sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve
  sieve_plugins = sieve_imapsieve sieve_extprograms
}
protocols = imap sieve
service imap-login {
  inet_listener imaps {
  port = 0
  }
}
service managesieve-login {
  inet_listener sieve {
  port = 4190
  }
  inet_listener sieve_deprecated {
  port = 2000
  }
}
ssl_cert = </etc/ssl/mail.crt
ssl_key = </etc/ssl/private/mail.key
userdb {
  args = username_format=%u /etc/mail/credentials
  driver = passwd-file
  name =
}
protocol imap {
  mail_plugins = " imap_sieve"
}

Dovecot Bug Fix

Es gibt einen Fehler in Dovecot, bei dem die Einstellungen ssl_certund ssl_keyin der local.confDatei nicht überschrieben werden, sodass wir sie auskommentieren müssen. Wenn Sie diesen Schritt verpassen, startet Dovecot nicht richtig.

Bearbeiten Sie /etc/dovecot/conf.d/10-ssl.confwie gezeigt.

...
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
# root. Included doc/mkcert.sh can be used to easily generate self-signed
# certificate, just make sure to update the domains in dovecot-openssl.cnf
#ssl_cert = </etc/ssl/dovecotcert.pem
#ssl_key = </etc/ssl/private/dovecot.pem
...

Erstellen Sie die Siebskripte

Siebskripte trainieren Rspamd auf Spam und Schinken . Das Verschieben von E-Mails in den Junk-Ordner und aus diesem heraus löst ein Ereignis zum Trainieren von Rspamd aus.

Diese Dateien befinden sich unter /usr/local/lib/dovecot/sieve.

Erstellen Sie die report-ham.sieveDatei.

require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];

if environment :matches "imap.mailbox" "*" {
  set "mailbox" "${1}";
}

if string "${mailbox}" "Trash" {
  stop;
}

if environment :matches "imap.user" "*" {
  set "username" "${1}";
}

pipe :copy "sa-learn-ham.sh" [ "${username}" ];

Erstellen Sie die report-spam.sieveDatei.

require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];

if environment :matches "imap.user" "*" {
  set "username" "${1}";
}

pipe :copy "sa-learn-spam.sh" [ "${username}" ];

Kompilieren Sie die Dateien.

sievec report-ham.sieve
sievec report-spam.sieve 

Erstellen Sie die folgenden zwei Shell-Skripte in /usr/local/lib/dovecot/sieve

Fügen Sie Folgendes hinzu: sa-learn-ham.sh

#!/bin/sh
exec /usr/local/bin/rspamc -d "${1}" learn_ham

Fügen Sie Folgendes hinzu: sa-learn-spam.sh

#!/bin/sh
exec /usr/local/bin/rspamc -d "${1}" learn_spam

Machen Sie die Dateien ausführbar.

chmod 0755 sa-learn-ham.sh
chmod 0755 sa-learn-spam.sh

Aktivieren und starten Sie Dovecot.

rcctl enable dovecot
rcctl start dovecot

Überprüfen Sie, ob Dovecot ordnungsgemäß gestartet wurde.

ps ax | grep dovecot

88005 ??  I        0:00.11 /usr/local/sbin/dovecot
69640 ??  I        0:00.03 dovecot/anvil
91207 ??  I        0:00.03 dovecot/log
98178 ??  I        0:00.19 dovecot/config
34712 ??  I        0:00.06 dovecot/stats
96674 ??  I        0:00.03 dovecot/imap-login
 8891 ??  S        0:00.02 dovecot/imap

Stellen Sie sicher, dass Dovecot richtig lesen kann /etc/mail/credentials

doveadm user john@example.com

field    value
uid      2000
gid      2000
home /var/vmail/example.com/john
mail maildir:/var/vmail/example.com/john

Stellen Sie sicher, dass sich ein E-Mail-Benutzer anmelden kann.

doveadm auth login john@example.com

Password: ********
passdb: john@example.com auth succeeded
extra fields:
  user=john@example.com

userdb extra fields:
  john@example.com
  mail=maildir:/var/vmail/example.com/john
  uid=2000
  gid=2000
  home=/var/vmail/example.com/john
  auth_mech=PLAIN

Rspamd einrichten

Dies ist eine grundlegende Rspamd-Konfiguration. Weitere Informationen finden Sie in der offiziellen Dokumentation. In diesem Beispiel wird eine Definition für unsere Domäne erstellt, um die DKIM-Signatur zu aktivieren.

Erstellen Sie ein öffentliches / privates Schlüsselpaar in /etc/mail/dkimund legen Sie die richtigen Berechtigungen fest.

doas su
mkdir /etc/mail/dkim
cd /etc/mail/dkim
openssl genrsa -out private.key 1024
openssl rsa -in private.key -pubout -out public.key
chmod 0440 private.key
chown root:_rspamd private.key

Erstellen Sie einen DNS-Eintrag für DKIM, der den öffentlichen Schlüssel enthält. Weitere Informationen zum Erstellen eines DKIM-Eintrags erhalten Sie von Ihrem DNS-Anbieter. Kopieren Sie den Inhalt von /etc/mail/dkim/public.keyund fügen Sie ihn nach dem p=unten gezeigten Teil des DKIM-Datensatzes ein. Beachten Sie, dass in diesem Beispiel auch ein SPF-Datensatz erstellt wird.

default._domainkey.example.com. IN TXT "v=DKIM1;k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQClcuK3FV3Ug64li8iFsuJ2ykgb7FMZsujk9uG79ppPUp57vCfjzO7F+HBfx5qIwvlGxv2IJXK86FZwhpUX+HFCDUtfB2z0ZNGerWcZfNzM1w1Bru/fdMd2tCYkiHEa5RWIkLfs/Fm+neXxRZfAG2UDWmAghNbgzYv7xViwgufDIQIDAQAB"
example.com. IN TXT "v=spf1 a ip4:192.0.2.1 mx ~all"

Erstellen Sie einen DMARC-Datensatz.

_dmarc.example.com. IN TXT "v=DMARC1;p=none;pct=100;rua=mailto:postmaster@example.com"

Erstellen Sie die /etc/rspamd/local.d/dkim_signing.confKonfigurationsdatei.

  • Die selector="default";Zeile leitet sich aus dem ersten Teil des default._domainkey....oben erstellten DKIM-DNS-Eintrags ( ) ab.

    domain {
        example.com {
            path = "/etc/mail/dkim/example.com.key";
            selector = "default";
        }
    }
    

Aktivieren und starten Sie Rspamd.

doas rcctl enable redis rspamd
doas rcctl start redis rspamd

Ändern Sie die folgenden Zeilen in /etc/mail/smtpd.confund starten Sie OpenSMTPD neu, um Rspamd zu aktivieren.

...
listen on all tls pki "mail" hostname "mail.example.com" filter "rspamd"
listen on egress port submission tls-require pki "mail" hostname "mail.example.com" \
  auth <credentials> filter "rspamd"
...
rcctl restart smtpd

Testen Sie den Mailserver mit dem POP3- oder IMAP-E-Mail-Client. Wenn Sie kein Webmail benötigen, hören Sie hier auf.

(Optional) Konfigurieren Sie RainLoop Webmail

Installieren Sie die erforderlichen Pakete

Wenn Sie dazu aufgefordert werden, wählen Sie bitte die aktuellste Version von PHP.

pkg_add php php-curl php-pdo_sqlite php-zip pecl73-mcrypt zip unzip wget curl

Holen Sie sich den RainLoop-Webmail-Tarball und extrahieren Sie ihn in /var/www/htdocs/.

Verwenden Sie die Standard Edition, die einen automatischen Updater enthält.

cd /tmp
wget https://www.rainloop.net/repository/webmail/rainloop-latest.zip
unzip rainloop-latest.zip -d /var/www/htdocs/rainloop
chown -R www:www /var/www/htdocs

Erstellen Sie das SSL-Zertifikat verschlüsseln

  • Kopieren /etc/examples/acme-client.confnach/etc
  • Fügen Sie die folgenden Zeilen am Ende der Datei hinzu:

    domain webmail.example.com {
    domain key "/etc/ssl/private/webmail.example.com.key"
    domain full chain certificate "/etc/ssl/webmail.example.com.crt"
    sign with letsencrypt
    }
    

Konfigurieren Sie httpd

  • Erstellen Sie einen DNS-Eintrag (entweder CNAME oder A-Eintrag) für die Subdomain webmail.example.com
  • Bearbeiten Sie /etc/httpd.confnach dem folgenden Beispiel.

    prefork 3
    types { include "/usr/share/misc/mime.types" }
    
    server "default" {
        listen on egress port 80 
        root "/htdocs"
        directory index index.html
    
        location "/.well-known/acme-challenge/*" {
                root "/acme"
                request strip 2
        }
    }
    

Führen Sie die httpd-Syntaxprüfung aus.

httpd -n

Aktivieren und starten Sie httpd.

rcctl enable httpd
rcctl start httpd

Fordern Sie das Let's Encrypt-Zertifikat an.

acme-client -v webmail.example.com

Fügen Sie die Serverdefinitionen für RainLoop hinzu /etc/httpd.conf

server "webmail.example.com" {
    listen on egress port 80
    block return 302 "https://$SERVER_NAME$REQUEST_URI"
}

server "webmail.example.com" {
    listen on egress tls port 443
    root "/htdocs/rainloop"
    directory index "index.php"

    tcp { nodelay, backlog 10 }

    tls {
            certificate "/etc/ssl/webmail.example.com.crt"
            key "/etc/ssl/private/webmail.example.com.key"
    }

    hsts {
            max-age 31556952
            preload
    }

    # Value below is 25MB in bytes. 1MB = 1048576 bytes
    connection max request body 26214400

    location "/data*" {
            block return 403
    }

    location "*.php*" {
            fastcgi socket "/run/php-fpm.sock"
    }
}

Konfigurieren Sie PHP so, dass Anhänge bis zu 25 Megabyte zulässig sind. Nehmen Sie folgende Änderungen vor /etc/php-7.3.ini:

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 25M
...
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 29M

Aktivieren Sie die erforderlichen PHP-Module, indem Sie ihre Konfigurationsdateien in kopieren /etc/php-7.3/

cp /etc/php-7.3.sample/* /etc/php-7.3/.

Überprüfen Sie die Syntax von /etc/httpd.conf

httpd -n

Aktivieren und starten Sie httpd und php-fpm.

rcctl reload httpd
rcctl enable php73_fpm
rcctl start php73_fpm

Abschlussprüfung

Navigieren Sie zu https://webmail.example.com/?admin.

Der Standardbenutzername lautet: admin
Das Standardkennwort lautet: 12345 .

Navigieren Sie zu den einzelnen Konfigurationsabschnitten und nehmen Sie die gewünschten Änderungen vor. Wenn Sie mit der Konfiguration fertig sind, melden Sie sich bei Webmail unter anhttps://webmail.example.com



Leave a Comment

So installieren Sie Blacklistd unter FreeBSD 11.1

So installieren Sie Blacklistd unter FreeBSD 11.1

Einführung Jeder Dienst, der mit dem Internet verbunden ist, ist ein potenzielles Ziel für Brute-Force-Angriffe oder ungerechtfertigten Zugriff. Es gibt Tools wie fail2ba

So installieren Sie Osclass unter FreeBSD 12

So installieren Sie Osclass unter FreeBSD 12

Verwenden Sie ein anderes System? Osclass ist ein Open Source-Projekt, mit dem Sie auf einfache Weise eine klassifizierte Site ohne technisches Wissen erstellen können. Seine Quelle

So installieren Sie Couch CMS 2.0 auf einem FreeBSD 11 FAMP VPS

So installieren Sie Couch CMS 2.0 auf einem FreeBSD 11 FAMP VPS

Verwenden Sie ein anderes System? Couch CMS ist ein einfaches und flexibles, kostenloses und Open-Source-Content-Management-System (CMS), mit dem Webdesigner entwerfen können

So installieren Sie Lychee 3.1 Photo Album auf einem FreeBSD 11 FAMP VPS

So installieren Sie Lychee 3.1 Photo Album auf einem FreeBSD 11 FAMP VPS

Verwenden Sie ein anderes System? Lychee 3.1 Photo Album ist ein einfaches und flexibles, kostenloses Open-Source-Tool zur Fotoverwaltung, das auf einem VPS-Server ausgeführt wird. Es wird installiert

Installieren von Fork CMS unter FreeBSD 12

Installieren von Fork CMS unter FreeBSD 12

Verwenden Sie ein anderes System? Fork ist ein Open-Source-CMS, das in PHP geschrieben wurde. Der Forks-Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen, wie Sie Fork CM installieren

Erstellen Sie eine Auslagerungsdatei unter FreeBSD 10

Erstellen Sie eine Auslagerungsdatei unter FreeBSD 10

Vultr FreeBSD-Server sind standardmäßig nicht so konfiguriert, dass sie Swap Space enthalten. Wenn Sie eine Einweg-Cloud-Instanz beabsichtigen, brauchen Sie diese wahrscheinlich nicht

So ändern Sie die Größe einer Festplatte in FreeBSD

So ändern Sie die Größe einer Festplatte in FreeBSD

Das FreeBSD-Betriebssystem verwendet UFS (Unix File System) für sein Root-Partitions-Dateisystem. sonst bekannt als freebsd-ufs Im Falle eines Upgrades

So installieren Sie Matomo Analytics unter FreeBSD 11

So installieren Sie Matomo Analytics unter FreeBSD 11

Verwenden Sie ein anderes System? Matomo (ehemals Piwik) ist eine Open Source-Analyseplattform, eine offene Alternative zu Google Analytics. Matomo Quelle wird gehostet o

So aktivieren Sie TLS 1.3 in Nginx unter FreeBSD 12

So aktivieren Sie TLS 1.3 in Nginx unter FreeBSD 12

Verwenden Sie ein anderes System? TLS 1.3 ist eine Version des TLS-Protokolls (Transport Layer Security), das 2018 als vorgeschlagener Standard in RFC 8446 veröffentlicht wurde

So installieren Sie Backdrop CMS auf einem FreeBSD 11 FAMP VPS

So installieren Sie Backdrop CMS auf einem FreeBSD 11 FAMP VPS

Verwenden Sie ein anderes System? Hintergrund CMS 1.8.0 ist ein einfaches und flexibles, mobilfreundliches, kostenloses und Open Source Content Management System (CMS), das es uns ermöglicht

So installieren Sie ImpressPages CMS 5.0 auf einem FreeBSD 11 FAMP VPS

So installieren Sie ImpressPages CMS 5.0 auf einem FreeBSD 11 FAMP VPS

Verwenden Sie ein anderes System? ImpressPages CMS 5.0 ist ein einfaches und effektives, kostenloses und Open Source, benutzerfreundliches, MVC-basiertes Content Management System (CMS).

Installieren Sie eSpeak unter FreeBSD 12

Installieren Sie eSpeak unter FreeBSD 12

Verwenden Sie ein anderes System? ESpeak kann TTS-Audiodateien (Text-to-Speech) generieren. Diese können aus vielen Gründen nützlich sein, z. B. um Ihr eigenes Turin zu erstellen

So installieren Sie LimeSurvey CE unter FreeBSD 12

So installieren Sie LimeSurvey CE unter FreeBSD 12

Verwenden Sie ein anderes System? LimeSurvey ist eine Open-Source-Umfragesoftware, die in PHP geschrieben wurde. Der LimeSurvey-Quellcode wird auf GitHub gehostet. Diese Anleitung zeigt Ihnen

So installieren Sie Monica unter FreeBSD 12

So installieren Sie Monica unter FreeBSD 12

Verwenden Sie ein anderes System? Monica ist ein Open-Source-System für das persönliche Beziehungsmanagement. Stellen Sie sich das als CRM vor (ein beliebtes Tool, das von Verkaufsteams in th verwendet wird

So installieren Sie Automad CMS unter FreeBSD 12

So installieren Sie Automad CMS unter FreeBSD 12

Verwenden Sie ein anderes System? Automad ist ein Open Source File-basiertes Content Management System (CMS) und eine in PHP geschriebene Template Engine. Der Automad-Quellcode i

Auswählen eines Betriebssystems: CentOS, Ubuntu, Debian, FreeBSD, CoreOS oder Windows Server

Auswählen eines Betriebssystems: CentOS, Ubuntu, Debian, FreeBSD, CoreOS oder Windows Server

Dieser Artikel enthält eine kurze Übersicht über die Server-Betriebssysteme, die als Vorlagen für Vultr angeboten werden. CentOS CentOS ist eine Open-Source-Version von RHEL (Re

Radio-Streaming auf FreeBSD 10 mit IceCast und Ices

Radio-Streaming auf FreeBSD 10 mit IceCast und Ices

Im folgenden Tutorial wird erläutert, wie Sie einen IceCast-Radio-Streaming-Server einrichten und Audiodateien (Musik oder Podcasts) auf der FreeBSD-Plattform abspielen. Diese Tutoria

So installieren Sie Omeka Classic 2.4 CMS auf einem FreeBSD 11 FAMP VPS

So installieren Sie Omeka Classic 2.4 CMS auf einem FreeBSD 11 FAMP VPS

Verwenden Sie ein anderes System? Omeka Classic 2.4 CMS ist eine kostenlose Open-Source-Plattform für digitales Publizieren und Content Management System (CMS) für den Austausch von Digita

So sichern Sie FreeBSD mit der PF Firewall

So sichern Sie FreeBSD mit der PF Firewall

Dieses Tutorial zeigt Ihnen, wie Sie Ihren FreeBSD-Server mithilfe der OpenBSD PF-Firewall schützen. Wir gehen davon aus, dass Sie eine saubere FreeBSD-Installation bereitgestellt haben. B.

So installieren Sie WonderCMS unter FreeBSD 12

So installieren Sie WonderCMS unter FreeBSD 12

Verwenden Sie ein anderes System? WonderCMS ist ein Open Source, schnelles und kleines Flatfile-CMS, das in PHP geschrieben wurde. WonderCMS-Quellcode wird auf Github gehostet. Dieser Leitfaden wird

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.