オーロラさんの勉強帳

IT企業勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。少しでもお役に立てたら幸いです。

【Linux】CentOS8のFTPサーバー設定 ~WindowsからLinuxにFTP接続する~

記事の目的

LInuxのCentOS8FTPサーバー設定をすること
Windows PCからVM Ware Player上のCentOS8にFTP接続してファイルを送受信すること

CentOS8のFTPサーバー設定の手順

1.CentOS8にrootユーザでログインする

(画像では一般ユーザでログインしているので、suコマンドでrootユーザに切り替えています)
f:id:auroralights:20210828004349p:plain

2.Vsftpdのインストール・設定

以下コマンドでVsftpdをインストールします。

dnf -y install vsftpd


以下のような画面でインストールが完了します。
f:id:auroralights:20210828005607p:plain



以下のコマンドで/etc/vsftpd/vsftpd.conf(設定ファイル)の設定をします。

vi /etc/vsftpd/vsftpd.conf

<vsftpd.conf>
f:id:auroralights:20210828010213p:plain



:set numberと入力してEnterキーを押して、行番号を表示させます。
(編集する箇所を探しやすくするために行番号を表示させます)

:set number

f:id:auroralights:20210828010651p:plain



12行目の匿名でのログインを許可しない設定にします。

anonymous_enable= NO

f:id:auroralights:20210828010932p:plain



82、83行目の#を削除してコメントアウトを解除する(アスキーモードでの転送を許可する)

ascii_upload_enable=YES
ascii_download_enable=YES

f:id:auroralights:20210828011355p:plain



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

f:id:auroralights:20210828012820p:plain



109行目の#を削除してコメントアウトを解除する(ディレクトリごと一括転送の許可)

ls_recurse_enable=YES

f:id:auroralights:20210828013229p:plain



114行目を任意で変更
YES:IPv4のみリスンする、NO:IPv4とIPv6の両方をリスンする

listen=NO

f:id:auroralights:20210828165320p:plain



123行目を任意で変更
YES:IPv4とIPv6をリスンする、NO:IPv6をリスンしない

listen_ipv6=YES

f:id:auroralights:20210828170014p:plain



ローカルタイム指定を最終行に追記

use_localtime=YES

f:id:auroralights:20210828170314p:plain



/etc/vsftpd/vsftpd.conf(設定ファイル)を保存して閉じる

3.上層へのディレクトリ移動を許可するユーザの設定

(/etc/vsftpd/chroot_listにユーザを追加する)

vi /etc/vsftpd/chroot_list

f:id:auroralights:20210828171001p:plain
※上記画像ではauroraというユーザをchroot_listに追加。


/etc/vsftpd/chroot_listを保存して閉じる

4.vsftpdのサービス起動・サービス起動確認

vsftpdのサービス起動

systemctl enable --now vsftpd

f:id:auroralights:20210828171613p:plain


サービス起動確認

systemctl status vsftpd

f:id:auroralights:20210828171634p:plain
Active:がactiveになっていることを確認する

5.セキュリティの設定(ファイアウォール・SELINUXの設定)

ファイアウォールの許可設定

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

f:id:auroralights:20210828171953p:plain

firewall-cmd --reload

f:id:auroralights:20210828172135p:plain



ファイアウォールの許可設定確認(ftpが追加されていることを確認)

firewall-cmd --list-all

f:id:auroralights:20210828172312p:plain


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を起動します。
f:id:auroralights:20210828173103p:plain


ログイン画面で以下のように入力し、ログインを押下します。
転送プロトコル:FTP
ホスト名:FTPをインストールしたサーバのIPアドレス
ユーザ名:
パスワード:
f:id:auroralights:20210828204140p:plain


Windowsのローカルの「test_ftp」ファイルを選択し、右クリックからアップロードを選択します。(アップロード画面が表示される場合は「OK」を選択します)
f:id:auroralights:20210828205158p:plain


CentOSに「test_ftp」ファイルがアップロードされたことを確認します。
f:id:auroralights:20210828205307p:plain


参考情報

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