• ベストアンサー

Sendmailにパッチを当てたら大学外からSASL認証でSMTP接続できなくなりました。

Sendmail.8.11.6にセキュリティーパッチを当てて再インストールしたところ、インストールはうまくいって一応起動できるのですが次のようなメッセージが出ます。私は大学内でメールサーバーの管理をしています。大学外から大学を中継してメールの送信ができなくなっていることと関係あるかと思います。外部からのSMTP接続に対してはSASLで認証をしています。どなたか、何が問題なのか、また、解決法を教えていただけないでしょうか。 Warning:Option:AuthMechanisms requires SASL support (-DSASL) Warning:Option:DefaultAuthInfo requires SASL support(-DSASL) Buildをする際以下のようなファイルをつくって組み込んでいます。引継ぎのマニュアルにあったのでやっているのですが意味はよくわかっていません。 APPENDDEF(`confENVDEF',`-DSASL') APPENDDEF(`conf_sendmail_LIBS',`-lsasl') APPENDDEF(`confLIBDIRS',`-L/usr/local/lib') APPENDDEF(`confINCDIRS',`-I/usr/local/include')

  • daipot
  • お礼率74% (185/247)

質問者が選んだベストアンサー

  • ベストアンサー
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.1

設定では sasl 認証を使うようになってるけど,そのように build されていないという感じのエラーですよね. $ ldd `which sendmail` とかやって,ちゃんと libsasl とリンクされるようになっているかどうか確認してみてはいかがでしょう. そうなっていなければ,build の手順を見直しましょう.

daipot
質問者

お礼

ありがとうございます。その通りでした。最初にsaslを組み込まずbuildしたものが2回目のsasl組み込みbuildの際に邪魔になってたらしくすべて消去して最初からsaslを組み込んでbuildしたところうまくいきました。

その他の回答 (1)

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

sendmail8.12.8が出たので、ついでにcyrus-sasl-1.5.28を組み込んでみましたが 特に問題なくsmtp-auth認証ができるようになりました。 ●sendmailオプションの確認 # sendmail -d0.1 -bv root Version 8.12.8 Compiled with: DNSMAP LOG MATCHGECOS MIME7TO8 MIME8TO7 NAMED_BIND   NETINET NETUNIX NEWDB PIPELINING SASL SCANF USERDB XDEBUG (SASLがビルドインされています。) ●sendmailの動作確認 # telnet localhost 25 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. 220 unknown ESMTP EHLO localhost 250-XXX.XXX.net Hello localhost.localdomain [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5 250-DELIVERBY 250 HELP QUIT 221 2.0.0 XXX.XXX.net closing connection Connection closed by foreign host. ●sendmail.mcに以下の2行を追加 TRUST_AUTH_MECH(`LOGIN PLAIN CRAM-MD5 DIGEST-MD5')dnl define(`confAUTH_MECHANISMS', `LOGIN PLAIN CRAM-MD5 DIGEST-MD5')dnl ●sendmailをコンパイルした時のメッセージです。saslが有効になっています。 Configuration: pfx=, os=Linux, rel=2.4.18-8, rbase=2, rroot=2.4, arch=i586, sfx=, variant=optimized Making in /usr/local/src/sendmail-8.12.8/obj.Linux.2.4.18-8.i586/sendmail cc -O2 -I. -I../../include -I/usr/local/include -DNEWDB -DSASL -c -o main.o main.c cc -O2 -I. -I../../include -I/usr/local/include -DNEWDB -DSASL -c -o alias.o alias.c 省略 cc -O2 -I. -I../../include -I/usr/local/include -DNEWDB -DSASL -c -o sasl.o sasl.c cc -O2 -I. -I../../include -I/usr/local/include -DNEWDB -DSASL -c -o sfsasl.o sfsasl.c 省略 cc -O2 -I. -I../../include -I/usr/local/include -DNEWDB -DSASL -c -o util.o util.c cc -O2 -I. -I../../include -I/usr/local/include -DNEWDB -DSASL -c -o version.o version.c 省略 cc -o sendmail -L/usr/local/lib/sasl -L/usr/local/lib -L/usr/lib main.o alias.o arpadate.o bf.o collect.o conf.o control.o convtime.o daemon.o deliver.o domain.o envelope.o err.o headers.o macro.o map.o mci.o milter.o mime.o parseaddr.o queue.o readcf.o recipient.o sasl.o savemail.o sfsasl.o shmticklib.o sm_resolve.o srvrsmtp.o stab.o stats.o sysexits.o timers.o tls.o trace.o udb.o usersmtp.o util.o version.o  -lsasl /usr/local/src/sendmail-8.12.8/obj.Linux.2.4.18-8.i586/libsmutil/libsmutil.a /usr/local/src/sendmail-8.12.8/obj.Linux.2.4.18-8.i586/libsm/libsm.a -ldb -lresolv -lcrypt -lnsl -ldl ご参考まで。

daipot
質問者

お礼

ありがとうございます。私が今使っているのはsendmail8.11.6なのですがいずれは最新版にアップデートしようと思っています。そのときは参考にさせていただきます。

関連するQ&A

  • postfixでsmtp認証が有効になりません。

    ■環境 CentOS 5.6 postfix-2.3.3-2.2.el5_6 cyrus-sasl-lib-2.1.22-5.el5_4.3 cyrus-sasl-2.1.22-5.el5_4.3 cyrus-sasl-plain-2.1.22-5.el5_4.3 cyrus-sasl-plain-2.1.22-5.el5_4.3 cyrus-sasl-lib-2.1.22-5.el5_4.3 dovecot-1.0.7-7.el5 ■状況 postfixは、yumでインストールしています。 postfixのmain.cfには以下の内容を記述しています。 main.cf =========================================== smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination #broken_sasl_auth_clients = yes message_size_limit = 10485760 virtual_alias_maps = hash:/etc/postfix/virtual ============================================ 上記状態にて、smtp認証を使用しなくてもメールクライアントからメールを送付できてしまいます。 ■質問内容 1.なぜpostfixにてsmtp認証が有効にならないのでしょうか?

  • PostfixによるSMTP AUTHについて

    OSはvmwareにてVineを使っています。 postfixはpostfix-2.9.4 cyrus-saslはcyrus-sasl-2.1.25です。 こちらのページ http://www.postfix-jp.info/origdocs/install-report-sasl.html を参考にSMTPAUTHを導入しようと思いましたがどうもうまくいきません。期待としてはtelnet localhost 25 でEHLO localhostを入力した時に250-AUTH NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5等と表示されればSMTPAUTHがきちんと導入されたという事らしいのでその動作を期待しています。上から順にコマンドを打ってきたつもりですがどこがいけないのでしょうか。 一応/etc/rc.d/init.d/postfix restartでpostfixは立ち上がります。telnetで接続しても上記のメッセージが出ない状況です。 何かどこが悪いのか確認する方法がありますでしょうか。現在のmain.cfの中身は以下のようです。 queue_directory = /var/spool/postfix command_directory = /usr/local/sbin daemon_directory = /usr/lib64/postfix data_directory = /var/lib/postfix mail_owner = postfix default_privs = nobody myhostname = test.domain.domain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/postfix/aliases alias_database = hash:/etc/postfix/aliases home_mailbox = Maildir/ mail_spool_directory = /var/spool/mail debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 allow_percent_hack = no readme_directory = no sample_directory = /etc/postfix sendmail_path = /usr/sbin/sendmail html_directory = no setgid_group = postdrop manpage_directory = /usr/local/man newaliases_path = /usr/bin/newaliases mailq_path = /usr/bin/mailq inet_protocols = ipv4 relayhost = [smtp.domain]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/isp_auth smtp_sasl_security_options = noanonymous 不足している情報がありましたら補足いたしますのでご指摘いただければ幸いです。よろしくお願いいたします。

  • sendmailからqmail:CGIから送れない

    こんばんわ。 sendmailコマンド置換えについてです。 OS:Fedora7 メールサーバー:qmailとdovecot vpopなど使ってます。 メールサーバーについては、 バーチャルでもローカルからは送受信出来てます。 cgiがユーザーさんがHPのcgiからメールを送って来ると、 内容を自動返信するような感じのcgiですが。 テストでやってみても。 ローカルの受信すら来ない状態です。 もちろん、自動返信で返っても来ません。 以下をしました。 chmod 0 /usr/lib/sendmail chmod 0 /usr/sbin/sendmail mv /usr/lib/sendmail /usr/lib/sendmail.bak mv /usr/sbin/sendmail /usr/sbin/sendmail.bak ln -s /var/qmail/bin/sendmail /usr/lib/sendmail ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail apacheのエラーは、 sh: /usr/sbin/sendmail: Permission denied, referer: http://www.hogehoge.com/cgi-bin/test.cgi Permission関係でしょうか? sendmailをls -lで調べると lrwxrwxrwx 1 root root 23 Jun 5 19:05 /usr/sbin/sendmail -> /var/qmail/bin/sendmail です。 その他調べる箇所ありますでしょうか? 後・・・ 私のサーバーでは、 newaliases とすると・・・ bash: /usr/bin/newaliases: Permission denied になります。 パーミッションは777のroot rootになってます。 宜しくお願いします。

  • Postfixで送信ができない

    /var/log/syslog 10:33 solaris postfix/smtp[18719]: [ID 947731 mail.crit] fatal: open database /etc/postfix/saslpasswd.db: No such file or directory 10:34 solaris postfix/master[18715]: [ID 947731 mail.warning] warning: process /usr/libexec/postfix/smtp pid 18719 exit status 1 10:34 solaris postfix/master[18715]: [ID 947731 mail.warning] warning: /usr/libexec/postfix/smtp: bad command startup -- throttling となっているのですがsaslpasswdはあります。saslpasswd.dbにするために何かコマンドを打つ必要があるのでしょうか? また、後に出ているsmtpのエラーがよくわかりません、参考になるサイトなどご紹介いただけると幸いです /etc/postfix/main.cf alias_maps = dbm:/etc/mail/aliases command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix debug_peer_level = 2 inet_interfaces = all mail_owner = postfix mail_spool_directory = /var/spool/mail mailq_path = /usr/bin/mailq manpage_directory = /usr/local/man mydestination = $myhostname, localhost myhostname = solaris mynetworks = 192.168.1.2, 127.0.0.0/8 myorigin = $myhostname newaliases_path = /usr/bin/newaliases queue_directory = /var/spool/postfix relayhost = [192.168.1.3]:587 sample_directory = /etc/postfix sendmail_path = /usr/lib/sendmail setgid_group = postdrop smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/saslpasswd smtp_sasl_security_options = noanonymous smtpd_banner = $myhostname ESMTP $mail_name unknown_local_recipient_reject_code = 550 /etc/postfix/saslpasswd [192.168.1.3]:587 username:password

  • PerlでSMTP-AUTH認証をする

    現在、さくらのレンタルサーバにてperlスクリプトを稼動しています。 今回、さくらのレンタルサーバのメール認証がPOP before SMTPからSMTP認証(SMTP-AUTH)に変更になりましたので、perlスクリプト内で自動メール送信させるのにNet::SMTP::TLSモジュールを利用することにしました。そこで (1)SMTPサーバー名、ポート番号、ユーザー名、パスワードを設定する (2)宛先などの必要な設定をする (3)メール内容を設定する (4)メールヘッダを設定する (5)メールを送信する という流れで現在perlスクリプトを以下のように記述しました。 #!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); use Net::SMTP::TLS; use Authen::SASL; my $smtp = Net::SMTP::TLS->new($mailhost, Port => $mailport, User => $mail_username, Password => $mail_password ); $smtp->mail($from_mail); $smtp->to($tomail); $smtp->data(); $smtp->datasend($header); $smtp->datasend($message); $smtp->dataend(); $smtp->quit; 変数の値は割愛していますが、 上記のスクリプトは、POP before SMTPの時は問題なくメール送信できたのですが、サーバのメール認証がSMTP認証(SMTP-AUTH)に変更になってからは以下のようなエラーが出ます。 invalid SSL_version specified at /usr/local/perl/5.8/lib/perl5/site_perl/5.8/IO/Socket/SSL.pm line 418 何か間違いであるとか、他に必要な設定がありますでしょうか? 宜しくご教授お願いいたします。

    • ベストアンサー
    • Perl
  • sendmail-8.12.1でWarning表示

    redhatのlinux7.1にsendmail-8.12.1を入れてみました. ところが、apacheにのせたプログラム上から/usr/lib/sendmailを呼んで メールを送ろうとすると、送れることは送れるのですが毎回以下のようなエラーメッセージが吐き出されます。 WARNING: RunAsGid for MSP ignored, check group ids (egid=99, want=501) Apacheのユーザnobodyのgidが99でsendmailユーザsmmspのgidが501だぞ、というような警告であると思ってるんですが、実際はどうなんでしょうか? このような警告文を出さないようにするにはどうすればいいのでしょうか? 教えて下さい。

  • Postfixでmailコマンドを使用したい

    お世話になります。 Cent OSにて、Postfixをソースからインストールしコマンドから送信テストを行おうとしましたが、 /usr/sbin/sendmail No such file or directoryというエラーがでて送信できません。 Postfixのsendmailは/usr/local/postfix/sbin/sendmail なのですが、どうやら既存のsendmailを見にいっているようです。 ちなみに、sendmail、newaliases、mailqはすべて末尾に「.OFF」を付けファイル名を変更してバックアップしてあります。 下記にpostconf -n で表示したmain.cfの構成を掲載させていただきます ============================================ broken_sasl_auth_clients = yes command_directory = /usr/local/postfix/sbin config_directory = /etc/postfix daemon_directory = /usr/local/postfix/libexec data_directory = /usr/local/postfix/var/lib debug_peer_level = 2 home_mailbox = Maildir/ html_directory = no inet_interfaces = all mail_owner = postfix mailq_path = /usr/local/postfix/bin/mailq manpage_directory = /usr/local/postfix/man mydomain = 自分のドメイン myhostname = 自分のホスト myorigin = $mydomain newaliases_path = /usr/local/postfix/bin/newaliases queue_directory = /usr/local/postfix/var/spool readme_directory = no sample_directory = /etc/postfix sendmail_path = /usr/local/postfix/sbin/sendmail setgid_group = postdrop smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_security_options = noanonymous unknown_local_recipient_reject_code = 550 ============================================ make installでは「config_directory」以外のパスはすべて、/usr/local/postfix 配下に指定してあります。 説明不足だとは思いますが、お分かりになる方がいらっしゃいましたらご教授願います。 よろしくお願い致します。

  • SMTP認証で自サーバをniftyとつなぎたい

    火急の悩みゆえ、取り留めない文章にて失礼します。 【環境】 OS = vinelinux6.2 soft = postfix-2.8.10-1vl6.i686 sasl関係 cyrus-sasl-plain-2.1.23-11vl6.i686 cyrus-sasl-2.1.23-11vl6.i686 cyrus-sasl-gssapi-2.1.23-11vl6.i686 cyrus-sasl-devel-2.1.23-11vl6.i686 cyrus-sasl-md5-2.1.23-11vl6.i686 network mail server -- router -- nifty niftyをプロバイダにしてインターネットに接続しています。 自サーバで独自ドメインのサブドメインにて運営しています。 自サーバから他方へメールを送信する場合、OP25Bの制限によりniftyのメールサーバへ 転送してからの送信となります。 先週まで、その設定で出来ていたのですが、今週から突然通信不可のとなり困っています。 1つの原因は「smtp_sasl_auth_enable=yes」と、頭のsmtpがsmtpd出なかったためと思われます。 その時は「said: 451 4.1.8 Sender domain must be resolved (in reply to MAIL FROM command))」というエラーが出ていました。 現在、「smtpd_sasl_auth_enable=yes」に変更したところ 「said: 530 5.7.0 Authentication required (in reply to MAIL FROM command))」に変わりました。 どうやらpostfixがSMTP認証で蹴られているようです。仕事上で利用しているのでとても困っています。 現在のpostfixの設定を記載しますので、ご存知の方、どうかアドバイスをお願いいたします。 mail.cf (関連する部分だけの抜粋とします。ご了承ください) relayhost = [smtp.nifty.com]:587 #add for ob25b smtpd_sasl_auth_enable = yes smtpd_sasl_password_maps = hash:/etc/postfix/nifty.pw smtpd_sasl_security_options = noanonymous smtpd_sasl_mechanism_filter = LOGIN, CRAM-MD5, PLAIN ---- EOF ---- nifty.pw(IDとパスワードは置き換えています) [smtp.nifty.com]:587 id:pass ---- EOF ---- master.cf # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (50) # ========================================================================== smtp inet n - n - - smtpd submission inet n - n - - smtpd -o smtpd_etrn_restrictions=reject -o smtpd_client_restrictions=permit_sasl_authenticated,reject ---- EOF ----

  • Postfixの起動出来ない

    現在RedHat AS2.1でメールサーバの構築を行っており、 Postfixを使用していますが、Postfixの起動時に 下記のエラーとなり、起動出来ていない状態です。 どのように回避すればよいか教えて下さい。 postfix/postfix-script: warning: /usr/lib/sendmail and /usr/sbin/sendmail differ postfix/postfix-script: warning: Replace one by a symbolic link to the other postfix/postfix-script: starting the Postfix mail system postfix/master[9030]: warning: process /usr/libexec/postfix/smtp pid 9060 exit status 1 postfix/master[9030]: warning: /usr/libexec/postfix/smtp: bad command startup -- throttling

  • 「mail」コマンドと「sendmail」コマンドについてのくだらない質問です

    よろしくお願いします。 電子メールの送受信を行う「mail」コマンドというのがあるのですが、そのほかに「sendmail」というコマンドがあるようです。 この「sendmail」もメールの送受信に使うコマンドでしょうか。 ちなみに、うちの自宅サーバでは「mail」コマンドは使えますが「sendmail」コマンドが使えません。 $ /usr/lib/sendmail というようにフルパスで指定してもダメでした。 5分経っても10分経っても次のプロンプトが表示されずに反応が無くなってしまいますので「Ctrl」+「c」キーで強制的にプロンプトを表示させるしかありません。 ひょっとして最近コマンド名が変わったとか、そういうことでしょうか。 ディストリビューションはRed Hat Linux8.0で SMTPサーバはsendmail-8.12.5-7.i386.rpmとかいうものです。 どなたか教えてください。