『玄箱インストール』
 
【HDDの初期化】
#rm -rf / ←でハードディスクのファイル削除
コンセントを抜く→差す→再起動が点滅後落ちる→コンセントを抜く→差す→再起動
 
【玄箱のVine化セットアップ】
1.http://kuro.kaguya.biz/ からキットを入手 (vine_*_dist.tgz)
2.玄箱付属のCDを普通にインストール
1.再起動はせず。続いてブラウザで 
http://kuro-box/ を指定 ユーザー「root」パスワード無しで入る。
IPアドレスを指定しDHCPは使わない設定にする。 
現在に自分のパソコンのIPアドレスが192.168.1.3
ゲートウェイが192.168.1.1のルータを使っているとして
今回は玄箱は192.168.1.106 とする
▲錙璽グループを自分のWindowsパソコンと同じにする。
4.FTPを立ち上げて玄箱に接続(ユーザーroot,パスワードkuro)
5.入手したvine_*_dist.tgzを/(ルートディレクトリ)にアップする。
ここではすぐ必要ないがついでに玄箱のCD-ROMのbinaryフォルダの中にある
g++-2.95.3.tar.gz
gcc-2.95.3.tar.gz
glibc-2.2.3.tar.gz
make-3.79.1.tar.gz
binutils-2.10.91.0.2.tar.gz
   も一緒にコピーしておく。
2.Telnetを立ち上げてルートに入る
# telnet 192.168.1.106
ユーザー:root パスワード:kuro
#cd /
7.vine_*_dist.tgzを展開
#tar zxvf vine_*_dist.tgz
同様に g++-2.95.3.tar.gz gcc-2.95.3.tar.gz glibc-2.2.3.tar.gz
make-3.79.1.tar.gz binutils-2.10.91.0.2.tar.gz
も展開しておく。
8.環境ファイルを設定(Mail編で少々変更します)
/etc/sysconfig/network
NETWORK=yes
HOSTNAME=localhost
GATEWAY=192.168.1.1
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.106
NETMASK=255.255.255.0
NETWORK=192.168.1.0
GATEWAY=192.168.1.1
/etc/hosts
127.0.0.1 localhost
192.168.1.106 BOX-SV
/etc/resolv.conf
nameserver 192.168.1.1
3.Vine化終了です。コンセントを抜いて再起動させましょう。
【玄箱起動後最初にすべきこと】
Telnet、FTPともにrootではアクセス出来なくなっています。
最初のログインは
user: tmp-kun
password: tmp-kun になっています。
★パスワードの変更
,泙Telnetして上記のユーザーでログイン
#su ←スーパーユーザーに変更
rootのパスワード変更
#passwd
パスワードを聞いてくるので入力
もう一度同じパスワードを入力
tmp-kunのパスワードも変更しておく。
ど要に応じ新たなユーザーを作成。
 
★ユーザーの作成方法
ユーザーのホームディレクトリの場所はファイルスペースの大きい
/mnt/homeの中に作りましょう。
ホルダ名はユーザー名と同じとする。
グループは適当なグループに属するように作成。
登録するグループをgrpname、ユーザー名namaeとしたとき
 
場所を作成
#mkdir /mnt/home
グループの作成
#groupadd grpname
ユーザーを作成と同時にホームを作成
#useradd -g grpname -m -d /mnt/home/namae namae
パスワードを作成
#passwd namae
パスワードを2回入力
 
★Vine化した玄箱はそのままではshutdownコマンドが使用できない。
そこで /etc/init.d/halt の以下の部分を追加する。
#See how we were called
Case "$0" in
*halt)
echo -n EEEE > /dev/ttyS1 ←ここを追加
message=$"Halting system...."
command="halt"
;;
*reboot)
echo -n CCCC > /dev/ttyS1 ←ここを追加
command="reboot"
;;
*)
echo $"S0: call me as 'rc.halt' or 'rc.reboot' please!"
exit 1
;;
esac
シャットダウンは  shutdown -h now
リブートは shutdown -r now
【本体スイッチで電源が落ちない現象に対処】
このままでは本体のスイッチで電源が落ちません。
/www/script/melsub_shutdown.shのsmbの起動チェックを行毎 #で潰せば落ちるようになる。
『玄箱にHTTPサーバー&関連各種ソフトのインストール』
 
基本はapt-getで出来るものはapt-getを使ってインストール
そのほかはソースを入手してmake install
 
apt-getを使うために、まず /etc/apt/sources.list を修正する。
#vi /etc/apt/sources.list ←編集できる状態にする
VilePlusの頭のコメント#を取り除いて保存
 
◇◇実施メニュー◇◇HTTPサーバ イーンストール順(順番は大切です)
 
ファイルを送り込むのにFTPをインストールしても良いのですがsmbaで共有させて
Windowsのパソコンから送り込む事にします。
 
以下を順にインストール
1)ソースからsamba をまずインストール
2)openssl
3)imap
4)rpmでMySQL、MySQL-client、MySQL-devel、MySQL-shared、MySQL-Max
5)rpm でapache、apache-devel(これは最新バージョンがほしい場合はソースから)
6)他、apache等で必要なrpmをゲット
7)phpをインストール
 
以下手順
 
【samba】
1.古いsambaを削除
#cd /etc
#rm -r -f samba
2.以下インストール作業
#apt-get update
#apt-get install samba
#apt-get clean
完了
3.設定ファイル
設定ファイル: /etc/smb.conf
passwdファイル:/etc/smbpasswd
4.Samba用パスワードの作成
既存の/etc/passwdファイルからSamba用のパスワードファイルを作る
#cat /etc/passwd | /usr/bin/mksmbpasswd.sh > /etc/smbpasswd
#chmod 600 /etc/smbpasswd ←rootだけ読み書きOK
#smbpasswd ********* ←ユーザーを作る(*はユーザー名)
パスワード2回入力
5.smb.confで次の行があり、有効になっているのを確認
encrypt passwd = yes
smb passwd file = /etc/smbpasswd
6.起動
#/etc/init.d/smb start
7.自動起動設定
#chkconfig smb on
設定確認
#chkconfig --list smb
smb 0:off 1:off 2:0ff 3:on 4:on 5:on 6:off
8.設定ファイルの編集
vi で smb.confを編集
 
以下smb.conf例
-------------------------------------------------------------------------------------------------
# Samba config file created using SWAT
# from 192.168.1.110 (192.168.1.110)
# Date: 2004/07/14 13:46:27
 
# Global parameters
[global]
coding system = euc
client code page = 932
workgroup = **** ←Windowsと同じワークグループにしよう
netbios name = BOX-SV ←/etc/hostsに書いてある名前に合わせよう
hosts allow = 192.168.1. ←192.168.1.* がこれでアクセス出来るようになる
server string = %L: Samba %v on %h
encrypt passwords = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n *Re*new*password* %n\n *success*
unix password sync = Yes
log file = /var/log/samba/log.%m
max log size = 50
deadtime = 15
read size = 65536
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
add user script = /usr/sbin/useradd %u
lm announce = No
dns proxy = No
wins support = Yes
winbind uid = 10000-20000
winbind gid = 10000-20000
printer admin = administrator
printing = lprng
lppause command = lpc hold %p %j
lpresume command = lpc release %p %j
queuepause command = lpc stop %p
queueresume command = lpc start %p
dos filetimes = Yes
dos filetime resolution = Yes
 
[homes] ←これはlogin user用のホルダ設定
comment = %S's Home Directories
writeable = Yes
browseable = No
 
[pico] ←これでpicoというグループのみが入れるホルダが出来る
comment = pico
path = /mnt/home/pico
valid users = @pico
writeable = Yes
force group = pico
force user = root
 
[www] ←ホームページを置くホルダも作る。入れるのはmiyaグループ
comment = home pages root
path = /mnt/www
public = yes
;guest ok = yes
read onry = no
create mask = 644
directory mode =755
delete veto files = yes
veto files = /\.*/
valid users = @miya
writeable = Yes
force user = root
 
[etc files] ←誰でも入れる共有スペース
comment = All users File
path = /mnt/home/etcfile
writeable = Yes
guest ok = Yes
hosts allow = 192.168.1.
force user = root
---以上----------------------------------------------------------------------------------------------
 /etc/smb.confの編集保存が終わったら、Sambaを再起動する。
 
【SWATを利用するには】
samba インストール後、
 
設定ファイル: /etc/inetd.conf に以下の記述があればよい
------------------------------------------------------
swat stream tcp nowait.400 root /usr/sbin/swat swat
------------------------------------------------------
また
サービスとして起動するために
設定ファイル:/etc/services
------------------------------------------------------
swat 901/tcp # Samba Wab Administration Tool
------------------------------------------------------
 の記述が有効になっていればokです。
 
 このあとinetdのリスタートが必要
#/etc/rc.d/init.d/inet restart
 
 そうすれば http://玄箱のアドレス:901/ を開くと swat のユーザ認証ダイアログが出ます
 ので玄箱のスーパーユーザーのID,Passwordを入力すれば設定画面が開きます。
 
 あとはブラウザでURLを"http://Samba-2.0.0が動いてるマシン:901/"と指定すれば
 パスワードの入力を要求されますので、rootでログイン。
 Sambaの設定を変更したり出来ます。
 
以上 Samba関連終了
 
 
 
 
 
【OpenSSL】
 
今までにapt-getでrpm取得して何かソフトをインストールしている場合、依存関係で
このOpenSSLもインストールされている可能性があります。これをアンインストールし
て以下の方法で再インストールすべきだが、時として依存関係で不具合が出る可能性が
あります。単独でアンインストール出来ない場合はかまわずに上書きでOpensslを
インストールしてしまおう。特に問題は出ないはずです。
まず。
インストールされているか調べる。
# rpm -ql openssl
あるなら削除
# apt-get remove openssl
ついでにdevelも調べる
# rpm -ql openssl-devel
あるなら削除
# apt-get remove openssl-devel
 
http://www.openssl.org/ からopenssl-0.9.7d.tar.gzをダウンロード
設定作業用のディレクトリ(/usr/local/src)にコピー
$ tar -zxvf openssl-0.9.7d.tar.gz
$ cd openssl-0.9.7d/
$ ./config
$ make
$ make test
$ su
# make install
 
 
【Imap】
 
ブラウザからPHPでメールボックスにアクセスするためにimap_open()を使うには
IMAPが必要です。
IMAP関数を動作させるには、UW IMAPが必要となります。
これはftp://ftp.cac.washington.edu/imap/から取得できます。
デフォルトでSSL対応IMAPをコンパイルするようになっていますのでOpenSSLは
先にインストールしておく必要があります。今回はすでにOpenSSLはインストールして
あるのでOK。以下実施方法。
 
# uncompress imap.tar.Z
# tar xf imap.tar
# cd imap-2004a
# make slx
ここでエラーが出る場合は先に進めません。
多くの場合、opensslのインストール先を変えてしまっている場合が多いようです。
configで場所を変えている場合はMakefileを変更する必要があります。
 
# cd c-client
# cp -p rfc822.h mail.h linkage.h /usr/local/include/
# cp -p c-client.a /usr/local/lib/
 
PHP側ですが、configure時に
--with-imap=[c-client.aへのPREFIX]、--with-imap-ssl=[OpenSSLのインストールディレクトリ]」を付け、コンパイルします。以下の部分はPHPインストール時に実行しますので省略。
# ./configure .... --with-imap=/usr/lib --with-imap-ssl=/usr/local ←PHPのconfigure
【MySQL】 apt-getで取得
データーベースのインストールです。
 
ソースからインストールでも良いですが大変なのでrpmで実施
 
インストール
# apt-get update
# apt-get install MySQL MySQL-client MySQL-devel MySQL-shared MySQL-Max
# apt-get clean
 
 
◆MySQL初期設定
1) データベースを初期化 (初めてインストールしたときは必ず実施)
 データーベースファイルを作成
 # /usr/bin/mysql_install_db
 これで/var/lib/msql 以下に作成される。
 
2) データーベースファイルが作成されたのでそれらのファイルを
 mysqld を起動する user の所有にしておく。
 
 #chown -R mysql.mysql /var/lib/mysql
 
◆テスト
mysqladmin で簡単な動作チェック。versionを出してみる。
# mysqladmin version
でたくさんバージョン関連の文字が表示される。
 
起動済みを確認
# netstat -at
↓この表示がされれば起動済み。
tcp    0   0 *:mysql       *:*          LISTEN
 
mysqld の shutdown は:# mysqladmin shutdown
 再起動は:# safe_mysqld &
 
◆MySQLAdminでの rootパスワード設定方法
#mysqladmin -u root password 'xxxxxxx'
 (xxxxxxxx は適切なMySQLのパスワード)
 
◆起動スクリプトの設定
rpmからインストールしているので登録済みなので必要無し。
 
MySQLセキュリティの確保その1
上のMysqlAdminでパスワードの設定していない場合は以下の方法でもOKです。
※MySQLのインストールを行うと、デフォルトでrootというDB用の
 スーパーユーザを作成しますが、このユーザは、MySQLに関する全権限を
 保持しているにも関わらず、パスワードが設定されていません。
  rootにパスワードの設定を行います。
 
※suコマンドにてmysqlユーザに変更してから以下を実施。
 
$ mysql -u root
・・・
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
 
↓入力待ちになったらパスワードを設定するコマンドを入力。
mysql> set password for root=password('パスワードを入力');
Query OK, 0 rows affected (0.04 sec)
 
↓設定を反映
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
 
↓終了
mysql> exit
パスワードが設定されたか確認
 
$ mysql -u root -p
Enter password: ← 設定したパスワードを入力
↓パスワード入力後ログインできれば成功
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.0.14
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql>
 
セキュリティの確保その2
※MySQLのインストールを行うと、デフォルトで匿名ユーザーを作成します。
  しかし、このユーザは、セキュリティ面を考慮すると不要ですので、
  下記手順にて削除します。
※suコマンドにてmysqlユーザに変更していることが前提。
 
$ mysql -u root -p mysql
Enter password: ← 設定したパスワードを入力
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.0.14
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
↓入力待ちになったら匿名ユーザーを削除するコマンドを入力。
mysql> delete from user where user='';
Query OK, 2 rows affected (0.05 sec)
 
↓設定を反映
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
 
↓終了
mysql> exit
 
 
データーベース操作例
○データベースの作成例(mysqlコマンドでのログインが前提)
mysql> create database testdb; ← DB(testdb)の作成
 
○データベースへの接続方法例
$ mysql -u root -p testdb
 
○テーブルの作成例(mysqlコマンドでのログインが前提)
mysql> use testdb; ← テーブルの作成先DB(testdb)の指定
              ※異なるDBに接続している場合に必要
mysql> create table testtbl(
   -> test_cd char(5) not null primary key,
   -> test_text char(10)
   -> );
 
○CREATE文を記述したSQLファイルを読み込んでテーブルを作成する場合
$ mysql -u root -p testdb < create.sql
 
 
【Apache】 apt-getで取得
今回はapt-getで取得でインストールします。
ソースをコンパイルしても可能です。最新版がほしい場合はそちらの方が良いでしょう。
ただし、ソースからインストールの場合パッチをあてる作業(ssl等)が必要な場合も
ありますので複雑です。参考として後に載せておきます。
今回は手抜きでapt-getします。
 
# apt-get update
# apt-get install apache apache-devel
# apt-get clean
 
設定ファイル: /etc/httpd/conf/httpd.conf
 
起動: /etc/rc.d/init.d/httpd start
 
自動起動設定: chkconfig httpd on
自動起動の設定の確認: chkconfig --list httpd
httpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off となればOK
 
httpd.confの編集は専門書を参照しよう。大切なことがたくさんあります。
apt-getならここまでコンパイル作業なら以下の参考資料を見て参考に!!
 
【perl、apache関連のインストール】
ついでに最初からインストールされている。Perl用のrpmもインストール
# apt-get install perl-DBI perl-DBD-MySQL
# apt-get clean
ついでに次のPHPで必要になるflexを入れておく。
# apt-get install flex
# apt-get clean
 
 
 
 
 
 
 
 
 
 
 
 
【PHP4インストール】
 
http://www.php.net/ 
 
# tar -zxvf php-4.2.2.tar.gz
# cd php-4.2.2/
 
予めapt-getでflexが必要です(先にインストール済)
 
#./configure \
  --with-apxs=/usr/sbin/apxs \
(apacheをソースからインストールした場合は --with-apxs=/usr/local/apache/bin/apxs \)
  --with-mysql=/usr
   (mysqlをソースからインストールした場合は --with-mysql=/usr/local/mysql \)
  --enable-mbstring \
  --enable-mbstr-enc-trans \
  --with-imap=/usr/local \
  --with-imap-ssl=/usr
 
# make
# make install
 
#cp php.ini-dist /usr/local/lib/php.ini
 
環境設定ファイル:/usr/local/lib/php.ini
 
【PHPLib】
認証のページを作る場合今回は必須です。
 
phplib用フォルダを作成
#mkdir /mnt/www/phplib
 
PHPLIBをダウンロード、ここではphplib-7.4.tar.gzとします。
適当なフォルダで解凍
#tar zxvf phplib-7.4.tar.gz
解凍したフォルダ内にあるphpフォルダの中のファイルがphplib本体です。
この中身を先ほどの/mnt/www/phplibにコピー。
php環境設定ファイルを開いて
# vi /etc/php.ini
 
auto_prepend_file = prepend.php
include_path = ".:/mnt/www/phplib/php/"
sendmail_path = /usr/lib/sendmail -t -i
と書き換えて保存
 
後は/mnt/www/phplib/php/local.incを編集して使えるようにします。(参考書みてね!!)
 
<参考 一括でSQLを入力方法>
MYSQLのtestデータベースに、PHPLIBテスト用のデータを入力します。
***.mysqlというファイルを作成実行するSQLをあらかじめ記述しておく。
mysql -u mysql test < ***.mysql
で、一括して操作可能。
もしくは、後でインストールするWebminからも作成出来ます。
 
『玄箱にツールソフトのインストール』
 
【Webmin】 apt-getで取得
ブラウザから玄箱の各種設定に使います。
 
#apt-get update
#apt-get install webmin
#apt-get clean
 
設定ファイル: /etc/webmin/miniserv.conf
 中の
allow=127.0.0.1
 をアクセスするパソコンのIPアドレスをスペースで区切り追加する
allow=127.0.0.1 192.168.1.110 192.168.1.111
 
ssl=0 ←とりあえず今は・・
 
 再起動!!
#/etc/init.d/webmin restart
 
 webminへのアクセスは http://server:10000 もしくは http://玄箱のIPアドレス:10000
 ログイン画面:rootとパスワードでログイン
 
【ntp】 apt-getで入手
時間を合わせて正確に!!
 
#apt-get update
#apt-get install ntp
 でインストール完了。
 
 基準ntpサーバー設定ファイル: /etc/ntp.conf
 を開いてサーバーアドレスを追加(使えるNTPサーバーを調べておこう)
以下は参考までに
#------------------------------
server 133.100.9.2
server 130.87.32.71
server 133.31.180.6
#------------------------------
 などを追加
 
 起動
#/etc/rc.d/init.d/ntpd start
 
 自動起動設定
#chkconfig ntpd on
 自動起動設定確認
#chkconfig --list ntpd
nptd 0:off 1:off 2:0ff 3:on 4:on 5:on 6:off
 
 動作確認はしばらくしてから
#ntpq -p
 で行頭に* や + が付いていたらOK
 
【ダイナミックDNS(DDNS)の自動更新】
 ダイナミックDNS(DDNS)を使用しているのでIPアドレスの変更時は
 サーバへ通知する必要があります。
 そこでDDNSサーバの負担を減らすためにIPアドレスの変更時のみ登録するように
 perlスクリプトを作成します。登録にはwgetを使います。
 
【wgetのインストール】  apt-getで入手
#apt-get update
#apt-get install wget  でインストール完了。
 
次にホルダを作成
# cd /usr
# mkdir -p ddns
 
 ここにipchk.plを作成します。
 このスクリプトはホームページ240ネット http://240net.ddo.jp/にあるものです。
 詳しくはそちらを見てください。
 
 DDNSチェックファイル:/usr/ddns/ipchk.pl
# vi /usr/ddns/ipchk.pl  このipchk.plに以下の記述を書き込みます。
#---------------------------ここから----------------------------------
#!/usr/bin/perl
#
$CRT_IPF = '/usr/ddns/CRT_IP.dat';
$NEW_IPF = '/usr/ddns/NEW_IP.dat';
$LOG = '/var/log/ddns.log';
 
open INPUT,"$CRT_IPF";
$CRT_IP=<INPUT>;
close INPUT;
 
system("wget -q -O $NEW_IPF 'http://info.ddo.jp/remote_addr.php'");
open(INPUT,$NEW_IPF);
$c = <INPUT>;
$stp = index($c,"REMOTE_ADDR:")+12;
$edp = length($c);
$NEW_IP = substr($c,$stp,($edp-$stp));
close(INPUT);
 
if ($NEW_IP ne "" and $CRT_IP ne $NEW_IP) {
open (OUTPUT ,">$CRT_IPF");
print OUTPUT $NEW_IP;
close OUTPUT;
 
print "IP Address update: $CRT_IP to $NEW_IP\n";
system("wget -q -O - 'http://ddo.jp/dnsupdate.php?dn=ドメイン&pw=パスワード'");
 
$now_string = localtime;
open (OUTPUT ,">>$LOG");
print OUTPUT "$now_string DDNS IP Address Updated. $CRT_IP to $NEW_IP\n";
close OUTPUT;
}
#-----------------------------ここまで--------------------------------
 ※「ドメイン」と「パスワード」のところは自分のサーバー用に変更し保存。
 
 crontabを編集して定期的にipchk.plを起動するように設定します。
# vi /etc/crontab
 
--以下開いたファイルの追加部分--
# DDNS
*/30 * * * * root perl /usr/ddns/ipchk.pl
00 5 * * 0 root rm -f /usr/ddns/CRT_IP.dat
00 5 * * 3 root rm -f /usr/ddns/CRT_IP.dat
--以上開いたファイルの追加部分--
 
この設定は、30分毎にIPアドレスの変更をチェック。
変更があった場合にDDNSサーバに対しIPアドレスの更新を行います。
また、日曜日と水曜日の午前5時にCRT_IP.datを強制削除することにより、
次のチェックタイミングで自動更新を行います。
これで週2回は必ず更新。
 
 
 
 
 
 
 
 
 
 
 
【ProFtpのインストール】 apt-getでインストール
FTPサーバーです
 
# apt-get install proftpd 
 
/etc/inetd.confの以下の行をコメントアウト。
 #ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
追加
 ftp stream tcp nowait root /usr/sbin/tcpd in.proftpd
 
/etc/proftpd.confの以下の行をOKか確認
 ServerType inetd 
 
proftpdの有効化と確認
 # chkconfig proftpd on
 # chkconfig --list proftpd 
 
再起動せずに有効化
 # killall -HUP inetd
 
ProFTPの設定ファイル: /etc/proftpd.conf
 
★まずはゲストアカウントの準備
 
 ※anonymous ftp用のパブリックアカウント
パスワード入力が不要で。
所定のディレクトリのみにアクセスすることができるアカウント。
慣例に従って、ftpと言うユーザー名で作成。
(FPTでは)anonymousという別名でログインすることが可能とする。
 
 ※特定のディレクトリだけを書き換えることができるゲストアカウント
ユーザー固有のパスワードを入力することが必要。
所定のディレクトリ(ホームディレクトリ)のみにアクセスすることができる。
今回はユーザー:ftpuser、所属グループ:ftpgrpを作成
 
 1.ホームディレクトリ (anonymous ftpサービスとして公開)を指定する。
anonymous ftpに公開するディレクトリに対するアクセス制御は、
後でProFTPの設定ファイルで細かく指定する。
 
ファイルが一覧と読み出しができるパブリックサービス用のディレクトリとして
/mnt/ftp/pub
ファイル一覧は見れないが読み出しができる特定グループ配布用のディレクトリ
/mnt//ftp/outgoing
ファイルの書き込みのみができる受信用のディレクトリとして
/mnt/ftp/incoming
とする。
 
以下作業
  # groupadd ftp
  # mkdir /mnt/ftp
  # mkdir /mnt/ftp/pub /mnt/ftp/incoming /mnt/ftp/outgoing
  # useradd -c 'anonymous ftp user' -m -d /mnt/ftp -g nobody ftp
  # chown -R ftp:nobody /mnt/ftp
 
 2.ゲストアカウント'ftpuser'を作成する。ユーザーグループはftpgrpとする
このユーザーに使わせたいディレクトリをホームディレクトリとして作成登録し
アカウント作成後には、パスワードを設定しておく。
ディレクトリは
 /mnt/ftp/ftpuser
 
  # mkdir /mnt/ftp /mnt/ftp/ftpuser
  # groupadd ftpgrp
  # useradd -c 'ftp guest user' -m -d /mnt/ftp/ftpuser -G ftpgrp ftpuser
  # passwd ftpuser
  新しいパスワード:
  新しいパスワードの再入力:
  # chown -R ftpuser:ftpgrp /mnt/ftp/ftpuser
 
★proftpd.confファイルの設定
 
anonymousサービスと、ゲストアカウントftpuserを定義する例を示す。
あくまで参考にして置いて色々変えてね!!
 
ProFTPの設定ファイル: /etc/proftpd.conf
 
以下編集内容
------------------------------------------
# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.
 
# オープニングメッセージに表示されるサーバー名
ServerName           "FTP Serve"
# inetd経由で起動するか、STANDALONEで起動するか
ServerType           inetd  # inetd or standalone
 
DefaultServer          on
ServerIdent on "FTP server ready."
UseReverseDNS off
IdentLookups off
TimesGMT FALSE
 
#接続時にルート以外のフォルダも見ることが出来るユーザーを ~! の後につける
#複数人は,で区切るが[SPACE]を使い[TAB]は使わない。
Defaulet Root ~!shoji, ~!pico
 
# 標準のFTPポート21を使用
Port              21
# デフォールトのumaskとして022を使用し、新しく作られたファイルやディレクトリ
# の安全性を高める
Umask              022
 
# DoS攻撃を避けるために、子プロセスの数を30に制限する
# この項目はSTANDALONEモードのみで有効で、INETDを使用する場合にはその機能
# を使用する(xinetdなど)
MaxInstances          30
 
 
 
# ユーザーが認証されていないときに、ftpデーモンを実行するユーザーとグループ
User              nobody
Group              nobody
 
# 通常のアカウントでログインしたときのために、ディレクトリツリー全体への書
# き込みを許可しておく
<Directory /*>
 AllowOverwrite        on
</Directory>
 
 
# Anonymous FTPに関する設定 (ftpのホームディレクトリへのアクセス制限)
<Anonymous ~ftp>
 # サーバーが稼働するユーザーIDとグループID
 User             ftp
 Group             ftp
 # ログイン名としてanonymousを定義する
 UserAlias           anonymous ftp
 
 # Anonymousログインの同時接続数を制限
 MaxClients          10
 
 RequireValidShell no
 
 # ログインしたときに表示されるファイルの名前
 DisplayLogin         welcome.msg
 # ディレクトリを変更したときに表示されるファイルの名前
 DisplayFirstChdir       .message
 
 # chrootした後のファイルシステム全体を書き込み禁止とする
 <Limit WRITE>
  DenyAll
 </Limit>
 
 
 # 読み書きOKディレクトリ pubの設定
 <Directory pub/*>
  AllowOverwrite   on   # 上書きを許可
  <Limit READ WRITE DIRS>  # ファイルの読出、書き込みと、ディレクトリの一覧を
   AllowAll         # どこからでも許可する
  </Limit>
 </Directory>
 
 # 書き込み専用ディレクトリ incomingの設定
 <Directory incoming/*>
  AllowOverwrite   on   # 上書きを許可
  <Limit READ DIRS>     # ファイルの読出と、ディレクトリの一覧を
   DenyAll         # どこからでも禁止する
  </Limit>
  <Limit WRITE>       # 書き込みを
   AllowAll         # どこからでも許可する
  </Limit>
 </Directory>
 
 
 # ファイル一覧ができない読み出し専用ディレクトリ outgoingの設定
 <Directory outgoing/*>
  <Limit READ>        # 読み出しを
   AllowAll         # どこからでも許可する
  </Limit>
  <Limit WRITE DIRS>     # ファイルの書込と、ディレクトリの一覧を
   DenyAll         # どこからでも禁止する
  </Limit>
 </Directory>
 
</Anonymous>
 
# ゲストユーザー ftpuserのための設定
# ホームディレクトリにchrootされるため、他のディレクトリにはアクセスできない
<Anonymous ~ftpuser>
 User         ftpuser
 Group         ftpgrp
 AnonRequirePassword  on   # パスワード認証が必要である
 AllowOverwrite    on   # デフォールトでは上書き禁止なので許可しておく
 <Limit READ WRITE DIRS>
  AllowAll
 </Limit>
</Anonymous>