*Proftpdの設定/インストール [#h0811220]

RIGHT:更新日&lastmod();

***shellの禁止 [#i9542569]
ユーザにshellアカウントを禁止、proftpだけ使用させるには

/etc/passwdに

 okada2:x:502:502::/home/okada2:/bin/false

''方法1:''~
/etc/shellsに

 /bin/false

を追加するかまたは

''方法2:''~
/etc/proftpd.confに

 # /etc/shells にユーザのデフォルト shell が記述されていない場合にログインを許可するかどうかを決定する。
 
  RequireValidShell       no

を追加。(Defaultでyes)

***Timeout [#gd82d564]
時間切れに関するパラメータ(/etc/proftpd.conf)

1) ユーザーから通信がまったく無いまま、最大何秒間接続を保つか設定
	defalut(600)
	TimeoutIdle 600

2) 認証に費やされる最大時間、これを超えると自動的にセッションは閉じられる
	defalut(300)
	TimeoutLogin 300 

3) 認証後通信がまったく無いまま、最大何秒間接続を保てるか設定
	defalut(300)  <--600といろんなページであるようだが300と思われる
	TimeoutNoTransfer 300 

4) ProftpとFTPクライアントの間に、通信がまったく無いまま、最大何秒間接続を
        保てるか設定
	defalut(0)  <--無制限
	TimeoutStalled 0 

Windowsで~
421 No Transfer Timeout (420 seconds): closing control connection.~
の時間は1)と3)の短い時間の値になる。


***ユーザのトップディレクトリの指定 [#rfaa1866]
/etc/proftpd.confに

 guest,wwwadminのグループ以外はホームディレクトリがトップディレクトリになる。
 DefaultRoot                     ~  !guest,!wwwadmin
 
 guestグループは~/public_htmlがトップディレクトリになる。
 DefaultRoot                     ~/public_html guest

を追加

***逆引きを行わない [#u1b0d92e]
/etc/proftpd.confに

 UseReverseDNS                   off
を追加

***identプロトコルを使用しない [#uc192f07]
ProFTPDがリモートユーザ名を確認するために、identプロトコル(RFC1413)を~
使用するためです。このログイン時間を短縮させたい場合は、ProFTPDで、~
identプロトコルを使用しないように設定する

 IdentLookups                    off
を追加

''identd:''~
サーバとの通信に使用しているコネクションのタイプ(OSタイプやその所有者)を
調べるために使われることが多い。例えばクライアントからメール・サーバにTCPで
接続すると、逆にサーバからこのidentd(auth)プロトコルを使って、その通信が
本当にそのクライアントから発行されているかどうかが確認される。
クライアントからは黙りはだめだが拒否パケットを送ればいいようだ。

[[参考ページ(WinXPでauthパケットに応答拒否を返す方法):http://www.atmarkit.co.jp/fwin2k/win2ktips/177xpident/xpident.html]] 

&color(red){''Vine4.xでは以下の日本語対応パッチは当たっているので設定(proftpd.conf)だけを変更すればよい''};

**ソースからコンパイル [#u161c6cd]
ソースからコンパイルしサーバとクライアントでファイル名の日本語の文字コードを変換し表示する文字コードが変換さてれいるため端末からもうまく表示可能。


[[http://www.proftpd.org/]]の[[Download servers:ftp://ftp.jp.proftpd.org/proftpd/distrib/source/]]からproftpd-1.2.10.tar.gz、
[[ここhttp://www.hakusan.tsg.ne.jp/tjkawa/software/misc/proftpd-iconv/index.jsp]]からproftpd-1.2.10-iconv.patch.gzをDownlaod.

***インストール [#nba73968]
 $ tar zxvf proftpd-1.2.10.tar.gz
 $ gzip -d proftpd-1.2.10-iconv.patch.gz
 $ cd proftpd-1.2.10
 $ patch -p1 < ../proftpd-1.2.10-iconv.patch
 patching file modules/mod_codeconv.c
 patching file modules/mod_df.c
 patching file modules/mod_ls.c
 patching file src/netio.c

----------------
''patch''について余談

patch -pn < patchファイル  (n->0,1,2,....)~
今回の場合カレントディレクトリから下modules/mod_ls.cにpatchを当てる


 diff -urN proftpd-1.2.10/modules/mod_codeconv.c proftpd-1.2.10-iconv/modules/mod_codeconv.c
 --- proftpd-1.2.10/modules/mod_codeconv.c       1970-01-01 09:00:00.000000000 +0900
 +++ proftpd-1.2.10-iconv/modules/mod_codeconv.c 2004-09-25 21:44:05.000000000 +0900

patchファイルの先頭に上記のようにあるので/を一つ取ると同じ場所になる~
proftpd-1.2.10/modules/mod_codeconv.c => modules/mod_codeconv.c~
となり一致する。それなので -p1となり

 $ patch -p1 < ../proftpd-1.2.10-iconv.patch

もし同じことを一つ上のディレクトリで行うときは

ターゲットファイルがproftpd-1.2.10/modules/mod_codeconv.cにあるので
/を取る必要がないので、n=0で -p0になる

 [src]$ patch -p0 < ./proftpd-1.2.10-iconv.patch
 patching file proftpd-1.2.10/modules/mod_codeconv.c
 patching file proftpd-1.2.10/modules/mod_df.c
 patching file proftpd-1.2.10/modules/mod_ls.c
 patching file proftpd-1.2.10/src/netio.c

---------------------

''インストール続き''~
configure 実行時に --with-modules=mod_codeconv を指定すると,文字コード変換モジュールが有効。 ~
おまけとして --with-modules=mod_codeconv:mod_df を指定すると,ディレクトリ移動時にディスクの空き容量を表示するモジュールも追加。

 $ ./configure --with-modules=mod_codeconv --with-modules=mod_codeconv:mod_df 
 $ make
 $ su
 # make install

''設定ファイル''~
/usr/local/etc/proftpd.conf

''実行''
 # /usr/local/sbin/proftpd

確認としてmod_codeconv.cがロードされていることを確認する。
 $ /usr/local/sbin/proftpd -l
 Compiled-in modules:
   mod_core.c
   mod_xfer.c
   mod_auth_unix.c
   mod_auth_file.c
   mod_auth.c
   mod_ls.c
   mod_log.c
   mod_site.c
   mod_codeconv.c   <==これがあること
   mod_df.c
   mod_cap.c


''proftpd.conf''に以下のように指定する

-サーバ側のファイルシステムが EUC-JP を使用していて,クライアント側に Shift JIS~

''glibc 2.3.3 以降(vine4.xは2.3.4)''
 CharsetLocal           EUC-JP-MS
 CharsetRemote          CP932

''glibc 2.3.3より前''
 CharsetLocal           EUC-JP
 CharsetRemote          SJIS

-サーバ側ファイルシステムが UTF-8 を使用していて,クライアント側に Shift JIS 

 CharsetLocal           UTF-8
 CharsetRemote          CP932


*convmv [#k09c6deb]
以前のバージョンで文字コードがsjisでファイルコピーした場合上記のバージョンではファイルの文字コードがeucになりのでファイル名の文字コードを変換する必要がある。~
convmvはファイル文字コードを変換するソフトである

[[http://www.j3e.de/linux/convmv/man/]]からdownloadする
http://www.j3e.de/linux/convmv/man/からdownloadする

解凍後は実行形式があるので/usr/local/binにでもコピーする

***使用方法 [#f6aeb826]

 $ convmv -r -f sjis -t euc-jp * --notest 

sjisをeucに変換 -rで下のディレクトリまで再帰的に変換する。~
 -f:元コード
 -t:変換コード
 euc = eucjp 
 utf8 = utf8 
 shift-jis = sjis 
これを付けると変換を始める、付けないとテストだけ ~



--------------------------------------------------------------------------------
RIGHT:[[元ページ:http://wwwism.dyndns.org/hp/linux/proftpd.htm]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS