1)基础环境
[root@ceshi1 ~]# uname -r
2.6.32-573.el6.x86_64
[root@ceshi1 ~]# cat /etc/centos-release
CentOS release 6.7 (Final)
2)关闭防火墙以及selinux
[root@ceshi1 ~]# /etc/init.d/iptables stop
[root@ceshi1 ~]# setenforce 0
setenforce: SELinux is disabled
3)yum安装vsftpd以及相关依赖
[root@ceshi1 ~]# yum install -y vsftpd #vsftpd安装程序
[root@ceshi1 ~]# yum install -y pam* db4* #vsftpd虚拟登陆账户必要依赖包
ftp的配置文件主要有三个在centos中位于/etc/vsftpd/目录下分别是
[root@ceshi1 vsftpd]# tree
├── ftpusers 该文件用来指定哪些用户不能访问ftp服务器
├── user_list 该文件用来指示的默认账户在默认情况下也不能访问ftp
├── vsftpd.conf 主配置文件
具体配置详解:
1)用户登录控制
anonymous_enable=YES允许匿名用户登录
no_anon_password=YES匿名用户登录时不需要输入密码
local_enable=YES允许本地用户登录
eny_email_enable=YES可以创建一个文件保存某些匿名电子邮件的黑名单以防止这些人
banned_email_file=/etc/vsftpd/banned_emails保存电子邮件黑名单的目录(默认)
2)用户权限控制
write_enable=YES开启全局上传
local_umask=本地文件上传的umask设置为系统默认
anon_upload_enable=YES允许匿名用户上传当然要在write_enable=YES的情况下同时必须建立一个允许ftp用户读写的目录
anon_mkdir_write_enable=YES允许匿名用花创建目录
anon_mkdir_other_write_enable=YES 是否允许匿名用户删除文件
chown_uploads=YES匿名用户上传的文件属主转换为别的用户一般建议为root
chown_username=whoever改此处的whoever为要转换的属主建议root
chroot_list_enable=YES用一个列表来限定哪些用户只能在自己目录下活动
chroot_list_enable=/etc/vsftpd/chroot_list指定用户列表文件
nopriv_user=ftpsecure指定一个安全账户让ftp完全隔离和没有特权的账户
3)用户连接和超时设置
idle_session_timeout=默认的超时时间
data_connection_timeout=设置默认数据连接的超时时间
服务器日志和欢迎信息
dirmessage_enable=YES允许为配置目录显示信息
ftpd_banner=WelcometoblahFTPserviceftp的欢迎信息
xferlog_enable=YES打开日志记录功能
xferlog_file=/var/log/xferlog日志记录文件的位置
4)
chown_uploads=YES # 定义用户上传文件之后是否更改属主
chown_username=whoever # 定义用户上传文件之后属主更改为谁
连接
chroot_local_user=YES #是否禁锢系统用户,一旦启用,那么chroot_list中的用户不被禁锢
chroot_list_enable=YES # 是否禁锢chroot_list中的用户
chroot_list_file=/etc/vsftpd/chroot_list # chroot_list文件保存位置
listen=YES # 是否作为一个独立守护进程运行
pam_service_name=vsftpd # vsftpd使用的pam服务名称
user_list_enable=YES # 是否启用user_list文件配合userlist_deny=YES|NO控制用户登录
userlist_deny=YES # 值为YES时,user_list为黑名单;值为NO时,user_list为白名单
max_clients=N # 最多允许N个客户端同时连接ftp
max_per_ip=N # 最多允许N个来自同一ip的客户端连接请求
[root@ceshi1 ~]# yum install -y vsftpd #vsftpd安装程序
[root@ceshi1 ~]# yum install -y pam* db4* #vsftpd虚拟登陆账户必要依赖包
1)修改配置文件前备份
[root@ceshi1 vsftpd]#cd /etc/vsftpd
[root@ceshi1 vsftpd]# cp vsftpd.conf vsftpd.conf.org
2)建立相关文件及文件夹
[root@ceshi1 vsftpd]# touch /etc/vsftpd/chroot_list
[root@ceshi1 vsftpd]# mkdir /etc/vsftpd/ftplogin
正式配置文件
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=www
user_config_dir=/etc/vsftpd/ftplogin
pam_service_name=vvsftpd
1.创建密码明文文件
[root@ceshi1 vsftpd]# touch /etc/vsftpd/vuser
[root@ceshi1 vsftpd]# vim /etc/vsftpd/vuser
boy
boy123
girl
girl123
test
test123
格式:
用户名1
用户名1密码
用户名2
用户名2密码
2.生成pam校验数据库文件
[root@ceshi1 vsftpd]# db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/login.db
为了安全期间,建议在生成校验数据库之后,删除vuser文件
或者修改vuser权限,不让别的用户读(root大神如果被攻陷,那就没什么好说的了)
chmod 600 /etc/vsftpd/vuser
3.添加新的pam service
[root@ceshi1 vsftpd]# touch /etc/pam.d/vvsftpd
[root@ceshi1 vsftpd]# vim /etc/pam.d/vvsftpd
内容如下(注意如果是32位系统,那就用32位的校验,本例是64位的):
#%PAM-1.0
#auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login
#account required /lib/security/pam_userdb.so db=/etc/vsftpd/login
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/login
4.给FTP虚拟用户赋予权限(增加权限配置文件)
配置文件存放路径,就是conf中的user_config_dir,本文就是/etc/vsftpd/ftplogin,文件名必须和用户名相同
文件配置详解,默认路径需要提前用mkdir建立好,目录拥有者设置为conf中的guest_username,本文为www
#有上传/下载/修改权限
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/u01/ftpb/upload/
#只有上传/修改权限
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
local_root=/u01/ftpb/upload/
#只有下载权限
anon_world_readable_only=NO
local_root=/u01/ftpb/upload/
useradd –d /data/upload www –s /sbin/nologin -M
mkdir /data/upload –p
chown –R www.www /data/upload
cd /etc/vsftpd/ftplogin
vim boy /girl/test
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/data/upload
[root@ceshi1 vsftpd]# /etc/init.d/vsftpd start
Starting vsftpd for vsftpd: [ OK ]
ftp://ip地址
参考文档:http://www.cnblogs.com/kreo/p/4377376.html
本文出自 “追梦IT男” 博客,请务必保留此出处http://runningyongboy.blog.51cto.com/8234857/1837871
原文地址:http://runningyongboy.blog.51cto.com/8234857/1837871