Jump to content
Froxlor Forum
  • 0
lonesomewalker

Postfix und Courier mit TLS und SSL und Antispam (also STARTTLS, IMAPS, POP3S und DNSBL) unter Debian

Question

Hallo zusammen,

 

nachdem die Default-Installation ja ein wenig mager in Sachen Verschlüsselung ist, habe ich die Freiheit von Froxlor genutzt, um ein paar Anpassungen vorzunehmen.

 

Die hier gezeigten Config-Files erheben keinerlei Anspruch auf Vollständigkeit, sollten jedoch ein gutes Grundgerüst dafür geben, was möglich ist.

(und um Verbesserungen/Korrekturen wird dringendst gebeten :ph34r: )

 

Also, Postfix und Courier wurden über die vorgeschlagenen Paketabhängigkeiten von Froxlor installiert und die Konfigurationsdateien wurden entsprechend der Vorgaben aus Froxlor befüllt.

Diese mögen für eine 0815-Installation durchaus ausreichend sein; wir möchten jedoch ein wenig mehr rauskitzeln :rolleyes:

 

Bitte beachten: alle Kommandos werden als root ausgeführt; sollte jemand untypischerweise sudo verwenden, so sollte der auch wissen, wie die einzelnen Befehle abzuändern sind.

(brrrr, sudo :P )
 

Als Erstes nehmen wir uns Postfix vor.

Der soll ja in Zukunft ordentlich STARTTLS oder SMTPS machen (ich schreibe bewußt BEIDES).

Hierzu brauchen wir also als Allererstes ein paar Voraussetzungen erfüllt, damit das dann auch alles zusammenpaßt.

cat /etc/hostname

und ein

cat /etc/mailname

sollten auf der Konsole beide Male den FQDN ausspucken.
FQDN = full qualified domain name, also sowas wie: servername.domain.tld
Das hat den Hintergrund, daß wir nicht einfach Emails rejecten können, wenn unser System selbst sich nicht ordnungsgemäß ausweist.

Bitte bei Diskrepanzen den jeweiligen Inhalt korrigieren.

 

Zertifikat

 

So, dann wollen wir erst mal ein entsprechendes Zertifikat generieren, welches uns dann die notwendigen Files ausspuckt; ich bevorzuge 4096 Bit, kann aber jeder machen, wie er will:

mkdir /etc/postfix/ssl

cd /etc/postfix/ssl/

openssl genrsa -des3 -rand /dev/urandom -out smtpd.key 4096

Jetzt kommen da ein paar Fragen, die Ihr ordnungsgemäß beantworten solltet:

root@debian:/etc/postfix/ssl# openssl genrsa -des3 -rand /dev/urandom -out smtpd.key 4096
351 semi-random bytes loaded
Generating RSA private key, 4096 bit long modulus
...................................................................................++
..............++
e is 65537 (0x10001)
Enter pass phrase for smtpd.key: (hier ein sehr gutes Kennwort eingeben, in Zukunft referenziert als CERTKEY)
Verifying - Enter pass phrase for smtpd.key: (CERTKEY wiederholen)
root@debian:/etc/postfix/ssl#

Das ist jetzt unser Master-Key, von dem wir in Zukunft alles ableiten; erst mal nur für root zugänglich machen:

chmod 600 smtpd.key

Nun ein Cert, welches 10 Jahre gültig ist; zuerst den CSR:

openssl req -new -key smtpd.key -out smtpd.csr -sha256

Enter pass phrase for smtpd.key: (CERTKEY eingeben)
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: (hier den ISO-Code Eures Landes)
State or Province Name (full name) [Some-State]: (Euer Bundesland/Kanton)
Locality Name (eg, city) []: (Eure Heimatstadt oder den Serverstandort)
Organization Name (eg, company) [Internet Widgits Pty Ltd]: (Firmenname oder Euer Clan, oder wasauchimmer)
Organizational Unit Name (eg, section) []: (EDV, oder IT, oder irgendeine Sub-Kategorie zu Firma/Clan...)
Common Name (e.g. server FQDN or YOUR name) []: (hier den FQDN - Servernamen)
Email Address []: (Eure Mailadresse)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: (leer lassen)
An optional company name []: (einfach das Gleiche wie oben bei Firma eingeben)

... dann das Signieren:

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt -sha256

Signature ok
subject=/C=EuerLand/ST=Bundesland/L=EureStadet/O=EureFirmaoderClan/OU=IT/CN=euerfqdnservername/emailAddress=euremailadresse
Getting Private key
Enter pass phrase for smtpd.key: (CERTKEY eingeben)

kurz encrypten, um später zwar etwas weniger Sicherheit, dafür aber mehr Komfort zu gewinnen (Thema Neustart...)

openssl rsa -in smtpd.key -out smtpd.key.unencrypted

Enter pass phrase for smtpd.key: (CERTKEY eingeben)
writing RSA key

mv -f smtpd.key.unencrypted smtpd.key

...und dann das Publizieren:

openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Generating a 2048 bit RSA private key
................................+++
................................+++
................................+++
................................+++
writing new private key to 'cakey.pem'
Enter PEM pass phrase: (CERTKEY eingeben)
Verifying - Enter PEM pass phrase: (CERTKEY eingeben)
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: (gleiche Informationen wie oben...)
State or Province Name (full name) [Some-State]: (gleiche Informationen wie oben...)
Locality Name (eg, city) []: (gleiche Informationen wie oben...)
Organization Name (eg, company) [Internet Widgits Pty Ltd]: (gleiche Informationen wie oben...)
Organizational Unit Name (eg, section) []:(gleiche Informationen wie oben...)
Common Name (e.g. server FQDN or YOUR name) []: (gleiche Informationen wie oben...)
Email Address []: (gleiche Informationen wie oben...)

Zugegeben, den Schlüssel unencrypted zu speichern ist nicht die feine englische Art. Das kann jeder für sich selbst entscheiden.

 

So, jetzt haben wir erst mal die Hausaufgaben für Postfix gemacht.

 

Courier

 

Zwischendrin kümmern wir uns noch um unseren IMAP-Server. In der Standard-Installation von froxlor ist da ja nur IMAP und POP3, wir wollen da aber mit SSL arbeiten.
M?ssen wir also noch ein paar Pakete nachinstallieren:

dpkg --get-selections | grep courier

Aha, da fehlen die Pakete courier-*-ssl, welche wir mit:

apt-get install courier-imap-ssl courier-pop-ssl courier-ssl gamin

nachinstallieren; es kommt dabei ein Hinweis auf SSL, dort einfach auf OK klicken.

 

So, jetzt haben wir uns so viel Mühe gemacht, Postfix ein hübsches Zertifikat mitzugeben, und jetzt schiebt uns Courier 2x 0815 unter.
Also, erst mal die beiden Snakeoil-PEM's löschen:

rm /etc/courier/*.pem

Jetzt müssen wir aber eigene generieren.

Hierzu werden die Dateien: imapd.cnf und pop3d.cnf entsprechend angepaßt:

RANDFILE = /usr/lib/courier/imapd.rand

[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
default_md = sha1

[ req_dn ]
C=(Euer Land)
ST=(Euer Bundesland/Kanton)
L=(Eure Stadt)
O=Courier Mail Server
OU=Automatically-generated IMAP SSL key
CN=(Euer FQDN-Servername)
emailAddress=(Eure Emailadresse)

[ cert_type ]
nsCertType = server

Bitte die gleichen Werte wie auch schon beim Postfix verwenden.

 

Mit einem:

mkimapdcert && mkpop3dcert

erhaltet Ihr anders als beim Postfix je ein Zertifikat für IMAP und POP3, jedoch ist dieses nur für 1 Jahr gültig.

Damit Courier die Verbindungen in Zukunft also verschl?sselt, ein:

service courier-imap-ssl restart && service courier-pop-ssl restart

Tada, Courier versteht IMAP jetzt auch auf Port 993 und POP3 auf Port 995.
Generell lassen sich die Ports vom Courier aber auch auf beliebige Werte anpassen, sofern sie nicht in Konflikt mit bereits belegten Ports kommen.
Die Anpassung können in den Dateien:

/etc/courier -> pop3d-ssl, imapd-ssl > SSLPORT=XXX
und
/etc/courier -> pop3d, imapd > PORT=XXX

vorgenommen werden.

Postfix

 

Ich gehe davon aus, daß die entsprechenden Konfigurationen im Backend von froxlor gemacht wurden, d.h. eine Verbindung von Postfix zur froxlor-Datenbank funktioniert.

Den Schritt von froxlor, mx-access, kann jeder nach Bedarf dazu ergänzen, ich bin kein Freund davon.

 

Also, im Schritt 1 ändern wir die /etc/postfix/main.cf ab, damit sie inhaltlich ungefähr dem hier entspricht:
(interessante Stellen wurden mit # kommentiert)

 

main.cf:

command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix

# hier sollte der wirkliche Namen des Servers stehen
myhostname = {{ FQDN des Servers }}
mydomain = {{ FQDN des Servers }}

# ah, genau, da steht der FQDN auch noch mal drin, theoretisch lie?e sich das alles zusammenfassen;
# aus der Praxis hat sich aber gezeigt, da? es hier aber zu undefinierbaren Problemen kommen kann...
# Anpassungen daher auf eigene Gefahr
myorigin = /etc/mailname

# wir lauschen auf allen Netzwerkkarten
inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8
smtpd_banner = $myhostname ESMTP $mail_name

debugger_command =
	 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
	 ddd $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail 
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix
readme_directory = /usr/share/doc/postfix

# ich beschränke meinen Postfix im Moment noch auf IPv4, kann aber jeder entscheiden, wie er will...
inet_protocols = ipv4

append_dot_mydomain = no
biff = no

#####--- Anti-Spam start ---#####
smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
invalid_hostname_reject_code = 554
multi_recipient_bounce_reject_code = 554
non_fqdn_reject_code = 554
relay_domains_reject_code = 554
unknown_address_reject_code = 554
unknown_client_reject_code = 554
unknown_hostname_reject_code = 554
unknown_local_recipient_reject_code = 554
unknown_relay_recipient_reject_code = 554
unknown_virtual_alias_reject_code = 554
unknown_virtual_mailbox_reject_code = 554
unverified_recipient_reject_code = 554
unverified_sender_reject_code = 554

smtpd_sender_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_non_fqdn_sender,reject_unknown_helo_hostname,reject_unknown_recipient_domain,reject_unknown_sender_domain

# bitte hier beachten: DNSBL sind mit Vorsicht zu genie?en
# zum Einen entscheidet die Reihenfolge
# (manche RBL-Anbieter lassen nur x queries/Tag zu, daher besser vorher schon ordentlich Spam wegputzen)
# und zum Anderen das Vertrauen in den jeweiligen Anbieter
# UCEPROTECT z.B. wird von vielen sehr kritisch betrachtet;
# ich f?r meinen Teil kann deren Vorgehen jedoch nur unterst?tzen
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_rbl_client ix.dnsbl.manitu.net,reject_rbl_client bl.spamcop.net,reject_rbl_client multi.surbl.org,reject_rbl_client dnsbl-1.uceprotect.net,reject_rbl_client cbl.abuseat.org,reject_rbl_client combined.rbl.msrbl.net,reject_rbl_client b.barracudacentral.org,reject_invalid_hostname,reject_non_fqdn_hostname,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_sender_domain,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unauth_destination,reject_unlisted_recipient

smtpd_helo_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_non_fqdn_hostname,reject_invalid_hostname,reject_unauth_pipelining

smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_client_hostname

# die Mailgröße darf jeder selbst bestimmen; ich für meinen Teil habe hier 1/4 GB...
message_size_limit = 268435456

## SASL Auth Settings
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
# Zusatz-Setting, bei Problemen bitte mit einer Raute auskommentieren
smtpd_sasl_authenticated_header = yes

# Virtual delivery settings
virtual_mailbox_base = /var/customers/mail/
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf

# Das ist per Default aktiv; wenn man so wie ich Kunden hat, die verschiedene Konten haben, aber über EIN Absendekonto alles rauspusten
# (Stichwort Exchange und Smarthost mit single-auth)
# Wenn das bei Euch nicht der Fall ist, einfach auskommentieren!
# smtpd_sender_login_maps = mysql:/etc/postfix/mysql-virtual_sender_permissions.cf

virtual_uid_maps = static:2000
virtual_gid_maps = static:2000
local_transport = local
alias_maps = $alias_database
mailbox_size_limit = 0
virtual_mailbox_limit = 0

### TLS settings
###
## TLS for outgoing mails from the server to another server
smtp_use_tls = yes
smtp_tls_security_level = may
smtp_tls_note_starttls_offer = yes
## TLS for email client
smtpd_use_tls = yes
smtpd_tls_auth_only = no
smtpd_tls_security_level = may
# hier sind unsere ganzen Zertifikats-Sachen, die wir zuvor generiert haben
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

# hier die Haupt-IP vom Server; bei mehreren IP's wichtig wegen SPF und Co...
smtp_bind_address = xxx.xxx.xxx.xxx

Bei der nächsten Datei liste ich nur die 2 Settings, die entkommentiert werden können.
Ich habe BEIDE aktiv, theoretisch reicht eines aus.
Die meisten bevorzugen submission, ich habe aber auch Anwendungsfälle, in denen smtps benötigt wird...

 

master.cf:

submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING

smtps     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING

Nachdem die beiden Dateien modifiziert worden sind, heißt es nur noch, dem Postfix die neue Konfiguration bekannt zu machen:

service postfix reload

Manchmal kann es sein, daß es mit einem freundlichen reload nicht klappt, dann einfach ein:

service postfix restart

(Achtung, dabei können dann Emails verschütt gehen...!

 

So, jetzt sollte auch unser Postfix auf Port 587 (submission) und auf Port 465 (smtps) lauschen, und wenn wir mittels telnet eine Session zum Server öffnen:

telnet localhost 25

und uns dann mal mit:

ehlo localhost

bemerkbar machen, dann sollten wir ein:

root@debian:~# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 EUER FQDN ESMTP Postfix
ehlo localhost
250-euer-fqdn
250-PIPELINING
250-SIZE 268435456
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5
250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

zurückbekommen, welches wir mit einem quit und dem Drücken der Enter-Taste verlassen.

 

 

So, Verbesserungsvorschläge/Korrekturen herzlich willkommen.
(ich weiß, gehört eigentlich ins Wiki; aber das war ja auch kürzlich schon mal offline...)

 

Dovecot habe ich in diesem Fall außen vor gelassen, da ich persönlich zwar schon die Vorteile von Dovecot sehe, aber auch die ständigen Probleme mit den Konfigurationen.
(aber wer weiß, vielleicht ergänze ich das dann ja noch...)

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Perfekt, genau die Anleitung die ich eben gesucht habe.

 

Für Vergessliche - wie mich - die courier Zertifikatserneuerung noch schnell automatisiert:

 

- Script anlegen:

/root/scripts/renew_courier_cert

rm /etc/courier/*.pem
mkimapdcert && mkpop3dcert
service courier-imap-ssl restart && service courier-pop-ssl restart
service postfix reload

- und den passenden cron eintragen:

0 0 1 1 * /root/scripts/./renew_courier_cert

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By irisdina
      Warning, this is not an official guide!!!
      1.
      sudo nano /etc/apt/source.list 1a. Delete all Text in to the File and Paste new Source list
      1b. 
      ###### Debian Main Repos deb http://ftp.de.debian.org/debian/ stable main contrib non-free deb-src http://ftp.de.debian.org/debian/ stable main contrib non-free deb http://ftp.de.debian.org/debian/ stable-updates main contrib non-free deb-src http://ftp.de.debian.org/debian/ stable-updates main contrib non-free deb http://security.debian.org/ stable/updates main deb-src http://security.debian.org/ stable/updates main deb http://ftp.debian.org/debian stretch-backports main deb-src http://ftp.debian.org/debian stretch-backports main ###### Extra Repos ###Debian Multimedia deb [arch=i386,amd64] http://www.deb-multimedia.org stretch main non-free ###nginx deb [arch=amd64,i386] http://nginx.org/packages/debian/ stretch nginx deb-src [arch=amd64,i386] http://nginx.org/packages/debian/ stretch nginx ###php7.X | curl https://packages.sury.org/php/apt.gpg | apt-key add - deb https://packages.sury.org/php/ $(lsb_release -sc) main ### MariaDB 10.3 ### http://downloads.mariadb.org/mariadb/repositories/ deb [arch=amd64,i386,ppc64el] http://ftp.hosteurope.de/mirror/mariadb.org/repo/10.3/debian stretch main deb-src http://ftp.hosteurope.de/mirror/mariadb.org/repo/10.3/debian stretch main 1c. 
      sudo apt update && sudo apt dist-upgrade && sudo apt autoclean && sudo apt autoremove 1d. 
      sudo apt install curl wget apt-transport-https dirmngr git software-properties-common Now you can start setting up your server
      2. MariaDB install
      Warning use sudo command für this install!
      sudo apt install mariadb-server mariadb-client 2a. MariaDB 10.3 Workround (Optional)
      3. nginx install
      sudo apt install nginx 3a. 
      mkdir /etc/nginx/sites-available mkdir /etc/nginx/sites-enabled 3b. nano /etc/nginx/nginx.conf
      4. PHP install
      sudo apt-get -y install php7.3-fpm php7.3-mysql php7.3-curl php7.3-gd php7.3-intl php-pear php-imagick php7.3-imap php-memcache php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl php7.3-mbstring php-gettext php7.3-mysql php7.3-curl php7.3-gd php7.3-intl php-pear php-imagick php7.3-imap php-memcache php7.3-memcached php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl php7.3-mbstring php-gettext php7.3-fpm php7.3-cli php7.3-cgi php-bcmath php-zip php7.3-fpm php7.3-curl php7.3-gd php7.3-mysql php7.3-mbstring php7.3-zip php7.3-bcmath zip unzip 4a. 
      sudo service nginx restart sudo service php7.3-fpm restart For Ubuntu (Cosmic)
      1. sudo nano /etc/apt/source.list
      1a. Delete all Text in to the File and Paste new Source list
      1b. 
      ###### Ubuntu Main Repos deb http://de.archive.ubuntu.com/ubuntu/ cosmic main restricted universe multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ cosmic main restricted universe multiverse ###### Ubuntu Update Repos deb http://de.archive.ubuntu.com/ubuntu/ cosmic-security main restricted universe multiverse deb http://de.archive.ubuntu.com/ubuntu/ cosmic-updates main restricted universe multiverse deb http://de.archive.ubuntu.com/ubuntu/ cosmic-proposed main restricted universe multiverse deb http://de.archive.ubuntu.com/ubuntu/ cosmic-backports main restricted universe multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ cosmic-security main restricted universe multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ cosmic-updates main restricted universe multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ cosmic-proposed main restricted universe multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ cosmic-backports main restricted universe multiverse # MariaDB 10.3 repository list - created 2019-01-25 21:01 UTC # http://downloads.mariadb.org/mariadb/repositories/ deb [arch=amd64] http://ftp.hosteurope.de/mirror/mariadb.org/repo/10.3/ubuntu cosmic main deb-src http://ftp.hosteurope.de/mirror/mariadb.org/repo/10.3/ubuntu cosmic main 1c. Key install 
      sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 1d. PPA (https://askubuntu.com/questions/4983/what-are-ppas-and-how-do-i-use-them/4987#4987) 
      sudo add-apt-repository ppa:nginx/development sudo add-apt-repository ppa:ondrej/php 1e. 
      sudo apt update && sudo apt dist-upgrade && sudo apt autoclean && sudo apt autoremove 2. MariaDB install
      Warning use sudo command für this install!
      sudo apt install mariadb-server mariadb-client 2a. MariaDB 10.3 Workround (Optional)
      3. nginx install
      sudo apt install nginx Froxlor install
      There are two ways to get Froxlor. Stable (wget) and Beta Build (git / Master)
      Stable Version
      1. 
      cd /var/www/html/ 1a. 
      sudo https://files.froxlor.org/releases/froxlor-latest.tar.gz && sudo tar xzfv froxlor-latest.tar.gz or
      Git Version (Beta Version)
      sudo git clone https://github.com/Froxlor/Froxlor.git If you're using the git version, you still need to load the composer > Composer.phar and Read this for install Do not run Composer with root/super user
      1a(2). Composer install in your Froxlor directory
      composer install --no-dev 1b. 
      sudo chown -R www-data:www-data Froxlor/ Set up Froxlor
      2. Open Your Browser
      2a.
      http://your IP or Hostname/Froxlor
       

      Install Froxlor finish
       3d. Move userdata (Optional) 
      sudo mv /tmp/userdata.inc.php /var/www/html/Froxlor/lib/ 2c. 
      sudo rm /etc/nginx/site-enable/default don't restart nginx!
      Froxlor Settings
      1. Cronjob
      sudo nano /etc/cron.d/froxlor insert 
      # # Set PATH, otherwise restart-scripts won't find start-stop-daemon # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # # Regular cron jobs for the froxlor package # # Please check that all following paths are correct # */5 * * * * root /usr/bin/nice -n 5 /usr/bin/php -q /var/www/html/Froxlor/scripts/froxlor_master_cronjob.php sudo chmod 0640 "/etc/cron.d/froxlor" sudo chown root:0 "/etc/cron.d/froxlor" sudo service cron restart 2. Nginx PHP Backend
      Settings > Webserver settings > Nginx PHP backend
      from 127.0.0.1:8888 to unix:/run/php/php7.3-fpm.sock
      3. 
      sudo mkdir -p /var/customers/webs/ sudo mkdir -p /var/customers/logs/ sudo mkdir -p /var/customers/tmp sudo chmod 1777 /var/customers/tmp sudo service nginx restart 4. IPs and Ports > Add IP/Port

      2a(1), SSL Port



      Wait 5min for Autimatic Start Froxlor's cronjob or start the cronjob manually
      sudo php /var/www/html/Froxlor/scripts/froxlor_master_cronjob.php --force --debug Optional
      PHP-FPM activate
      1. User/Group add
      sudo adduser froxlorlocal --disabled-password --no-create-home && sudo usermod -a -G www-data froxlorlocal 2. libnss-extrausers install 
      sudo apt install nscd libnss-extrausers sudo mkdir -p /var/lib/extrausers sudo touch /var/lib/extrausers/{passwd,group,shadow} sudo mv "/etc/nsswitch.conf" "/etc/nsswitch.conf.frx.bak" sudo nano /etc/nsswitch.conf # Make sure that `passwd`, `group` and `shadow` have mysql in their lines # You should place mysql at the end, so that it is queried after the other mechanisams # passwd: compat extrausers group: compat extrausers shadow: compat extrausers hosts: files dns networks: files dns services: db files protocols: db files rpc: db files ethers: db files netmasks: files netgroup: files bootparams: files automount: files aliases: files sudo service nscd restart sudo nscd --invalidate=group 2a. Settings > System settings > Activate > Use libnss-extrausers instead of libnss-mysql

      3. Settings > PHP-FPM > Activated:
      Change from NO to YES
      3a. PHP-FPM versions
      Change > php-fpm restart command:
      service php7.3-fpm restart and
      Configuration directory of php-fpm: > to 
      /etc/php/7.3/fpm/pool.d/ 3b. Settings > Froxlor VirtualHost settings > Activate > Enable PHP-FPM for the Froxlor vHost

      3c. 
      sudo chown -HR froxlorlocal:froxlorlocal /var/www/html/Froxlor SSL / Let's Encrypt activate
      1.
      sudo apt install certbot 1a. 
      sudo mkdir /etc/nginx/ssl && cd /etc/nginx/ssl 1b. Create SSL File
      sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt 1c. 
      sudo nano /etc/nginx/acme.conf insert
      location /.well-known/acme-challenge { alias /var/www/html/Froxlor/.well-known/acme-challenge; location ~ /.well-known/acme-challenge/(.*) { default_type text/plain; } }  
      2. Open your  Froxlor Panel
      Settings> SSL > Activated:
      Change from NO to YES
      2a. Settings > SSL > Settings
      Change your path from your certificate / Keyfile
      Path to the SSL certificate
      insert
      /etc/nginx/ssl/nginx.crt Path to the SSL Keyfile
      insert
      /etc/nginx/ssl/nginx.key 2b. Settings > SSL > Settings
      Activate > Enable Let's Encrypt

      Change Path to the acme.conf snippet to > 
      /etc/nginx/acme.conf 2c. Activate on Settings > Froxlor VirtualHost settings
      - Enable Let's Encrypt for the froxlor vhost
      - Enable SSL-redirect for the froxlor vhost
      - HTTP Strict Transport Security (HSTS)
      - Include HSTS for any subdomain






      2d. Activated HTTP2 Support on > Settings > Nginx
       
    • Guest
      By Guest
      in der config-Datei steht
       
      was für eine valid e-mail Adresse muss das sein ?  diese root@frx.beispiel.de ist ja bisher nicht eingerichtet und packt systemmeldungen in ein verzeichnis

      sollte dort also eine mailadresse rein, die auf einem anderen Server liegt und Mails empfängt, oder sollte/könnte diese root@beispiel.de im froxlor eingerichtet sein ?
    • By princeofnaxos
      After migrating from syscp, all SSL hosts have empty host files. A comment is there, saying "# no ssl-certificate was specified for this domain, therefore no explicit vhost is being generated".
      Looking in lib/Froxlor/Cron/Http/Apache.php, I see that $domain['ssl_cert_file'] must be empty in order to get that message. But where in the domain form should I enter the certificate's filename? There is nothing under "Webserver SSL settings" that looks like that.
       
    • By FearTheDude
      Folgende Situation:
      Ich betreibe einen vServer mit Froxlor als Hostingpanel
      Der docroot von meinedomain.tld liegt unter /var/customers/webs/meinAccount
      Eine SSL Weiterleitung wurde auf meinedomain.tld eingerichtet
      Kunden verwenden ein paar vorinstallierte tools (Webmailer, DB Frontend, Froxlor Panel) über toolname.meinedomain.tld
      Die Tools liegen nicht im docroot von meinedomain.tld sondern unter /var/www/toolname
      Folgendes Problem:
      Die SSL Weiterleitung von http auf https bei der Hauptdomain meinedomain.tld funktioniert nicht, es sei denn, man verwendet eine der Subdomains für die Tools
      Für meinedomain.tld wird anstatt /var/customers/webs/meinAccount der docroot /var/www verwendet
      Vorübergehende Lösung:
      Die Prüfung, ob mod_rewrite in der NN_froxlor_normal_vhost_meinedomain.tld.conf aktiv ist, entfernen
      <IfModule !mod_rewrite.c> Redirect 301 / https://meinedomain.tld/ </IfModule> Dann findet IMMER ein Redirect auf HTTPS statt, wobei hier auch der richtige docroot geladen wird.
      Nachteil:
      Sobald die Configs neu geschrieben werden, ist die Änderung weg.
      Fragen:
      Kann man die mod_rewrite prüfung für die SSL Weiterleitung irgendwo dauerhaft deaktivieren?
      Warum verwendet der vHost Container für http keinen bzw. den falschen docroot?
      Wie kann ich persistente Änderungen an den .conf Dateien für einen vHost vornehmen?
    • By Christian Vogel
      Ich habe Froxlor installiert und alle Konfigurationen ausgeführt. Dennoch kann ich nicht über Outlook oder Mail auf mein Imap Konto zugreifen. 
      Im syslog sehe ich
      Sep 10 10:11:51 vserver3130 dovecot: imap-login: Aborted login (no auth attempts in 0 secs): user=<>, rip=87.191.51.26, lip=109.73.50.135, session=<uGoEloF1eIxXvzMa>
      postconf -d und dovecot -n hab ich als Textdatei angehängt.
      Habe auch schon etwas bei Google gesucht und hier im Forum die Suchfunktion bemüht - finde aber keine Lösung. Kann mir hier jemand helfen? Werden noch andere Infos benötigt für eine Lösung?
      Danke
      Christian
       
       
      dovecot.txt
      postconf.txt


×