目的
ドメインを取得してホームページを公開するなら、個人のメールもあったらいいなと思いメールサーバーのpostfixをインストールする。
main.cfの設定
OSインストール時に、postfixもインストールされていますが、念のため確認してください。確認方法は、Apacheと同じです。インストールされていなければ、インストールをします。
バージョンは、postfix-2.3.3-2.1.el5_2.i386です。
main.cfの設定は、Apacheのhttpd.confと同じようにgeditで行います。
場所は、/etc/postfix/main.cfになります。
設定内容は以下の通りです。
追加:青字、変更:赤字で記載します。
ドメインは、Apacheの設定同様hogehoge.comで行います。
# Global Postfix configuration file. This file lists only a subset # of all parameters. For the syntax, and for a complete parameter # list, see the postconf(5) manual page (command: "man 5 postconf"). # # The default_privs parameter specifies the default rights used by # the local delivery agent for delivery to external file or command. # These rights are used in the absence of a recipient user context. # DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER. # #default_privs = nobody → default_privs = nobody 60行目 # INTERNET HOST AND DOMAIN NAMES # # The myhostname parameter specifies the internet hostname of this # mail system. The default is to use the fully-qualified domain name # from gethostname(). $myhostname is used as a default value for many # other configuration parameters. # #myhostname = host.domain.tld #myhostname = virtual.domain.tld myhostname = hogehoge.com 71行目 # The mydomain parameter specifies the local internet domain name. # The default is to use $myhostname minus the first component. # $mydomain is used as a default value for many other configuration # parameters. # #mydomain = domain.tld mydomain = hogehoge.com 78行目 # SENDING MAIL # # The myorigin parameter specifies the domain that locally-posted # mail appears to come from. The default is to append $myhostname, # which is fine for small sites. If you run a domain with multiple # machines, you should (1) change this to $mydomain and (2) set up # a domain-wide alias database that aliases each user to # user@that.users.mailhost. # # For the sake of consistency between sender and recipient addresses, # myorigin also specifies the default domain name that is appended # to recipient addresses that have no @domain part. # #myorigin = $myhostname → myorigin = $myhostname 92行目 #myorigin = $mydomain # RECEIVING MAIL # The inet_interfaces parameter specifies the network interface # addresses that this mail system receives mail on. By default, # the software claims all active interfaces on the machine. The # parameter also controls delivery of mail to user@[ip.address]. # # See also the proxy_interfaces parameter, for network addresses that # are forwarded to us via a proxy or network address translator. # # Note: you need to stop/start Postfix when this parameter changes. # #inet_interfaces = all → inet_interfaces = all 107行目 #inet_interfaces = $myhostname #inet_interfaces = $myhostname, localhost inet_interfaces = localhost → #inet_interfaces = localhost 110行目 # The proxy_interfaces parameter specifies the network interface # addresses that this mail system receives mail on by way of a # proxy or network address translation unit. This setting extends # the address list specified with the inet_interfaces parameter. # # # Specify a list of host or domain names, /file/name or type:table # patterns, separated by commas and/or whitespace. A /file/name # pattern is replaced by its contents; a type:table is matched when # a name matches a lookup key (the right-hand side is ignored). # Continue long lines by starting the next line with whitespace. # # See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS". # mydestination = $myhostname, localhost.$mydomain, localhost
→ #mydestination = $myhostname, localhost.$mydomain, localhost 155行目 #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomaint
→ mydestination = $myhostname, localhost.$mydomain, localhost, $mydomaint 156行目 #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, # mail.$mydomain, www.$mydomain, ftp.$mydomain # # Specify "mynetworks_style = host" when Postfix should "trust" # only the local machine. # #mynetworks_style = class #mynetworks_style = subnet → mynetworks_style = subnet 241行目 #mynetworks_style = host # Alternatively, you can specify the mynetworks list by hand, in # which case Postfix ignores the mynetworks_style setting. # You can also specify the absolute pathname of a pattern file instead # of listing the patterns here. Specify type:table for table-based lookups # (the value on the table right-hand side is not used). # #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 258行目 # The relay_domains parameter restricts what destinations this system will # relay mail to. See the smtpd_recipient_restrictions description in # postconf(5) for detailed information. # # # NOTE: Postfix will not automatically forward mail for domains that # list this system as their primary or backup MX host. See the # permit_mx_backup restriction description in postconf(5). # #relay_domains = $mydestination → relay_domains = $mydestination 287行目 # INTERNET OR INTRANET # If you're connected via UUCP, see also the default_transport parameter. # #relayhost = $mydomain #relayhost = [gateway.my.domain] #relayhost = [mailserver.isp.tld] #relayhost = uucphost #relayhost = [an.ip.add.ress] relayhost = [xxxxxx.xxxxxxx.ne.jp] 309行目OB25対策用 # REJECTING UNKNOWN RELAY USERS # # The relay_recipient_maps parameter specifies optional lookup tables # with all addresses in the domains that match $relay_domains. # # If you change the alias database, run "postalias /etc/aliases" (or # wherever your system stores the mail alias file), or simply run # "newaliases" to build the necessary DBM or DB file. # # It will take a minute or so before changes become visible. Use # "postfix reload" to eliminate the delay. # #alias_maps = dbm:/etc/aliases alias_maps = hash:/etc/aliases #alias_maps = hash:/etc/aliases, nis:mail.aliases #alias_maps = netinfo:/aliases # The alias_database parameter specifies the alias database(s) that # are built with "newaliases" or "sendmail -bi". This is a separate # configuration parameter, because alias_maps (see above) may specify # tables that are not necessarily all under control by Postfix. # #alias_database = dbm:/etc/aliases #alias_database = dbm:/etc/mail/aliases alias_database = hash:/etc/aliases #alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases # DELIVERY TO MAILBOX # # The home_mailbox parameter specifies the optional pathname of a # mailbox file relative to a user's home directory. The default # mailbox file is /var/spool/mail/user or /var/mail/user. Specify # "Maildir/" for qmail-style delivery (the / is required). # #home_mailbox = Mailbox #home_mailbox = Maildir/ → home_mailbox = Maildir/ 410行目 # The mail_spool_directory parameter specifies the directory where # UNIX-style mailboxes are kept. The default setting depends on the # system type. # #mail_spool_directory = /var/mail #mail_spool_directory = /var/spool/mail # SHOW SOFTWARE VERSION OR NOT # # The smtpd_banner parameter specifies the text that follows the 220 # code in the SMTP server's greeting banner. Some people like to see # the mail version advertised. By default, Postfix shows no version. # # You MUST specify $myhostname at the start of the text. That is an # RFC requirement. Postfix itself does not care. # #smtpd_banner = $myhostname ESMTP $mail_name #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) smtpd_banner = $myhostname ESMTP unknown 562行目 # PARALLEL DELIVERY TO THE SAME DESTINATION # # readme_directory: The location of the Postfix README files. # readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES #OB25 最後の行にOB25対策用として追加 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/ob25info smtp_sasl_security_options = noanonymous smtp_sasl_mechaism_filter = plain, login smtp_sasl_type = cyrus #unfairrelay 不正中継を防ぐために追加 smtpd_helo_required = yes disable_vrfy_command = yes strict_rfc821_envelopes = yes allow_percent_hack = yes swap_bangpath = yes allow_untrusted_routing = no #MailBox_size メールボックスの容量を5MBに制限 message_size_limit = 5242880
設定が終了したら、上書き保存をして終了します。
不正中継を防ぐ
人のメールサーバーを踏み台にして、スパムメールが送られたりします。もし、自分のサーバーが踏み台にされた場合、自分のサーバーがブラックリストに載ってしまうことがあります。これを防ぐため、main.cfに不正中継されないように設定を追加します。
上の設定で、#unfairrelay以下6行を追加します。postfixのバージョンがあがり、一部は記載されています。
25番ポートをあける
OSとルータの25番ポートを開きます。設定は機種やメーカーによって違います。また、安価な機種の場合、設定できないものもありるので購入時に確認してください。
ポートの確認
25番ポートが開いているかは以下のサイトで確認できます。
ポートチェック
postfixの起動
起動方法は、Apacheやvsftpdと同じ方法で行います。
システムをクリック。
 ↓
管理をクリック。
 ↓
サービスをクリック。
 ↓
rootのパスワードを聞いてくるのでパスワードを入れてOKをクリック。
 ↓
サービスの設定が立ち上がり左の画面が表示されます。左側に各サービスが表示されていてチェックが付いているのが、起動しているソフトです。この中から、"postfix"を探します。チェックがなければ、postfixをクリックしてチェックをつけて、上にある開始をクリックします。これで、postfixは起動します。もし、チェックが付いているときは、そのまま上にある再起動をクリックします。
このときに、postfixを選択すると開始・停止・再起動の上に実行中のランレベルと表示されています。ランレベルが3になっていたら、これを5に編集します。上のタブにランレベルの編集があるので、これをクリックしてランレベルを5にしてください。
ランレベルを5にしておかないとOSを再起動したときなど、自動で立ち上がりません。
sendmailを停止させる。
通常は、sendmail にチェックがあり立ち上がっています。sendmail にチェックがあり、実行中になっていた場合は停止させてください。
不正中継の確認
postfixを起動したので、不正中継されないかを確認します。確認方法は以下のサイトでできます。
>RBL.JP Project.
最後にno relays accepted.と出ればOK。
OB25対策
今使っているプロバイダーは、BIGLOBEです。BIGLOBEの場合、迷惑メール対策のため、25番ポートが使えなくなってるので、以下の方法で行います。(この方法は、プロバイダがBIGLOBEの場合で他のプロバイダは違う方法です。)
1. BIGLOBEの会員サイトのBIGLOBE中継サーバ利用申込で申し込みます。URLは以下の通りです。
http://support.biglobe.ne.jp/faq/settei/op25b/relay.html
2. 申し込むと、中継用のサーバー名を教えてくれる。また、方法も教えてくれる。
あとは、以下のように設定すれば25番ポートのままメールのやり取りができます。
main.cfの編集
設定は、main.cfに追加します。307行目に以下を追加します。
relayhost = [xxxx.xxxxxx.ne.jp] xxxxxにBIGLOBEから教えてくれたサーバー名を入れる。
次に以下を最後の行に追加する。
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/ob25info
smtp_sasl_security_options = noanonymous
smtp_sasl_mechaism_filter = plain, login
smtp_sasl_type = cyrus
OB25対策用DBの作成
上の追加設定でhash:/etc/postfix/ob25infoとあるが、これはもともとあるファイルではないので、geditで作成します。作成後、データベース化します。内容は以下の通りです。
注意
ファイル名は、ob25infoでなくてもわかりやすい名前でOKです。/etc/postfixのフォルダの中に作成します。
もし、hash:/etc/ob25infoと入れた場合は、/etcのフォルダの中に作成します。
[xxxx.xxxxxx.ne.jp]△***************:########## []内は、307行目に追加したサーバー名、△はスペース、*****はプロバイダからのID
###はパスワードを入力します。
データベースの作成は以下の通りです。GNOME端末からsuでrootに入ってから行います。
[]# postmap /etc/postfix/ob25info
これで、OB25対策が完了しました。
MailBoxの作成
メールを受け取るためのMailBoxを作成します。これは、各ユーザーごとに作成します。まず、最初に以下の方法で、/etc/skelのフォルダ以下に作成します。これを行うと以後ユーザーを新規作成すると自動でMailBoxを作成してくれます。
MailBoxは、Maildirというディレクトリーで下にnew、cur、tmpというディレクトリーを作ります。
su -でroot権限に入って
[]# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
次に、属性の変更を行います。
[]# chmod -R 700 /etc/skel/Maildir/
これで、属性が変わりユーザーを追加するごとに自動で作成されます。なお、インストール時に作成したユーザーは、自動でMaildirは作成されません。必ず手動でMaildirとその下のサブフォルダ(newとcurとtmp)を作成してください。
ユーザーの作成は、Apacheのユーザーを作成すると同じです。
試しにinfoを作成してみてください。
postfixを再起動させて、実際に送受信を行ってみてください。
注意
なお、他のPC(local接続)から送受信を行う場合は、受信用ソフト(pop3)をインストールする必要があります。
aliasesDBの作成
aliasesは、簡単に言うとメールを転送させるためのDBです。以下は一例です。ユーザーをinfoとします。
aliasesの場所は、main.cfのあるalias_maps = hash:/etc/aliasesに記載されているところです。この場合は、/etcのディレクトリの中にあります。
編集は、root権限で行ってください。
# Basic system aliases -- these MUST be present. MAILER-DAEMON: postmaster postmaster:root これは、postmasterあてに送られてきたメールはrootに移動します。 www:webmaster これは、wwwあてに送られてきたメールはwebmasterに移動します。 www-admin:webmaster webmaster:root webmasterあてに送られてきたメールはrootに移動します。 hostmaster:root root:info rootに送られてきたメールはinfoに移動します。 この様にすると、最終的にすべて、infoへメールは送られてくる設定になります。
また、以下のように設定するとinfoに来たメールを携帯へ転送することもできます。
info:info,xxxxxxxxxxxx@docomo.ne.jp これは、infoに送られてきたメールをinfoと携帯メールに移動します。
注意:aliasesの設定をすると移動になるので注意する(コピーではない)。上の例では、info:xxxxxxxxx@docomo.ne.jpとした場合、infoに来たものは、携帯メールに転送されinfoには残らない。
編集が終了したら、DBを更新します。
[]# newaliases
これで、postfixの設定は終了です。
念のため、再起動を行ってください。