2017-03-22 12:12:23  浏览:1392

Centos vsftpd

最近在centos 7.2下配置vsftpd遇到一个奇怪的问题,一切按照原来的配置,不能连接,但是可以用主动模式查看文件列表,进入多级目录之后,卡死。

纠结了很久,原来是阿里的“安全组策略”限制了,仅仅开放20/21端口是不够的,还需要开放更多的端口

整理步骤如下:

一、安装软件

1、开放连接端口,入网和出网都要配置

* 端口范围 : 20/21

* 授权对象:0.0.0.0/0

开放被动连接端口,入网和出网都要配置

* 端口范围 : 10020/10040

* 授权对象:0.0.0.0/0

2、安装vsftp服务,自动安装,提示下载的时候,按 y 并回车

yum install vsftpd

3、修改/etc/pam.d/vsftpd

cp  /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

vi /etc/pam.d/vsftpd

用井号 # 注释掉原来的内容,并添加最后两行用户验证数据库

#%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    /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required    /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

修改/etc/vsftpd/vsftpd.conf

vi /etc/vsftpd/vsftpd.conf

-------修改文件

anonymous_enable=NO  # 禁用匿名登录
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES  # 启用限定用户在其主目录下
 

-----以下配置是需要自己手工添加:
pam_service_name=vsftpd
guest_enable=YES
guest_username=new_ftp_user  
user_config_dir=/etc/vsftpd/vuser_conf
tcp_wrappers=YES

--------一定要加这个,否则不能被动连接

pasv_min_port=10020     # 被动模式最小端口号10020
pasv_max_port=10040     # 被动模式最大端口号10040

二、添加宿主用户并指定根目录并使其不能登陆并赋予权限

 useradd new_ftp_user  –d /var/ftp/share –s /bin/false       //添加用户virtual并指定家目录为share并设置用户不能登陆

 mkdir /var/ftp/share //创建目录

chown new_ftp_user:new_ftp_user /var/ftp/share   //修改文件夹归属

 chmod –R 755 /var/ftp/share     //修改目录权限为755,如果连接的时候提示错误,就把这里的权限再写小一点

三、创建虚拟用户帐号登陆文件及数据库文件

vi /etc/vsftpd/vftpuser.txt

添加账户名和密码

new_ftp_user
new_ftp_user_password

生成数据文件 

db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db

创建用户配置文件:

cd vuser_conf
vi new_ftp_user

 配置文件内容:

local_root=/var/ftp/share
write_enable=YES
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
virtual_use_local_privs=YES

重启ftp服务,测试一切OK

 service vsftpd restart

返回首页