仮想ユーザーログインを使用するFTPサーバーを構成します

仮想ユーザーログインでFTPサーバーを構成すると、オペレーティングシステムアカウントをFTPユーザーとして使用することによって引き起こされるセキュリティ上の問題を回避でき、データベースやその他のプログラムによる管理にも便利です。この記事では、LinuxでのvsftpdのFTPサーバーソフトウェアを例として使用して、FTPを構成する詳細なプロセスについて説明します。

1必要なソフトウェアをインストールします

yum install  vsftpd

yum install  db4 #BerkeleyDBデータベース。仮想FTPのユーザー名とパスワードを保存するために使用されます


2インストール環境を初期化します

mkdir -p / data / vsftpd#このディレクトリには、すべての仮想ユーザーのディレクトリとファイルが格納されます

useradd -d / data / vsftpd -s / sbin / nologin vsftpd #vsftpdユーザーを作成します。ログインは禁止されています

chown -R vsftpdvsftpd / data / vsftpd

    mkdir -p / etc / vsftpd / vsftpd_user_conf #このディレクトリには、各仮想ユーザーの構成ファイルが格納されます(空にすることもできます)


3vsftpd構成ファイルを変更します

vi /etc/vsftpd/vsftpd.conf、内容は次のとおりです。

anonymous_enable=NO
local_enable=YES
write_enable=NO
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
nopriv_user=vsftpd
chroot_local_user=YES
listen=YES
pam_service_name=ftp    #PAM策略文件的名字
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES        #允许虚拟用户登录
guest_username=vsftpd
local_root=/data/vsftpd/$USER    #用户目录
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf    #用户配置文件所在目录,可以为空


    vi /etc/pam.d/ftpの場合、内容は次のとおりです。

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

3新規ユーザー

私は、 ユーザー名とパスワードファイルを変更します
vi /etc/vsftpd/logins.txtで、このファイルにユーザー名とパスワードを追加します。logins.txtの奇数はアカウント名、偶数はパスワードです。
db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db#ユーザー名とパスワードのデータベースファイルを生成します


ii ユーザーのディレクトリを作成します
mkdir / data / vsftpd / $ new_user_name
chown -R vsftpd:vsftpd / data / vsftpd / $ new_user_name


4FTPサービスを開始します

サービスvsftpd開始

chkconfig vsftpd on#自動的に起動するように設定


5ユーザーを削除します

iユーザー名とパスワードファイルを変更します
vi /etc/vsftpd/logins.txt、このファイルのユーザー名とパスワードを削除します。奇数はlogin.txtのアカウント名、偶数はパスワードです。
db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db
iiユーザーディレクトリを削除する

/ data / vsftpdの下のユーザーディレクトリを削除します


一般的な誤動作:

Q: ログインに失敗しました

500 OOPS: cannot change directory:/home/vsftpd
Login failed.
421 Service not available, remote server has closed connection

A :解決方法

通常、SELinuxが原因で、解決手順は次のとおりです。

vi / etc / selinux / config #selinux = enforcingまたはpermissiveをdisabledに変更し、selinuxをオフにします

setenforce 0 SELinuxのオフターンポリシーがすぐに有効にします

/etc/init.d/vsftpd restart #FTPサービスを再開する

おすすめ

転載: blog.csdn.net/huzhenwei/article/details/7896632