江戸前高級魚 男の料理レシピ 飲み過ぎ注意 本日も晴天なり 横浜散歩道
あみ〜ごのblog 問い合わせ
  Solaris de サーバ構築
Linux de サーバ構築
 


  ♠ SolarisやLinuxをベースとしたネットワークサーバの構築記録を書き留めています。
  ♠ ハードウエア選定やOSインストール、IP設定などの基礎事項は省略しています。
  ♠ OSによって多少の相違点がありますので、各システム環境に合わせた調整が必要となります。
  ♠ GNUのgccやgunzipなどの各種ツールは、事前に用意(インストール)していることを前提としています。
  ♠ インストールに際しては各ドキュメント(READMEやINSTALL.txtなど)を通して理解することが最優先です。


▼OS▼ ▼Software▼ ▼構築するサーバプロジェクトのテーマ▼ ▼備考▼
22 Linux Ubuntu12 bind9 Linux + bind9によるDNSサーバ脆弱性対策
21 Linux RHEL6 Linux + bondingによるネットワーク冗長化
20 Linux CentOS6 apache2 Linux + apache2によるHTTPSサーバ構築
19 Linux Ubuntu14 WordPress Linux + WordpressによるBlogサーバ構築
18 Linux CentOS6 qmail Linux + qmailによるメールサーバ構築
17 Linux CentOS6 openssh Linux + sshdによるSSHサーバ構築
16 Linux CentOS6 proftpd Linux + ProftpdによるFTPサーバ構築
15 Linux Ubuntu12 bind9 Linux + bind9によるDNSサーバ構築
 
14 Solaris10 perl ASP版・行動予定表(e-ホワイトボード)
13 Solaris9 OpenSSL httpsセキュア・サーバ構築(自己認証)
12 Solaris9 OpenSSH OpenSSHによるSSHサーバ構築
11 Solaris10 Solaris10 Solaris10のシステム構築とセットアップ
10 Solaris10 MovableType MovableTypeによるBlogサーバ構築
9 Solaris10 html 初心者のためのHTML入門
8 Solaris9 qmail qmailによるPOP before SMTPの導入
7 Solaris2.6 外部からの不用な侵入を防止する
6 Solaris2.6 samba ファイルサーバの構築(NFS & SAMBA)
5 Solaris2.2 pppd pppdによるダイヤルアップサーバの構築
4 Solaris9 tcp_wrappers tcp_wrappersによるアクセス制御
3 Solaris9 apache apacheによるWebサーバ構築
2 Solaris2.6 sendmail sendmailとCFでメールサーバの基本設定
1 Solaris9 bind9 bind9によるDNSサーバの設定


◆ qmailによるPOP before SMTPの構築 ◆−sendmailから安全なqmailへ−
 
メール配送システム(MTA)の中で、sendmailには多くのセキュリティホールが指摘され、
SPAMにも狙われやすい状況にある。安全なMTAであるqmailへ移行することを強く勧めする。
ここではqmailへの移行に合わせて"POP before SMTP"を導入する。

qmailの最新版:qmail-1.03.tar.gz
ucspi-tcpの最新版:ucspi-tcp-0.88.tar.gz
open-smtpの最新版:open-smtp3.tar.gz
checkpasswordの最新版:checkpassword-0.81.tar.gz
qmailのpatch:qmail-date-localtime.patch
qmailのpatch:qmail-smtpd-relay-reject
 
設定条件
メールサーバ名qmail
メールサーバFQDNqmail.hoge.co.jp
メールサーバIPアドレス210.150.110.40
ドメイン名hoge.co.jp
qmailバージョンqmail-1.03

qmailのインストール
(patch含む)
"qmail-1.03.tar.gz"
"qmail-date-localtime.patch"
"qmail-smtpd.diff"
tcpserverのインストール "ucspi-tcp-0.88.tar.gz"
"open-smtp3.tar.gz"
"checkpassword-0.81.tar.gz"
.
qmailのインストール(+patch)
% cd /usr/local/src
% tar zxvf qmail-1.03.tar.gz
% mv /tmp/qmail-date-localtime.patch /usr/local/src/qmail-1.03
% mv /tmp/qmail-smtpd-relay-reject /usr/local/src/qmail-1.03
% cd qmail-1.03
% patch < qmail-date-localtime.patch
% patch < qmail-smtpd-relay-reject
%
% vi conf-cc
% head -1 conf-cc					(※cc → gcc へ変更)
gcc -O2
% vi conf-ld
% head -1 conf-ld					(※cc → gcc へ変更)
gcc -s
%
% su root
Passwd:
# mkdir /var/qmail					← qmailの格納ディレクトリ
# groupadd nofiles					← 以下qmailが使用するuser/group
# useradd -g nofiles -d /var/qmail/alias alias
# useradd -g nofiles -d /var/qmail qmaild
# useradd -g nofiles -d /var/qmail qmaill
# useradd -g nofiles -d /var/qmail qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail qmailq
# useradd -g qmail -d /var/qmail qmailr
# useradd -g qmail -d /var/qmail qmails
# exit
% cd /usr/local/src/qmail-1.03
% which ar
/usr/ccs/bin/ar					← "ar" へのpathがmakeに必須
% make
% su root
Passwd:
# make setup
./install
..........
# make check
./instcheck 
..........
# ./config					← /var/qmail/control以下に必須ファイル生成
# ls /var/qmail/control
defaultdomain   locals   me   plusdomain   rcpthost
#
# touch /var/qmail/control/badrcptto			← 受信拒否アドレス記載ファイル
# cat /var/qmail/control/defaultdomain
hoge.co.jp

# cat /var/qmail/control/locals
localhost.hoge.co.jp
qmail.hoge.co.jp

# cat /var/qmail/control/me
qmail.hoge.co.jp

# cat /var/qmail/control/plusdomain
co.jp

# cat /var/qmail/control/rcpthosts
mailhost.hoge.co.jp
qmail.hoge.co.jp

# cat /var/qmail/control/badrcptto			← 受信拒否アドレス
spam@hoge.co.jp
badmail@hoge.co.jp

# cd /var/qmail/alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 .qmail*
# echo '&mail-user' > .qmail-root			← root宛てのメールは"mail-user"へ
# echo '&root' > .qmail-postmaster			← postmaster宛てメールは"root"へ
# echo '&root' > .qmail-mailer-daemon		← mailer-daemon宛ては"root"へ
# exit
% cd /var/qmail/bin				← 以下は各ユーザ単位での設定
% ./maildirmake $HOME/Maildir
% cd $HOME
% echo ./Maildir/ > .qmail
% chmod 600 .qmail 
%

 bounceメール(failureなど)を削除する (スパムを容認することにもなるが管理工数を省)
% su root
Passwd:
# vi /var/qmail/alias/.qmail-default
# chmod 644 /var/qmail/alias/.qmail-default
# chown alias:nofiles /var/qmail/alias/.qmail-default
# exit
% cat /var/qmail/alias/.qmail-default
#		← .qmail-defaultの中は"#"のみを記述
.
tcpserverのインストール
% cd /usr/local/src
% tar zxvf ucspi-tcp-0.88.tar.gz
% tar zxvf open-smtp3.tar.gz
% tar zxvf checkpassword-0.81.tar.gz
%
% cp ./open-smtp/checkpassword.patch ./checkpassword-0.81/
% cd ./checkpassword-0.81
% patch < checkpassword.patch
% pwd
/usr/local/src/checkpassword-0.81
% make
% su root
Passwd:
# make setup
# make check
# exit
%
% cd /usr/local/src/ucspi-tcp-0.88
% make
% su root
Passwd:
# make setup
# make check
# vi /etc/tcp.smtp					← POPとは無関係に接続許可するアドレス
# touch /etc/tcp.smtp.filter.newer			← POP認証に成功したクライアントIPを記録
# touch /etc/tcp.smtp.filter.older			← tcp.smtp.filter.newerのバックアップ
# vi /usr/local/bin/pop3-record			← POP認証成功時の書き出しスクリプト
# vi /usr/local/bin/age-smtp			← 初期化用スクリプト
# chmod 755 /usr/local/bin/pop3-record
# chmod 755 /usr/local/bin/age-smtp
# vi /var/qmail/rc					← qmail起動スクリプト編集
# chmod 755 /var/qmail/rc
# vi /etc/inetd.conf				← inetd.confの編集
# vi /etc/services					← servicesの編集
%
% cat /etc/tcp.smtp
210.150.110.40:allow,RELAYCLIENT=""			← 適宜、追加/削除も可能
127.:allow,RELAYCLIENT=""
:allow

% cat /usr/local/bin/pop3-record
#!/bin/sh
echo "$TCPREMOTEIP:allow,RELAYCLIENT=\"\"" >>/etc/tcp.smtp.filter.newer
/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp.filter.newer
# End of script

% cat /usr/local/bin/age-smtp
#!/bin/sh
mv /etc/tcp.smtp.filter.newer /etc/tcp.smtp.filter.older
cp /etc/tcp.smtp /etc/tcp.smtp.filter.newer
/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp.filter.newer
# End of script

% cat /var/qmail/rc
#!/bin/sh
/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp(ここで行末)
/usr/local/bin/tcpserver -H -R -u 888 -g 999 -x /etc/tcp.smtp.cdb 0 smtp(下へ続く)
	/var/qmail/bin/qmail-smtpd &(ここで行末)
/usr/local/bin/tcpserver -H -R -c 100 0 pop3 /var/qmail/bin/qmail-popup qmail.hoge.(下へ続く)
	co.jp /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir &(ここで行末)
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail
# End of script
		※ -u 888 は"qmaild"のUID, -g 999 は"nofiles"のGID
		※ qmail.hoge.co.jpはメールサーバのFQDN
		※ tcpserver -H -R のオプションはサーバ認証時間を早くするOption

		  	*tcpserverのoption説明

% su root
Passwd:
# vi /etc/inetd.conf
# cat /etc/inetd.conf | grep pop
##COMMENT-OUT pop3	stream	tcp	nowait .....
#
# cat /etc/services | grep pop
pop3		110/tcp

# ps -ax | grep sendmail
# kill xxx					← sendmail停止
# ps -ax | grep inetd
# kill -HUP yyy					← inetd再起動
#
# mv /etc/rc2.d/S88sendmail /etc/rc2.d/_S88sendmail
# mv /usr/lib/sendmail /usr/lib/sendmail_OLG
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# /var/qmail/rc &					← qmail起動

 qmailの起動設定
# vi /etc/init.d/qmail
# cat /etc/init.d/qmail
#!/bin/sh
QMAIL=/var/qmail
PID=`/usr/bin/ps -e | /usr/bin/grep qmail-se | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'`
case "$1" in

'start')
if [ -f $QMAIL/rc ] ; then
echo "qmail server starting."
/bin/csh -cf "$QMAIL/rc &" > /dev/console 2>&1 &
fi
;;

'stop')
if [ ! -z "$PID" ] ; then
/usr/bin/kill -TERM $PID
fi
;;

*)
echo "Usage: /etc/init.d/qmqil { start | stop }"
;;
esac
exit 0

# chmod 744 /etc/init.d/qmail
# ln /etc/init.d/qmail /etc/rc0.d/K57qmail
# ln /etc/init.d/qmail /etc/rc1.d/K57qmail
# ln /etc/init.d/qmail /etc/rc2.d/S88qmail

 tcp.smtp.filter.newerの更新(踏み台対策)
# crontab -e
# crontab -l | grep age-smtp
0,20,40 * * * * /usr/local/bin/age-smtp		← 左記設定では20分毎に更新
 
※以上で "POP before SMTP with qmail+tcpserver" の設定は終了です。

目次に戻る



WEB行動予定表 無料トライアル - スマホで社員のスケジュール管理
広告  www.linux55.com/
スマホやPCで社員・スタッフの行動予定を一元管理。クラウド対応のWEBホワイトボード