*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]]