Centos8通过VSFTPD配置FTPs

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。

系统环境

Centos8

创建用户

需要创建用于访问FTP服务器的用户。执行以下命令来创建用户并设置各自的密码,创建用户时使用-s选项,让这两个用户禁止shell登录:

[root@localhost ~]# useradd -s /sbin/nologin user01
[root@localhost ~]# useradd -s /sbin/nologin user02
[root@localhost ~]# echo '123'|passwd --stdin user01
Changing password for user user01.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo '123'|passwd --stdin user02
Changing password for user user02.
passwd: all authentication tokens updated successfully.

编辑/etc/shells配置文件

上面的用户的shell设置为/sbin/nologin之后,需要在/etc/shells文件中添加/sbin/nologin,否则后面ftp用户登录时提示Login failed: 530 Login incorrect.

[root@localhost ~]# echo "/sbin/nologin" >> /etc/shells
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/sbin/nologin

安装VSFTPD

使用下面命令安装vsftpd:

[root@localhost ~]# yum -y install vsftpd

创建自签名证书

为FTP服务器创建一个自签名证书。使用openssl命令,执行以下命令来生成自签名证书和私钥:

[root@localhost ~]# openssl req -x509 -nodes -keyout /etc/vsftpd/vsftpd.key -out /etc/vsftpd/vsftpd.pem -days 365 -newkey rsa:2048
Generating a RSA private key
..+++++
..............................................+++++
writing new private key to '/etc/vsftpd/vsftpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Shandong
Locality Name (eg, city) [Default City]:QD
Organization Name (eg, company) [Default Company Ltd]:Linuxprobe
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:ftp.linuxprobe.com Email Address []: 

配置VSFTPD服务支持chroot和SSL

将上面创建的用户user01和user02添加到/etc/vsftpd/user_list文件中,只允许该文件中的用户ftp登录。

[root@localhost vsftpd]# vim /etc/vsftpd/user_list# vsftpd userlist# If userlist_deny=NO, only allow users in this file# If userlist_deny=YES (default), never allow users in this file, and# do not even prompt for a password.# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
user01
user02

下面编辑/etc/vsftpd/vsftpd.conf,编辑前需要备份一下配置文件:

[root@localhost vsftpd]# cd /etc/vsftpd/
[root@localhost vsftpd]# cp -p vsftpd.conf vsftpd.conf.back

编辑vsftpd.conf文件,配置文件内容如下:

[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# cat vsftpd.conf | grep -Ev '(^$|^#)'
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
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
ssl_enable=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1_2=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.key
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
require_ssl_reuse=NO
ssl_ciphers=HIGH
pasv_min_port=30000
pasv_max_port=31000
debug_ssl=YES
chroot_local_user=YES
local_root=/var/www/html/$USER
allow_writeable_chroot=YES

开启服务

下面启用服务,并启动服务:

[root@localhost ~]# systemctl enable vsftpd
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service ¡ú /usr/lib/systemd/system/vsftpd.service.
[root@localhost ~]# systemctl start vsftpd

设置防火墙

[root@localhost ~]# firewall-cmd --permanent --add-service=ftp
success
[root@localhost ~]# firewall-cmd --reload
success

设置SELinux

下面需要设置一下selinux的boolean值,默认情况下/var/www/html目录的安全上下文为httpd_sys_content_t,用户使用ftp上传下载可能会出现权限问题,所以下面设置一下和ftp相关的selinux设置:

[root@localhost ~]# setsebool -P ftpd_full_access 1
[root@localhost ~]# getsebool ftpd_full_access
ftpd_full_access --> on

创建ftp用户的目录

/var/www/html目录中创建用户的目录,并设置权限。

[root@localhost ~]# mkdir /var/www/html/user0{1..2}
[root@localhost ~]# chown -R user01:apache /var/www/html/user01/
[root@localhost ~]# chown -R user02:apache /var/www/html/user02/

在每个目录中创建一个空文件。你在登录后可以区分用户家目录:

[root@localhost ~]# touch /var/www/html/user01/user01_files
[root@localhost ~]# touch /var/www/html/user02/user02_files

访问ftp服务器

下载lftp命令行客户端进行连接测试:

[root@localhost ~]# yum -y install lftp

下面使用user01登录:

[root@localhost ~]# lftp user01@localhost
Password:
lftp user01@localhost:~> ls                  
ls: Fatal error: Certificate verification: Not trusted (01:3E:A2:1B:39:E9:BE:DB:55:1F:C3:71:34:6F:B6:8E:E2:D0:2C:8C)

上面提示错误,因为是自签名证书。可以通过执行以下命令不检查证书:

[root@localhost ~]# echo "set ssl:verify-certificate no" >> /etc/lftp.conf

下面再执行一下lftp命令使用user01登录:

[root@localhost ~]# lftp user01@localhost
Password:
lftp user01@localhost:~> ls                  
-rw-r--r--    1 0        0               0 Apr 07 09:42 user01_files

再使用user02登录看一下:

[root@localhost ~]# lftp user02@localhost
Password:
lftp user02@localhost:~> ls                  
-rw-r--r--    1 0        0               0 Apr 07 09:42 user02_files

总结

本文介绍了如何设置更安全的ftp – “FTPs”、将ftp用户的主目录限制在/var/www/html目录中、如何使用轻量化ftp命令行工具 – “lftp”。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/202154.html<

(0)
管理的头像管理
上一篇2025-04-06 02:26
下一篇 2025-04-06 02:28

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注