Centos配置VSFTPD

  • VSFTPD
  • 禁止使用不安全的 FTP,请使用“CSK Global Root CA”证书颁发机
  • 构,颁发的证书,启用 FTPS 服务;
  •  创建虚拟用户 webuser,登录 ftp 服务器,根目录为/webdata,上传
  • 的文件映射为 webadmin;
  • 登录后限制在自己的根目录;
  • 允许 WEB 管理员上传和下载文件,但是禁止上传后缀名
  • 为.doc .docx .xlsx 的文件;
  • 限制用户的下载最大速度为 100kb/s;最大同一 IP 在线人数为 2 人;
  • 通过工具或者浏览器下载的最大速度不超过 100kb/s;
  • 一个 IP 地址同时登陆的用户进程/人数不超过 2 人;
  • 采用随机端口用户客户端跟服务器的数据传输,并限制传输端口为
  • 40000-41000 之间。

一、安装vsftpd ftp lftp 服务

[root@storagesrv /]#  yum install vsftpd ftp lftp  -y


二、创建虚拟用户与目录

[root@storagesrv /]# mkdir /webdata
[root@storagesrv /]# chmod 777 /webdata/
[root@storagesrv /]# useradd webadmin
[root@storagesrv /]# echo 1 |passwd  --stdin webadmin 
[root@storagesrv /]# useradd -s /sbin/nologin -d /var/webuser webuser
[root@storagesrv /]# echo 1 |passwd  --stdin webad
[root@storagesrv /]# nano user
webuser
1234
[root@storagesrv /]# db_load -T -t hash -f user user.db
[root@storagesrv /]# cat /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam >> /etc/pam.d/vsftpd 
[root@storagesrv /]# nano /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/user
account required pam_userdb.so db=/etc/vsftpd/user


三、生成服务证书并自签名

[root@storagesrv /]# nano /etc/pki/tls/openssl.cnf  
dir             =  /CA
[root@storagesrv /]# mkdir /CA
[root@storagesrv /]# cp -rf /etc/pki/tls/* /CA
[root@storagesrv /]# cd /CA/
[root@storagesrv CA]# touch index.txt
[root@storagesrv CA]# echo 01 >serial
[root@storagesrv CA]# openssl genrsa -out private/cakey.pem 2048
root@storagesrv:/CA# openssl req -new -x509 -key ./private/cakey.pem -out cacert.pem
         CN
         Inc
         www.skills.com
         skill Global Root CA
[root@storagesrv CA]# openssl genrsa -out ftp.key 2048  
[root@storagesrv CA]# openssl req -new -key ftp.key -out ftp.csr         
         CN
         China
         ShangDong
         skills
         Operations Departments
         ftp.sdskills.com
[root@storagesrv CA]# openssl x509 -req -in ftp.csr -CA /CA/cacert.pem -CAkey /CA/private/cakey.pem -CAcreateserial -out ftp.crt          
Signature ok
subject=/C=CN/ST=China/L=ShangDong/O=skills/OU=Operations Departments/CN=ftp.sdskills.com
Getting CA Private Key


四、配置vsftpd主配置文件和认证

[root@storagesrv /]# nano /etc/vsftpd/vsftpd.conf
guest_enable=YES                               #开启虚拟用户登录
guest_username=webadmin                        #虚拟映射用户名称
user_config_dir=/etc/vsftpd                    #虚拟用户目录
force_local_data_ssl=YES                       #开启ftps数据
force_local_logins_ssl=YES                     #开启ftps登录
ssl_enable=YES                                 #证书启动
rsa_cert_file=/ca/ftp.crt                      #证书位置
rsa_private_key_file=/ca/ftp.key               #密钥位置
local_root=/webdata                            #根目录
allow_writeable_chroot=YES                     #允许读写操作
deny_file={*.doc,*.docx,*.xlsx}                #禁止的文件类型  
local_max_rate=100000                          #本地最大流量为100kb 单位b
max_per_ip=2                                   #最大同一ip在线人数
pasv_min_port=40000                            #限制传输最小
pasv_max_port=41000                            #限制传输最大
#具体可 man 5 vsftpd.conf 参考
[root@storagesrv /]# nano  webuser 
write_enable=YES
allow_writeable_chroot=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
download_enable=NO
local_root=/webdata


[root@storagesrv /]# nano /etc/vsftpd/webuser
write_enable=YES
allow_writeable_chroot=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
download_enable=NO
local_root=/webdata


五、测试

[root@storagesrv /]# nano /etc/lftp.conf  
set ssl:verify-certificate no        #加入这行,具体可参考报错信息
#创建文件类型测试
[root@storagesrv /]# touch test.doc
[root@storagesrv /]# touch test.docx
[root@storagesrv /]# touch test.xlsx
[root@storagesrv /]# touch test.txt
#lftp连接
[root@storagesrv ~]# lftp -u webuser:1234 localhost      
lftp webadmin@localhost:~> quote pwd
257 "/"                            
lftp webadmin@localhost:/> put test.doc
put: Access failed: 550 Permission denied. (test.doc)
lftp webadmin@localhost:/> put test.docx
put: Access failed: 550 Permission denied. (test.docx)
lftp webadmin@localhost:/> put test.xlsx  
put: Access failed: 550 Permission denied. (test.xlsx)
lftp webadmin@localhost:/> put test.txt
lftp webadmin@localhost:/> ls
-rw-r--r--    1 1000     1000            0 Jul 21 11:24 test.txt

  • VSFTPD
  • 虚拟用户 ftpuser1 ftpuser2 映射用户为ftpuser文件根目录在用户自身目录下/var/ftpuser*
  • ftp1能下载,但不能上传;
  • ftp2能上传,但不能下载。

1. 创建2个虚拟用户,并设置密码

[root@storagesrv /]# useradd -s /sbin/nologin -d /var/ftp1 ftp1
[root@storagesrv /]# useradd -s /sbin/nologin -d /var/ftp2 ftp2
[root@storagesrv /]# echo 1111 | passwd --stdin ftp1
[root@storagesrv /]# echo 2222 | passwd --stdin ftp2


2. 安装db4

[root@storagesrv vsftpd]# yum -y install db4 db4-utils


3. 建立密码文件(每个用户两行,第一行为用户名,第二行为密码)

[root@storagesrv vsftpd]# cat vusers.txt  
ftp1
111
ftp2
222
[root@storagesrv vsftpd]# db_load -T -t hash -f vusers.txt vusers.db


4. 配置pam认证文件

[root@storagesrv vsftpd]# vim /etc/pam.d/vsftpd
在最后添加下面的内容(注意:末尾没有.db)可参考/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pem
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers


5. 编辑配置文件

[root@storagesrv vsftpd]# nano vsftpd.conf
最后加上
guest_enable=YES
guest_username=ftp    #本地用户映射为匿名用户
user_config_dir=/etc/vsftpd


6. 创建用户配置文件(配置文件名与用户名相同)

[root@storagesrv vsftpd]# cat ftp1            #虚拟用户ftp1
local_root=/var/ftp1                          #根目录
download_enable=YES                           #允许下载
anon_upload_enable=NO                         #禁止匿名上传

[root@storagesrv vsftpd]# cat ftp2            #虚拟用户ftp2
local_root=/var/ftp2
download_enable=NO                            #禁止下载
write_enable=YES                              #开启读写
anon_upload_enable=YES                        #允许上传
anon_mkdir_write_enable=YES                   #允许创建目录
anon_other_write_enable=YES                   #允许其他读写操作

  • 首先需要打开local_enable = YES
  • VSFTPD
  • 本地用户登录
  • 情况一、
  • chroot_local_user=YES                     #将所有用户锁定在主目录,下面指定的用户例外
  • chroot_list_enable=YES                    #启用锁定用户名单。
  • chroot_list_file=/etc/vsftpd/chroot_list  #文件中的用户有例外的权限。
  • 则/etc/vsftpd/chroot_list文件中的用户不锁定到用户主目录,其余的用户锁定到用户主目录。
  • 情况二、
  • chroot_local_user=NO                      #不锁定用户主目录,下面指定的用户例外
  • chroot_list_enable=YES
  • chroot_list_file=/etc/vsftpd/chroot_list
  • 则/etc/vsftpd/chroot_list文件中的用户锁定到用户主目录,其余的用户不锁定到用户主目录。
  • 情况三、
  • chroot_local_user=YES
  • chroot_list_enable=NO
  • chroot_list_file=/etc/vsftpd/chroot_list
  • 则/etc/vsftpd/chroot_list不生效,所有用户全部锁定在主目录ftpuser。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵神星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值