2005/08/17(水) [n年前の日記]
#6 [vine][linux] Postfix と POP before SMTP を使えるように
_Vine 3.1 - Postfix の設定
_Vine3.0でPOP Before SMTP
_PostfixとAPOP,POP before SMTP
_POP before SMTP の設定(Googleキャッシュ)
参考にしつつ自分も設定。
パッケージ取得。
portmap を有効に。
drac を設定。
drac のデータベースを消去する期間を設定。
drac を有効に。
で。ここから先が、ちょっとよくわからなかったり。
_Vine3.0でPOP Before SMTP
_PostfixとAPOP,POP before SMTP
_POP before SMTP の設定(Googleキャッシュ)
参考にしつつ自分も設定。
パッケージ取得。
# apt-get update # apt-get install postfix dracd db4 db4-devel db4-utils pam-devel gdbm-devel
portmap を有効に。
# /etc/init.d/portmap start # chkconfig portmap on
drac を設定。
# cat /etc/mail/dracd.allow「255.255.255.255 127.0.0.1」の1行だけ記述があるか確認。件の記述で drac の利用はlocalhostのみ許される、らしい。
drac のデータベースを消去する期間を設定。
# vi /usr/sbin/rc.dracd以下に修正。
/usr/sbin/rpc.dracd -e 3 &ウルトラマンのカラータイマーに習う。<3分間のみ有効に。
drac を有効に。
# /etc/init.d/dracd start # chkconfig dracd on
で。ここから先が、ちょっとよくわからなかったり。
◎ qpopperの再構築が必要らしいのだが :
Vine の FTPサイトから SRPM を取得して再構築する方向で作業。
_「8.4. ソースパッケージからバイナリパッケージを再構築(rebuild)する。」
を参考に。下準備として、root で build-essential をインストール。
なのだけど。「一般ユーザのホームディレクトリにある ~/rpm/ を使え」とマニュアルには書いてあるものの。どこに *.src.rpm を入れたらいいのかわからん…。
_Vine Linux 3.1で電源が切れない場合の対処 というページに情報があった。~/rpm/SRPMS/ に保存するらしい。
qpopperのSRPMをインストール。
SPECファイルを修正する。…これは一般ユーザで作業しちゃっていいのだろうか。ちと怪しいけど。
で、肝心の、qpopper.spec の修正箇所は…なんだか色々なパターンがあるらしく。
要するに…
とりあえず、あらかじめ group を作成してみたり。
RPM作成。
qpopperをupdate。
# apt-get install build-essential…既に最新版が入ってた。後は一般ユーザになって作業。
なのだけど。「一般ユーザのホームディレクトリにある ~/rpm/ を使え」とマニュアルには書いてあるものの。どこに *.src.rpm を入れたらいいのかわからん…。
_Vine Linux 3.1で電源が切れない場合の対処 というページに情報があった。~/rpm/SRPMS/ に保存するらしい。
$ cd ~/rpm/SRPMS/ $ apt-get source qpopper
qpopperのSRPMをインストール。
$ su # rpm -ivh qpopper-x.x.x-0vlx.src.rpm
SPECファイルを修正する。…これは一般ユーザで作業しちゃっていいのだろうか。ちと怪しいけど。
$ cd ~/rpm/SPECS/ $ vi qpopper.spec
で、肝心の、qpopper.spec の修正箇所は…なんだか色々なパターンがあるらしく。
(%buildセクションに追加) --prefix=/usr \ --enable-bulletins=/var/spool/mail/bulletins \ --enable-specialauth \ --with-pam=qpopper \ --with-popuid=pop \ --enable-apop=/etc/pop.auth \ --enable-drac (%preセクションのuseraddにオプションを追加) /usr/sbin/useradd -M -g pop pop -c "Pop Account" -d /dev/null -s /dev/false
(%buildセクションに追加) --prefix=/usr \ --enable-bulletins=/var/spool/mail/bulletins \ --enable-specialauth \ --with-pam=qpopper \ --with-popuid=pop \ --enable-apop=/etc/pop.auth \ --enable-drac (←これ) (%preセクションのuseraddにオプションを追加) /usr/sbin/useradd -M -g pop pop -c "Pop Account" -d /dev/null -s /dev/null
$ ./configure \ --prefix=/usr \ --mandir=/usr/share/man \ --enable-bulletins=/var/spool/mail/bulletins \ --with-popuid=pop \ --enable-drac $ make $ su # /usr/sbin/groupadd -g 110 pop # /usr/sbin/useradd -c "Pop Account" -u 110 -g 110 -s /bin/false -r -d /var/spool/mail pop
$ ./configure \ --prefix=/usr \ --mandir=/usr/share/man \ --enable-bulletins=/var/spool/mail/bulletins \ --enable-specialauth \ --with-pam=qpopper \ --with-popuid=pop \ --enable-apop=/etc/pop.auth \ --enable-drac $ make $ su # /usr/sbin/groupadd -g 110 pop # /usr/sbin/useradd -c "Pop Account" -u 110 -g 110 -s /bin/false -r -d /var/spool/mail pop
要するに…
%buildセクションに --enable-drac を追加。(前の行の最後に \ をつけること)…して。
- -c "Pop Account"
- ユーザコメントを、"Pop Account" に。
- -u 110
- user ID を 110 に。
- -g 110
- group ID を 110 に。
- -s /bin/false
- shell を /bin/false に。
- -r
- システムアカウントで。
- -d /var/spool/mail
- ホームディレクトリを /var/spool/mail に。
- pop
- pop という名前のユーザを。
とりあえず、あらかじめ group を作成してみたり。
# /usr/sbin/groupadd -g 110 popで、SPECファイルの %pre セクションは下のような感じに。
%pre # Add the "pop" user /usr/sbin/useradd -c "Pop Account" -u 110 -g 110 \ -s /bin/false -r -d /var/spool/mail pop 2> /dev/null || : exit 0こんな感じでどうだらう。
RPM作成。
$ rpm -ba qpopper.spec $ cd ~/rpm/RPMS/i386/
qpopperをupdate。
# su # rpm -Uvh qpopper-x.x.x-0vlxdrac.i386.rpmで、いいのかしら?
◎ inetd設定とpam設定 :
pam設定ってのがよくわからないけど。
inetd設定。以下のファイルに以下を追加、というかコメントアウトを外す。
以下のファイルに以下を追加。
inetデーモン再起動。
pamの設定。
inetd設定。以下のファイルに以下を追加、というかコメントアウトを外す。
# vi /etc/inetd.conf pop-3 stream tcp nowait root /usr/sbin/tcpd in.qpopper
以下のファイルに以下を追加。
# vi /etc/hosts.allow in.qpopper: all
inetデーモン再起動。
# /etc/init.d/inet restart
pamの設定。
# vi /etc/pam.d/qpopper #%PAM-1.0 auth required /lib/security/pam_pwdb.so shadow account required /lib/security/pam_pwdb.so既に書いてあった。
◎ /etc/postfix/main.cf を修正 :
ちょっとよくわからないのが、
mydestination = $myhostname, localhost.$mydomain $mydomainという記述。「,」は要らんのだろうか。それと、
mynetworks = 192.168.1.0/24, 127.0.0.0/8 check_client_access btree:/etc/mail/dracdという記述はOKなのだろうか。 _Postfix on TurboLinux 8 - Planet Works というページに似たような記述があったから大丈夫かしら。
◎ 動作確認 :
Win上からサーバへPOP認証後、サーバ側で次のように打って確認。
5分後、再度確認。
IPが消えてる状態でいきなりメール送信しようとしても拒否される、はず。
って、送ることができてしまった。ダメじゃん。どうやら、
# db_dump -p /etc/mail/dracd.db下のような表示になればOK。
VERSION=3 format=print type=btree HEADER=END 192.168.1.26 ← クライアントのIP 1097475530 ← 色々変わる DATA=END
5分後、再度確認。
# db_dump -p /etc/mail/dracd.dbIPが消えてればOK。
IPが消えてる状態でいきなりメール送信しようとしても拒否される、はず。
って、送ることができてしまった。ダメじゃん。どうやら、
mynetworks = 192.168.1.0/24, 127.0.0.0/8 check_client_access btree:/etc/mail/dracdがマズイらしい。
mynetworks = 127.0.0.0/8 check_client_access btree:/etc/mail/dracdなら、なんとか。つまり前者は 192.168.1.x から送られると問答無用で送れてしまうということかしら。
◎ _Postfix エラー発生時の確認方法 :
# postfix checkで、設定ミスが判るらしい。
◎ _本稼動しだしたら必ず設定を 550 に変更 :
/etc/postfix/main.cf の
unknown_local_recipient_reject_code = 450を 550 にしておく、らしい。
[ ツッコむ ]
以上です。