vsftp 被动模式配置

直接复制粘切过来就能用
这里只讲下配置,安装方法可以直接yum 
配置文件修改
 anonymous_enable=NO #关闭匿名用户
 xferlog_file=/var/log/vsftpd.log #打开日志
 idle_session_timeout=60
 data_connection_timeout=3600
 chroot_local_user=YES                                                 
 chroot_list_enable=YES          
 guest_enable=YES                             
 guest_username=vftpuser                      
 user_config_dir=/etc/vsftpd/vsftpd_user_conf 
 ssl_enable=YES                               
 force_local_data_ssl=YES                     
 force_local_logins_ssl=NO                    
 ssl_tlsv1=YES                                
 ssl_sslv2=NO                                 
 ssl_sslv3=NO                                 
 rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.pem         
 pasv_enable=yes                  #开启被动模式            
 pasv_min_port=3000      #最小端口                     
 pasv_max_port=3030       #最大端口                       
 pasv_promiscuous=YES             


创建 /etc/vsftpd/vsftpd_user_conf 目录 

PAM验证 SSL加密 
/etc/pam.d/vsftpd   #添加pam 验证模块内容如下
#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     password-auth
#account    include     password-auth
#session    required     pam_loginuid.so
#session    include     password-auth
auth        required    pam_userdb.so db=/etc/vsftpd/login
account     required    pam_userdb.so db=/etc/vsftpd/login       

创建证书
#mkdir  /etc/vsftpd/.sslkey        //建立存放证书的目录
#cd  /etc/vsftpd/.sslkey           //进入该目录以备建立证书
#openssl  req  -new  -x509  -nodes  -out vsftpd.pem  -keyout  vsftpd.pem  //生成证书,Common Name必须是客户端访问FTP服务器时的FQDN.#写本机ip  
#chmod  -R 400  /etc/vsftpd/.sslkey  //保证证书安全,修改证书目录的权限。
在/etc/vsftpd/vsftpd.conf配置文件中添加:#上面配置文件已经加过
ssl_enable=YES   ssl_sslv2=YES   ssl_sslv3=YES   ssl_tlsv1=YES
force_local_logins_ssl=YES   force_local_data_ssl=YES
rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.pem
添加 iptables 如果未启用iptables 可以不加
iptables  -I INPUT -p tcp –dport 21 -j ACCEPT
iptables -I INPUT -p tcp -m multiport –dport 3000:3030 -j ACCEPT
#service  vsftpd  restart
创建用户
创建 touch /etc/vsftpd/login.txt
添加用户密码到login.txt 格式如图
           

          添加用户 db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db 

 test 用户配置文件示例  
创建  test 文件  mkdir /etc/vsftpd/vsftpd_user_conf/test
内容如下
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/fan 
 #service  vsftpd  restart  
配置完成!  

  

常见问题

1 、vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

这个问题发生在最新的这是由于下面的更新造成的:

- Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

 要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:

allow_writeable_chroot=YES

2 、500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp

vsftpd.conf中加入了ftp_username=xxx(用户)这一行。而且这个ftp_username的缺省用户应该是ftp,但是系统缺省安装后并没有这个ftp用户存在,而且vsftpd安装后也没有添加这个用户。

3 、500 OOPS: vsftpd: both local and anonymous access

 配置ftp服务器,有如下报错

500 OOPS: vsftpd: both local and anonymous access disabled!
Connection closed by remote host.

解决办法

[root@localhost etc]# vi /etc/vsftpd/vsftpd.conf //修改vsftpd.conf文件

local_enable=YES                                 //把NO修改为YES

[root@localhost etc]# service vsftpd restart     //重新启动ftp服务器 

改行去放羊
原文地址:https://www.cnblogs.com/musen/p/11164582.html