openEuler 22.03 LTSにおけるvsftpdサーバーの設定

概要

VMware仮想環境にインストールされたopenEuler 22.03 LTSシステム上で、インターネットアクセスが可能な状態でFTPサーバーを構築します。

FTPサーバーの認証モード

  • 匿名モード: パスワードなしで誰でもアクセス可能。セキュリティが低い。
  • ローカルユーザーモード: Linuxシステムのユーザー名とパスワードを使用する。
  • 仮想ユーザーモード: FTP専用のアカウントを使用し、より安全。

基本設定

1. ソフトウェアパッケージのインストール

[root@ftp-host ~]# dnf -y install vsftpd

2. 設定ファイルの説明

[root@ftp-host ~]# cd /etc/vsftpd
[root@ftp-host vsftpd]# ls -l

- /etc/vsftpd/ftpusers: アクセス禁止リストファイル。

- /etc/vsftpd/user_list: アクセス許可リストファイル。

- /etc/vsftpd/vsftpd.conf: FTPサービスの主要な設定ファイル。

3. vsftpdサービスの操作

  • 自動起動設定:
    [root@ftp-host ~]# systemctl enable vsftpd
    
  • サービス再起動:
    [root@ftp-host ~]# systemctl restart vsftpd
    
  • サービス状態確認:
    [root@ftp-host ~]# systemctl status vsftpd
    
  • 接続ポート確認:
    [root@ftp-host ~]# netstat -tuln | grep ftp
    
  • ログ確認:
    [root@ftp-host ~]# journalctl -u vsftpd
    

匿名モードFTPサーバーの設定

1. 設定ファイル編集

パラメータ機能
anonymous_enable=YES匿名アクセスを許可
anon_root=/opt/data匿名ユーザーのルートディレクトリ
anon_upload_enable=YES匿名ユーザーによるアップロードを許可
[root@ftp-host ~]# vim /etc/vsftpd/vsftpd.conf

# anonymous_enable=YES
# local_enable=NO
# anon_root=/opt/data

2. 匿名ユーザーのルートディレクトリ作成

[root@ftp-host ~]# mkdir -p /opt/data

3. SELinux設定

[root@ftp-host ~]# setsebool -P ftpd_full_access on

4. ファイアウォール設定

[root@ftp-host ~]# firewall-cmd --permanent --zone=public --add-service=ftp
[root@ftp-host ~]# firewall-cmd --reload

ローカルユーザーモードFTPサーバーの設定

1. 設定ファイルの編集

パラメータ機能
local_enable=YESローカルユーザーのアクセスを許可
write_enable=YES書き込みを許可
chroot_local_user=YESユーザーをホームディレクトリに制限
[root@ftp-host ~]# vim /etc/vsftpd/vsftpd.conf

# anonymous_enable=NO
# local_enable=YES
# write_enable=YES
# chroot_local_user=YES

2. 白名单ファイルの編集

[root@ftp-host ~]# vim /etc/vsftpd/user_list
# wangwuを追加
wangwu

3. ユーザーアカウントの追加

[root@ftp-host ~]# useradd wangwu
[root@ftp-host ~]# echo "Huawei12#$" | passwd --stdin wangwu

仮想ユーザーモードFTPサーバーの設定

1. 仮想ユーザー情報の作成

[root@ftp-host ~]# gdbmtool -n /etc/vsftpd/vuserdb.db open
[root@ftp-host ~]# gdbmtool /etc/vsftpd/vuserdb.db store vuser1 Huawei12#$ 
[root@ftp-host ~]# chmod 600 /etc/vsftpd/vuserdb.db

2. 仮想ユーザーのマッピングアカウント作成

[root@ftp-host ~]# useradd -d /var/vdir -s /sbin/nologin ftpmap
[root@ftp-host ~]# chmod -R 755 /var/vdir

3. PAM認証ファイルの設定

[root@ftp-host pam.d]# cp vsftpd vsftpd_bak
[root@ftp-host pam.d]# vim vsftpd

auth    required    pam_userdb.so    db=/etc/vsftpd/vuserdb
account required    pam_userdb.so    db=/etc/vsftpd/vuserdb

4. vsftpd設定ファイルの編集

[root@ftp-host ~]# vim /etc/vsftpd/vsftpd.conf

# guest_enable=YES
# guest_username=ftpmap
# allow_writeable_chroot=YES
# pam_service_name=vsftpd

5. SELinux設定

[root@ftp-host ~]# setsebool -P ftpd_full_access on

6. ファイアウォール設定

[root@ftp-host ~]# firewall-cmd --permanent --zone=public --add-port=21688-21888/tcp
[root@ftp-host ~]# firewall-cmd --reload

補足知識

1. FTP接続の基礎知識

  • Portモード: サーバー側からクライアント側へのデータ転送。
  • Pasvモード: クライアント側からサーバー側へのデータ転送。

2. vsftpdの接続モード設定

Portモード

connect_from_port_20=YES
port_enable=yes

Pasvモード

pasv_enable=yes
pasv_max_port=21888
pasv_min_port=21688
pasv_address=
port_enable=no

3. 常用FTPコマンド

コマンド機能
lsファイル一覧表示
mkdirディレクトリ作成
cdディレクトリ移動
getファイルダウンロード
putファイルアップロード
quitFTPセッション終了

タグ: openEuler vsftpd FTPサーバー selinux ファイアウォール

7月7日 16:51 投稿