The executable error is occurring because the script is marked setuid instead of just executable. The message is incorrect -- I'll fix it in the next version. However (IIRC), I don't believe the setuid bit has any effect on scripts in Linux environments.
The encrypted authentication failure is not a problem, as long as your spamdyke configuration doesn't specify encryption in the "smtp-auth-level" option. spamdyke's "config-test" didn't find any problems with your TLS certificate but you're getting TLS errors when spamdyke actually runs... this looks like a permission problem to me. Try running spamdyke's "config-test" feature again with the "run-as-user" flag to force spamdyke to use the qmaild user instead. spamdyke will likely report it can't access the certificate file. -- Sam Clippinger David Bo Jensen wrote: > Running the config test gave me some ERRORS. I added access-file and > local-domains-file to my config file > in order to remove some of them. Here is my result but remember I was root. > > > :/etc# /usr/local/bin/spamdyke -l -f > /etc/spamdyke-smtps.conf --config-test-smtpauth-username > user --config-test-smtpauth-password password --config-test > /usr/sbin/qmail-smtpd 2>&1 > spamdyke 4.0.10+TLS+CONFIGTEST+DEBUG (C)2008 Sam Clippinger, samc (at) > silence (dot) org > http://www.spamdyke.org/ > > Use -h for an option summary or see README.html for complete option details. > > Testing configuration... > WARNING: Running tests as superuser root(0), group root(0). These test > results may not be valid if the mail server runs as another user. > SUCCESS: spamdyke binary (/usr/local/bin/spamdyke) is not owned by root > and/or is not marked setuid. > INFO: Running command to test capabilities: /usr/sbin/qmail-smtpd > SUCCESS: /usr/sbin/qmail-smtpd does not appear to offer TLS support. > spamdyke will offer, intercept and decrypt TLS traffic. > SUCCESS: /usr/sbin/qmail-smtpd does not appear to offer SMTP AUTH support. > spamdyke will offer and process authentication. > INFO(access-file): Testing file read: /etc/spam-relays > SUCCESS(access-file): Opened for reading: /etc/spam-relays > INFO(config-file): Testing file read: /etc/spamdyke-smtps.conf > SUCCESS(config-file): Opened for reading: /etc/spamdyke-smtps.conf > INFO(local-domains-file): Testing file read: /etc/qmail/rcpthosts > SUCCESS(local-domains-file): Opened for reading: /etc/qmail/rcpthosts > INFO(smtp-auth-level): Examining authentication command: /usr/bin/chkpw.sh > /bin/true > ERROR(smtp-auth-level): File is not executable: /usr/bin/chkpw.sh: Owner > permissions apply but owner executable bit is not set > Is this not good enough? > >>> -rwSr-x--- 1 root qmaild 38 2009-09-24 21:26 chkpw.sh >>> > > > INFO(smtp-auth-level): Running authentication command with unencrypted > input: /usr/bin/chkpw.sh /bin/true > SUCCESS(smtp-auth-level): Authentication succeeded with unencrypted input: > /usr/bin/chkpw.sh /bin/true > INFO(smtp-auth-level): Running authentication command with encrypted input: > /usr/bin/chkpw.sh /bin/true > ERROR: authentication failure (bad username/password, vchkpw uses this to > indicate SMTP access is not allowed): user > ERROR(smtp-auth-level): Authentication failed with encrypted input: > /usr/bin/chkpw.sh /bin/true > Is that a problem? I am using unencrypted login > > INFO(tls-certificate-file): Testing TLS by initializing SSL/TLS library with > certificate and key > SUCCESS(tls-certificate-file): Opened for reading: > /etc/ssl/certs/stunnel.pem > SUCCESS(tls-certificate-file): Certificate and key loaded; SSL/TLS library > successfully initialized > ERROR: Tests complete. Errors detected. > > > > When spamdyke runs as qmaild, my mail client tells me that the connection > was closed and in /var/log/mail.info I get > > > Sep 25 17:36:01 alleservices spamdyke[12289]: ERROR: unable to load SSL/TLS > certificate from file: /etc/ssl/certs/stunnel.pem : The operation failed due > to an I/O error, Unexpected EOF found, > error:0200100D:lib(2):func(1):reason(13), > error:20074002:lib(32):func(116):reason(2), > error:140DC002:lib(20):func(220):reason(2) > Sep 25 17:36:01 alleservices spamdyke[12289]: ERROR: incorrect SSL/TLS > private key password or SSL/TLS certificate/privatekey > mismatch/etc/ssl/certs/stunnel.pem : A protocol or library failure occurred, > error:140A80B1:lib(20):func(168):reason(177) > Sep 25 17:36:01 alleservices spamdyke[12289]: ERROR: unable to initialize > SSL/TLS library > Sep 25 17:36:01 alleservices spamdyke[12289]: ERROR: unable to start SMTPS > because TLS support is not available or an SSL/TLS certificate is not > available; closing connection > > > > This is very much the same errors I get if stunnel.pem is wrongly generated. > (ex. missing certificate) > > > > > > ----- Original Message ----- > From: "Sam Clippinger" <s...@silence.org> > To: "spamdyke users" <spamdyke-users@spamdyke.org> > Sent: Friday, September 25, 2009 5:54 PM > Subject: Re: [spamdyke-users] I can hardly make a SMTPS connection > > > >> OK, I guess I'll bite... why can't you replace `id -u root` with `id -u >> qmaild`? Do you get errors? Does it crash? Does it malfunction? I >> really want to help, but you're not giving enough information to work >> with. >> >> Have you tried running spamdyke's "config-test" feature to look for >> problems? >> >> -- Sam Clippinger >> >> David Bo Jensen wrote: >> >>> I solved the problem with >>> >>> server:/# cat /etc/spamdyke-smtps.conf >>> log-level=verbose >>> tls-level=smtps >>> tls-certificate-file=/etc/ssl/certs/stunnel.pem >>> filter-level=require-auth >>> smtp-auth-level=ondemand >>> smtp-auth-command=/usr/bin/chkpw.sh /bin/true >>> relay-level=normal >>> >>> please notice the "filter-level", further more I have >>> >>> server:/etc# cat tcp.smtps >>> :allow,RELAYCLIENT="" >>> >>> However I have another issue. First look at >>> >>> server:/etc/ssl/certs# ls -la stunnel.pem >>> -rw-r----- 1 root qmaild 2402 2009-09-23 10:03 stunnel.pem >>> >>> and /usr/bin >>> -rwxr-xr-x 1 root root 12360 2007-06-30 11:52 checkpassword >>> -rwSr-x--- 1 root qmaild 38 2009-09-24 21:26 chkpw.sh >>> >>> chkpw.sh is a wrapper for checkpassword >>> >>> In /etc/init.d/qmail >>> >>> sh -c "start-stop-daemon --start --quiet --user qmaild \ >>> --pidfile /var/run/tcpserver_smtpsd.pid --make-pidfile \ >>> --exec /usr/bin/tcpserver -- -R -H \ >>> -u `id -u root` -g `id -g nobody` -x /etc/tcp.smtps.cdb 0 >>> smtps >>> \ >>> $rblsmtpd2 /usr/sbin/qmail-smtpd 2>&1 \ >>> | $logger &" >>> >>> >>> ($rblsmtpd2 is spamdyke see the whole file below.) >>> I cannot replace `id -u root` with `id -u qmaild` why? It would be nice >>> if >>> spamdyke didn't have to run with root permissions for SSL connections. >>> I am using debian etch 2.6.18. Please also notice my other thread about >>> missing loggings for authentication. >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> server:/usr/bin# cat /etc/init.d/qmail >>> #!/bin/bash >>> # >>> # /etc/init.d/qmail : start or stop the qmail mail subsystem. >>> # >>> # Written by Christian Hudon <chr...@debian.org> >>> # Currently maintained by Jon Marler <jmar...@debian.org> >>> # >>> # Configuration >>> # >>> >>> >>> # set default delivery method >>> >>> #alias_empty="|/usr/sbin/qmail-procmail" # procmail delivery to >>> /var/spool/mail >>> alias_empty="./Maildir/" # This uses qmail prefered ~/Maildir/ >>> directory >>> # You may want to maildirmake >>> /etc/skel/Maildir >>> #alias_empty="./Mailbox" # This uses Mailbox file in users $HOME >>> >>> logger="splogger qmail 2" # facility mail == 2 >>> #logger="|accustamp >>/var/log/qmail.log" # If you have accustamp >>> installed. >>> #logger=">>/var/log/qmail.log" # Does not give timing info. >>> >>> # If you uncommented one of the lines that appends to /var/log/qmail.log, >>> you >>> # need to uncomment the following two lines. >>> #touch /var/log/qmail.log >>> #chown qmaill /var/log/qmail.log >>> >>> # If you want to use one or more of the Relay Black Lists, uncomment >>> # the appropriate lines. >>> >>> rblmsg= >>> rblsmtpd="/usr/local/bin/spamdyke -l -f /etc/spamdyke.conf" >>> rblsmtpd2="/usr/local/bin/spamdyke -l -f /etc/spamdyke-smtps.conf" >>> #rblmsg=" (with rblsmtpd)" >>> #rblsmtpd="/usr/bin/rblsmtpd -r list.dsbl.org -r relays.ordb.org" >>> >>> # >>> # End of configuration >>> # >>> >>> test -x /usr/sbin/qmail-start || exit 0 >>> test -x /usr/sbin/qmail-send || exit 0 >>> >>> case "$1" in >>> start) >>> echo -n "Starting mail-transfer agent: qmail" $rblmsg >>> sh -c "start-stop-daemon --start --quiet --user qmails \ >>> --exec /usr/sbin/qmail-send \ >>> --startas /usr/sbin/qmail-start -- \"$alias_empty\" >>> $logger >>> &" >>> # prevent denial-of-service attacks, with ulimit >>> ulimit -v 16384 >>> sh -c "start-stop-daemon --start --quiet --user qmaild \ >>> --pidfile /var/run/tcpserver_smtpd.pid --make-pidfile \ >>> --exec /usr/bin/tcpserver -- -R -H \ >>> -u `id -u qmaild` -g `id -g nobody` -x /etc/tcp.smtp.cdb 0 >>> smtp >>> \ >>> $rblsmtpd /usr/sbin/qmail-smtpd 2>&1 \ >>> | $logger &" >>> >>> sh -c "start-stop-daemon --start --quiet --user qmaild \ >>> --pidfile /var/run/tcpserver_smtpsd.pid --make-pidfile \ >>> --exec /usr/bin/tcpserver -- -R -H \ >>> -u `id -u root` -g `id -g nobody` -x /etc/tcp.smtps.cdb 0 >>> smtps >>> \ >>> $rblsmtpd2 /usr/sbin/qmail-smtpd 2>&1 \ >>> | $logger &" >>> >>> >>> >>> #Uncomment the following lines to automatically start the pop3 >>> server >>> sh -c "start-stop-daemon --start --quiet --user root \ >>> --pidfile /var/run/tcpserver_pop3d.pid --make-pidfile \ >>> --exec /usr/bin/tcpserver -- -R -H \ >>> 0 pop-3 /usr/sbin/qmail-popup `hostname`.`dnsdomainname` \ >>> /usr/bin/checkpassword /usr/sbin/qmail-pop3d Maildir &" >>> >>> sh -c "start-stop-daemon --start --quiet --user root \ >>> --pidfile /var/run/tcpserver_pop3sd.pid --make-pidfile \ >>> --exec /usr/bin/tcpserver -- -R -H \ >>> 0 995 /usr/bin/stunnel -f -l /usr/sbin/qmail-popup -- >>> qmail-popup `hostname`.`dnsdomainname` \ >>> /usr/bin/checkpassword /usr/sbin/qmail-pop3d Maildir &" >>> >>> echo "." >>> ;; >>> stop) >>> echo -n "Stopping mail-transfer agent: qmail" $rblmsg >>> if [ "`pidof /usr/sbin/qmail-send`" ] ; then >>> start-stop-daemon --user >>> qmails --stop --quiet --oknodo --exec >>> /usr/sbin/qmail-send >>> start-stop-daemon --user >>> qmaild --stop --quiet --oknodo --pidfile >>> /var/run/tcpserver_smtpd.pid --exec >>> /usr/bin/tcpserver >>> start-stop-daemon --user >>> qmaild --stop --quiet --oknodo --pidfile >>> /var/run/tcpserver_smtpsd.pid --exec /usr/bin/tcpserver >>> # Uncomment the following line if you have enabled the pop3 >>> server >>> start-stop-daemon --user >>> root --stop --quiet --oknodo --pidfile >>> /var/run/tcpserver_pop3d.pid --exec /usr/bin/tcpserver >>> start-stop-daemon --user >>> root --stop --quiet --oknodo --pidfile >>> /var/run/tcpserver_pop3sd.pid --exec /usr/bin/tcpserver >>> # Wait until the timeout for qmail processes to die. >>> count=120 >>> numdots=0 >>> while ([ $count != 0 ]) do >>> let count=$count-1 >>> if [ "`pidof /usr/sbin/qmail-send`" ] ; then >>> echo -n . >>> let numdots=$numdots+1 >>> sleep 1 >>> else >>> count=0 >>> fi >>> done >>> >>> # If it's not dead yet, kill it. >>> # if [ "`pidof /usr/sbin/qmail-send`" ] ; then >>> # echo -n " TIMEOUT!" >>> # kill -KILL `pidof /usr/sbin/qmail-send` >>> # else >>> case $numdots in >>> 0) echo "." ;; >>> 1) echo ;; >>> *) echo " done." ;; >>> esac >>> # fi >>> else >>> echo " not running."; >>> fi >>> >>> ;; >>> restart) >>> $0 stop >>> $0 start >>> ;; >>> cdb) >>> echo "Rebuilding tcp.smtp.cdb." >>> cd /etc >>> tcprules tcp.smtp.cdb tcp.smtp.temp < tcp.smtp >>> ;; >>> flush) >>> /usr/sbin/qmail-tcpok >>> start-stop-daemon --stop --quiet --oknodo --signal ALRM --exec >>> /usr/sbin/qmail-send >>> echo "Queue flushed." >>> ;; >>> stat) >>> /usr/sbin/qmail-qread >>> /usr/sbin/qmail-qstat >>> ;; >>> reload|force-reload) >>> echo "Reloading 'locals' and 'virtualdomains' control files." >>> start-stop-daemon --stop --quiet --oknodo --signal HUP --exec >>> /usr/sbin/qmail-send >>> ;; >>> *) >>> echo 'Usage: /etc/init.d/qmail >>> {start|stop|stat|cdb|restart|reload}' >>> exit 1 >>> esac >>> >>> exit 0 >>> >>> >>> >>> >>> ----- Original Message ----- >>> From: "Sam Clippinger" <s...@silence.org> >>> To: "spamdyke users" <spamdyke-users@spamdyke.org> >>> Sent: Friday, September 25, 2009 5:34 AM >>> Subject: Re: [spamdyke-users] I can hardly make a SMTPS connection >>> >>> >>> >>> >>>> I don't think I understand enough about your setup to answer this >>>> question. Could you post your full startup script and full spamdyke >>>> configuration file? Also, what operating system and version are you >>>> using? Have you tried running spamdyke's "config-test" feature? Is >>>> spamdyke logging any errors? >>>> >>>> -- Sam Clippinger >>>> >>>> David Bo Jensen wrote: >>>> >>>> >>>>> It seems to be a client (I am using Outlook express) issue changing the >>>>> port >>>>> to 465 and removing unlinit somewhat solved the issue. >>>>> >>>>> But in I have >>>>> grep spamdyke /var/log/mail.info >>>>> Sep 22 07:46:17 server spamdyke[4311]: ALLOWED from: d...@elektronik.dk >>>>> to: >>>>> d...@vip.cybercity.dk origin_ip: 127.0.0.1 origin_rdns: (unknown) auth: >>>>> (unknown) >>>>> >>>>> It doesn't ask for authentication 127.0.0.1 is enveloped in the ssl >>>>> protocol. In fact in many cases users will be able to use my server as >>>>> open >>>>> relay. That is not what intended >>>>> >>>>> >>>>> >>> _______________________________________________ >>> spamdyke-users mailing list >>> spamdyke-users@spamdyke.org >>> http://www.spamdyke.org/mailman/listinfo/spamdyke-users >>> >>> >> _______________________________________________ >> spamdyke-users mailing list >> spamdyke-users@spamdyke.org >> http://www.spamdyke.org/mailman/listinfo/spamdyke-users >> > > _______________________________________________ > spamdyke-users mailing list > spamdyke-users@spamdyke.org > http://www.spamdyke.org/mailman/listinfo/spamdyke-users > _______________________________________________ spamdyke-users mailing list spamdyke-users@spamdyke.org http://www.spamdyke.org/mailman/listinfo/spamdyke-users