Jump to content
Froxlor Forum

Search the Community

Showing results for tags 'Postfix'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Froxlor
    • Announcements
    • Feedback
    • Development
    • Bugs and Feature Requests
    • Trashcan
  • Support
    • General Discussion
  • Other Languages
    • German / Deutsch

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 5 results

  1. Ich hab noch gaaanz alte Systeme (+10 Jahre) am Start und wollte nicht auf dovecot umstellen. Falls jemand danach suchen sollte, die "alte" Kombination von Programmen ist weiter nutzbar, wenn angepasst (Debian 9+). Hintergrund: froxlor speichert in seiner DB die Passwörter nach konfiguration als password und password_enc ab, letzteres ist verschlüsselt. Der hash lässt erkennen, womit gearbeitet wurde - ein einfacher String ist ein Uralt-crypt-Passwort, aktuell sollte sowas wie $5$ am Anfang stehen, was auf SHA-256 verweisst. Werden die Klartextpasswörter gelöscht, ist die alte Konfiguration nicht mehr verwendbar. Wäre aber mal sinnvoll, die rauszuwerfen. Folgendes ist anzupassen: /etc/courier/authmysqlrc: MYSQL_USER_TABLE mail_users MYSQL_CRYPT_PWFIELD password_enc #MYSQL_CRYPT_PWFIELD crypt Damit wird courier angewiesen, für pop und imap verschlüsslte PW auszulesen. Die SHA-256 lib ist bei Debian inclusive. crypt fliegt raus. Fertig ist der Mailabruf. Tricky ist die Anpassung von postfix. Die dort benutzte Bibliothek für sasl hat Einschränkungen und ist der letztlich der Grund für Probleme. Lässt sich beheben mit folgender /etc/postfix/sasl/smtpd.conf: pwcheck_method: authdaemond authdaemond_path: /run/courier/authdaemon/socket mech_list: plain login In der Datei stand vorher pwcheck_method: auxprop mit sql plugin drin. Das Problem ist: auxprop kann nur Klartext. Aber dafür erlaubt auxprop die Verwendung von cram-md5 und digest-md5 zum hashen auf Clientseite, früher war daher die mech_list um diese beiden ergänzt. Bedeutet: der Client verbindet sich unverschlüsselt und ohne TLS, aber hasht noch auf dem Clientsystem das Passwort mit md5 und übermittelt dann nur den hash über den unverschlüsselten Kanal. Bei TLS kann man sich das sparen - erst wird der Kanal abgesichert, dann kann das PW unverschlüsselt geschickt werden und wird auf Serverseite gehasht und dann verglichen - das erledigt der authdaemond. auxprop kann das nicht. Die Mechlist wird dem Client übermittelt. Ganz alte Accounts haben evtl. noch Clienthashes und kein SSL eingeschaltet, die müssen dann umstellen auf STARTTLS mit Klartext - gilt aber nur für den Mailversand. Klartext bedeutet wie gesagt nur, das der Thunderbird/Outlook/etc. das Passwort ungehasht schickt, der authdaemond hasht das und vergleicht dann diesen hash mit dem in der froxlor Datenbank - da steht aber nix mehr im Klartext drin. Passwort-Wechsel ist für die User über Roundcube wie gewohnt möglich. In der DB könnt ihr sehen wie der Hash sich ändert.
  2. Guten Morgen, mir ist in Froxlor ein kleiner Fehler in Bezug auf CatchAll Email aufgefallen. Zum System: Debian 10, 64-Bit Froxlor 0.10.11 Postfix, Dovecot, Spamc Zum Problem: Beim Anlegen einer neuen E-Mailadresse kann man je Domain nur eine CatchAll-Adresse definieren. Wenn man jedoch eine bestehende E-Mailadresse bearbeitet, kann man dort ganz einfach auf CatchAll umschalten. Dadurch kann es passieren, dass mehrere Emailadressen unterhalb einer Domain als CatchAll definiert sind. Das ist mir erst aufgefallen, als ich E-Mails in meinem Postfach hatte, welche nicht für meine E-Mailadresse bestimmt waren. Da auf dem Account in Froxlor mehrer Nutzer zugreifen (Feuerwehr) und E-Mailadressen hinzufügen, ändern und auch löschen - habe ich erst sehr spät gesehen das mehrere CatchAll vorhanden waren. Wenn man eine Mail an eine E-Mailadresse sendet, welche als CatchAll definiert wurde, wird die Mail auch an alle anderen E-Mailadressen weitergeleitet, die unterhalb der Domain als CatchAll definiert sind.(Jedenfalls bei postfix) Temporäre Lösung: Damit eingehende Mails an eine vorhandene E-Mailadresse, welche als CatchAll definiert ist, auch nur im Postfach dieser E-Mailadresse landen, habe ich die SQL-Anweisung in der "mysql-virtual_alias_maps.cf" wie folgt abgeändert: query = SELECT destination FROM mail_virtual AS v, panel_customers AS c WHERE c.customerid = v.customerid AND c.deactivated = 0 AND (v.email = '%s' OR v.email_full = '%s') AND trim(v.destination) <> '' Ich habe das eben auch noch einmal in der Demoversion ausprobiert, Screenshot im Anhang. Gruß
  3. 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 ) 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 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 ) 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...)
  4. Hi everyone, just a little problem here. I have severa domains registered on my froxlor installation and a different hostname of course. So let's say domain1.de is my hostname. The second domain, which is used by a customer is called domain2.de . When I view the mail.log I am not able to find my connection request. I do only see the bruteforce bots with example@domain1.de connecting. But any example@domain2.de request is not getting forwareded. I did configure the installation accordingdly with the provided templates. Best regards, thunfischbaum
  5. Hi everyone, I'm running a Debian 10 Buster Server with PHP7.3 installed. The PHP7.3 update is the new component in the system. since then, I can't find any Mailboxes. There are no folders in the var/customers/mail/[customer] directory. If you take look at the Screenshot, you see, that the E-Mail adress is existent in Froxlor. Mail Bounce Mail Log If I missed a log, please let me know, so I can attach it Best regards, thunfischbaum
×
×
  • Create New...