|
FTPサーバーの構築
|
FTPサーバーについて
vsFTPdの基本設定
|
vsFTPdの構築に必要なファイル(CentOS5)この コンテンツ に従って普通に CentOS5 を インストール すると、 vsFTPd とその設定に必要なファイル類は既に 構築中のLinuxサーバー にインストールされているはずです。 以下にCentOS5にインストールされているvsFTPdで、操作や設定が必要なファイルを示します。 WBEL3,CentOS3,WBEL4,CentOS4 では以下とレイアウトが異なりますので、これらの ディストリビューション でvsFTPdを構成する場合は vsFTPdの基本設定(WBEL3,4_CentOS3,4) をご覧ください。 ![]() vsFTPdの必要ファイル一覧 vsFTPdの本体プログラムは"/usr/sbin/vsftpd"ですが、これを直接呼び出すことはまずありません。 実際にはこの"/usr/sbin/vsftpd"を用いて、起動や終了を容易にコントロールできるように記述された スクリプト である "/etc/rc.d/init.d/vsftpd" を用います。 また"/etc/rc.d/init.d/"の シンボリックリンク が"/etc/init.d/"になっていますので、スクリプトは "/etc/init.d/vsftpd" でも呼び出すことができます。 例えば、 "/etc/init.d/vsftpd start" →vsFTPdの起動 "/etc/init.d/vsftpd stop" →vsFTPdの停止 という使い方になります。
"/etc/rc.d/init.d/"
には
パス
が通っていません
vsFTPdの設定ファイルの中心は "/etc/vsftpd/vsftpd.conf" です。 vsftpdはほとんどの動作についてこの"/etc/vsftpd/vsftpd.conf"の内容を参照しますが、 ユーザーアカウント ごとのアクセスに関しては、予め準備されている "/etc/vsftpd/ftpusers" 、 "/etc/vsftpd/user_list" の二つのユーザーリストファイルと、必要な場合に作成する "/etc/vsftpd/chroot_list というユーザーリストファイルを使用します。 ところで、CentOS5のvsFTPdのユーザーリストファイルは、旧バージョンのCentOSやWBELにインストールされているvsFTPdのユーザーリストファイルとパスもファイル名も異なります。 そこで旧バージョンのユーザーリストファイルの内容を適切な位置のユーザーリストファイルにコピーするシェルスクリプト "/etc/vsftpd/vsftpd_conf_migrate.sh" が準備されています。詳細についてはこのページの最後に説明します。
|
||||||||
"/etc/vsftpd/vsftpd.conf"の編集(CentOS5)
まず、
サブネット
内の適当な
クライアント機
から
SSHクライアント
で
構築中のLinuxサーバー
に
ログイン
します
それから
su
コマンド
で
アカウント
を
"root"
に変更し、
cp
コマンドでバックアップを作成した後、
nano
エディタで
"/etc/vsftpd/vsftpd.conf"
を開きます
↓
![]() nanoで"/etc/vsftpd/vsftpd.conf"を開く "/etc/vsftpd/vsftpd.conf/" は、 vsFTPd が動作中でも自由に書き換えることができます。 ただし、 CentOS の サーバー アプリケーション は通常、設定ファイルを保存しただけでは設定は反映されません。もちろんvsFTPdも例外ではありません。 サーバーアプリケーションの設定ファイルは、通常サーバーアプリケーションの起動時に参照されて読み込まれますから、設定ファイルの保存後にサーバーアプリケーションの再起動を行うか、設定ファイルの再読み込みのコマンドを実行しなければ、設定ファイルの修正は有効になりませんので注意してください。
vsFTPdの再起動、設定ファイルの再読み込みについては、
|
|||||||||
vsftpd.confの編集(CentOS5)以下に編集前の"/etc/vsftpd/vsftpd.conf"の内容を示します。 |
|||||||||
|
青色 で注釈を入れている設定は ローカルユーザー接続 に関する部分です。 緑色 で注釈を入れている設定は アノニマス接続 に関する部分です。 オレンジ で注釈を入れている設定は、その両方に関係する部分で重要なものです。 灰色 で注釈を入れている設定は、特に変更や解釈の必要のないものを示します。
"#" で始まる行はコメント行として無視されます。つまり、この"/etc/vsftpd/vsftpd.conf"の内容の大部分は設定のための解説文で、実際の設定パラメータは一部です("#"の後に一つスペースが入ってから記述されている行です。)。 "/etc/vsftpd/vsftpd.conf"の中で、明示的に"#"で無効化されているキーワードがある場合は、基本的に相反する設定が デフォルト で有効になっていますから、このキーワードを有効にする場合は、通常"#"を削除すればOKです。 また先頭に"#"がないキーワードは、先頭に"#"を付けて無効化すると、基本的に相反する設定値に置き換わります。 このファイルをこれから編集していきますが、以下のパートでは vsFTPd 全体に係わる オレンジ の設定部分について解説します。 また、デフォルトの"/etc/vsftpd/vsftpd.conf"に記述されていないキーワードについてもいくつか追加設定する必要がありますので、これも合わせて解説します。
|
||||||||
vsftpd.confの基本設定(CentOS5)以下で設定するキーワードは、 vsFTPd の動作全般に係わる部分ですから、 ローカルユーザーからの FTP 接続 を設定する場合でも、 アノニマスFTP を設定する場合でも共通で設定を行ってください。 "dirmessage_enable"〜1.ユーザーのへメッセージ送信FTP 接続を行ってきた相手に対してメッセージを送るためのキーワードです。 |
|||||||||
|
ローカルユーザー接続の場合は、 "/home/[ユーザー名]/.message" 、 アノニマス接続 の場合は "/var/ftp/.message" というファイル名で テキスト ファイルを作成しておくと、それぞれに ログイン が完了したときに接続したユーザー宛にコマンドでメッセージが送られます。 ただ、 FTPクライアント の種類や設定によっては、実際にメッセージを送っても表示されない場合がありますし、送られてもあまり見る人はいないでしょう。 これは FTPサーバー の動作にはあまり重要ではないキーワードですから、任意に設定してかまいません。 ただ デフォルト の
のままでも、メッセージファイルを準備しなければ無視されるだけですから、強いて
に変更する必要はありません。 "ascii_upload_enable"〜2.アスキー形式のアップロードFTP は元々 バイナリ 形式のファイルの送受信を担う プロトコル で、 テキスト 形式のファイルの送受信は後から追加サポートされました。 そのため、テキスト形式のファイルの送受信を行うには、明示的に ASCII 形式のデータの取り扱いを有効にする必要があります。 従って、コメント化により無効化されている、
から"#"を削除して設定を有効にしてください。
もちろん、FTPでテキストファイルを全く扱わないのであればそのままでも構いません。 ただよほど特殊な運用方法ではない限り、「FTPでテキストファイルを扱わない」ということはないでしょう。この設定変更は定石だと考えてください。 "ascii_download_enable"〜3.アスキー形式のダウンロード上の2.と同じ理由で有効化する必要がありますので、 デフォルト の
を、
に修正してください。 "ftpd_banner"〜4.ユーザーログイン時のメッセージ動作の順序を考えると 1. とは記述の順序が逆ですが、この"ftpd_banner"キーワードは、ユーザーが FTPサーバー に接続し、認証を行う前にユーザーに送るメッセージを設定するものです。 表示されるのは、 "ftpd_banner=" から行末までのメッセージです。 デフォルト では
と、例文とともに"#"で無効化されていますから、"#"を削除して適当なコメントに書き換えればOKです。 ただし、最近は コマンド 入力で FTP 接続が行われることは非常に少なくなり、一般にFTP接続には、接続とログインを自動で行う Webブラウザ や FTPクライアント アプリケーション が使われるようになっていますから、その間に表示するメッセージは、今ではもうあまり意味がないかもしれません。 という訳ですから、設定を有効化する必要はないと思われます。 "listen"〜5.vsFTPdをスタンドアロンモードで動作させるvsFTPd は、単独の デーモン プログラムとして、 スタンドアロンモード として稼動させる方法と、 xinetd などの サーバーデーモン の管理下で稼動させる方法があります。 |
||||||||
"listen=YES" つまり、vsFTPdが自分自身でアクセスに聞き耳を立てる(listenする)、ということで、スタンドアロンモードを指定するキーワードになっているわけです。 |
デフォルト の設定である、
では、スタンドアロンモードでの動作が選択されています。 このキーワードを"#"でコメントアウトするか、
に書き換えると、サーバーデーモンに依存して稼動するようになります。もちろんこの場合は同時にxinetdの設定を変更してxinetdがvsFTPdの動作を管理できるようにする必要があります。 |
||||||||
例えば、 メインメモリ の使用量を節約できるとか、そういう部分です。 |
vsFTPdは、スタンドアロンモードよりもxinetdを利用したほうが有利な点がいくつかありますので、 ディストリビューション によってはデフォルトでxinetd依存になっているケースも少なくありません。 |
||||||||
きっと、WBELやCentOSは"Enterprise版"という立場上、メモリの節約などよりも「立派な実用サーバーとして稼動すること」を目的としているためでしょう。 |
ただ、 CentOS5 に標準で インストール されているvsFTPdは、基本的にスタンドアロンモードでの動作に合わせて設定されていますし、もともとvsFTPdは小さなプログラムなので、xinetdを使わないからといって 構築中のLinuxサーバー の動作に影響を及ぼすほどの負荷があるわけではありませんから、いろんな部分の設定を変更してまで動作モードを変える必要はないでしょう。 |
||||||||
|
設定はそのままにしておきます。 "tcp_wrappers"〜6.TCP Wrapperによるアクセス制御OS に組み込まれているアクセス制御システム TCP Wrapper を、 vsFTPd で利用するか否かのキーワードです。 デフォルト は、
ですから、TCP Wrapperが動作していればそれを利用して、 クライアント からの接続をその IPアドレス によって接続許可、接続拒否の制御を行うことができます。 ただ宅内に設置する サーバー機 のvsFTPdへの接続許可、接続拒否をIPアドレスで行う場面があるとすれば、通常は LAN と WAN で分ける、つまり プライベートIPアドレス と グローバルIPアドレス に分けて制御するくらいしかないでしょう。 だとすれば、わざわざTCP Wrapperを利用する必要はありません。 WAN側からのアクセスは最初から ルーター の NAT + IPマスカレード で遮断されていますし、LAN側からのアクセス制御は、もし必要であれば"/etc/vsftpd/vsftpd.conf"にキーワードで設定可能だからです。 従ってこのキーワードは、
と設定しておきましょう。 "use_localtime"〜ローカル時刻で表示する |
||||||||
GMTに対して日本の時差は+9時間です。 |
実のところ、
WBEL
や
CentOS
で扱われるファイルやディレクトリの
タイムスタンプ
はGMTで管理されているわけですが、実際に操作を行うときはこのGMTに対してタイムゾーン設定
|
||||||||
これは想像ですが、どうしてvsFTPdがデフォルトでローカル時間を扱わないのかというと、多分「世界中の人がアクセスする FTPサーバー としても利用OKですよ」と、製作者が暗にアピールしたかったからではないでしょうか。考えすぎでしょうか。 |
従って、タイムゾーンを「日本」に設定している場合、デフォルトのvsFTPdに接続して表示されるタイムスタンプは、 構築中のLinuxサーバー の CUI や GUI のファイルシステムで表示されるタイムスタンプと9時間ずれてしまうことになります。 つまり、CUIやGUIの操作で作成、修正したファイルを FTPクライアント で ダウンロード したり、逆にFTPクライアントから アップロード したファイルをCUIやGUIで操作したりすると、9時間前、あるいは9時間後のファイルを扱うことになってしまい、タイムスタンプの違いを判別して動作するコマンドや アプリケーション を扱うときに不都合が起こることになります。 こういう不都合を無くすためには、"/etc/vsftpd/vsftpd.conf"に、
と追加記述してください。
|
||||||||
旧バージョンのvsFTPdからの環境を移す(CentOS5)vsFTPd では、動作制御を行う設定ファイル "/etc/vsftpd/vsftpd.conf" の他に、ユーザーごとの接続の可否や参照可能なディレクトリの制限を行うためにいくつかの ユーザーリストファイル を設置し、これを併用するようになっています。
その詳細については、WBEL3、CentOS3、WBEL4、CentOS4では
こちら
OSごとのユーザーリストファイル(vsFTPd) つまり、それまで "/etc/" 以下に直接置かれていたユーザーリストファイルが、CentOS5からは "/etc/vsftpd/" 以下にまとめて格納されるようになり、それに伴ってファイル名から "vsftpd." が省略されるようになったわけです。 ところでCentOS5は、古いバージョンのCentOSが インストール されているシステムを、CentOS5のインストール CD などを使ってアップデートすることができます。 |
|||||||||
このとき、
"/etc/vsftpd/vsftpd.conf"に記述されているユーザーリストファイルの指定も適切に書き換えられるようになっています。 |
このアップデートの際には "/etc/vsftpd/vsftpd_conf_migrate.sh" という シェル スクリプト が実行され、CentOS4以前のユーザーリストファイルの内容が自動的にCentOS5の デフォルト のユーザーリストファイルにコピーされるようになっています。 一方で新しい サーバー機 にCentOS5をインストールし、古いサーバー機上で動いているCentOS3やCentOS4の環境をコピーするような場合、vsFTPdのユーザーリストファイルをそのままCentOS5のファイルシステムにコピーしても、お解りのとおりそのままでは設定に反映されないことになります。 こういう場合はユーザーリストファイルの内容を手作業で書き換えるか、 "/etc/vsftpd/vsftpd_conf_migrate.sh" を手動で実行しなければらならない点に注意してください。
|
|
FTPサーバーについて
<<Previous
|
Next>>
ローカルユーザー接続の設定
(CentOS5) |
このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |