●設定方法
postfix-0.0.19991231pl09-0vl4.i386.rpm
dracd-PbS-1.11-0vl1.i386.rpm
dracd-PbS-1.11-0vl1.src.rpm
solid-pop3d-PbS-0.15-0vl1.i386.rpm
solid-pop3d-PbS-0.15-0vl1.src.rpm
dracd-1.11-1.i386.rpm
dracd-1.11-1.src.rpm
solid-pop3d-0.15-1.i386.rpm
solid-pop3d-0.15-1.src.rpm
から、各rpmファイルをダウンロードしてインストールします。その前に
また、/etc/mail/dracd.dbの有無も確認して存在しない場合は内容が空のものを作成してください。
dracdを次のように起動してください(自動起動も忘れずに設定してください)。
APOPで使用させたいユーザでログインして、
solid-pop3dを起動させます。setupコマンドを利用してもいいですし、inetd.confを直接編集してもいいです。
/etc/mail/dracd.dbの中身がいつまでたっても保持されているので、30分ごとに強制的に空になるようにcronを設定した。
不正リレーのチェック:
外部からの不正リレーをきちんと防げているかをチェックするには、メールサーバから
このテストを全てパスするためには 19991229 以降のバージョンの Postfix が必要です。それ以前のものは、構造上一部でチェックしきれないものがあります。たいていの場合は問題ありませんが、念のためバージョンアップして完全にテストをパスすることを確認する方がよいでしょう。
なお、sendmail のオプション -bt は Postfix ではエラーになります。Postfix の設定ファイルの文法チェックは
postfix-0.0.19991231pl09-0vl4.i386.rpm
dracd-PbS-1.11-0vl1.i386.rpm
dracd-PbS-1.11-0vl1.src.rpm
solid-pop3d-PbS-0.15-0vl1.i386.rpm
solid-pop3d-PbS-0.15-0vl1.src.rpm
dracd-1.11-1.i386.rpm
dracd-1.11-1.src.rpm
solid-pop3d-0.15-1.i386.rpm
solid-pop3d-0.15-1.src.rpm
から、各rpmファイルをダウンロードしてインストールします。その前に
rpm -q qpopperで、qpopperがインストールされているかどうか確認してください。インストールされていたら、
rpm -e qpopperで削除してください。
# rpm -ivh postfix-0.0.19991231pl09-0vl4.i386.rpm # rpm -ivh dracd-PbS-1.11-0vl1.i386.rpm # rpm -ivh solid-pop3d-PbS-0.15-0vl1.i386.rpm/etc/mail/dracd.allowに
255.255.255.255 127.0.0.1
255.255.255.255 192.168.0.254← 自サーバのIPアドレス入力する
が存在するかどうか確認し、存在しない場合は追加(または作成)してください。
また、/etc/mail/dracd.dbの有無も確認して存在しない場合は内容が空のものを作成してください。
dracdを次のように起動してください(自動起動も忘れずに設定してください)。
# /etc/rc.d/init.d/dracd startインストールしたsolid-pop3dはapop対応です。
APOPで使用させたいユーザでログインして、
% /usr/bin/pop_auth Enter NEW password for user kenzo: パスワードを入力(表示されない) Reenter NEW password for user kenzo: パスワードを入力(表示されない)パスワードを入力します。ユーザのフォルダの下に「.spop3d」が作成されていれば成功です。
solid-pop3dを起動させます。setupコマンドを利用してもいいですし、inetd.confを直接編集してもいいです。
# vi /etc/inetd.conf #pop-3 stream tcp nowait root /usr/sbin/tcpd spop3d ↑ └#を外す。 # kill -HUP `cat /var/run/inetd.pid` でinetdを再起動します。次に、solid-pop3dの動作確認をします。
# telnet 127.0.0.1 110 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. +OK Solid POP3 server ready <22471.995857926 @firewall.space.local> (上記が表示されない場合は /etc/hosts.allow /etc.hosts.deny を確認して下さい) と表示されたら、 user kenzo としてユーザ名を入力、問題が無ければ以下のように表示されます +OK Password required for kenzo. pass kenzo パスワードを入力、APOPでない通常使用するパスワード。問題が無ければ以下のように表示されます。 +OK kenzo has 0 visible messages (0 hidden) in 0 octets. quit と入力して終了する。 +OK Pop server at firewall.space.local signing off. Connection closed by foreign host. # strings /etc/mail/dracd.db 995856784 127.0.0.1 ← 追加されていることを確認してください。 # telnet pc1 ← リモートホストへ一旦ログイン Trying 192.168.0.101... Connected to pc1. Escape character is '^]'. Red Hat Linux release 6.2 (Zoot) Kernel 2.2.16 on an i586 login: kenzo ← 入力する Password: ******** ← 入力する Last login: Sat Dec 2 22:52:09 from pc2 $ telnet pc2.space.local 110 ← リモートホストから確認(WindowsPCからでもOK) Trying 192.168.0.254... Connected to pc2. Escape character is '^]'. +OK Solid POP3 server ready <1187.995859129@pc2> user kenzo ← 入力する +OK username accepted pass ******** ← 入力する +OK authentication successful quit ← 入力する +OK session ended Connection closed by foreign host. $ exit Connection closed by foreign host. # strings dracd.db 995859167 192.168.0.101 ← 追加されていることを確認してください 995856784 127.0.0.1 #main.cfを編集します。
# vi /etc/postfix/main.cf 以下は、設定した箇所のみ書き出しています。 なお、最初からコメントアウトが外され有効になっているものも含んでいます。 queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/lib/postfix mail_owner = postfix myhostname = mail.test.co.jp mydomain = test.co.jp myorigin = $myhostname inet_interfaces = all mydestination = $myhostname, localhost.$mydomain $mydomain alias_maps = hash:/etc/postfix/aliases alias_database = hash:/etc/aliases mail_spool_directory = /var/spool/mail relay_domains = $mynetworks mynetworks = 127.0.0.0/8, hash:/etc/mail/dracd local_destination_concurrency_limit = 2 default_destination_concurrency_limit = 10 debug_peer_level = 2 debugger_command = PATH=/usr/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 allow_percent_hack = no続いて、SMTPサーバーの動作確認をします。
# telnet localhost smtp Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 firewall.space.local ESMTP Postfix helo localhost ← 入力する 250 firewall.space.local mail from: taro@localhost← 入力する 250 Ok rcpt to: taro@localhost ← 入力する 250 Ok data ← 入力する 354 End data with . test! ← 入力する . ← 入力する 250 Ok: queued as 15D232BAB2 quit ← 入力する 221 Bye Connection closed by foreign host. #root宛のメールを任意のユーザに転送するには
# vi /etc/aliases # Basic system aliases -- these MUST be present. MAILER-DAEMON: postmaster postmaster: root # General redirections for pseudo accounts. bin: root daemon: root games: root ingres: root nobody: root system: root toor: root uucp: root # Well-known aliases. manager: root dumper: root operator: root # trap decode to catch security attacks decode: root # Person who should get root's mail #root: marc ↑ └#を外し、marcの箇所を任意のユーザに設定する。 例:root kenzo この設定ではroot宛のメールはhogeに送られます。aliasesを編集したので、システムに読み込ませる必要があります。
# newaliases補足:
/etc/mail/dracd.dbの中身がいつまでたっても保持されているので、30分ごとに強制的に空になるようにcronを設定した。
# vi init-dracd.db /etc/rc.d/init.d/dracd stop cat /dev/null > /etc/mail/dracd.db /etc/rc.d/init.d/dracd start # vi initdracd */30 * * * * root /root/init-dracd.dbこのファイルを適当なフォルダに保存。/etc/cron.dにinitdracdとして保存。
不正リレーのチェック:
外部からの不正リレーをきちんと防げているかをチェックするには、メールサーバから
% telnet relay-test.mail-abuse.orgとすると、自動的に telnet を実行したホストへアクセスし、十数個の不正なメール中継のチェックを行ないます。自分の管理下外のホストに対するチェックは不正アクセスになるので、決してチェックしてはいけません。また、管理者によってはユーザがこのようなチェックを行なうことを嫌うサイトもあります。実行は各自の責任において行なってください。
このテストを全てパスするためには 19991229 以降のバージョンの Postfix が必要です。それ以前のものは、構造上一部でチェックしきれないものがあります。たいていの場合は問題ありませんが、念のためバージョンアップして完全にテストをパスすることを確認する方がよいでしょう。
なお、sendmail のオプション -bt は Postfix ではエラーになります。Postfix の設定ファイルの文法チェックは
# postfix checkで行なえます。