いらっしゃいませ
ここでは、vsftpdのインストール手順を掲載しています。
vsftpdとは…?
vsftpdは"Very Secure FTPD"の略で、その名の通り、セキュリティに重点を置いて作られたFTPサーバです。
vsftpdのインストール
[root@sl ~]# yum -y install vsftpd
読み込んだプラグイン:fastestmirror, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
* remi-safe: ftp.riken.jp
* sl: ftp.riken.jp
* sl-security: ftp.riken.jp
* sl6x: ftp.riken.jp
* sl6x-security: ftp.riken.jp
sl6x-security | 2.9 kB 00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package vsftpd.x86_64 0:2.2.2-24.el6 will be インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
パッケージ アーキテクチャ バージョン リポジトリー 容量
================================================================================
インストールしています:
vsftpd x86_64 2.2.2-24.el6 sl 155 k
トランザクションの要約
================================================================================
インストール 1 パッケージ
総ダウンロード容量: 155 k
インストール済み容量: 340 k
パッケージをダウンロードしています:
vsftpd-2.2.2-24.el6.x86_64.rpm | 155 kB 00:00
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
インストールしています : vsftpd-2.2.2-24.el6.x86_64 1/1
Verifying : vsftpd-2.2.2-24.el6.x86_64 1/1
インストール:
vsftpd.x86_64 0:2.2.2-24.el6
完了しました!
vsftpdの設定
続いて設定を行います。
ここでは誰でも接続可能なAnonymous FTPではなく、ユーザごとにログイン可能なFTPサーバを構築します。
[root@sl ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
↓
anonymous_enable=NO
#xferlog_file=/var/log/xferlog
↓
xferlog_file=/var/log/vsftpd.log
#ascii_upload_enable=YES
#ascii_download_enable=YES
↓
ascii_upload_enable=YES
ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
↓
ftpd_banner=Welcome to mhserv FTP service.
#chroot_local_user=YES
#chroot_list_enable=YES
↓
chroot_local_user=YES
chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
↓
chroot_list_file=/etc/vsftpd/chroot_list
#ls_recurse_enable=YES
↓
ls_recurse_enable=YES
ftpd_bannerは、FTPに接続した時に表示されるもので、自由に設定が可能です。vsftpdのバージョン情報を隠す役割もあります。
更に、設定ファイルの最後尾に以下を追記していきます。
local_root=public_html
use_localtime=YES
#パッシブ接続を行う場合、以下を追記
pasv_promiscuous=YES
pasv_min_port=64000
pasv_max_port=64029
pasv_addr_resolve=YES
#LAN内にDNSサーバを構築している場合のみ追記
pasv_address=取得した別のドメイン (mhserv.dip.jpなど)
FTPサーバにログインしたユーザは、local_rootで設定したディレクトリよりも上の階層に進むことはできません。
pasv…は、パッシブ接続をしたい場合に追記します。FTPサーバでは通常、20番、21番ポートを使って通信を行いますが、パッシブ接続では特定のポートではなく、その他の適当なポートを用いて通信を行います。
もし、LAN内用のDNSサーバを構築している、あるいは構築する予定がある場合、サーバのグローバルアドレスが取得可能な別のドメインをpasv_addressで指定する必要があるので、ドメインが2つ必要になります。
パッシブ接続で使用するポートの範囲をpasv_min_port、pasv_max_portで設定します。
通信の暗号化(FTPS)
FTP通信の暗号化を行う場合、更に以下を追記します。
この場合、事前にSSLの設定を行っておく必要があります。
今回は、Let's Encryptを使って証明書を発行したものとして話を進めます。自己発行の証明書の場合は各自ファイル名等を読み替えてください。
ssl_enable=YES
rsa_cert_file=/etc/letsencrypt/live/mhserv.mydns.jp/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/mhserv.mydns.jp/privkey.pem
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=YES
require_ssl_reuse=NO
# 暗号化しない通信も許可する場合、以下を追記
force_local_logins_ssl=NO
force_local_data_ssl=NO
暗号化した通信のみ行いたい場合、force_local_logins_sslとforce_local_data_sslをYESにします。
上位層へ移動可能なユーザの登録
もしlocal_rootで設定したディレクトリよりも上の階層に進むことのできるユーザ(ここではkoro)を登録する場合、以下のようにします。
[root@sl ~]# echo koro >> /etc/vsftpd/chroot_list
Exec-Shieldを無効化
Exec-Shield(バッファオーバーフロー対策)が有効になっていると、vsftpdがきちんと動作しない場合があるため、vsftpdに対してのみ無効化します。
まずは設定に必要なexecstackをインストールしましょう。
[root@sl ~]# yum -y install prelink
読み込んだプラグイン:fastestmirror, security
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
* remi-safe: ftp.riken.jp
* sl: ftp.riken.jp
* sl-security: ftp.riken.jp
* sl6x: ftp.riken.jp
* sl6x-security: ftp.riken.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package prelink.x86_64 0:0.4.6-3.1.el6_4 will be インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
パッケージ アーキテクチャ バージョン リポジトリー
容量
================================================================================
インストールしています:
prelink x86_64 0.4.6-3.1.el6_4 sl 993 k
トランザクションの要約
================================================================================
インストール 1 パッケージ
総ダウンロード容量: 993 k
インストール済み容量: 1.9 M
パッケージをダウンロードしています:
prelink-0.4.6-3.1.el6_4.x86_64.rpm | 993 kB 00:00
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
インストールしています : prelink-0.4.6-3.1.el6_4.x86_64 1/1
Verifying : prelink-0.4.6-3.1.el6_4.x86_64 1/1
インストール:
prelink.x86_64 0:0.4.6-3.1.el6_4
完了しました!
続いて、vsftpdに対するExec-Shieldを無効化します。
[root@sl ~]# execstack -q /usr/sbin/vsftpd
- /usr/sbin/vsftpd
[root@sl ~]# execstack -s /usr/sbin/vsftpd
[root@sl ~]# execstack -q /usr/sbin/vsftpd
X /usr/sbin/vsftpd
Xが付いていてば設定完了です。
vsftpdの起動
[root@sl ~]# /etc/rc.d/init.d/vsftpd start
vsftpd 用の vsftpd を起動中: [ OK ]
[root@sl ~]# chkconfig vsftpd on
[root@sl ~]# chkconfig --list vsftpd
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
参考にしたサイト様
CentOSサーバー構築マニュアル - vsftpd インストール
Crimson Snow - CentOSによる自宅サーバの構築 - バッファオーバーフロー対策(Exec-Shield)
[広告]
トップページ
Scientific Linux 6
○準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○NTPサーバ
○Dynamic DNS
○DNSサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○ブログシステム
○その他