元は1ページの長い文章でしたので、文章が続かない場合はメニューに戻って頭から読んで下さい。
tcpwrapperの代わりになるものです。
ucspi-tcp-0.88.tar.gzを探して来て、インストールして下さい。
え? inetdを止めているのにどうするのかって? 自分から他のサーバへの FTPは問題ありませんよ。
> tar zxf ucspi-tcp-0.88.tar.gz
> cd ucspi-tcp-0.88
> make
> make setup check
CDイメージマウントツールでは無くて、tcpserverを安定稼働させるのに優れているツールです。
daemontools-0.70.tar.gzを探してきて、インストールして下さい。
> tar zxf daemontools-0.70.tar.gz > cd daemontools-0.70 > make > make setup check
それから、ルートに /serviceディレクトリを生成して、起動させます。
> mkdir /service > /usr/local/bin/svscan /service &
更に、これからユーザーを追加するグループも生成しておく。
> pw groupadd nofiles
これは必要であれば行って下さい。
予め、ログ取得用ユーザを作成してから、/serviceディレクトリ以下に設定を行います。
> pw useradd telnetd -g nofiles -d /service/telnetd -s /nonexistent > cd /service > mkdir .telnetd > chmod +t .telnetd > cd .telnetd > mkdir log > chown telnetd log
次に、telnetデーモン起動スクリプトを記述
#!/bin/sh /usr/local/bin/tcpserver -RHv -l0 -c 3 -x ./telnet.cdb 0 telnet /usr/libexec/telnetd 2>&1
これを /service/.telnetd/runと言うファイル名で保存する。
> cd /service/.telnetd > chmod 755 run
次に、ログ出力デーモン起動スクリプトを記述
#!/bin/sh exec /usr/local/bin/setuidgid telnetd multilog t s5000000 n10 ./main
これを /service/.telnetd/log/runと言うファイル名で保存する
> cd /service/.telnetd/log > chmod 755 run
次に、telnetを許可する IPを生成する。
IPアドレス:allow IPアドレス:allow IPアドレス:allow :deny
このように IPアドレスを列挙した telnet.allowファイル(ファイル名称は何でも良い)を作成する。
それを tcprulesコマンドにて DB化する。
> cd /service/.telnetd > /usr/local/bin/tcprules telnet.cdb telnet.tmp < telnet.allow
さて、ここからが一発勝負です。
うまくいかなかったら、/serviced/.telnetdディレクトリを削除してやり直した方が早いです。
> cd /service > mv .telnetd telnetd
これは普通は必要でしょう。
手順は telnetとほぼ同じです。
予め、ログ取得用ユーザを作成してから、/serviceディレクトリ以下に設定を行います。
> pw useradd ftpd -g nofiles -d /service/ftpd -s /nonexistent > cd /service > mkdir .ftpd > chmod +t .ftpd > cd .ftpd > mkdir log > chown ftpd log
次に、ftpデーモン起動スクリプトを記述
#!/bin/sh /usr/local/bin/tcpserver -RHv -l0 -c 3 -x ./ftp.cdb 0 ftp /usr/libexec/ftpd -l 2>&1
これを /service/.ftpd/runと言うファイル名で保存する。
> cd /service/.ftpd > chmod 755 run
次に、ログ出力デーモン起動スクリプトを記述
#!/bin/sh exec /usr/local/bin/setuidgid ftpd multilog t s5000000 n10 ./main
これを /service/.telnetd/log/runと言うファイル名で保存する
> cd /service/.telnetd/log > chmod 755 run
次に、ftpを許可する IPを生成する。
IPアドレス:allow IPアドレス:allow IPアドレス:allow :deny
このように IPアドレスを列挙した ftp.allowファイル(ファイル名称は何でも良い)を作成する。
それを tcprulesコマンドにて DB化する。
> cd /service/.ftpd > /usr/local/bin/tcprules ftp.cdb ftp.tmp < ftp.allow
さて、ここからが一発勝負です。
うまくいかなかったら、/serviced/.ftpdディレクトリを削除してやり直した方が早いです。
> cd /service > mv .ftpd ftpd
メールサーバーを起動させますが、sendmailは使いません。
10年以上もセキュリティホールを放置するようなツールを使うのは、生理的に受け付けません。
そこで、作者自身がセキュリティホールは無いと言う qmailを使う事にします。
portsからインストールを行います。
> cd /usr/ports/mail/qmail > make enable-qmail
※enable-qmailオプションを付ける事で、OSが sendmailを使っていた部分を全て qmailに置き換えてくれます。
ここから先を説明する前に、少し説明を加えます。
sendmailはそれ単体で全ての事をこなしてくれますが、qmailは違います。
・qmail-smtpd:メールを受信する時に必要
・qmail-pop3d:メールボックスからメールを取り出す時に必要
・qmail-start:その他全てを行う為に必要
の3つのデーモンに分かれています。
1つづつ設定していきましょう。
手順は telnetとほぼ同じです。
予め、ログ取得用ユーザを作成してから、/serviceディレクトリ以下に設定を行います。
qmailには様々なユーザーが既に生成されており、区別する為に、後ろに logと付けてみました。
> pw useradd qmaillog -g nofiles -d /service/qmaild -s /nonexistent > cd /service > mkdir .qmaild > chmod +t .qmaild > cd .qmaild > mkdir log > chown qmaillog log
次に、qmail-startデーモン起動スクリプトを記述
#!/bin/sh PATH=/var/qmail/bin /var/qmail/bin/qmail-start ./Maildir/
これを /service/.qmaild/runと言うファイル名で保存する。
> cd /service/.qmaild > chmod 755 run
次に、ログ出力デーモン起動スクリプトを記述
#!/bin/sh exec /usr/local/bin/setuidgid qmaillog multilog t s5000000 n10 ./main
これを /service/.qmaild/log/runと言うファイル名で保存する
> cd /service/.qmaild/log > chmod 755 run
さて、ここからが一発勝負です。
うまくいかなかったら、/serviced/.qmaildディレクトリを削除してやり直した方が早いです。
> cd /service > mv .qmaild qmaild
ちゃんと動いているかをチェックしてみましょう。
sendmailと置き換えインストールしているはずと言うのもチェックする為に、以下のコマンドでチェックしてみます。
> echo test|mail -s"test" 「メールアドレス」
これでメールが届けば、OKでしょう。
予め、ログ取得用ユーザを作成してから、/serviceディレクトリ以下に設定を行います。
> pw useradd smtplog -g nofiles -d /service/smtpd -s /nonexistent > cd /service > mkdir .smtpd > chmod +t .smtpd > cd .smtpd > mkdir log > chown smtplog log
次に、qmail-smtpデーモン起動スクリプトを記述
#!/bin/sh /usr/local/bin/tcpserver -RHv -l0 -c 3 -x ./smtp.cdb 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
これを /service/.smtpd/runと言うファイル名で保存する。
> cd /service/.smtpd > chmod 755 run
次に、ログ出力デーモン起動スクリプトを記述
#!/bin/sh exec /usr/local/bin/setuidgid smtplog multilog t s5000000 n10 ./main
これを /service/.smtpd/log/runと言うファイル名で保存する
> cd /service/.smtpd/log > chmod 755 run
次に、smtp(メール送信)を許可する IPを生成する。
IPアドレス:allow,RELAYCLIENT=// IPアドレス:allow,RELAYCLIENT=// IPアドレス:allow,RELAYCLIENT=//
このように IPアドレスを列挙した smtp.allowファイル(ファイル名称は何でも良い)を作成する。
後ろに全てのリレーションを許可する RELAYCLIENT=//を付ける必要があります。
また、最後に denyを付けてはいけません。付けると許可した IPからのメールしか受信できなくなります(意図的にそうするのも良い)
それを tcprulesコマンドにて DB化する。
> cd /service/.smtpd > /usr/local/bin/tcprules smtp.cdb smtp.tmp < smtp.allow
さて、ここからが一発勝負です。
うまくいかなかったら、/serviced/.smtpディレクトリを削除してやり直した方が早いです。
> cd /service > mv .smtp smtp
メールソフトにサーバーのドメイン(IPも可)を設定して、自分宛に送信してみましょう。
qmailは(と言うよりメールサーバは)非常に複雑な設定が必要です。
ここでは、テストと言うことで、「ユーザーアカウント」@「サーバードメイン」のメール受信設定を行ってみます。
qmailの設定ファイルは、/var/qmail/controlです。
その中には、予め様々な設定が行われていますが、とりあえず無視します。
メールを受信する為に必要な設定は2点です。
1つは、/var/qmail/control/rcpthostsにサーバードメインが記述されていること
もう1つは、ユーザーディレクトリにメールボックスが作成されていること
です。
/var/qmail/control/rcpthostsをエディタであけて、サーバードメインを追記して下さい。
ここに記述されたドメインのメール(メアドの@より後ろね)を受信します。
設定が完了したら、以下のコマンドで反映させて下さい。
> /usr/local/bin/svc -t /service/smtpd
次にメールボックスを作成します。
例えば、nanashiアカウント用のメールボックスを作成するとします。
> cd /home/nanashi > echo ./Maildir/ > .qmail > /var/qmail/bin/maildirmake ./Maildir > chown nanashi qmail > chown -R nanashi Maildir
他のサーバからメールを送信してみて、/home/nanashi/Maildir/newディレクトリに届けば OKです。
その前に checkpasswordと言うツールをインストールします。
簡単に portsから入れましょう。
> cd /usr/ports/security/checkpassword
> make install
予め、ログ取得用ユーザを作成してから、/serviceディレクトリ以下に設定を行います。
> pw useradd pop3log -g nofiles -d /service/pop3d -s /nonexistent > cd /service > mkdir .pop3d > chmod +t .pop3d > cd .pop3d > mkdir log > chown pop3log log
次に、pop3dデーモン起動スクリプトを記述
#!/bin/sh /usr/local/bin/tcpserver -RHv -l0 -c 3 -x ./pop.cdb 0 pop3 /var/qmail/bin/qmail-popup mail.yun.cup.com checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>&1
これを /service/.pop3d/runと言うファイル名で保存する。
> cd /service/.pop3d > chmod 755 run
次に、ログ出力デーモン起動スクリプトを記述
#!/bin/sh exec /usr/local/bin/setuidgid pop3log multilog t s5000000 n10 ./main
これを /service/.pop3d/log/runと言うファイル名で保存する
> cd /service/.pop3d/log > chmod 755 run
次に、popを許可する IPを生成する。
IPアドレス:allow IPアドレス:allow IPアドレス:allow :deny
このように IPアドレスを列挙した pop3.allowファイル(ファイル名称は何でも良い)を作成する。
それを tcprulesコマンドにて DB化する。
> cd /service/.pop3d > /usr/local/bin/tcprules pop3.cdb pop3.tmp < pop3.allow
さて、ここからが一発勝負です。
うまくいかなかったら、/serviced/.telnetdディレクトリを削除してやり直した方が早いです。
> cd /service > mv .pop3d pop3d
メールソフトにサーバーのドメイン(IPも可)を設定して、メール受信してみましょう。
先程のテストメールが取得出来れば OKです。