On Fri, Feb 10, 2012 at 3:50 PM, CSS <c...@morefoo.com> wrote: > > On Feb 10, 2012, at 3:42 PM, Jorge Luis Gonzalez wrote: > >> I'm posting this to the postfix list rather than the FreeBSD list >> because I've found the level of expertise here to be almost >> unsurpassed. >> >> In trying to substitute postfix for sendmail on FreeBSD 8.0, I've come >> across a problem with mail sent from the command line (including mail >> from the syslogd daemon). >> No matter what I do to disable the sendmail binary (using mailwrapper) >> sendmail seems to grab port 25 on the localhost and any mail sent from >> the command line that's destined >> for a local account is shunted off, even while the mail reaches >> procmail and is properly forwarded to gmail as per my recipe. > > Your logs don't indicate sendmail listening on port 25 at all. > > You should post the sendmail_* lines in /etc/rc.conf and the contents > of /etc/mail/mailer.conf. > > What you're showing here really looks like you don't have > mailer.conf properly configured. > > Thanks, > > Charles
Here are all the sendmail and postfix entries in rc.conf: sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" postfix_enable="YES" dovecot_enable="YES" And here's /etc/mail/mailer.conf: # # Execute the Postfix sendmail program, named /usr/local/sbin/sendmail # sendmail /usr/local/sbin/sendmail send-mail /usr/local/sbin/sendmail mailq /usr/local/sbin/sendmail newaliases /usr/local/sbin/sendmail Your correct that it's not sendmail listening on tcp 25; it's postfix's master. But why the caution in the README that sendmail will bind to 25 if "NO" is specified in rc.conf? And what's the queue that fails with a permission block, clientmqueue, owned by smmsp? satyr# netstat -a | egrep 'Proto|LISTEN' Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 satyr.smtp *.* LISTEN satyr# sockstat -46 | grep ':25' USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS root master 25052 12 tcp4 69.55.232.70:25 *:* satyr# > >> >> After going through all the steps of disabling sendmail in rc.conf and >> setting up mainwrapper I am getting the following error: >> >> [satyr ~]$ mail -s test jorge >> test >> . >> >> [satyr ~]$ WARNING: RunAsUser for MSP ignored, check group ids >> (egid=1002, want=25) >> can not chdir(/var/spool/clientmqueue/): Permission denied >> Program mode requires special privileges, e.g., root or TrustedUser. >> >> Here's the corresponding logfile entry, which seems pretty clearly to >> point to the (presumably) disabled sendmail: >> >> satyr# tail /var/log/maillog >> Feb 9 09:16:00 satyr sendmail[63415]: NOQUEUE: SYSERR(jorge): can not >> chdir(/var/spool/clientmqueue/): Permission denied >> >> Here are the permissions and owners of the queue: >> >> satyr# ls -ld /var/spool/clientmqueue/ >> drwxrwx--- 2 smmsp smmsp 512 Feb 9 06:57 /var/spool/clientmqueue/ >> >> I then ran across the following sendmail README on FreeBSD: >> >> [...] >> >> As of sendmail 8.12, in order to improve security, the sendmail binary no >> longer needs to be set-user-ID root. Instead, a set-group-ID binary >> accepts command line mail and relays it to a full mail transfer agent via >> SMTP. A group writable client mail queue (/var/spool/clientmqueue/ by >> default) holds the mail if an MTA can not be contacted. >> >> To accomplish this, under the default setup, an MTA must be listening on >> localhost port 25. If the rc.conf sendmail_enable option is set to "NO", >> a sendmail daemon will still be started and bound only to the localhost >> interface in order to accept command line submitted mail (note that this >> does not work inside jail(2) systems as jails do not allow binding to >> just the localhost interface). If this is not a desirable solution, it >> can be disabled using the sendmail_submit_enable rc.conf option. However, >> if both sendmail_enable and sendmail_submit_enable are set to "NO" >> [this is true in my case], >> you must do one of two things for command line submitted mail: >> >> 1. Designate an alternative host for the submission agent to contact >> by altering /etc/mail/freebsd.submit.mc (or setting SENDMAIL_SUBMIT_MC >> in /etc/make.conf to an alternate .mc file) and using >> 'make install-submit-cf' in /etc/mail/. Change the FEATURE(msp) line >> to FEATURE(msp, hostname) where hostname is the fully qualified hostname >> of the alternative host. >> >> Or: >> >> 2. Return to using a set-user-ID root sendmail binary by changing the >> ownership and permissions on the sendmail binary and removing the >> /etc/mail/submit.cf file: >> chown root /usr/libexec/sendmail/sendmail >> chmod 4755 /usr/libexec/sendmail/sendmail >> rm /etc/mail/submit.cf >> If you install from source, set the SENDMAIL_SET_USER_ID flag in >> /etc/make.conf. >> >> [...] >> >> The first of the two suggestions isn't an option for me; I control >> only this single mailserver. And I'm not quite sure about the >> second: I'd rather avoid a set-user-ID root sendmail if possible. I >> just want postfix to handle mail that comes from the command >> line destined for localhost 25. >> >> In case there's something I can do inside postfix so that it binds the >> daemon to localhost 25 before the vestigal sendmail >> gets there, here are my postfix settings: >> >> [satyr ~]$ postconf -n >> alias_database = hash:/etc/mail/aliases >> alias_maps = hash:/etc/mail/aliases >> allow_percent_hack = no >> append_at_myorigin = yes >> append_dot_mydomain = no >> biff = no >> bounce_queue_lifetime = 4h >> bounce_size_limit = 10000 >> broken_sasl_auth_clients = yes >> command_directory = /usr/local/sbin >> config_directory = /usr/local/etc/postfix >> daemon_directory = /usr/local/libexec/postfix >> data_directory = /var/db/postfix >> default_destination_concurrency_limit = 10 >> default_privs = nobody >> delay_warning_time = 1h >> disable_vrfy_command = yes >> fast_flush_domains = $relay_domains >> header_checks = regexp:/etc/postfix/header_checks >> html_directory = no >> inet_interfaces = all >> local_destination_concurrency_limit = 2 >> local_recipient_maps = unix:passwd.byname, $alias_maps >> luser_relay = >> mail_name = $mydomain Mail Daemon >> mail_owner = postfix >> mail_spool_directory = /var/mail >> mailbox_command = /usr/local/bin/procmail -a "$EXTENSION" >> mailbox_size_limit = 0 >> manpage_directory = /usr/local/man >> maximal_queue_lifetime = 4h >> message_size_limit = 102400000 >> mydestination = $myhostname, localhost.$mydomain, localhost >> mydomain = jorge.cc >> myhostname = satyr.jorge.cc >> mynetworks_style = host >> myorigin = $mydomain >> newaliases_path = /usr/local/bin/newaliases >> notify_classes = resource, software >> recipient_delimiter = + >> relay_domains = $mydestination >> sample_directory = /usr/local/etc/postfix >> sendmail_path = /usr/sbin/sendmail >> setgid_group = postdrop >> show_user_unknown_table_name = no >> smtp_tls_loglevel = 1 >> smtp_tls_note_starttls_offer = yes >> smtp_tls_security_level = may >> smtp_tls_session_cache_database = btree:$data_directory/smtp_scache >> smtp_tls_session_cache_timeout = 3600s >> smtp_use_tls = yes >> smtpd_banner = $mail_name ESMTP >> smtpd_client_restrictions = permit_mynetworks, >> reject_rbl_client zen.spamhaus.org, reject_unknown_client_hostname, >> reject_unauth_pipelining >> smtpd_data_restrictions = reject_unauth_pipelining, >> reject_multi_recipient_bounce >> smtpd_delay_reject = yes >> smtpd_error_sleep_time = 1s >> smtpd_hard_error_limit = 20 >> smtpd_helo_required = yes >> smtpd_helo_restrictions = permit_mynetworks, >> check_helo_access hash:$config_directory/helo_access, >> reject_unauth_pipelining, reject_non_fqdn_hostname, >> reject_invalid_hostname >> smtpd_recipient_restrictions = permit_mynetworks, >> permit_sasl_authenticated, reject_unauth_destination, >> reject_unauth_pipelining, reject_invalid_hostname >> smtpd_sasl_auth_enable = yes >> smtpd_sasl_authenticated_header = yes >> smtpd_sasl_local_domain = $myhostname >> smtpd_sasl_path = private/auth >> smtpd_sasl_security_options = noanonymous >> smtpd_sasl_tls_security_options = noanonymous >> smtpd_sasl_type = dovecot >> smtpd_sender_restrictions = permit_mynetworks, reject_non_fqdn_sender, >> reject_unknown_sender_domain, reject_unknown_address >> smtpd_soft_error_limit = 10 >> smtpd_tls_CAfile = /etc/ssl/postfix/smtpd.pem >> smtpd_tls_always_issue_session_ids = yes >> smtpd_tls_auth_only = no >> smtpd_tls_cert_file = /etc/ssl/postfix/smtpd.pem >> smtpd_tls_key_file = /etc/ssl/postfix/smtpd.pem >> smtpd_tls_loglevel = 1 >> smtpd_tls_received_header = yes >> smtpd_tls_security_level = may >> smtpd_tls_session_cache_database = btree:$data_directory/smtpd_scache >> smtpd_tls_session_cache_timeout = 3600s >> smtpd_use_tls = yes >> strict_rfc821_envelopes = no >> swap_bangpath = no >> tls_daemon_random_bytes = 32 >> tls_random_exchange_name = $data_directory/prng_exch >> tls_random_prng_update_period = 3600s >> tls_random_reseed_period = 3600s >> tls_random_source = dev:/dev/urandom >> unknown_local_recipient_reject_code = 450 >> >> The weird thing is that sending mail with telnet through port 25 >> returns the postfix welcome and it's postfix that seems to accept the mail: >> >> [jorge@satyr /etc/mail]$ telnet localhost 25 >> Trying 127.0.0.1... >> Connected to localhost. >> Escape character is '^]'. >> 220 jorge.cc Mail Daemon ESMTP >> EHLO satyr.jorge.cc >> 250-satyr.jorge.cc >> 250-PIPELINING >> 250-SIZE 102400000 >> 250-ETRN >> 250-STARTTLS >> 250-ENHANCEDSTATUSCODES >> 250-8BITMIME >> 250 DSN >> MAIL FROM: jo...@jorge.cc >> 250 2.1.0 Ok >> RCPT TO: jo...@jorge.cc >> 250 2.1.5 Ok >> DATA >> 354 End data with <CR><LF>.<CR><LF> >> test >> . >> >> 250 2.0.0 Ok: queued as A1774108E2C >> QUIT >> 221 2.0.0 Bye >> Connection closed by foreign host. >> >> And here's the logfile: >> >> Feb 10 14:59:50 satyr postfix/qmgr[72725]: 4CF3A108E32: >> from=<jorge@localhost>, size=320, nrcpt=1 (queue active) >> Feb 10 14:59:50 satyr sendmail[91511]: NOQUEUE: SYSERR(jorge): can not >> chdir(/var/spool/clientmqueue/): Permission denied >> >> The email isn't stacking up in any other queue that I can find. >> >> The logfile goes on to record a seemingly successful procmail relay to gmail: >> >> Feb 10 15:29:23 satyr postfix/smtpd[5845]: connect from satyr[69.55.232.70] >> Feb 10 15:30:52 satyr postfix/smtpd[5845]: 61766108E39: >> client=satyr[69.55.232.70] >> Feb 10 15:31:08 satyr postfix/cleanup[6234]: 61766108E39: >> message-id=<20120210203052.61766108...@satyr.jorge.cc> >> Feb 10 15:31:08 satyr postfix/qmgr[72725]: 61766108E39: >> from=<jo...@jorge.cc>, size=322, nrcpt=1 (queue active) >> Feb 10 15:31:08 satyr postfix/smtp[6478]: setting up TLS connection to >> gmail-smtp-in.l.google.com[74.125.45.26]:25 >> Feb 10 15:31:08 satyr postfix/smtp[6478]: certificate verification >> failed for gmail-smtp-in.l.google.com[74.125.45.26]:25: untrusted >> issuer /C=US/O=Equifax/OU=Equifax Secure Certificate Authority >> Feb 10 15:31:08 satyr postfix/smtp[6478]: Untrusted TLS connection >> established to gmail-smtp-in.l.google.com[74.125.45.26]:25: TLSv1 with >> cipher RC4-SHA (128/128 bits) >> Feb 10 15:31:09 satyr postfix/smtp[6478]: 61766108E39: >> to=<jlg.in...@gmail.com>, >> relay=gmail-smtp-in.l.google.com[74.125.45.26]:25, delay=48, >> delays=46/0.02/0.45/0.77, dsn=2.0.0, status=sent (250 2.0.0 OK >> 1328905874 s61si7054629yhn.36) >> Feb 10 15:31:09 satyr postfix/qmgr[72725]: 61766108E39: removed >> Feb 10 15:31:28 satyr postfix/smtpd[5845]: disconnect from >> satyr[69.55.232.70] >> satyr# >> >> >> I'm completely flummoxed by this. Ripping sendmail by the roots out >> of FreeBSD may not be such a good idea so I've avoided that, though I >> would have thought that mailwrapper and the rc.conf settings would >> have accomplished essentially the same thing. >> >> Thanks very much in advance for any help. >> >> -- >> Jorge Luis González <jlg.in...@gmail.com> >> http://people.umass.edu/jlg/ >> >> This email optimized for teletypes. > -- Jorge Luis González <jlg.in...@gmail.com> http://people.umass.edu/jlg/