非エンジニアのエンジニア道

非エンジニアからエンジニアに転向!その勉強の軌跡を載せていきます。

ftpサーバ設定

そういえばやってなかった気がするので、設定する。

インストール

# yum -y install vsftpd

設定ファイル編集

下記を編集する。

# vi /etc/vsftpd/vsftpd.conf

匿名ユーザのログイン禁止

anonymous_enable=NO

ログの設定をする

xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO

タイムアウト時間を設定

idle_session_timeout=600
data_connection_timeout=60

アスキーモードでアップロード/ダウンロードを許可する

ascii_upload_enable=YES
ascii_download_enable=YES

アスキーモードとは
テキストファイル転送用モードのこと。
アスキーモードでファイルをアップロードすると、異なる改行コードを自動的に修正してくれる。

ホームディレクトリより上層へのアクセスを禁止(デフォルト)

chroot_local_user=YES

ホームディレクトリ上部のアクセス禁止ユーザーリストの有効化とファイル名

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

ディレクトリ削除を許可

ls_recurse_enable=YES

タイムスタンプを日本時間に合わせる

use_localtime=YES

パッシブモードの有効と設定

pasv_promiscuous=YES
pasv_min_port=60000
pasv_max_port=60030

パッシブモードとは
インターネット上のFTPサーバが、ファイアウォールの設定で、20番ポートからのコネクション確立を許可するようなっていない場合でもデータコネクションが確立できるようにするための方法。
この場合、クライアントはPORTコマンドの代わりにPASVコマンドを送信する。

ユーザーリスト作成

それぞれ、上部ディレクトリ禁止ユーザーリスト、ftpアクセス禁止リスト

# vi /etc/vsftpd/chroot_list
# vi /etc/vsftpd/user_list

接続できるクライアントを制限する

許可設定

プライベートアドレスとサーバ自身を指定

# vi /etc/hosts.allow

vsftpd : 192.168.XXX.XXX 127.0.0.1

拒否設定

上記以外すべて拒否するようにする

# vi /etc/hosts.deny

vsftpd : ALL

vsFTPDの起動と設定

起動時にvsFTPDをを起動するようにも設定する。

# /etc/rc.d/init.d/vsftpd start
# chkconfig vsftpd on

設定を確認

# chkconfig --list vsftpd

vsftpd          0:off   1:off   2:on    3:on    4:on    5:on    6:off

アクセスしてみる

というわけで無事アクセス完了!
ユーザーのパスワードを忘れたか指定してなかったので、passwdで設定したけど…。