前回に引き続いてメールサーバーの設定を行っていきます。
今回はメールサーバーの外部公開を行います。
SendMailサービス停止とデフォルトメールサーバー変更
CentOSのデフォルトメールサーバーはSendMailですので、Postfixに切り替えます。
SendMailサービスを停止します[root@centos ~]#
/etc/rc.d/init.d/sendmail stopsendmailを停止中: [ OK ]
sm-clientを停止中: [ OK ]
SendMailサービスの自動起動設定を解除します
[root@centos ~]# chkconfig sendmail off
[root@centos ~]# chkconfig –list sendmail
sendmail 0:off 1:off 2:off 3:off 4:off 5:off 6:off
デフォルトメールサーバーをsendmailからpostfixに変更します
[root@centos ~]# alternatives –config mta
2 プログラムがあり ‘mta’ を提供します。
選択 コマンド
———————————————–
*+ 1 /usr/sbin/sendmail.sendmail
2 /usr/sbin/sendmail.postfix
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
メールサーバーを外部公開する為に、CentOSのファイアウォールの設定を変更します。
[root@centos ~]#
vi /etc/sysconfig/iptablesviエディタが起動するので設定ファイルを変更します。# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT – [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp –dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp –dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp –dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
下記1行を追加してTCPの25番ポート(smtp)を開放します-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 25 -j ACCEPT-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
下記4行を追加してTCPの110番ポート(pop)とTCPの143番ポート(imap)を開放します。
IP制御をしてローカルネットワーク内と特定の外部からのみ接続できるようにします-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 110 -s 192.168.0.0/24 -j ACCEPT-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 110 -s xxx.xxx.xx.xx(外部IPアドレス)/24 -j ACCEPT-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 143 -s 192.168.0.0/24 -j ACCEPT-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 143 -s xxx.xxx.xx.xx(外部IPアドレス)/24 -j ACCEPT-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
内容を保存しviエディタを終了します
設定内容を反映します
[root@centos ~]# /etc/rc.d/init.d/iptables restart
ファイアウォールルールを適用中: [ OK ]
チェインポリシーを ACCEPT に設定中filter [ OK ]
iptables モジュールを取り外し中 [ OK ]
iptables ファイアウォールルールを適用中: [ OK ]
iptables モジュールを読み込み中ip_conntrack_netbios_ns [ OK ]
PostfixとSMTP-Auth、Dovecotサービスの起動およびOS再起動時の自動起動設定
Postfix(送信メールサーバー)、SMTP-Auth(送信メールサーバーユーザ認証)、Dovecot(受信メールサーバー)のサービスを起動し、OS再起動時にもサービスを自動起動するようにします。
Postfixの起動[root@centos ~]#
/etc/rc.d/init.d/postfix startpostfix を起動中: [ OK ]
OS再起動時にPostfixを自動起動するようにします
[root@centos ~]# chkconfig postfix on
[root@centos ~]# chkconfig –list postfix
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
SMTP-Authの起動
[root@centos ~]# /etc/rc.d/init.d/saslauthd start
saslauthd を起動中: [ OK ]
OS再起動時にSMTP-Authを自動起動するようにします
[root@centos ~]# chkconfig saslauthd on
[root@centos ~]# chkconfig –list saslauthd
saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Dovecotの起動
[root@centos ~]# /etc/rc.d/init.d/dovecot start
Dovecot Imap を起動中: [ OK ]
OS再起動時にDovecotを自動起動するようにします
[root@centos ~]# chkconfig dovecot on
[root@centos ~]# chkconfig –list dovecot
dovecot 0:off 1:off 2:on 3:on 4:on 5:on 6:off
telnetでSMTP-Authの設定を確認
telnetコマンドでSMTP-Authが正しく設定されているか確認します。
[root@centos ~]# telnet localhost 25
Trying 192.168.0.20…
Connected to mail.sa-sa-ki.jp (192.168.0.20).
Escape character is ‘^]’.
Connection closed by foreign host.
[root@centos ~]#
telnetで25番ポートに接続した瞬間に切断されてしまいました。
ログを調べてみます。
[root@centos ~]# view /var/log/maillog
Apr 3 17:05:24 centos postfix/smtpd[9767]: warning: xsasl_cyrus_server_get_mechanism_list: no applicable SASL mechanisms
Apr 3 17:05:24 centos postfix/smtpd[9767]: fatal: no SASL authentication mechanisms
Apr 3 17:05:25 centos postfix/master[9762]: warning: process /usr/libexec/postfix/smtpd pid 9767 exit status 1
Apr 3 17:05:25 centos postfix/master[9762]: warning: /usr/libexec/postfix/smtpd: bad command startup — throttling
・warning: xsasl_cyrus_server_get_mechanism_list: no applicable SASL mechanisms
・fatal: no SASL authentication mechanisms
警告やエラーが発生していました。
インターネットで調べてみたところDevelog – Linux,MySQL,PHP,SEO,Debian,PEAR,Smarty,Blog -:【CentOS5 Postfix】SASLを利用したSMTP-AUTHで認証エラーに対応策が出ていました。
SMTP-AUTHに必要なモジュールが足りなかったようなので追加します。
現在インストールされているSMTP-Auth関連のパッケージを調べます[root@centos ~]#
yum list | grep sasl*cyrus-sasl.i386 x.x.xx-x installed
cyrus-sasl-lib.i386 x.x.xx-x installed
cyrus-sasl-plain.i386 x.x.xx-x installed
cyrus-sasl-devel.i386 x.x.xx-x base
cyrus-sasl-gssapi.i386 x.x.xx-x base
cyrus-sasl-ldap.i386 x.x.xx-x base
cyrus-sasl-md5.i386 x.x.xx-x base
cyrus-sasl-ntlm.i386 x.x.xx-x base
cyrus-sasl-sql.i386 x.x.xx-x base
:
:
メール送信の認証方法はチャレンジ・レスポンス型認証に指定しているのですが、チャレンジ・レスポンス型認証に必要な[cyrus-sasl-md5]がインストールされていませんでしたので追加します。
cyrus-sasl-md5をインストールします
[root@centos ~]# yum -y install cyrus-sasl-md5
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* updates: ftp.twaren.net
* addons: www.ftp.ne.jp
* extras: www.ftp.ne.jp
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
–> Running transaction check
—> Package cyrus-sasl-md5.i386 0:x.x.xx-x set to be updated
–> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================================================
Package Arch Version Repository Size
====================================================================================================================================
Installing:
cyrus-sasl-md5 i386 x.x.xx-x base 45 k
Transaction Summary
====================================================================================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 45 k
Downloading Packages:
cyrus-sasl-md5-x.x.xx-x.i386.rpm | 45 kB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : cyrus-sasl-md5 [1/1]
Installed: cyrus-sasl-md5.i386 0:x.x.xx-x
Complete!
再度telnetコマンドでSMTP-Authが正しく設定されているか確認します
[root@centos ~]# telnet localhost 25
Trying 127.0.0.1…
Connected to centos.sa-sa-ki.jp (127.0.0.1).
Escape character is ‘^]’.
220 mail.sa-sa-ki.jp ESMTP unknown
EHLO local
EHLOコマンドを入力したのですが応答が返ってきません。
再度ログファイルを確認します。
[root@centos ~]# view /var/log/maillog
Apr 3 17:35:37 centos postfix/smtpd[4521]: fatal: open database /etc/postfix/access.db: No such file or directory
Apr 3 17:35:38 centos postfix/master[4451]: warning: process /usr/libexec/postfix/smtpd pid 4521 exit status 1
Apr 3 17:35:38 centos postfix/master[4451]: warning: /usr/libexec/postfix/smtpd: bad command startup — throttling
/etc/postfix/access.dbファイルが開けないと警告がでています。
これはpostfixの設定ファイルmain.cfに追記したsmtpd_client_restrictionsパラメタのcheck_client_access hash:/etc/postfix/accessのデータベースファイルがない為に警告がでているのでデータベースファイルを作成します。
同様にsmtpd_sender_restrictionsパラメタのcheck_sender_access hash:/etc/postfix/reject_senderもデータベースファイル(データベースファイルを作成する元のテキストファイルも)がないので作成します。
[root@centos ~]#
postmap /etc/postfix/access[root@centos ~]#
touch /etc/postfix/reject_sender[root@centos ~]#
postmap /etc/postfix/reject_sender
再度telnetコマンドでSMTP-Authが正しく設定されているか確認する前にpostfixとsaslauthdのサービスを再起動します
[root@centos ~]# /etc/rc.d/init.d/postfix start
postfix を停止中: [ OK ]
postfix を起動中: [ OK ]
[root@centos ~]# /etc/rc.d/init.d/saslauthd start
saslauthd を停止中: [ OK ]
saslauthd を起動中: [ OK ]
再度telnetコマンドでSMTP-Authが正しく設定されているか確認します
[root@centos ~]# telnet localhost 25
Trying 127.0.0.1…
Connected to centos.sa-sa-ki.jp (127.0.0.1).
Escape character is ‘^]’.
220 mail.sa-sa-ki.jp ESMTP unknown
EHLO local
250-mail.sa-sa-ki.jp
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5が表示されていればSMTP-Authの設定は正常です
250-AUTH DIGEST-MD5 CRAM-MD5
250-AUTH=DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
ルータの設定を変更してTCPの25番、110番、143番ポートを開放します。
開放方法はルータの設定手順に従って実施してください。
次回はSSLの設定を行います。
■ 参考サイト ■
はじめての自宅サーバ構築 Fedora/CentOS – メールサーバ(SMTP)の構築(Postfix)
メールサーバー構築(Postfix+Dovecot) – CentOSで自宅サーバー構築
Postfix設定パラメータ
dovecotでCRAM-MD5認証を使えるようにする – あれだよ、あれ……なんだっけ?
————————————————————————————————–
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その21 CentOS 5.3 メールサーバー構築(Dovecot設定編)
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その20 CentOS 5.3 メールサーバー構築(Postfix設定編)
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その19 CentOS 5.3 アンチウィルスソフトのバージョンアップ
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その18 CentOS 5.3 にNTPサーバーを導入して自動時間合わせ
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その17 WordPressのセキュリティ対策
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 番外編その1 CentOS 5.3 のリリースと導入済みソフトウェアのアップデート
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その16 CentOS 5.2 にWordPressを導入してブログサイトを構築する
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その15 Apacheにサーバー証明書を導入する
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その14 CentOS 5.2 にLAMP環境構築(MySQL編)
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その13 CentOS 5.2 にLAMP環境構築(Apache、PHP編)
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その12 CentOS 5.2 にDNSサーバーを導入して名前解決(確認編)
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その11 CentOS 5.2 にDNSサーバーを導入して名前解決(設定編)
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その10 CentOS 5.2 SSHサーバーを構築して外部からリモート接続&リモートファイル転送
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その9 CentOS 5.2 にバッファオーバーフロー攻撃対策を行う
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その8 CentOS 5.2 にrootkit検知ツールを導入する
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その7 CentOS 5.2 にファイル改竄検知システムを導入する
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その6 CentOS 5.2 にアンチウィルスソフトを導入する
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その5 CentOS 5.2 ファイル転送準備
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その4 CentOS 5.2 インストール後の初期設定
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その3 インストールしたCentOS 5.2 にリモート接続準備
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その2 CentOS 5.2 をインストールする
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その1 導入を検討する