> 文章列表 > ftp-vsftpd(Centos)

ftp-vsftpd(Centos)

ftp-vsftpd(Centos)

 一.关闭selinux跟防火墙

setenforce 0

systemctl stop firewalld

二.安装vsftpd

yum install vsftpd -y

三.创建虚拟用户与目录并申请证书

mkdir /webdata  根目录

chmod 777 /webdata/

useradd webadmin  上传的文件映射为webadmin

vim user   webuser虚拟用户

 

 通过db_load工具创建出Berkeley DB格式的数据库文件

linux下的vsftpd的db_load命令_努力学习的菜头的博客-CSDN博客db_load是linux下创建虚拟账户:选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。指定了选项-T,那么一定要追加子选项-t;子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。-f 参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码hash就是使用hash码加密db_load -T -t hash -f vuser uhttps://blog.csdn.net/yanjun52015/article/details/121361892

db_load -T -t hash -f user user.db

 四.创建根证书  申请站点证书密钥和请求证书  给证书签名

vim /etc/pki/tls/openssl.cnf

 mkdir /CA

cp -rf /etc/pki/tls/* /CA

cd /CA

touch index.txt

echo 01 >serial

openssl genrsa -out private/cakey.pem  2048

openssl req -x509 -new -key ./private/cakey.pem -out cacert.pem

申请站点证书密钥和请求证书

openssl genrsa -out ftp.key 2048

openssl req -new -key ftp.key -out ftp.csr

给证书签名

openssl x509 -req -in ftp.csr -CA /CA/cacert.pem -CAkey /CA/private/cakey.pem -CAcreateserial -out ftp.crt

五.编辑ftp配置文件和认证文件

vim /etc/vsftpd/vsftpd.conf  配置文件

配置文件中的带#的行数比较多 使用

mv /etc/vsftpd/vsftpd.conf /etc/vsfptd/vsftpd.conf_bak

grep -v "#" /etc/vsftpd/vsftpd.conf_bak >/etc/vsftpd/vsftpd.conf

 

添加这些属性节点

guest_enable=YES 启用虚拟用户
guest_username=webadmin  将虚拟用户映射为本地用户,这样虚拟用户登录后才能进入本地用户webadmin的目录
user_config_dir=/etc/vsftpd  存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
force_local_data_ssl=YES  表示在登录和数据传输时采用证书加密
force_local_logins_ssl=YES  在登录
ssl_enable=YES  表示开启ssl证书功能
rsa_cert_file=/ca/ftp.crt 此选项用于指定 SSL 加密联接所用 RSA 证书的位置. 
rsa_private_key_file=/ca/ftp.key    证书的位置. 
local_root=/webdata  把本地账户指向创建的/webdata
allow_writeable_chroot=YES   这行解决了无法登陆的问题
deny_file={*.doc,*.docx,*.xlsx}   禁止上传后缀名为.doc .docx .xlsx
local_max_rate=100000  限制用户的下载最大速度为100kb/s
max_per_ip=2  最大同一IP在线人数为2人
pasv_min_port=40000   最小接口
pasv_max_port=41000   最大接口
最后两行是传输接口的范围

vim /etc/pam.d/vsftpd  认证文件

 其中user是上一步生成的数据库文件的文件名,不要后缀名!!!

 测试

安装lftp

yum install lftp -y

编辑lftp配置文件

vim /etc/lftp.conf

set ssl:verify-certificate no  禁用证书验证

创建四个文件测试

touch test.doc

touch test.docx

touch test.xlsx

touch test.txt

 lftp -u webuser:1234 localhost    使用用户名webuser密码1234连接到本地主机localhost

lftp连接测试

 

咖啡知识