[web] FTPサーバの設定
自宅サーバにProFTPDを設置したときの覚え書き。
予想通り、大ハマリ有り。詳しくは「(恒例の)ハマった事」の項を参照。
inet設定
デフォルトではインストールされていなかった
/etc/inetd.confを書き換え
# apt-get install inetd
下記の行を有効に
ftp stream tcp nowait root /usr/sbin/tcpd in.proftpd
実行
/etc/rc.d/init.d/inet start
proftpd.conf設定
/etc/proftpd.conf
Anonymous ログインの停止するため、
ServerName "foo FTPD"
ServerType inetd
DefaultServer onServerIdent on "FTP OK"
UseReverseDNS off
IdentLookups off
DefaultRoot ~/public_html
MaxLoginAttempts 3
MaxClientsPerHost 1
MaxClientsPerUser 1
ListOptions "-a"#for PASV mode
AllowForeignAddress On
## MasqueradeAddressは、ルータがハングするので設定してはいけない。
#MasqueradeAddress subdomain.foo.jp
PassivePorts 3600 3629#PAM
AuthPAMAuthoritative On
AuthPAMConfig ftpAllowRetrieveRestart on
AllowStoreRestart on
RootLogin off
DisplayLogin .htftpd
DirFakeUser on invisibleUser
DirFakeGroup on invisibleGroup
PersistentPasswd off
RequireValidShell off#log
LogFormat allinfo "%t : %u (%a [%h]) : [%s], %T, %m (%f)"
LogFormat write "%t : %u : %F (%a)"
LogFormat read "%t : %u : %F (%a)"
LogFormat auth "%t : %u (%a [%h])"
ExtendedLog /var/log/proftpd/all.log All allinfo
ExtendedLog /var/log/proftpd/write.log WRITE write
ExtendedLog /var/log/proftpd/read.log READ read
ExtendedLog /var/log/proftpd/auth.log AUTH auth
# Port 21 is the standard FTP port.
Port 21Umask 022
# Use localtime
TimesGMT FALSE
SetEnv TZ JST-9MaxInstances 30
User nobody
Group nobodyCharsetLocal EUC-JP-MS
CharsetRemote EUC-JP-MS
AllowOverwrite on
ログローテーションの設定
一定期間たまったログを古い物から削除する設定。
設定ファイルは /etc/logrotate.d/proftp(vineではデフォルトで設定済み)
/var/log/proftpd/*.log {
missingok
notifempty
postrotate
/usr/bin/kill -HUP `cat /var/run/proftpd.pid 2>/dev/null` 2>/dev/null || true
endscript
}
/etc/skel の設定
public_htmlが無いので、作成しておく
# cd /etc/skel
# mkdir public_html
# echo "Hello" > public_html/.htftpd
ルータ設定
BUFFALO の BBR-4HGを使用している
アドレス変換の設定
3600〜3629をサーバの同ポートに変換
ルータ(BBR-4HG)がPASVモードに対応しているため、設定の必要なし- 21番ポートの解放
(恒例の)ハマった事
パッシブモードで接続するとクライアントから接続出来ず、しかもBBR-4HGも反応が無くなってしまうという現象が起こった(ルータの電源を入れ直すとレスポンスは戻ってくる)。
理由不明。。
クライアント側のログを見ると、ファイル一覧の取得に失敗しているらしいのだが。
解決
とのことで、どうやらルータの機能とProFTPDの設定がバッティングしていたのが原因のようだ。
最近は、いくつかのメーカや機種で本設定を行わなくてもルータで同等の対応を行うものが増えてきているので、まずは、本設定を行わずにPASVを動かしてみるとよい。対応済みルータで本設定を行うと逆にLISTで止まるようになるので注意が必要。
proftpd.confからMasqueradeAddressの設定をコメントアウトして解決。
バッファローのBBR-4MGの内側へPASVなFTPサーバー設置メモ - とりあえず に詳しい説明があった。