On Sun, Aug 16, 2020 at 12:13:41AM +0200, Fabian M??ller wrote: > Hi! > > I am hopefully a new opensmtpd user and before I???ll start off with my first > newbie question I???d be happy to briefly introduce myself: I???m Fabian from > Germany. Actually I am studying german law, but as ??? in opposite to legal > work ??? anyone who wants to can ???do??? IT-stuff I???ve also been in IT > since I left school. Together with some friends I own a small IT-company > which makes me here and there a few bucks but is actually there more for the > fun rather than the profit. During shool-time I???ve already run a mailserver > (postfix + dovecot, but that actually doesn???t mean I???ve known anything > about mail ;)) but after we started offering services to businesses we > somehow switched over to an all in one solution (plesk). > > As those AiO-solutions sucks because they are a blackbox and debugging is a > nightmare we've decided to do hosting ourself again. And as I am the only one > of us who is motivated to dive into mail, it became my part. So after some > days googeling around and spending a serious amount of time on youtube > watching mail-server-congress-talks I decided to go with a setup including > opensmtpd rather than postfix. As the best way to start with something is to > start trying I span up a few cloud-servers and started trying. As expected I > ran into problems but ??? not expected ??? reading the man and googeling > around couldn't solve them. > > So that's how I ended up here, hoping for your help! > > # General Setup > 1. OpenSMTPD (tables via mysql, delivering via lmtp) > 2. Dovecot (not yet set up) > 3. MariaDB Galera Cluster as Backend-Database > > # The Problem > I'm getting the following error and can't connect to port 25 from outside > world (telnet port 25).
Are you sure your ISP isn't blocking you? Can you connect to a non standard port or the submission port from outside? listen on egress port 5000 telnet yourhost.com 5000 > > > Aug 15 23:17:25 mx01 smtpd[32458]: info: OpenSMTPD 6.0.3-portable starting > > Aug 15 23:17:25 mx01 smtpd[32462]: warn: table-proc: pipe closed > > Aug 15 23:17:25 mx01 smtpd[32462]: lookup: table-proc: exiting > > Aug 15 23:17:25 mx01 smtpd[32459]: smtpd: process lka socket closed > Is mysqld up and running? Have you verified from the command line that your username and password are correct? mysql --user=username --password=password dbase > # Host-System > OS: Debian 10 > OpenSMTPd: 6.0.3p1-5+deb10u4 > Openssmtpd-extras: 5.7.1-4+b2 > > # /etc/smtpd.conf > > # Variablen setzen > > ipv4addr = [removed for privacy] > > hostn = mx01.[removed for privacy] > > > > # komprimiert die Warteschlange, verschl??sselt sie und l??scht nach 4 > > Stunden (optional) > > #queue compression > > #queue encryption key "[removed for privacy]" > > #expire 4h > > > > # Zertifikate hinzuf??gen > > pki mx01.[removed for privacy] certificate "/etc/ssl/mx01.[removed for > > privacy].crt" > > pki mx01.[removed for privacy] key "/etc/ssl/private/mx01.[removed for > > privacy].key" > > > > # Relevante Tabellen laden > > table domains mysql:/etc/mail/mysql.conf > > table credentials mysql:/etc/mail/mysql.conf > > > > # Zuh??ren > > listen on $ipv4addr port smtp tls > > listen on $ipv4addr smtps pki mx01.mx.itsmind.dev auth <credentials> > > listen on $ipv4addr port submission tls-require pki mx01.mx.itsmind.dev > > auth <credentials> > > > > # E-Mails annehmen und weitergeben > > accept from any for domain <domains> deliver to lmtp "mda1:24" > > accept for any relay > > # /etc/mail/mysql.conf > > host db.[removed for privacy] is your user allowed to connect to the host above? > > username [removed for privacy] > > password [removed for privacy] > > database [removed for privacy] > > > > query_credentials SELECT email, password FROM virtual_users WHERE email=?; > > query_domain SELECT name FROM virtual_domains WHERE name=?; > > query_userinfo SELECT uid,gid,maildir FROM virtual_users WHERE email=?; > > query_alias SELECT destination FROM virtual_aliases WHERE source=?; > > # Further explinations: What I've tried > First I guess the error has something to do with the mysql-stuff. > > But I am really really confused about the whole mysql-tables thing and can't > find a place where actually somebody explained (or documented) how it works. Have you tried: man table-mysql Perhaps its missing if so you can find it on github. > > In the beginning I thought it works like if I write > > > table domains mysql:/etc/mail/mysql.conf > > to the smtpd.conf the value domains is retrieved from what's stated after > > query_domains (query_domains because the name of the table is domains. So > from my guess table example would translate to query_example). > > Therefor I only had one line > > query_domain SELECT name FROM virtual_domains WHERE name=?; > > in my mysql.conf. I've also tried using $1 instead of ?. After every conf I > found in the internet (about 3) had query_credentials, query_domain, > query_userinfo and query_alias I thought those are fixed terms, so I included > them all in the mysql-config. > > > In conclusion I think what I am trying to achive is not too complex: > opensmtpd should > > 1. take e-mails on port 25, check via mysql if it's for a domain it is > responsible for and then forward via lmtp to dovecot which then takes care of > everything else (including rejecting unknown users). > 2. Authenticate users on port 465 and 587 against mysql and forward their > mails if successful. > > Later on I'd like to add rspamd and DKIM??? but one step at a time. > > I would be glad if anyone could shed some light on the whole mysql-hassle and > knows what prevents my opensmtpd from doing what I want it to do. > > Thank you in advance! > > Fabian Edgar