私のおうちサーバ(変なネーミングですが、意味は分かりますよね。)は、FreeBSD を使っています。
ここでは、設定等のメモを書いていこうと思います。
ここでは、FreeBSD-4.X-Release を前提にしています。
2008年06月05日時点での最新の 6.3-Release 7.0-Release とは
設定等が大幅に違う部分がありますので、注意してください。
サーバ利用に使うプログラムのマニュアル等を置いてます。
apache
Release 版しかインストールしたことがないので、何も書けません。(^^;
-Stable や -Current を入れてみたいのですが、make するにはちょっと厳しいマシンスペックなのです。
実は、make の仕方がよく分からないというのが正直なところです。
たいてい、雑誌に付録の CD-ROM からインストールするのですが、最近は DVD になってしまって、DVD ドライブを持ってない私は困ってしまいました。
そこで、FTP サイトからダウンロードして、CD-R を焼いていたのですが、焼くのも面倒になったので、DOS Partition からインストールしました。
前置きが長くなりましたが、やり方は簡単で、
C:\freebsd
にダウンロード一式を置いてやれば OK です。
FDD も CDD/DVDD もないPCにインストールする場合、色々選択肢はあります。
1.HDを入れ替える。
2.PXEを利用する。
1.のパターンを今まで使っていましたが、母艦となるPCのHDがS-ATAになってしまい、HDを入れ替えられなくなってしまいました。
そこで、PC を LAN からブートできる場合のうち、よくある PXE を利用してインストールします。
1.インストールするPC(以降クライアントPC)でPXE が動作するようにBIOSを設定
起動順位をHDDよりLANの方を先にしておきます。
2.クライアントPCのMACアドレスをメモします。
これは、PXEの動作時に表示されます。例) MAC 00:00:21:98:3B:12
3.FreeBSD のCDまたはISOイメージを準備
ISOイメージをCDに焼いても、そのままでもOKです。
ISOイメージのままの場合、下記のように、ISOイメージをマウントする必要があります。
FreeBSD 4.X系のCDのISOイメージは ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/ISO-IMAGES/ にあります。
ちなみに、4.11のdisc1はgnomeとkdeの2種類ありますが、
ウィンドーマネジャーが違うだけなので、
X11を使うのでなければ、どちらでもOKです。
また、disc2はブートCDではなく、主にpackagesが入っているだけなので、
インストールには、上記disc1を使います。
4.ルーターの設定
ルーターのDHCPは無効にしておきます。
母艦となるPC(サーバーPC)には
1.tftp
2.DHCP
3.NFS
が動作している必要があります。
tftpの設定は割と簡単で
/etc/inetd.conf で
tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /cdrom/boot |
tftpd : localhost : allow tftpd : 127.0.0.1 : allow tftpd : 192.168.0.0/225.225.225.0 : allow tftpd : ALL : deny |
ALL : ALL : allow |
/etc/rc.conf で
nfs_server_enable="YES" portmap_enable="YES" |
/cdrom -network 192.168.0.0 -mask 255.255.255.0 |
/usr/ports/net/isc-dhcp3-server でインストール
FreeBSD 4.X系で /etc/rc.subr がないとエラーが出れば、
/usr/ports/sysutils/rc_subr をインストールして、
ln -s /usr/local/etc/rc.subr /etc/rc.subr
とリンクを張ってやればよいです。
/etc/dhcpd.conf を下記のようにします。
server-identifier 192.168.0.10; ←(*1) default-lease-time 3600; max-lease-time 7200; ddns-update-style none; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.100 192.168.0.150; ←(*2) option routers 192.168.0.1; option subnet-mask 255.255.255.0; host pxeboot { hardware ethernet 00:00:21:98:3B:12; ←(*3) fixed-address 192.168.0.101; ←(*4) filename "pxeboot"; ←(*5) option root-path "192.168.0.10:/cdrom"; ←(*6) } } |
dhcpd_enable="YES" dhcpd_conf="/etc/dhcpd.conf" dhcpd_ifaces="ed0" ←サーバーPCのネットワークアダプタ |
/usr/local/etc/rc.d/isc-dhcpd.sh start
で起動します。
1-a.CDを使う場合
サーバーPCにFreeBSDのCDをセットして、
#mount /cdrom
**注意** CDをセットしたままサーバーPCを再起動すると、サーバーPCにFreeBSDのインストーラーが起動してしまいます。
1-b.ISOイメージを使う場合
まず、kernel に擬似ディスクデバイス「vn」が組込まれている必要があります。
つまり、kernelコンフィグファイルに
pseudo-device vn |
やっと本題のISOイメージのマウントですが、
# vnconfig -c /dev/vn0 ISOイメージ
# mount -t cd9660 -o ro /dev/vn0 /cdrom
です。
アンマウントは
# umount /cdrom
# vnconfig -u /dev/vn0
です。
設定のメインになるのは /etc/rc.conf です。
今はこんな感じです。
apm_enable="YES" defaultrouter="xxx.xxx.xxx.xxx" hostname="yumichan.xxx.xxx" ifconfig_ed0="inet xxx.xxx.xxx.xxx netmask 255.255.255.0" pccard_enable="YES" pccardd_flags=" -z -i 3" kern_securelevel_enable="NO" keymap="jp.106x" linux_enable="YES" moused_enable="NO" nfs_reserved_port_only="YES" sshd_enable="YES" xntpd_enable="YES" tcp_drop_synfin="YES" sendmail_enable="YES" sendmail_flags="-bd" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" |
apm_enable="YES"
APM を有効にします。ただ、これだけではダメで、私が知っているのは、カーネルifconfig_ed0="inet xxx.xxx.xxx.xxx netmask 255.255.255.0"
Note PC なので、ed0 になってます。pccardd_flags=" -z -i 3"
PC カードの設定が完了するまでは、ネットワークの設定が行なわれないようにkeymap="jp.106x"
インストール時の設定で Japanese 106 を選ぶとxntpd_enable="YES"
タイムサーバの設定をします。
server 133.100.9.2 #clock.nc.fukuoka-u.ac.jp server 133.100.11.8 #clock.tl.fukuoka-u.ac.jp driftfile /etc/ntpd.drift |
server ntpサーバの IP アドレス prefer driftfile /etc/ntpd.drift |
tcp_drop_synfin="YES"
SYN FIN の Packet が一対になった不正なアクセスを遮断します。
net.inet.tcp.blackhole=1 net.inet.tcp.log_in_vain=1 net.inet.udp.log_in_vain=1 |
sendmail_enable="YES" sendmail_flags="-bd" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" |
FTP サーバで、ホームディレクトリより上を見せないようにするには、
/etc/ftpchroot
に、ユーザ名を書くか、@グループ名を書けばいいです。
FTP login させないユーザ名を書きます。
apache の設定ファイル httpd.conf の主なものは以下の通りです。
ただし、あくまで設定の一部です。
DocumentRoot "/home/apache" <Directory "/home/apache"> Options FollowSymLinks Indexes Includes MultiViews </Directory> AccessFileName .htaccess <IfModule mod_alias.c> ScriptAlias /cgi-bin/ "/home/apache/cgi-bin/" <Directory "/home/apache/cgi-bin"> Options ExecCGI </Directory> </IfModule> <IfModule mod_mime.c> pp AddHandler cgi-script .cgi AddType text/html .shtml AddHandler server-parsed .shtml </IfModule> ErrorDocument 404 /missing.html ErrorDocument 401 /auth.html ErrorDocument 403 /forbidden.html ErrorDocument 500 /internalservererror.html |
DocumentRoot "/home/apache"
ドキュメントルート の設定です。AccessFileName .htaccess
アクセス制御ファイルの設定です。ScriptAlias /cgi-bin/ "/home/apache/cgi-bin/"
で、CGI を置くディレクトリを設定し、<Directory "/home/apache/cgi-bin"> Options ExecCGI </Directory>で、CGI の実行許可をします。
AddHandler cgi-script .cgi
CGI ファイルの拡張子の設定です。
AddType text/html .shtml
AddHandler server-parsed .shtml
ErrorDocument 404 /missing.html
エラーメッセージを指定します。