Linux vsftpインストール構成と仮想ユーザー設定

5147 ワード

インストール
1、vsftpがインストールされているかどうかを確認する
rpm -q vsftpd

Package vsftpd is not installed#説明システムはvsftpdをインストールしていません
 
2、vsftpdのインストール
yum -y  install vsftpd   #      

 
基本コマンド、構成完了後、操作
/etc/init.d/vsftpd start #  
vsftpdservice vsftpd restart #  
service vsftpd stop #  
chkconfig vsftpd on #         


 
3、インストールディレクトリ
デフォルトディレクトリは/etc/vsftpd/
二、配置
1、vsftpサーバープロファイルの説明:
/etc/vsftpd/vsftpd.conf vsftpdのコアプロファイルは、インストール後に変更する必要があります
/etc/vsftpd/ftpusersは、FTPサーバにアクセスできないユーザーを指定し、デフォルトを維持します.
/etc/vsftpd/user_Listはvsftpdを使用できるユーザーリストファイルを指定し、デフォルトを維持します.
/etc/vsftpd/vsftpd_conf_migrate.shはvsftpd操作のいくつかの変数と設定スクリプトです
2、新しいvsftp仮想ユーザーアカウントのパスワード:
touch /etc/vsftpd/virtusers
#          :(     ,     ,  :    root    ,    )
vi /etc/vsftpd/virtusers
web1
123456
web2
123456


 
3、仮想ユーザーデータファイルを生成する:
 
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
chmod 600 /etc/vsftpd/virtusers.db #  PAM    ,                  

 db_loadはユーザー名のパスワードを暗号化し、システムは最終的にvirtusesを使用する.dbファイル、virtusersは使用されず、削除可能
4、新規/etc/pam.d/vsftpファイル:
vi /etc/pam.d/vsftp
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers

ファイル内のdbの値は、ステップ3のdbファイル名と一致します.
注:システムが64の場合、上のlibをlib 64に変更します.そうしないと、構成に失敗します.
 
5、新しいシステムユーザーvsftpuser(名前は自由で、ステップ7のプロファイルと一致している):
useradd -g ftp -s /sbin/nologin vsftpuser

 
6、仮想ユーザー個人Vsftpのプロファイルを作成し、ユーザーに異なる権限を配置することができる:
mkdir /etc/vsftpd/user_conf #user_conf      , vsftpd.conf     
cd /etc/vsftpd/user_conf
touch web1 web2 #            ,        

vi web1 #    web1    ,            
local_root=/ftp/web1  #web1        
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

 
7、新規chroot_Listファイル、アクセス可能な仮想ユーザーを設定します.
 
touch /etc/vsftpd/chroot_list #          
vi /etc/sftpd/chroot_list
web1 

Web 1ユーザーのみのログインが許可されています
 
8、vsftpサーバーの構成を変更する:
vsftpd.confの内容は、デフォルトのプロファイルを変更する.
# Example config file /etc/vsftpd/vsftpd.conf

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=no
#
# Uncomment this to allow local users to log in.
local_enable=yes
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
local_umask=022

anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
# ASCII mangling is a horrible feature of the protocol.
ascii_upload_enable=YES
ascii_download_enable=YES

#chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

#vsftp,4       
pam_service_name=vsftp
userlist_enable=YES
tcp_wrappers=YES

#vsftp user,      vsftpuser, useradd     
guest_enable=YES
#vsftpuser 5       
guest_username=vsftpuser  
virtual_use_local_privs=NO
file_open_mode=0777
anon_umask=0222

#      ,            .        , 6   
user_config_dir=/etc/vsftpd/user_conf/

 
トリプルスタート
service vsftpd start
  
/etc/init.d/vsftpd start

 
四問題
500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list500 OOPS: priv_sock_get_resultリモートホストは接続を閉じます. 
新しいchroot_がありませんlist
 
500 OOPS: cannot change directory:/home/vsftpuser500 OOPS: 500 OOPS: child died
1.ユーザーディレクトリ権限を表示します.
2.
sestatus -b | grep ftp
#  
allow_ftpd_anon_write                       off
allow_ftpd_full_access                      off
allow_ftpd_use_cifs                         off
allow_ftpd_use_nfs                          off
ftp_home_dir                                off
ftpd_connect_db                             off
httpd_enable_ftp_server                     off
sftpd_anon_write                            off
sftpd_enable_homedirs                       off
sftpd_full_access                           off
sftpd_write_ssh_home                        off
tftp_anon_write                             off

 
結果にftp_が表示されますhome_dir offtftpd_disable_trans offとか.私たちは今、その中の1つをonに設定すればいいです.setsebool -P ftpd_disable_trans onまたはsetsebool-P ftp_home_dir on
再起動vsftpd:service vsftpd restart