vsftpd服务器分为主动模式与被动模式两种了,下面我们来为各位介绍linux中vsftpd下虚拟用户+被动模式配置详解,希望文章对各位有用,下面说说在linux下部署vsftp的过程吧,小小笔记.
一、安装
这里我说下最简单的rpm包安装,因为光盘中有,何必编译呢?
yum install db4* vsftpd -y
二、配置
1、新建系统用户
useradd vsftpd -s /sbin/nologin
限制vsftpd用户登录,此用户将最为vsftpd服务的宿主用户.
useradd ftp -s /sbin/nologin
这里是Vsftpd虚拟宿主用户,默认情况下这个用户应该有,当然这些用户你可以用另外的名字.
2、修改vsftpd的配置。
- anonymous_enable=NO#设定不允许匿名访问
- local_enable=YES#设定本地用户可以访问。如果设定为NO那么所有虚拟用户将无法访问。
- write_enable=YES#设定可以进行写操作。
- local_umask=022#设定上传后文件的权限掩码。
- anon_upload_enable=NO#禁止匿名用户上传。
- anon_mkdir_write_enable=NO#禁止匿名用户建立目录。
- dirmessage_enable=YES#设定开启目录标语功能。
- xferlog_enable=YES#设定开启日志记录功能。
- connect_from_port_20=NO#禁止端口20进行数据连接。这里用被动模式
- chown_uploads=NO#设定禁止上传文件更改宿主。
- xferlog_file=/var/log/vsftpd.log#设定Vsftpd的服务日志保存路径
- xferlog_std_format=YES#设定日志使用标准的记录格式。
- idle_session_timeout=600#设定空闲连接超时时间
- nopriv_user=vsftpd#设定支撑Vsftpd服务的宿主用户
- async_abor_enable=YES#设定支持异步传输功能
- ascii_upload_enable=YES
- ascii_download_enable=YES#设定支持ASCII模式的上传和下载功能
- ftpd_banner=vsftpd#设定Vsftpd的登陆标语
- chroot_list_enable=NO#禁止用户登出自己的FTP主目录
- ls_recurse_enable=NO#禁止用户登陆FTP后使用"ls-R"的命令,占用资源
- listen=YES#设定该Vsftpd服务工作在StandAlone模式
- #新增配置
- pam_service_name=vsftpd#设定PAM服务下Vsftpd的验证配置文件名
- userlist_enable=YES#设定userlist_file中的用户将不得使用FTP
- tcp_wrappers=YES#设定支持TCPWrappers
- guest_enable=YES#设定启用虚拟用户功能
- guest_username=ftp#指定虚拟用户的宿主用户
- virtual_use_local_privs=YES#设定虚拟用户的权限符合他们的宿主用户--phpfensi.com
- user_config_dir=/etc/vsftpd/vconf#设定虚拟用户个人Vsftp的配置文件存放路径
3、新建用户
- touch/etc/vsftpd/user_list
- #写入
- testuser#用户名
- 123456#密码
4、生成数据文件
db_load -T -t hash -f /etc/vsftpd/user_list /etc/vsftpd/user.db
5、修改pam。
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/login
必须把这两条插入#%PAM-1.0后面,其中sufficient表示充分条件,如果通过了,同类型的验证就不需要了。
6、配置虚拟用户。
按照上面的用户配置对应的文件:touch /etc/vsftpd/vconf/testuser
新建虚拟用户的目录:mkdir /opt/vsftp/virtuser && chown root.ftp /opt/vsftp/virtuser
用户登录后会限制在这个目录里面做读写操作,配置如下内容,不一定都需要.
- local_root=/opt/vsftp/virtuser#指定虚拟用户的具体主路径。
- idle_session_timeout=600#设定空闲连接超时时间。
- data_connection_timeout=120#设定单次连续传输最大时间。
- max_clients=10#设定并发客户端访问个数。
- max_per_ip=5#设定单个客户端的最大线程数
- local_max_rate=50000#设定该用户的最大传输速率,单位b/s。
另外前面主配置文件的配置,在这里可以重新配置覆盖,好了启动vsftp 测试下吧.