知ったかですが、なにか問題でも?

アクセスカウンタ

zoom RSS CentOS 5.4 によるサーバー構築(4) − vsftpd と xinetd の設定

<<   作成日時 : 2010/02/20 10:20   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 1 / トラックバック 0 / コメント 0

 Vmware Server 2.2 で仮想化した仮想環境にゲストOSとして CentOS 5.4(64bit) を構築して行きます。
 Vmware Server 2.2 による仮想環境の構築については、以下を参照下さい。
  Vmware Server のダウンロード
  Vmware Server のインストール
  Vmware Server の初期設定
  Vmware Server のゲストOSの作成

 CentOSは,米Red Hat社が開発・提供している「Red Hat Enterprise Linux」(RHEL)の互換OSです。RHELのソース・コードからRed Hatの知的財産物(ロゴなど)を取り除いて開発されており,機能・性能的にはRHELと同等です。
 CentOSは無償で使用できます。


 今回は、前回までのインストールsshの設定に続き、ftp の設定を行っていきたいと思います。

 ftp サーバーの構築には、CentOS標準の「vsftpd」を使います。

 今回は、一般ユーザーのftp用に、ユーザー「ftpuser」を作成するのと、rootユーザーに対してはそまま、ftp 接続が可能にします。


1 ユーザー「ftp」を作成します。

# useradd -d /home/ftpuser -s /sbin/nologin ftpuser
# passwd ftpuser
Changing password for user ftpuser.
New UNIX password:password
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:password
passwd: all authentication tokens updated successfully.


 vsftpd はデフォルトで tcpwrapper を使用してアクセス制御を行う設定になっていますので、/etc/hosts.allow を編集して、vsftpd による通信を許可します。

2 hosts.allow の編集

# vi /etc/hosts.allow
最終行に以下を追加

vsftpd:192.168.1.2


 特に問題がなければ、この時点で「ftpuser」によるFTP接続が可能です。
 確認してみます。デフォルト設定で、「root」では接続不可になっていますのでそれも確認します。


3 接続確認(デフォルト)

# ftp 192.168.1.2
Connected to 192.168.1.2.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.1.2:root): root ←root による接続を試してみる
530 Permission denied. ←ログインが拒否されます
Login failed.
ftp> bye
221 Goodbye.

# ftp 192.168.1.2
Connected to 192.168.1.2.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.1.2:root): ftpuser ←ftpuser による接続を試してみる
331 Please specify the password.
Password:password
230 Login successful. ←ログインが成功します
Remote system type is UNIX.
Using binary mode to transfer files.

注)ここで、FTP接続が以下のようなメッセージが表示され上手くいかない場合は、SELinux の設定がうまく行っていない可能性があります。

500 OOPS: cannot change directory:/home/login
500 OOPS: Connection closed by remote host.

 切り分けのため、以下のコマンドを実行し、SELinuxを無効にして試してみて下さい。

# getenforce
Enforcing ←SELinux が有効になっている
Permissive ←SELinux はデバッグモードで実行中
Disabled ←SELinux は無効になっている

 コマンドの結果が、「Enforcing」となっている場合は、切り分けのため以下のコマンドを実行し、一旦 SELinux を無効にしてから、再度FTP接続を試してみて下さい。

# setenforce 0
# getenforce
Permissive ←この状態で再度FTP接続を試す

 再度、SELinux を有効にしたい場合には以下のコマンドを実行して下さい。
# setenforce 1
# getenforce
Enforcing

 *SELinux の有効/無効の設定は、/etc/sysconfig/selinux でも変更できます。

 *また、細かい設定を行いたい場合は、コマンド「setup」を実行して「ファイヤーウォールの設定」を実行して下さい。


 それでは、vsftpd の設定を行います。vsftpd の設定ファイルは、/etc/vsftpd に配置されています。

4 /etc/vsftpd/vsftpd.conf の編集

# cd /etc/vsftpd
# cp -p vsftpd.conf vsftpd.conf.org

# vi vsftpd.conf

13行 YES -> NO に修正
anonymous_enable=NO ←anonymous 接続を拒否

85行 コメントアウトを外す(行頭の#を削除)
ascii_upload_enable=YES ←ascii モードによるアップロードを許可
ascii_download_enable=YES ←ascii モードによるダウンロードを許可

94行 コメントアウトを外す(行頭の#を削除)
ftpd_banner=Welcome to FTP service. ←ウェルカムバナーを差し障りの無いものに変更


 vsftpd 独自のアクセス制御ファイルに、ftpusers、user_list というファイルが有ります。
 デフォルトの設定では、どちらかのファイルにユーザー名が記載されていると、接続が拒否されてしまいます。デフォルトのユーザーは全て記載されていますので、「root」をコメントアウトします。


5 /etc/vsftpd/ftpusers の編集

# vi ftpusers
2行 rootをコメントアウト
#root

6 /etc/vsftpd/user_list

#vi user_list
7行 rootをコメントアウト
#root


 ここまでの設定が完了したら、vsftpd のデーモンを再起動します。


7 vsftpd デーモンの再起動

# service vsftpd restart

vsftpd を停止中: [ OK ]
vsftpd 用の vsftpd を起動中: [ OK ]


 ここまでの設定がうまく行っているかの確認を行います。「root」、「ftpuser」のユーザーで接続出来るか確認します。
 今回は両方共接続が成功するはずです。

8 設定確認

# ftp 192.168.1.2
Connected to 192.168.1.2.
220 Welcome to blah FTP service.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.1.2:root): root ←root による接続を試してみる
331 Please specify the password.
Password:password
230 Login successful. ←ログイン成功
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> bye
221 Goodbye.


# ftp 192.168.1.2
Connected to 192.168.1.2.
220 Welcome to blah FTP service.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.1.2:root): ftpuser ←ftpuser による接続を試してみる
331 Please specify the password.
Password:password
230 Login successful. ←ログイン成功
Remote system type is UNIX.
Using binary mode to transfer files.


 ここまでで、手動で vsftpd を起動/停止させる場合の設定は完了です。

 一般に、FTPのようなサービスは、ユーザーからの接続要求があった時だけ起動させれば十分である場合が多いようです。
 そのようなサービスのために、常時起動させておいて、サーバーのリソースを常に消費するのは無駄です。

 そこで、ユーザーからの接続要求があった時だけ、vsftpdのサービスを起動するような設定を行います。
 設定には xinetd を使用します。
 xinetd はスーパーデーモンと呼ばれるプログラムです。

 スーパーデーモンは、登録されたサービスで指定されたポートを常時監視しており、要求があったら、対象のサービスを起動するという動作をします。

 スーパーデーモンを利用することにより、常時起動させておかなければならないサービスは、スーパーデーモンだけとなります。

 スーパーデーモンの設定を行う前に、vsftpd の設定をスタンドアロンではなく、スーパーデーモンを介して起動するように設定を行います。


9 /etc/vsftpd の編集

# cd /etc/vsftpd

117行 コメントアウト(行頭に#を記入)
#listen=YES


 xinetd にvsftpdのサービスを登録します。
 xinetd にサービスを登録するには、/etc/xinetd.d 配下にサービスの情報を登録します。



10 /etc/xinetd.d へのvsftpd ファイルの追加

# cd /etc/xinetd.d/
# vi vsftpd ←ファイルは存在しないので新規作成となる

service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
server_args = /etc/vsftpd/vsftpd.conf
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
}



11 ファイルを追加完了したら、xinetd を再起動して、設定を反映させます。

# service xinetd restart
xinetd を停止中: [ OK ]
xinetd を起動中: [ OK ]



12 設定がうまく行っているかどうかの確認を行います。

  まず、vsftpd が停止していることを確認します。
  そのままの状態でFTP接続が成功すれば、設定は完了です。

# service vsftpd status
vsftpd は停止しています ←サービスは停止している

# ftp 192.168.1.2
Connected to 192.168.1.2.
220 Welcome to blah FTP service.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.1.2:root): root
331 Please specify the password.
Password:password
230 Login successful. ←ログイン成功
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> bye
221 Goodbye.


 次回は、引き続き、基本的なサーバーの構築・設定を行っていきたいと思います。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 1
なるほど(納得、参考になった、ヘー)

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
CentOS 5.4 によるサーバー構築(4) − vsftpd と xinetd の設定 知ったかですが、なにか問題でも?/BIGLOBEウェブリブログ
文字サイズ:       閉じる