記事の目的
LInuxのCentOS8にFTPサーバー設定をすること
Windows PCからVM Ware Player上のCentOS8にFTP接続してファイルを送受信すること
CentOS8のFTPサーバー設定の手順
1.CentOS8にrootユーザでログインする
(画像では一般ユーザでログインしているので、suコマンドでrootユーザに切り替えています)
2.Vsftpdのインストール・設定
以下コマンドでVsftpdをインストールします。
dnf -y install vsftpd
以下のような画面でインストールが完了します。
以下のコマンドで/etc/vsftpd/vsftpd.conf(設定ファイル)の設定をします。
vi /etc/vsftpd/vsftpd.conf
<vsftpd.conf>
:set numberと入力してEnterキーを押して、行番号を表示させます。
(編集する箇所を探しやすくするために行番号を表示させます)
:set number
12行目の匿名でのログインを許可しない設定にします。
anonymous_enable= NO
82、83行目の#を削除してコメントアウトを解除する(アスキーモードでの転送を許可する)
ascii_upload_enable=YES ascii_download_enable=YES
100、101、103行目の#を削除してコメントアウトを解除する(chroot有効化・chrootリストファイルの指定)
/etc/vsftpd/chroot_listに記述したユーザはchroot対象外になります。
chroot_local_user=YES chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list
109行目の#を削除してコメントアウトを解除する(ディレクトリごと一括転送の許可)
ls_recurse_enable=YES
114行目を任意で変更
YES:IPv4のみリスンする、NO:IPv4とIPv6の両方をリスンする
listen=NO
123行目を任意で変更
YES:IPv4とIPv6をリスンする、NO:IPv6をリスンしない
listen_ipv6=YES
ローカルタイム指定を最終行に追記
use_localtime=YES
/etc/vsftpd/vsftpd.conf(設定ファイル)を保存して閉じる
3.上層へのディレクトリ移動を許可するユーザの設定
(/etc/vsftpd/chroot_listにユーザを追加する)
vi /etc/vsftpd/chroot_list
※上記画像ではauroraというユーザをchroot_listに追加。
/etc/vsftpd/chroot_listを保存して閉じる
4.vsftpdのサービス起動・サービス起動確認
vsftpdのサービス起動
systemctl enable --now vsftpd
サービス起動確認
systemctl status vsftpd
Active:がactiveになっていることを確認する
5.セキュリティの設定(ファイアウォール・SELINUXの設定)
ファイアウォールの許可設定
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
ファイアウォールの許可設定確認(ftpが追加されていることを確認)
firewall-cmd --list-all
SELinuxを有効にしている場合は、ブール値の変更が必要です。
SELinuxの状態確認
getenforce
enforcing:SELinuxは有効であり、アクセス制御が有効
permissive:アクセス制御は無効だが警告Msgを表示
disabled:SELinuxは無効
SELinxが有効な場合は以下コマンドでブール値の変更
setsebool -P ftpd_full_access on
getsebool -a | grep ftpd_full_access
ftpd_full_access --> onと表示されることを確認する。
FTPでのファイル転送
WinSCPやFFFTPでCentOS8に接続して、ファイル転送ができることを確認します。今回はWinSCPでファイル転送を試してます。
WinSCPを起動します。
ログイン画面で以下のように入力し、ログインを押下します。
転送プロトコル:FTP
ホスト名:FTPをインストールしたサーバのIPアドレス
ユーザ名:
パスワード:
Windowsのローカルの「test_ftp」ファイルを選択し、右クリックからアップロードを選択します。(アップロード画面が表示される場合は「OK」を選択します)
CentOSに「test_ftp」ファイルがアップロードされたことを確認します。
参考情報
SFTPについて
SFTPはSSH通信でFTP接続をするもので、SSH接続可能なユーザであればSFTPの接続が可能です。FTPサーバ側の設定を変更する必要はりません。
ですので、SSH接続可能なユーザであれば、WinSCPやFFFTPでSFTPでサーバに接続することが可能です。
rootでのFTP接続
デフォルトではrootはログイン拒否されています。
以下の設定ファイル(ftpusers・user_list)内の「root」をコメントアウトすることで、rootでFTP接続することが可能となります。
vi /etc/vsftpd/ftpusers
root⇒#root
vi /etc/vsftpd/user_list
root⇒#root