pure-ftpd †
オープンソースのFTPサーバソフト
- http://www.pureftpd.org/project/pure-ftpd
- BSDライセンス
- セキュリティ第一
- 設定が割と簡単
- 文字コード変換機能(ローカルがUTF-8, FTPがSJIS-WINなど)
- アップロードファイルのチェックスクリプト対応(clamavでスキャンするなど)
- ユーザ毎に使用容量制限(QUOTA)機能
- 仮想ユーザDBで/etc/passwd等を汚さない、FTP専用ユーザを作成できる
- 32bit OSでファイルサイズ2GB以上対応
- バーチャルホスト、バーチャルchroot
- TLS対応
- 帯域制限
インストール †
- CentOS 5.x i386にインストールする場合
- ローカルファイルシステム:UTF-8
- FTPクライアント:SJIS-WIN
- 設定ファイル類:UTF-8
- configure オプションはREADME参考。もしくは、以下コマンドで確認
./configure --help
- 文字コードはiconvを使っているので、以下で確認
iconv -l
- uploadscriptを使うように起動スクリプト修正
--- /etc/rc.d/init.d/pure-ftpd.rpmnew 2012-01-31 10:43:16.000000000 +0900
+++ /etc/rc.d/init.d/pure-ftpd 2010-06-13 22:00:09.000000000 +0900
@@ -15,11 +15,18 @@
# Path to the pure-ftp binaries.
prog=pure-config.pl
+uprog=pure-uploadscript
+vprog=/usr/local/bin/pure-antivirus.pl
fullpath=/usr/local/sbin/$prog
+vfullpath=/usr/local/sbin/$uprog
pureftpwho=/usr/local/sbin/pure-ftpwho
-
start() {
+ echo -n $"Starting $uprog: "
+ $vfullpath -r $vprog 2>&1 >/dev/null &
+ RETVAL=$?
+ echo
+
echo -n $"Starting $prog: "
$fullpath /etc/pure-ftpd.conf --daemonize
RETVAL=$?
@@ -27,6 +34,11 @@
echo
}
stop() {
+ echo -n $"Stopping $uprog: "
+ kill -9 `cat /var/run/pure-uploadscript.pid`
+ RETVAL=$?
+ echo
+
echo -n $"Stopping $prog: "
kill $(cat /var/run/pure-ftpd.pid)
RETVAL=$?
- 設定ファイル
vi /etc/pure-ftpd.conf
----
# ファイルシステムの文字コード
FSCharset UTF-8
# FTPクライアントの文字コード
ClientCharset SJIS-WIN
# 全員chrootにするか?
ChrootEveryone no
# このグループIDはchroot対象外
TrustedGID 500
BrokenClientsCompatibility yes
# 最大クライアント数
MaxClientsNumber 10
# デーモンで起動するか
Daemonize yes
# 1IPアドレスあたりの最大接続数
MaxClientsPerIP 4
# 詳細ログをとるか?
VerboseLog no
# .xxxファイルのようなドットから始まるファイルを見せるか?
DisplayDotFiles yes
# Anonymousだけ?
AnonymousOnly no
# Anonymousは拒否するか?
NoAnonymous yes
SyslogFacility ftp
# 逆引きをしない?
DontResolve yes
# 最大アイドルタイム
MaxIdleTime 5
# PureDBを使う
PureDB /etc/pureftpd.pdb
# 最大表示ファイル数 ディレクトリの深さ
LimitRecursion 2000 8
# Anonymousはディレクトリを作れる?
AnonymousCanCreateDirs no
# 最大負荷
MaxLoad 1
# アンチWarez
AntiWarez yes
AnonymousBandwidth 1000000
Umask 133:022
# これ以下のユーザIDはログインできない(既存のftpユーザを使うのでその番号以下に指定)
MinUID 1
AllowUserFXP no
AllowAnonymousFXP no
# .xxxのようなドットで始まるファイルの書き込み禁止。TrustedGIDは除外
ProhibitDotFilesWrite no
# .xxxのようなドットで始まるファイルの読み込み禁止。TrustedGIDは除外
ProhibitDotFilesRead no
AutoRename no
# Anonymousはアップロードできない
AnonymousCantUpload no
AltLog clf:/var/log/pureftpd.log
PIDFile /var/run/pure-ftpd.pid
CallUploadScript yes
MaxDiskUsage 99
CustomerProof yes
# SSLの使い方(0:使わない, 1:両方使える, 2:SSLのみ許可)
#TLS 1
IPV4Only yes
----
- ユーザの作成
- 「admin」が管理者
- 「demo」はダウンロードと「/up」にアップロード可能とする
- ftp専用のユーザ、グループの確認
more /etc/group | grep ftp
ftp:x:50:
more /etc/passwd | grep ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
- ホームディレクトリ作成
mkdir -p /var/ftp/pub
mkdir -p /var/ftp/up
chown -R admin:admin /var/ftp/pub
chown -R ftp:ftp /var/ftp/up
|
|