proftpでファイル転送
ProFTPでファイル転送
FTPはこんな形で使用したいと思います。
- 不特定多数にFTPでファイルダウンロードとか(anonymous)は使用しない
- 特定の人のみアクセスさせる
- 暗号化にも対応したい(ProFTP + TLS)
- 特定なユーザはchrootする。管理者はしない。
- レジュームも使う
- 日本語も化けないで表示できる(できれば文字コードに依存しない)
- PORTもPASSIVEもできる
インスト
いつものこれで
#apt-get install proftpd
インスト時にinetで起動しますか?と聞かれるのでYESと答える。内部なんでスタンドアロンで使わないです。
基本設定
uid,gidの閲覧
chrootした時もuidとかgidは見えるようにする(デフォルトでOK)
PersistentPasswd on
Identの停止
クライアントからFTP接続があった時にIdentプロトコルを使用して、サーバからクライアントへ問い合わせを行う。通常こんな機能はいらないので止めておく
IdentLookups off
設定内容
inetd.conf
ちなみにinetd.confはこんな感じ。
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/proftpd
/etc/proftpd.conf
設定ファイル
ServerName "Debian" ServerType inetd DeferWelcome off MultilineRFC2228 on DefaultServer on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayFirstChdir .message ListOptions "-l" DenyFilter \*.*/ Port 21 MaxInstances 30 User nobody Group nogroup Umask 022 022 AllowOverwrite on IdentLookups off
Passiveモードの設定について
内部公開用なので、関係ないが外部に公開するならばNAT越えの設定が必要なので書いておく。ルータがFTPに対応していない場合。
MasqueradeAddress nai.homelinux.net PassivePorts 3001 3015
※PassivePortsは最小ポートと最大ポートを指定する。この設定した範囲をルータのポートマップ(NAT)に追加する必要がある。フィルタも。
chrootしたい
chrootしたいなら、以下の書式で。
DefaultRoot [パス] [ユーザ]
例
ユーザまたはグループである「staff」はDefaultRootを有効にし、admグループは無効にしたい場合
DefaultRoot ~/ staff,!adm
ログインユーザを限定したい
こんな感じで制限すればよい
<Limit LOGIN> DenyAll AllowGroup staff AllowGroup adm </Limit>
レジュームを有効にしたい
アップロード
AllowStoreRestart on
ダウンロード
AllowRetrieveRestart on