広告

VirtualBoxにCentOS8.1を導入したから、ftpで接続できるようにする

vsftpdをインストールMac
この記事は約6分で読めます。

WordPressの開発環境を整えるために、VirtualBoxにCentOS7.6を導入したので、ftpでも接続できるようにして、簡単にファイル管理ができるようにします。

環境

ホスト:WIndows10・・・Macでも操作はほぼ変わりません

ゲスト:CentOS 8.1

VirtualBox:バージョン6.1.4

vsftpdをインストール

dnf -y install vsftpd

vsftpdをインストール

vsftpdがインストールされたか確認

vsftpd -v

vsftpd

どこにインストールされたか?

which vsftpd

vsftpdインストール先

vsftpdの設定

vsftpdの設定は「/etc/vsftpd/vsftpd.conf」を編集して行います。

設定ファイルのバックアップ。

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.org

Viエディタでvsftpd.confを開く。

vi /etc/vsftpd/vsftpd.conf

コマンドモードで「:set number」とタイプして、行数を表示させる。

set number

83行目 先頭の#を外してASCIIでのデータの送受信許可

#ascii_upload_enable=YES → ascii_upload_enable=YES

84行目 先頭の#を外してASCIIでのデータの送受信許可

#ascii_download_enable=YES → ascii_download_enable=YES

101行目 上位ディレクトリ参照可能関連設定

#chroot_local_user=YES → chroot_local_user=YES

102行目 上位ディレクトリ参照可能関連設定

#chroot_list_enable=YES → chroot_list_enable=YES

104行目 上位ディレクトリ参照可能関連設定
ユーザのログインディレクトリ が、そのユーザのルート ディレクトリとなり、
ログインディレクトリより上部にアクセスすることができなくなる。
ただし、chroot_listに記載されたユーザーは上位ディレクトリにアクセスすることができる。

#chroot_list_file=/etc/vsftpd/chroot_list → chroot_list_file=/etc/vsftpd/chroot_list

110行目 先頭の#を外してls -R (ディレクトリごと一括での転送機能)を有効化

#ls_recurse_enable=YES → ls_recurse_enable=YES

115行目 IPv4の接続も可能

listen=No → listen=YES

124行目 IPv6の接続を不可に

listen_ipv6=YES → listen_ipv6=No

ファイルの末尾に追加

128行目  「/etc/vsftpd.user_list」に記述されている特定のユーザーアカウントにのみFTP接続を許可

userlist_deny=NO

129行目 TCP Wrapperの無効化 ルーターによって外部からのFTPアクセスは遮断されている

tcp_wrappers=NO

130行目 ローカルタイムの使用

use_localtime=YES

131〜133行目 SSLでFTP接続ができるように設定(SSL接続する時のみ追記・・・SSL接続する際は証明書の設定が必要です)

# ssl settings
ssl_enable=YES
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem

134行目 chrootした先に書き込み権限があるとエラーになるので追記

allow_writeable_chroot=YES

135行目 隠しファイル表示

force_dot_files=YES

変更、追記したら、:wqで保存してviエディタを終了。

「/etc/vsftpd.user_list」の編集

FTPサーバーへの接続を許すアカウント名を「/etc/vsftpd.user_list」に記述する。

vimエディタでuser_listを開く。

vim /etc/vsftpd/user_list

接続可能なユーザー名をいれて保存。

rootでFTP接続できるようにしちゃうのなら・・・決して本番環境ではやらないように!

/etc/vsftpd/ftpusersからrootを除外(コメントアウト)する。

vim /etc/vsftpd/ftpusers

root → # root

「/etc/vsftpd/chroot_list」の作成

vim /etc/vsftpd/chroot_list

1行目に

root

と記入。

作成したchroot_listは、パーミッションが644になっているため、root以外のユーザーが参照できてしまうので、

「root」アカウント以外はchroot_listを読み書きできないように以下のコマンドでパーミッションを変更しておく。

chmod 600 /etc/vsftpd/chroot_list

念のため、パーミッションが変更されているか確認しておく。

[root@localhost ~]# ls -l /etc/vsftpd/chroot_list
-rw-------. 1 root root 5  6月 16 21:30 /etc/vsftpd/chroot_list

-rw——-となっていればOK

ファイヤーウォールの設定

1行ごと、実行していくこと。

もし、ファイヤーウォールを停止していたら、# systemctl start firewalldで起動します。

firewall-cmd --add-service=ftp

firewall-cmd --add-service=ftp --permanent

firewall-cmd --list-services

パッシブ接続用ポートの許可

firewall-cmd --add-port=60001-60010/tcp --zone=public --permanent

再起動

firewall-cmd --reload

確認

firewall-cmd --list-all --zone=public

ここまでのファイヤーウォールの設定画面

ファイアウォール設定

もし、ファイヤーウォールを停止していたら、# systemctl stop firewalldで停止しましょう。

vsftpdの自動起動設定

サーバーが再起動した際、自動でvsftpdが起動するように自動起動を設定しておく

systemctl enable vsftpd.service

vsftpdを起動

systemctl start vsftpd.service

状態確認

systemctl status vsftpd.service

activeと緑色で表示されていたらOK

停止コマンド

systemctl stop vsftpd.service

再起動コマンド

systemctl restart vsftpd.service

これで、FTPで接続が可能になります。