SMTP
SMTPサーバの種類
SMTPサーバにはさまざまな種類がある
長い間、sendmail が標準的に使われてきたらしい。が、設定の簡易さ、安全性、パフォーマンスなどから qmail, Postfix が利用される事が多くなってきたと。
CentOS では Postfix が採用されている
Postfix の設定
Postfix の主な設定ファイルは2種類
- /etc/postfix/main.cf
- Postfix の動作を設定するファイル
- /etc/postfix/master.cf
- Postfix 構成プロセスなどに関する設定を行うファイル。通常は変更する必要はない
main.cf の設定
myhostname
ホスト名を FQDN で指定
#myhostname = host.domain.tld #myhostname = virtual.domain.tld myhostname = host.domain.tld
mydomain
メールサーバが属するドメイン名を指定
#mydomain = domain.tld mydomain = example.com
myorigin
メールアドレスの「@」以下が明示的に指定されなかった場合に補完する値を指定
通常は、myhostname で指定された値か mydomain で指定された値を使用する
※ この値は、DNSサーバに登録されている名前である必要がある
#myorigin = $myhostname #myorigin = $mydomain myorigin = $mydomain
inetinterfaces
SMTP での接続を待ち受けるネットワークインターフェースを指定
all の場合、全ネットワークインターフェースで接続を待ち受ける
localhost の場合、ネットワーク経由でのメール受信は拒否する
#inet_interfaces = all #inet_interfaces = $myhostname #inet_interfaces = $myhostname, localhost inet_interfaces = localhost inet_interfaces = all
mydestination
メールの配送を許可する宛先のドメイン名を指定
メールアドレスのドメイン名がここで指定した値いずれかと一致すればメールを受け取る
mydestination = $myhostname, localhost.$mydomain, localhost #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, # mail.$mydomain, www.$mydomain, ftp.$mydomain mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks
内部ネットワークを指定
ここからのメールは無条件で配送される
#mynetworks = 168.100.189.0/28, 127.0.0.0/8 #mynetworks = $config_directory/mynetworks #mynetworks = hash:/etc/postfix/network_table mynetworks = 192.168.0.0/24, 127.0.0.0/8
smtpd_banner
バナー情報(サーバ自身のソフトウェア名、バージョン番号情報)の出力を指定
バナー情報に基づいて攻撃ツールを選定される恐れがあるため、バナー情報は制限すると安心感あっぷ
#smtpd_banner = $myhostname ESMTP $mail_name #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) smtpd_banner = $myhostname ESMTP unknown
デフォルトにはない指定を追加
disable_vrfy_command
SMTP の VRFY コマンドを使うと、メールサーバに存在するアカウントを見つけ出される可能性がある
不正利用されないよう、VRFY コマンドの利用は禁止すると安心感あっぷ
disable_vrfy_command = yes
smtpd_recipient_restrictions
他の SMTP サーバから受信したメールをどう配送するかという、メールのリレー制限を指定
smtpd_recipient_restrictoions = permit_mynetworks, check_relay_domains, reject_maps_rbl, reject
- smtpd_recipient_restrictions の設定値
設定値 | 内容 |
---|---|
permit_mynetworks | $mynetworks に定義されたホストからは許可 |
check_relay_domains | $mydestination, $inet_interfaces, $virtual_maps, $relay_domains いずれかに宛先がマッチすれば許可 |
reject_maps_rbl | RBL (Realtime Blackhole List) のブラックリストに登録されているホストからのリレーを拒否 RBLサーバは $maps_rbl_domains で指定する |
reject | 最後に記述することで、条件にマッチしなかったものを拒否 |
permit | 最後に記述することで、条件にマッチしなかったものを許可 |
smtpd_sender_restrictions
送信元アドレスに基づいて受信拒否の設定をする
smtpd_recipient_restrictions = reject_non_fqdn_sender, reject_invalid_hostname, reject_unknown_sender_domain, reject_unknown_hostname, reject_unauth_pipelining
postconf
postconf -n コマンドを実行すると main.cf ファイルを解析し、デフォルトから変更された値を表示する