centos-虚拟用户vsftpd

一 、安装vsftpd需要的组件
[root@localhost ~]# yum -y install pam*               PAM验证
[root@localhost ~]# yum -y install db4*               db_load命令工具
[root@localhost ~]# yum -y install vsftpd  ftp

二 、建立虚拟用户
 [root@localhost ~]#vi /etc/vsftpd/vftpusers.txt
添加虚拟用户名和密码,奇数行为用户名,偶数行为密码
ftpadmin
123456
Ftpuser
123456

三 、生成虚拟用户口令认证文件
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vftpusers.txt /etc/vsftpd/vftpusers.db

[root@localhost ~]# chmod  600  /etc/vsftpd/vftpusers.*
降低文件权限以提高安全性

四 、编辑vsftpd的PAM认证
[root@localhost ~]# vi /etc/pam.d/vsftpd
将原有内容全部注释,并在最后添加如下两行(64位系统下需将lib改为lib64)
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpusers
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpusers 

五、建立本地映射用户并设置宿主权限
[root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin virtual
[root@localhost ~]#chmod 776 /var/ftproot

六、配置 vsftpd.conf (设置虚拟用户配置项)

#可上传、下载、不能删除和创建目录

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

anon_umask=002                  
anon_upload_enable=YES
anon_other_write_enable=NO       可以有删除的权限
anon_mkdir_write_enable=NO       可以有创建目录的权限

dirmessage_enable=YES

listen=YES
connect_from_port_20=NO          #pasv模式,port模式则设为YES
listen_port=21
pasv_min_port=65000
pasv_max_port=65100

 

xferlog_enable=YES
chown_uploads=NO                  不改变文件上传的所有者
xferlog_std_format=YES
               
nopriv_user=virtual               用户连接到vsftpd后,会创建独立的进程,                                                      nopriv_user指定进程的运行者 
async_abor_enable=YES             使用abor同步

ascii_upload_enable=YES           使用ascii上传和下载,据说不安全
ascii_download_enable=YES

注:
#关闭ASCII模式下载,防止被用于DoS攻击,ASCII下载很消耗CPU负担

chroot_local_user=YES             本地所有帐户都只能在宿主目录
ls_recurse_enable=NO              关闭“ls -R"命令,该命令常被用于DoS攻击,                                    非常浪费系统资源
 
guest_enable=YES                  开启来宾用户virtual(开启用户映射功能)
guest_username=virtual

#virtual_use_local_privs=YES      指定virtual user是否具有local user的权限
pam_service_name=vsftpd           验证方式
userlist_enable=YES
tcp_wrappers=YES
hide_file=.*
 
#七、关闭selinux
[root@localhost ~]# vi /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=disabled
或者设置
setsebool -P allow_ftpd_anon_write on
setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on

重启服务器生效

八、防火墙设置
vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 65000:65100 -j ACCEPT

service iptables restart

 
九、测试登录
[root@localhost ~]# service vsftpd restart
重启vsftpd服务 然后测试登录。
 
 
十、建立各个虚拟用户自身的配置文件
[root@localhost ~]#mkdir /etc/vsftpd/vsftpd_user_conf       编辑ftpusers文件
[root@localhost ~]#vi /etc/vsftpd/vsftpd_user_conf/ftpadmin
anon_other_write_enable=YES                  #开放ftpusers的删除权限。
local_root=/var/ftpadmin                     #该路径对应的目录必须存在
write_enable=YES
anon_umask=022             
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES


 
 其它虚拟用户的配置文件,依次建立同名配置文件并写入需要的配置即可
 
vsftpd的配置文件要增加虚拟用户配置文件的选项
[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vsftpd_user_conf
#设定用户配置文件存放目录

#说明:
1,因为主配置文件vsftp.conf是被先读的,然后再读用户的配置文件
2,ftp虚拟用户的根目录注意修改属主和属组为virtual,否则目录无法读写

【设置ssl登入】
1,生成vsftpd证书
[root@localhost ~]# cd /etc/pki/tls/certs/
[root@localhost ~]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem

 2,修改vsftpd.conf文件
[root@localhost ~]#vi/usr/local/etc/vsftpd.conf .
ssl_enable=YES(开启vsftpd对ssl协议的支持)
ssl_sslv2=YES(支持SSL v2 protocol)
ssl_sslv3=YES(支持SSL v3 protocol)
ssl_tlsv1=YES(支持TSL v1)
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem(证书的路径)

3,ftp客户端使用ssl登入连接ftp服务器

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   
【虚拟用户高级设置】
 
 1、virtual_use_local_privs参数
 当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限
 当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。
 当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传 下载 删除 重命名)
 当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES
 anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
 当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO
 anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限
 当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO
 anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限
 当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO
 anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限
 当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO
 anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限

+++++++++++++++++++++++++++++++++++++++++++++
错误一
vsftpd 500 OOPS: cannot change directory   #为selinux 未关闭!


错误二
530 Non-anonymous sessions must use encryption

#ftp服务器开启ssl连接

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值