pure-ftpd on FreeBSD
[ Nob's Home |
FreeBSD ]
ftp serverである pure-ftpd を daemontoolで起動します。
情報
install
/usr/local/mysql以下にinstallしてあるMySQLを用いて認証してみます。
$ wget http://unc.dl.sourceforge.net/sourceforge/pureftpd/pure-ftpd-1.0.11.tar.gz
$ tar zxvf pure-ftpd-1.0.11.tar.gz
$ cd pure-ftpd-1.0.11
$ ./configure --with-mysql=/usr/local/mysql
$ make
$ su
# make install
制御DBの作成
tcpserverでpure-ftpdの接続を制御します。
原則はftpを認めず、特定のhostにのみftp接続を認めるよう、/etc/tcp.ftpを書きます。
192.168.0.:allow
:deny
このfileから/etc/tcp.ftp.cdbを作成します。
# tcprules /etc/tcp.ftp.cdb /etc/tcp.ftp.tmp < /etc/tcp.ftp
inetdをkill
/etc/inetd.confのftpの行をコメントアウトします。
他にinetdを使用していなければ、(そうすべきなんですが)、
/etc/rc.confで、
inetd_enable="NO"
として起動時にinetdを立ち上げないように設定します。
現在立ち上がっている inetd をkillします。
daemontoolでftpdを起動
あらかじめ、logを取るユーザーとして daemonlog というユーザーとグループを登録しておきます。
# mkdir /etc/service/ftpd
# chown root.wheel /etc/service/ftpd
# chmod 1755 /etc/service/ftpd
# cd /etc/service/ftpd
# vi run
#!/bin/sh
exec \
/usr/local/bin/tcpserver -vpR -x /etc/tcp.ftp.cdb \
0 \
ftp \
/usr/local/sbin/pure-ftpd 2>&1
|
# chmod 755 run
# mkdir log
# vi log/run
#!/bin/sh
#
exec \
/usr/local/bin/setuidgid daemonlog \
/usr/local/bin/multilog t ./main
|
# chown 755 log/run
# mkdir log/main
# chown daemonlog.daemonlog log/main
ここで
# ln -s /etc/service/ftpd /service
とlinkを張るとpure-ftpdが起動されます。
# svstat /service/ftpd
で起動を確認してください。
/service/ftpd/log: up (pid 97744) 9 seconds
などと表示されれば成功です。
up timeが増加していかない場合は、起動に失敗していますので、設定を見直してください。
MySQLでの認証
# vi /etc/pureftpd-mysql.conf
#MYSQLServer localhost
#MYSQLPort 3306
MYSQLSocket /tmp/mysql.sock
MYSQLUser root
MYSQLPassword rootpw
MYSQLDatabase pureftpd
MYSQLCrypt cleartext
MYSQLGetPW SELECT Password FROM users WHERE User="\L"
MYSQLGetUID SELECT Uid FROM users WHERE User="\L"
MYSQLGetGID SELECT Gid FROM users WHERE User="\L"
MYSQLGetDir SELECT Dir FROM users WHERE User="\L"
[ Nob's Home |
FreeBSD ]
nob@makioka.y-min.or.jp