[Memo2017][ITPASS]tcpserver のインストールと設定
[ITPASSサーバ構築・運用ドキュメント へ戻る]
tcpserver のインストールと設定
inetd からの qmail 起動を停止
テストのために記述していた /etc/inetd.conf の smtpで始まる行をコメントアウトした. そして, inetdを再起動した.
# /etc/init.d/openbsd-inetd restart
smtp ポートを listen しているプログラムがないことを netstat -l で確認した.
# netstat -l | grep smtp
POP
ソース・パッチの取得と展開, パッチ当てとmake
ソース, パッチの取得および展開を行った. また, 取得したパッチを当ててビルドした.
# wget http://sourceforge.net/projects/checkpw/files/checkpw/checkpw-1.03/checkpw-1.03.tar.gz # tar zxvf checkpw-1.03.tar.gz # cd chekpw-1.03/ # make # make setup check # wget http://tools.qmail.jp/ucspi-tcp/ucspi-tcp-0.88.tar.gz # wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch # tar xfz ucspi-tcp-0.88.tar.gz # cd ucspi-tcp-0.88 # patch -p1 < ../ucspi-tcp-0.88.errno.patch # make # make setup check
を実行し, 最後に再起動した.
# reboot
tcpserver からの呼び出し
tcpserver からpop を呼び出すためには起動スクリプト /etc/init.d/qmail のpop の行のコメントアウトを外した. 具体的には以下の通り.
# For POP3 sh -c "/sbin/start-stop-daemon --start --quiet --user root \ --pidfile /var/run/tcpserver_pop3d.pid --make-pidfile \ --exec /usr/local/bin/tcpserver -- -v -u 0 -g 0 0 pop3 \ /var/qmail/bin/qmail-popup \ tako-itpass.scitec.kobe-u.ac.jp /bin/checkapoppw \ /var/qmail/bin/qmail-pop3d Maildir 2>&1 \ | /var/qmail/bin/splogger pop3d 3 > /dev/null 2>&1 &"
stop の部分のコメントアウトも外した.
/sbin/start-stop-daemon --user root --stop --quiet --oknodo --pidfile /var/run/tcpserver_pop3d.pid --exec /usr/local/bin/tcpserver # pop3
qmail を再起動した.
# /etc/init.d/qmail restart
動作の確認を行った.
# systemctl daemon-reload # ps aux | grep qmail # service qmail status
~/Maildir/ への配送
/etc/profile に次の 2 行を加えた.
MAILDIR="$HOME/Maildir/" export MAILDIR
/etc/csh.cshrc に次の 1 行を加えた.
setenv MAILDIR $HOME/Maildir/
maildirmake のスクリプトで Maildir を作成した.
$ maildirmake ~/Maildir
次に ~/Maildir への配送を qmail に指示した.
$ echo ./Maildir/ >> ~/.qmail $ chmod 600 ~/.qmail
~/Maildir/.password ファイルを作った.
$ echo 'APOPPASSWORD' > ~/Maildir/.password $ chmod 600 ~/Maildir/.password
配送テストおよび確認
配送テストを行った. 自分に送ってみた. 以下のコマンドを実行した.
$ echo to: chikuwa | /var/qmail/bin/qmail-inject
pop 対応メーラ(例. Thunderbird)を用いて pop サーバを tako に指定して tako 上の自分のアカウントあてにメールがと届くことを確認した. メーラの設定は以下の通り.
受信サーバ: POP3 サーバのホスト名: usuzumi.ep.sci.hokudai.ac.jp 受信サーバのポート番号: 110 受信サーバのSSL: 接続の保護なし 認証方式: 暗号化されたパスワード認証
STMP
tcpserver の設定
smtp 中継(smtpを使ったメールの送信)を許可するホストを指定した.
# vi /etc/tcp.smtp
具体的には以下の通り.
133.30.109.78:allow,RELAYCLIENT="" 127.:allow,RELAYCLIENT=""
次に以下のコマンドを実行した.
# /etc/init.d/qmail cdb
起動スクリプト編集
起動スクリプトを編集(コメントアウト)した.
# vi /etc/init.d/qmail
具体的には以下の通り.
start) ... # For SMTP sh -c " /sbin/start-stop-daemon --start --quiet --user qmaild \ --pidfile /var/run/tcpserver_smtpd.pid --make-pidfile \ --exec /usr/local/bin/tcpserver -- -HRv -u ` id -u qmaild ` \ -g ` id -g qmaild ` -x /etc/tcp.smtp.cdb 0 smtp \ /usr/local/bin/rblsmtpd -r bl.spamcop.net \ /var/qmail/bin/qmail-smtpd 2>&1 \ | /var/qmail/bin/splogger smtpd 3 > /dev/null 2>&1 &" ... stop)
/sbin/start-stop-daemon --user qmaild --stop --quiet --oknodo --pidfile /var/run/tcpserver_smtpd.pid --exec /usr/local/bin/tcpserver # smtp
exim4 のアンインストール
exim4 関連のパッケージを確認した.
# dpkg -l | grep exim
exim 関連パッケージを設定ファイルからアンインストールした.
# apt-get remove --purge exim4 exim4-base exim4-config exim4-daemon-light
tcpserver 起動確認
qmail を start して tcpserver の起動を確認した.
# /etc/init.d/qmail start # systemctl daemon-reload # service qmail status
先ほど /etc/tcp.smtp に書いた グローバルIP アドレスを持つパソコンから, メーラー (例. Thunderbird) を使って, smtp サーバを tako に設定し, tako 以外の任意のサーバにあるアカウント宛 のメールを発信してみた. /var/log/syslog にメール送信のログが残っていることを確認した.
# cat /var/log/syslog
接続制御データベースファイル /etc/qmail/tcp.smtp.cdb 自動生成
標準入力から IP アドレスリストを読み込み, /etc/tcp.smtp に書き込むスクリプトを書いた.
$ wget http://www.ep.sci.hokudai.ac.jp/~epmail/y2015/dvlop/script/list-2-tcp $ sudo -s # cp ./list-2-tcp /usr/local/sbin/list-2-tcp # chmod 755 /usr/local/sbin/list-2-tcp # wget http://www.ep.sci.hokudai.ac.jp/~epmail/y2015/dvlop/script/tcp_smtp_cdb # cp ./tcp_smtp_cdb /usr/local/sbin/tcp_smtp_cdb # chmod 755 /usr/local/sbin/tcp_smtp_cdb
参考資料
[ITPASSサーバ構築・運用ドキュメント へ戻る]
Keyword(s):
References:[[ITPASS2017]2017年度サーバ構築ログ]