サーバー構築メモ3
LastUpDate 20060704

7月4日
FTPサーバー
■その前にDNS確認

先日、DNSの設定を行いました。
そこでプロキシ経由で自分家のサーバーにアクセスしてみると・・・
# less /var/www/www.77v.jp/logs/access.log.20060705
200.206.243.33 - - [05/Jul/2006:00:24:26 +0900] "GET /favicon.ico HTTP/1.1" 200 1108
200.206.243.33 - - [05/Jul/2006:00:25:11 +0900] "GET /user.php HTTP/1.1" 200 687

おおー ログ取れてる!


■FTPチェック
# /etc/init.d/vsftpd status
vsftpd (pid 15057) を実行中...

# netstat -p -l
tcp 0 0 *:ftp *:* LISTEN 15057/vsftpd
LISTENされてます。
違うポートを使いたい時には
/etc/xinetd.d/vsftpd に以下を追記してxinetdを再起動することで接続出来ました。
port = 7777
と書いて
/etc/servicesに追加

うーんローカル内でもFTPに繋がらないなぁ
今日はここまで

7月3日
DNS設定5日目
■DNS設定

# /usr/local/sbin/named -u named
# ps -aux|grep named
named 13656 0.0 0.5 4348 2252 ? S 22:40 0:00 /usr/local/sbin/named -u named

おおー namedが動いた
チェックしてみよう

■digでチェック
# /usr/local/bin/dig @127.0.0.1 77v.jp soa ;; QUESTION SECTION:
;77v.jp. IN SOA

;; ANSWER SECTION:
77v.jp. 86400 IN SOA dns.77v.jp. root.77v.jp. 2006070208 3600 900 604800 86400

;; AUTHORITY SECTION:
77v.jp. 86400 IN NS dns.77v.jp.

;; ADDITIONAL SECTION:
dns.77v.jp. 86400 IN A 192.168.1.10

# /usr/local/bin/dig @127.0.0.1 77v.jp ns
;; QUESTION SECTION:
;77v.jp. IN NS

;; ANSWER SECTION:
77v.jp. 86400 IN NS dns.77v.jp.

;; ADDITIONAL SECTION:
dns.77v.jp. 86400 IN A 192.168.1.10

# /usr/local/bin/dig @127.0.0.1 dns.77v.jp a
;; QUESTION SECTION:
;dns.77v.jp. IN A

;; ANSWER SECTION:
dns.77v.jp. 86400 IN A 192.168.1.10

;; AUTHORITY SECTION:
77v.jp. 86400 IN NS dns.77v.jp.

# /usr/local/bin/dig @127.0.0.1 -x 192.168.1.10
;; QUESTION SECTION:
;10.1.168.192.in-addr.arpa. IN PTR

;; AUTHORITY SECTION:
10.1.168.192.in-addr.arpa. 3600 IN SOA dns.77v.jp. root.77v.jp. 2002122001 3600 900 604800 3600

うまく行っているみたいヽ(・∀・)ノ ワッソイ!

■jailインストール!

# cd /home/install/
# wget http://www.jmcresearch.com/src/projecthelper.php?action=download&id=1&url=/static/dwn/projects/jail/jail_1.9a.tar.gz
# tar xzvf jail_1.9a.tar.gz
# cd ./jail/src
# make
# make install
# mkjailenv /home/jails
# addjailsw /home/jails
# addjailsw /home/jails -P chgrp
# addjailsw /home/jails -P chown
# /home/jails -P chmod
# addjailsw /home/jails -P chmod
# addjailsw /home/jails -P ssh -V
# addjailsw /home/jails -P scp -v
# addjailsw /home/jails -P groups
# mkdir -p /home/jails/usr/libexec/openssh
# cp /usr/libexec/openssh/sftp-server /home/jails/usr/libexec/openssh
# cd /home/jails/etc/
# vi shadow ルートのパスワードを*にする
# groupadd jailuser
# mkdir /home/jails/home/jailkenp
# useradd -G jailuser -d /home/jails/home/jailkenp -s /usr/local/bin/jail jailkenp
# passwd jailkenp
# vi /etc/passwd
[username]:x:510:500::/home/jails/home/[username]:/usr/local/bin/jail

[username]:x:510:500::/home/jails:/usr/local/bin/jail
# addjailuser /home/jails /home/jail/jailkenp /bin/bash jailkenp

■vsftpdインストール&設定

# rpm -qa |grep vsftpd
vsftpd-1.2.0-4 無かった場合、CDからインストール

# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES → anonymous_enable=NO
#ftpd_banner=Welcome to blah FTP service.→ftpd_banner=Unknown.
#chroot_list_enable=YES →chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list → chroot_list_file=/etc/vsftpd.chroot_list

最下行に追加
userlist_deny=NO
use_localtime=YES
log_ftp_protocol=YES
pasv_max_port=20001
pasv_min_port=20010

# vi /etc/vsftpd.chroot_list
jailkenp を記入

# vi /etc/vsftpd.user_list
#root
#bin
#daemon
#adm
#lp
#sync
#shutdown
#halt
#mail
#news
#uucp
#operator
#games
#nobody
jailkenp こんな感じにする

▲hosts.allow
vsftpd : 192.168.1. 127.0.0.1
▲hosts.deny
vsftpd : all
# /etc/init.d/vsftpd start
# chkconfig --list vsftpd ←デフォルト起動確認
vsftpd 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフ

# ps ax | grep vsftpdEnter
4529 pts/1  S   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
 ↑vsFTPdが実行中であることを示します。

会社のIP調べて、明日hosts.allowに書いてみよう。また明日っ
7月2日
DNS設定4日目
■エラー解消

Jul 2 07:22:22 www init: cannot execute "/command/svscanboot"
Jul 2 07:22:22 www last message repeated 9 times
Jul 2 07:22:22 www init: Id "SV" respawning too fast: disabled for 5 minutes



/var/log/messageを見てみると、上記のようなメッセージが。
どうやらデーモンツールがらみらしい。
あ、この前/packageを消したんだ!
入れなおさないと(・ω・;A)アセアセ…

うーんnamedが動かないなぁ
@IT見てやり直すか
参考:http://www.atmarkit.co.jp/flinux/rensai/bind901/bind901b.html

■やりなおし

# cd /home/install/bind-9.3.2
# ./configure
# make clean
# make
# make install
# userdel named
# useradd -g dns -d /var/named -s /bin/false named
# chown named:dns /var/named/

■自動起動
-namedがランレベル3,5で自動起動するように設定-
# /sbin/chkconfig --level 35 named on [enter]
-自動起動するか確認-
# /sbin/chkconfig --list named [enter]
named      0:オフ 1:オフ 2:オフ 3:オン 4:オフ 5:オン 6:オフ

の部分だけをファイル named.conf の options設定の前に挿入します。

# chmod 600 /usr/local/bind9/etc/rndc.key
# chmod 600 /usr/local/bind9/sbin/rndc.conf


リモートアクセス用アプリケーション rndc のために 常にポート 953/tcp はオープンとなります。
もし、rndc を利用することがなければ、
# chmod 400 /usr/local/bind9/sbin/rndc.conf にして下さい。

named.confのユーザー、パーミッションも変更します。

# cd /usr/local/bind9/etc/
# chown root:dns named.conf
# chmod 440 named.conf
# shutdown -r now

パソコンをリブート。namedが正常に起動しない時はエラー見ながら修正
う、動かん!!
続きはまた明日
6月29日
DNS設定3日目
■keyの生成と設定

# /usr/local/bind9/sbin/rndc-confgen -a
wrote key file "/etc/rndc.key"
# cp /etc/rndc.key /usr/local/bind9/etc/

ファイル rndc.key が /usr/local/bind9/etc/ 内に作成されますので、rndc.keyを確認後、続けて


# cd ../sbin/
# /usr/local/bind9/sbin/rndc-confgen > rndc.conf

# vi rndc.conf

key "rndc-key" {
algorithm hmac-md5;
secret "3wfA2Ah5k+DadJhakE/H0A==";
};
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};

の部分だけをファイル named.conf の options設定の前に挿入します。

# chmod 600 /usr/local/bind9/etc/rndc.key
# chmod 600 /usr/local/bind9/sbin/rndc.conf


リモートアクセス用アプリケーション rndc のために 常にポート 953/tcp はオープンとなります。
もし、rndc を利用することがなければ、
# chmod 400 /usr/local/bind9/sbin/rndc.conf にして下さい。

named.confのユーザー、パーミッションも変更します。

# cd /usr/local/bind9/etc/
# chown root:dns named.conf
# chmod 440 named.conf
# shutdown -r now

パソコンをリブート。namedが正常に起動しない時はエラー見ながら修正
う、動かん!!
続きはまた明日
6月27日
DNS設定2日目


■BINDに変更

今日会社の上司に「DJBDNS」でDNS構築しようと思って・・・
と言ったら「だめ〜」と言われました。
ややこしいからBINDにしなさいと。
DJBDNSを知っておくのはいいけど、実際の構築では面倒らしい。
今回は上司の言うとおりにBINDで構築しますか

〜参考サイト〜
http://www1.neweb.ne.jp/wb/i-user/m_net/bind9.htm
http://www.bsddiary.net/doc/bind9.html
http://www.e-ryoichi.net/linux&server/computer_new_network/computer_new_server_4.htm

http://djbdns.qmail.jp/からdjbdns-1.0.5.tar.gzとdaemontoolsをダウンロードして/home/install に入れる
まず、/package/ ディレクトリを作成します。
デーモンツールをコピーして展開します
# cp -i /usr/sbin/named /usr/sbin/named.bind8
# cd /home/install/
# tar zxvf bind-9.3.2.tgz
# ps auxw | grep named
# kill [PID] ←起動しているnamedを停止します。
# ./configure --prefix=/usr/local/bind9 --with-openssl=/usr/local/openssl --enable-ipv6=no
# make depend ←bindのインストール先をデフォルト以外にします。
# make all
# make install
BIND9の本体であるnamedデーモンがインストールされます。
Red Hat Linux では、namedデーモンは「/usr/sbin/」のディレクトリにインストールされているので、
このままではBIND9のnamedデーモンを稼動させることができません。
これを回避するには、「./configure」の時点で、「--prefix」オプションにより
インストールするディレクトリを指定することができます。

named.pid用のディレクトリを作成します。

# mkdir /usr/local/bind9/var
# mkdir /usr/local/bind9/var/run
# touch /usr/local/bind9/var/run/named.pid

named を動かすためのユーザとそのグループを作成します。
ユーザ名は named, グループ名は dns とします
run ディレクトリーのユーザー、パーミッションを変更します。

# groupadd dns -g 70
# vi /etc/group 下にdns:x:70:named
# cd /usr/local/bind9/var/
# chown named:dns run
# chmod 700 run


また、keyファイル、named.confなどを設置するディレクトリを作成します。
# mkdir /usr/local/bind9/etc

新しくインストールしたbindが自動起動するように rc.confを編集します。
# vi /etc/rc.conf named_enable="YES"
named_program="/usr/local/bind9/sbin/named"
named_flags="-u named -c /usr/local/bind9/etc/named.conf"
ディレクトリ /usr/local/bind9/etc/ 内に
named.conf named.rootなどの必要ファイルをコピーします。
cp /etc/named.conf /usr/local/bind9/etc/
続きはまた明日
6月26日
DNS設定
■デーモンツールインストール

とうとう来ました!苦手分野のDNS設定!
実は今まで一回もやったことないのよね〜
ここでバチッと設定して自信をつけるぞっ!
bindはセキュリティーホール情報とか出ているからdjbdnsを利用してみる
djbdnsにセキュリティホールを見つけて、最初に公表した方には $500 の賞金がでます。 らしいし

〜参考サイト〜
http://djbdns.qmail.jp/djbdns.html
http://network.station.ez-net.jp/special/djbdns/doc/1-2.asp

http://djbdns.qmail.jp/からdjbdns-1.0.5.tar.gzとdaemontoolsをダウンロードして/home/install に入れる
まず、/package/ ディレクトリを作成します。
デーモンツールをコピーして展開します
# mkdir -p /package/
# chmod 1755 /package/
# cd /package/ # tar zxvf daemontools-0.76.tar.gz
# cp /home/install/daemontools-0.76.tar.gz /package/
# cd /package/admin/daemontools-0.76/
# package/install
# Copying commands into ./command...
# cp: cannot stat `compile/svscan': そのようなファイルやディレクトリはありません
げげげ、エラーが出た。
調べてみたら. errno.hというのが問題らしい。
extern int errno; を削除し、1行目に #includeを記述します。

# grep 'extern int errno' ./compile/*
./compile/error.h:extern int errno;

# vi ./compile/error.h
# package/install
Adding svscanboot to inittab...
init should start svscan now.
これでインストール完了です。


■djbdnsインストール

/usr/local/src/ ディレクトリに djbdns-1.05.tar.gz をコピーして、その中で展開します。
# cd /usr/local/src/
# cp /home/install/djbdns-1.05.tar.gz ./
# tar zxvf djbdns-1.05.tar.gz
# cd djbdns-1.05
# make
: undefined reference to `errno'
collect2: ld はステータス 1 で終了しました
make: *** [auto-str] エラー 1

またかい!!
上と同じように error.h ファイルを開いてextern int errnoを削除して一行目に#includeを記述
# make
# make setup check
./install
./instcheck

で完了です!
なんか時間掛かりました。今日は寝ますzzz