ProFTPD1.2.xインストールガイド


ProFTPD1.2.x インストールガイド (2004.06.16 更新)

注意

バージョンが ProFTPD1.2.10rc1 以降 NLISTコマンドが対応しなくなりました。
使用するFTPクライアントソフトによっては標準でNLISTコマンドでリスト取得しているため
接続できてもファイルがなにも表示されない。という現象がでてきます。
※FFFTPなどで確認済

このような場合、FTPクライアントソフトの設定画面を開き、
NLISTを使用しない。
LISTコマンドを使用する 設定に変更が必要です。

有志方々からNLISTを暫定利用できるパッチが配布されています。
もちろん利用は自己責任になります。
希望する方はWeb検索で探してみると、すぐに見つかるでしょう。

インストール

ユーザーディレクトリへ移動

$ cd /home/[UserName] 

ソースファイル用ディレクトリの作成

$ mkdir src 
$ cd src 

ProFTPDのWebサイトよりソースファイルを取得
ここではバージョン1.2.9を選択してます。
最新バージョンを確認して相応に置き換えてください
ProFTPDのWebページ http://proftpd.linux.co.uk/

$ wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.9.tar.gz 

DLしたファイルを解凍

$ tar xfz proftpd-1.2.9.tar.gz 

解凍したファイルのディレクトリへ

$ cd proftpd-1.2.9

コンフィグレーション
ここではインストール先を/usr/sbinに指定しています
デフォルトでは /usr/local/sbinになります。

$ ./configure --prefix=/usr 

標準のmake作業

$ make 

rootになりインストールを実施

$ su - 
$ [root Password] 
$ cd /home/[UserName]/src/proftpd-1.2.9 
$ make install 

以上でProFTPDのインストール完了

ProFTPDの設定ファイルの編集

上記の方法でインストールを行った場合はコンフィグレーションファイルは
/usr/etc
になっています。(デフォルトインストールした場合は /usr/local/etc)

ここにproftpd.confのファイルが設定ファイルです。
これを必要に応じて編集します。
ここでは
○inetdモードへの変更
○公開ユーザーディレクトリの設定
○anonymousの公開禁止設定
※1.2.7から移行した方はscoreboardの設定を追加する必要がある場合があります。を行います。

rootになりコンフィグレーションのディレクトリへ移動

$ su - 
$ [root Password] 
$ cd /usr/etc 

viエディタで編集

$ vi proftpd.conf 

下記の部分を編集しました。
編集内容については下記のURLを参考にしてください。 http://www.infoscience.co.jp/technical/proftpd/ 6行目(任意でFTPサーバー名を入れてください)

	ServerName		"ProFTPD Default Installation"
		↓
	ServerName		"ProFTPD (FTP Server)"

6行目以下に追記(サーバーソフト名・バージョン情報をFTPクライアントに表示しない設定です。)
デフォルトでは、ProFTPD [version] Server (ServerName) [hostname]と表示されます。

	ServerIdent	on ""

7行目(standaloneタイプからinetdタイプへ)

	ServerType		standalone
		↓
	ServerType		inetd

26行目(nogroupが/etc/groupに入っていない場合はnobodyに変更)

	Group			nogroup
		↓
	Group			nobody

27行目にデフォルトルートの設定を追加
これによりカレントログインしたディレクトリの上位への参照・移動ができなくなります。

	DefaultRoot			~

29行目以降の<Directory /*>内を追記編集
HideGroup wwwuserとは・・・
  /etc/groupにwwwuserを設定しておきます。
  他ユーザ(サーバー管理者以外でWWWコンテンツのアップを行うユーザー)
  からのFTP接続の際に他のgroupで設定されたファイルを隠すことが出来ます    HideNoAccessとは・・・
  アクセス権を持っていない、カレントログインでのディレクトリ表示にあるディレクトリのエントリを全て隠します

<Limit All>~
IgnoreHidden on~
</Limit>~

この3行の設定は・・・
"HideNoAccess"や"HideUser"、"HideGroup"に隠されたファイルは、たとえディレクトリ表示に表れなくても、FTP コマンドによる操作が可能です
さらに、ファイルシステムのパーミッションがアクセスを拒否している場合でも、proftpdはクライアントに"Permission denied"のエラーを返します。
これは、もし実際には動かなくても、要求されたオブジェクトが存在することを意味します。
その為、クライアントが隠されたファイルやディレクトリに対して制限されたコマンドを使おうとしたときに、"No such file or directory" のようなエラーを返す設定です。  

	<Directory /*>
	  AllowOverwrite		on
	</Directory>
		↓
	<Directory /*>
	  AllowOverwrite		on
	  HideGroup                     wwwuser
	  HideNoAccess                  on
	  <Limit All>
	    IgnoreHidden                on
	  </Limit>
	</Directory>

 <Anonymous ~ftp>タグのコメントアウト
 <Anonymous ~ftp>から</Anonymous>までをすべて # でコメントアウトします

	# A basic anonymous configuration, no upload directories.
	#<Anonymous ~ftp>
	#  User				ftp
	#  Group				ftp
	#  # We want clients to be able to login with "anonymous" as well as "ftp"
	#  UserAlias			anonymous ftp
	#
	#  # Limit the maximum number of anonymous logins
	#  MaxClients			10
	#
	#  # We want 'welcome.msg' displayed at login, and '.message' displayed
	#  # in each newly chdired directory.
	#  DisplayLogin			welcome.msg
	#  DisplayFirstChdir		.message
	#
	#  # Limit WRITE everywhere in the anonymous chroot
	#  <Limit WRITE>
	#    DenyAll
	#  </Limit>
	#
	#</Anonymous>

※1.2.7から移行した方へ追加設定&作業 1.2.7から移行した際にFTPの接続ができず /var/log/message に

	unable to open scoreboard: No such file or directory

のメッセージが記述されている場合があります。この場合下記の設定・作業を行ってください。
1.2.7時のscoreboardファイルを削除する必要あります。

$ rm /usr/var/proftpd/proftpd.scoreboard 

proftpd.confにscoreboardファイルの記述を追加

	ScoreboardFile           /var/run/proftpd/proftpd.scoreboard

以上でProFTPDの設定完了
xinetd(inetdモード)でProFTPDが起動するための設定

rootのまま作業を継続
/etc/xinetd.dに移動

$ cd /etcxinetd.d 

ftp用の設定ファイルを追加
viエディタで行う

$ vi ftp 

下記の内容を入力

	service ftp
	{
		disable         = no
	        flags           = REUSE NAMEINARGS
	        socket_type     = stream
	        protocol        = tcp
	        wait            = no
	        user            = root
	        server          = /usr/sbin/tcpd
	        server_args     = /usr/sbin/.proftpd
	}

xinetd用ProFTPD起動ファイルのシンボルリンクの作成

$ ln -s /usr/sbin/proftpd /usr/sbin/.proftpd 

以上でxinetdでのProFTPD起動設定完了*/



Last-modified: 2015-04-23 (木) 15:14:06 (966d)