#freeze
* [[Postfix]]
メールサーバです。sendmailはめんどくさいので、これを使います。

#contents

** 環境設定
postfixはインストールされている可能性がありますので、
 rpm -qa | grep postfix
で確認します。バージョンが怪しかったので、とりあえずけしておきました。
 rpm -qa | grep postfix | xargs rpm -e
ではここからhttp://www.postfix.org/download.htmlダウンロードします。postfix-2.1.5.tar.gzを落としました。とりあえず展開しましょう。その後makeです。
 tar xzvf postfix-2.1.5.tar.gz
 make
そしてpostfixを管理するユーザとグループを作成します。
 groupadd postdrop
 useradd -g postdrop -d /dev/null -s /bin/false postfix
postfixユーザはホームもなければシェルも触れないようにしておきます。その後
 make install
あれ?エラーがでました。
 postfix: fatal: file /etc/postfix/main.cf: parameters mail_owner and etgid_group: user postfix and group postdrop have the same group ID: 503
とりあえず、/etc/groupでpostdropのIDを変更して、再度make installをしました。
その後/etc/postfix/main.cfを編集します。
 myhostname = hidekazu.dhs1.sst.ne.jp ホスト名
 mydomain = dhs1.sst.ne.jp ドメイン名
 inet_interfaces = all すべて受信
 local_recipient_maps = proxy:unix:passwd.byname $alias_maps ローカルユーザの存在をチェックし、不明なユーザは受信を拒否する
 mydestination = $myhostname, localhost.$mydomain, $mydomain メールの宛先として受け入れるホスト名の設定
 mynetworks_style = subnet IP空間の設定
 mynetworks = 192.168.1.0/24, 127.0.0.0/8 この範囲のクライアントはメールをリレーすることができる。
 smtpd_banner = $myhostname ESMTP $mail_name メールヘッダに記載されるMTAの表示の設定
 relay_domains = $mydestination 信頼されない(mynetworks)のクライアント以外のメールは$mydestinationの範囲内しか配送しない。
 home_mailbox = Maildir/ 各ユーザのホームディレクトリ内にMaildirをおく Maildirとは1メッセージ=1ファイルの形式である。
 smtpd_helo_required = yes HELOコマンドでホスト名を通知しないホストを拒否
 smtpd_client_restrictions = permit_mynetworks, reject_unknown_client, permit mynetworksは許可。逆引きができないホストの接続を拒否

設定後、起動、停止、再起動の確認をします。
 /usr/sbin/postfix start
 /usr/sbin/postfix stop
 /usr/sbin/postfix reload
また25番ポートが開いているかも確認しておきます。
 nmap localhost
ではtelnetから
 Trying 127.0.0.1...
 Connected to localhost.localdomain.
 Escape character is '^]'.
 220 hidekazu.dhs1.sst.ne.jp ESMTP Postfix
 HELO localhost                  --->開始メッセージ
 250 hidekazu.dhs1.sst.ne.jp
 MAIL FROM: test@localhost       --->送信者
 250 Ok
 RCPT TO: test2@localhost        --->受信者
 250 Ok
 DATA                            --->ボディ入力
 354 End data with <CR><LF>.<CR><LF>
 ugoitekure.
 .                               --->メッセージ終了
 250 Ok: queued as 2852DFE005
 QUIT                            --->終わり
するとtest2のホームディレクトリのMaildirにnewというディレクトリがあるので、のぞいてみましょう。また、/var/log/maillogにログが残っていますので、確認しておきます。


** qpopper
SMTPからメールを取り出すためのPOPサーバです。
http://www.eudora.com/products/unsupported/qpopper/index.htmlからダウンロードします。ちょっとわかりにくいかもしれない場合はftp://ftp.qualcomm.com/eudora/servers/unix/popper/からqpopper4.0.5.tar.gzをダウンロードします。またその前にPOP before SMTPを使いたいので、http://pocketstudio.jp/drac-ja/index.htmlより、DRACをダウンロードしておきます。
 wget ftp://ftp.cc.umanitoba.ca/src/drac.tar.Z
 mkdir drac
 cd drac
 tar xzvf ../drac.tar.Z
ではMakefileを修正します。http://pocketstudio.jp/drac-ja/compile.htmlを参考にしました。
 INSTALL = install
 EBIN = /usr/local/sbin
 MAN = /usr/local/man/man
 DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C
 CC = gcc
 RANLIB = :
 CFLAGS = $(DEFS) -g
 LDLIBS = -ldb
 TSTLIBS = -L. -ldrac -lnsl
 RPCGENFLAGS = -C -I
 MANLIB = 3
 MANADM = 8
修正できましたら、
 make
 make install
 make install-man
 cp libdrac.a /usr/local/lib
 cp dracd-setup.linux /etc/init.d/dracd
ちょっとdracdを修正します。
 daemon rpc.dracd&
を
 daemon /usr/local/sbin/rpc.dracd -i -e 30&
にしました。-iは起動時にdatabaseを初期化します。 -eは承認の有効期限を30分にしています。またchkconfigを使用する場合は、ヘッダを
 #!/bin/bash
 #
 # dracd        Startup script for the dracd
 #
 # chkconfig: - 87 15
 # description: dracd
 # processname: dracd
 #
 # Put this file into /etc/rc.d/init.d/dracd
 # and link it intot he run levels you want to use it
 # by doing "ln -s  /etc/rc.d/init.d/dracd /etc/rc.d/rc.<runlevel>/S99dracd"
 #
 # dracd-setup
にでもして、chkconfig --add dracdして、chkconfig --level 345 dracd onとでもしておきます。では、dracd.allowを編集しましょう。まずコピーして、
 cp dracd.allow-sample /etc/mail/dracd.allow
 emacs /etc/mail/dracd.allow
で編集し、
 #255.255.255.255 192.168.16.8 #<--コメント
 255.255.255.255 127.0.0.1
ではqpopperです。
 tar xzvf qpopper4.0.5.tar.gz
で解凍して、解凍したディレクトリに移動後、
 adduser pop
 ./configure --with-popuid=pop
ここで、dracを使用する場合は、--enable-drac、--enable-apop=/etc/pop.authでAPOPです。
 make
 make insatll
を実行します。/usr/local/sbinにpopperがインストールされてます。
popauthで、APOP用のパスワードを設定します。
 popauth -init
で初期化し、
 popauth -user hogeuser
でパスワード設定です。
次に/etc/xinetd.dにpopperという名前で作成します。
 service pop3
 {
        socket_type     = stream
        wait            = no
        only_from       = 127.0.0.1
        user            = root
        server          = /usr/local/sbin/popper
        server_args     = -S -s -R
        disable         = no
 }
-Sはサーバモード,-sはロギングにsyslogを、-Rは接続元の名前解決をしません。
その後は
 /etc/inetd/xinetd restart

** Courier-IMAP
認証用のライブラリとしてCourier authentication libraryをいれておきます。
http://www.courier-mta.org/からCourier authentication libraryをダウンロードします。
 wget 
http://superb-west.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.58.tar.bz2
 tar xvjf courier-authlib-0.58.tar.bz2
 cd courier-authlib-0.58
 ./configure --with-redhat
 make
 configure: error: Cannot find either the gdbm or the db library.
んー エラーがでました。とりあえず、[[OpenLDAP]]でgdbmをいれてますので、いれておきます。
 make install
 make install-migrate
 make install-configure
詳しくはINSTALLにかかれてます。
では、Courier-IMAPです。http://www.courier-mta.org/download.phpからダウンロードします。courier-imap-3.0.8.20041129.tar.tarを解凍します。(2006/05/13時点で4.1.0です)解凍後、rootではインストールできないので、別のユーザでになりましょう。またCourier authentication libraryもいるので、ダウンロードしておきます。--with-redhatをつけておかないと、rpmを作れと怒られるので、つけておきましょう。
 wget http://surfnet.dl.sourceforge.net/sourceforge/courier/courier-imap-4.1.0.tar.bz2
 tar xvjf courier-imap-4.1.0.tar.bz2
 cd courier-imap-4.1.0
 ./configure --prefix=/usr/local --with-redhat --without-authmysql --without-authldap --with-db=db --without-ipv6 
rootでは怒られます。また--with-redhatをつけないとrpmを作れといわれます。
※Ver3の時
Courier authenticationに移動して、
 ./configure --with-redhat
 make install
 make install-migrate
 make install-configure
courier-imap
 ./configure --prefix=/usr/local/courier-imap
 make
 make install
 make install-configure
 /usr/local/courier-imap/libexec/pop3d.rc start
 /usr/local/courier-imap/libexec/imapd.rc start  

http://www.aconus.com/~oyaji/mail2/courier-imap.htm~
http://www.gside.org/Gentoo/postfix/virtualdomain.html~
** cyrus-SASL
SMTPAuthに対応するということで、ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/からFile: cyrus-sasl-2.1.21.tar.gzをダウンロードしました。
 wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.21.tar.gz
 cd cyrus-sasl-2.1.21
 ./configure --enable-login=yes # --enable-login=yesはOutlookExpressでPlain認証を利用する場合に必要です。
 make
 make install
 ln -s /usr/local/lib/sasl /usr/lib/sasl
ではpostfixを。
 groupadd postdrop #管理用
 groupadd postfix #管理用
 useradd -g postfix -d /dev/null -s /bin/false postfix #管理用
 cd postfix-2.2.5
 make tidy #以前コンパイルして残っている場合は、tidyをつけて実行
 make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/local/include/sasl" AUXLIBS="-L/usr/local/lib -lsasl2"
 make install
 

** セキュリティ

** ウィルスチェック
http://www.g-ninja.net/freebsd/clamav.html
** バーチャルドメイン
virtual mailbox

** チェック
http://www.abuse.net/relay.html

** メモ
 smtp inet n - n - - smtpd
 587 inet n - n - - smtpd
 http://nekojita.org/hiki/Postfix.html
** リンク
http://solaris.bluecoara.net/servers/postfix/virtual2.phtml~
[[メールサーバーのインストール・設定>http://www.psg.jp/mail_server.html]]~
[[Linuxで自宅サーバ>http://www.miloweb.net/]]~
[[日本Courierユーザ会>http://courier-users.jp/]]~
http://www.y-min.or.jp/~nob/FreeBSD/courier-imap.html~
http://www.aconus.com/~oyaji/~
http://www.gita.jp/index.php?board=20;action=display;threadid=375~
http://www.miloweb.net/postfix2.html~
** 参考書籍

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS