proftpdをMySQLであれこれ
テスト環境でproftpdをいろいろいじってみる。
システム:VineLinux3.1
・まずsudoerになる(常用ユーザ名=hoge)
$ su -
# visudo
hoge ALL=(ALL) ALL
を追加
・MySQLをインストール
# apt-get update
# apt-get install MySQL-server
# apt-get install MySQL-client
# apt-get install MySQL-shared
# apt-get install MySQL-devel
# /usr/bin/mysqladmin -u root -h localhost.localdomain password '設定するパスワード'
・OpenSSLをインストール
# apt-get install openssl
# apt-get install openssl-devel
・zlibのdevelパッケージをインストール
# apt-get install zlib-devel
・proftpdの用意
$ sudo mkdir /usr/src/proftpd
$ cd /usr/src/proftpd/
$ sudo chown hoge .
$ wget 'ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.10.tar.gz'
$ tar zxvf proftpd-1.2.10.tar.gz
$ wget 'http://www.hakusan.tsg.ne.jp/tjkawa/software/misc/proftpd-sjis/pack/proftpd-1.2.10-sjis.patch.gz'
$ gunzip proftpd-1.2.10-sjis.patch.gz
$ wget 'http://www.castaglia.org/proftpd/modules/proftpd-mod-dynmasq-0.1.tar.gz'
$ tar zxvf proftpd-mod-dynmasq-0.1.tar.gz
$ wget 'http://www.castaglia.org/proftpd/modules/proftpd-mod-md5fs-0.9.1.tar.gz'
$ tar zxvf proftpd-mod-md5fs-0.9.1.tar.gz
$ wget 'http://www.castaglia.org/proftpd/modules/proftpd-mod-load-1.0.1.tar.gz'
$ tar zxvf proftpd-mod-load-1.0.1.tar.gz
$ cd mod_load/
$ ./configure
$ wget 'http://www.castaglia.org/proftpd/modules/proftpd-mod-ban-0.4.5.tar.gz'
$ tar zxvf proftpd-mod-ban-0.4.5.tar.gz
・パッチ、モジュール追加
$ cd proftpd-1.2.10
$ patch -p1 < ../proftpd-1.2.10-sjis.patch
$ cp ../mod_dynmasq/mod_dynmasq.c ./contrib/
$ cp ../mod_md5fs/mod_md5fs.c ./contrib/
$ cp ../mod_load/mod_load.c ../mod_load/mod_load.h ./contrib/
$ cp ../mod_ban/mod_ban.c ./contrib/
$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-ctrls \
--with-modules=mod_codeconv:mod_df:mod_dynmasq:mod_md5fs:mod_tls:mod_ctrls_admin:mod_load:mod_ban:mod_sql:mod_sql_mysql \
--with-includes=/usr/include/openssl:/usr/include/mysql \
--with-libraries=/usr/lib/mysql
$ make
$ sudo make install
・/etc/proftpd.conf は
# mod_ctrls設定
<IfModule mod_ctrls.c>
ControlsACLs all allow user root,hoge
ControlsEngine on
ControlsLog /var/proftpd/Controls.log
</IfModule>
# mod_ctrls_admin設定
<IfModule mod_ctrls_admin.c>
AdminControlsACLs all allow user root,hoge
AdminControlsEngine on
</IfModule>
# mod_load設定
<IfModule mod_load.c>
MaxLoad 8.0 "Server busy."
</IfModule>
# mod_ban設定
<IfModule mod_ban.c>
BanControlsACLs all allow user root,hoge
BanEngine on
BanTable /var/proftpd/BanTable
BanLog /var/proftpd/Ban.log
BanMessage "User %u @ %a has been banned."
# イベントBAN設定
# ログイン試行を1分間に2回おこした場合、10分間BANする
BanOnEvent MaxLoginAttempts 2/00:01:00 00:10:00
</IfModule>
こんな感じで。
・mod_ctrls.c
ユーザhogeをKickする
$ ftpdctl kick user hoge
・mod_ban.c
ユーザhogeをbanする
$ ftpdctl ban user hoge
ユーザhogeのbanを解除する
$ ftpdctl permit user hoge
BAN情報表示
$ ftpdctl ban info -v
こんな感じで制御できた。
続きは後日。
投稿者 Zawa : 2006年02月20日 23:03
トラックバック
このエントリーのトラックバックURL:
http://zawa.s18.xrea.com/x/mt-tb.cgi/150