本篇内容介绍了“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/nologinuser01[root@localhost~]#useradd-s/sbin/nologinuser02[root@localhost~]#echo'123'|passwd--stdinuser01Changingpasswordforuseruser01.passwd:allauthenticationtokensupdatedsuccessfully.[root@localhost~]#echo'123'|passwd--stdinuser02Changingpasswordforuseruser02.passwd:allauthenticationtokensupdatedsuccessfully.

编辑/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-yinstallvsftpd

创建自签名证书

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

[root@localhost~]#opensslreq-x509-nodes-keyout/etc/vsftpd/vsftpd.key-out/etc/vsftpd/vsftpd.pem-days365-newkeyrsa:2048GeneratingaRSAprivatekey..+++++..............................................+++++writingnewprivatekeyto'/etc/vsftpd/vsftpd.key'-----Youareabouttobeaskedtoenterinformationthatwillbeincorporatedintoyourcertificaterequest.WhatyouareabouttoenteriswhatiscalledaDistinguishedNameoraDN.TherearequiteafewfieldsbutyoucanleavesomeblankForsomefieldstherewillbeadefaultvalue,Ifyouenter'.',thefieldwillbeleftblank.-----CountryName(2lettercode)[XX]:CNStateorProvinceName(fullname)[]:ShandongLocalityName(eg,city)[DefaultCity]:QDOrganizationName(eg,company)[DefaultCompanyLtd]:LinuxprobeOrganizationalUnitName(eg,section)[]:CommonName(eg,yournameoryourserver'shostname)[]:ftp.linuxprobe.comEmailAddress[]:

配置VSFTPD服务支持chroot和SSL

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

[root@localhostvsftpd]#vim/etc/vsftpd/user_list#vsftpduserlist#Ifuserlist_deny=NO,onlyallowusersinthisfile#Ifuserlist_deny=YES(default),neverallowusersinthisfile,and#donotevenpromptforapassword.#Notethatthedefaultvsftpdpamconfigalsochecks/etc/vsftpd/ftpusers#forusersthataredenied.rootbindaemonadmlpsyncshutdownhaltmailnewsuucpoperatorgamesnobodyuser01user02

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

[root@localhostvsftpd]#cd/etc/vsftpd/[root@localhostvsftpd]#cp-pvsftpd.confvsftpd.conf.back

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

[root@localhostvsftpd]#vimvsftpd.conf[root@localhostvsftpd]#catvsftpd.conf|grep-Ev'(^$|^#)'anonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=NOlisten_ipv6=YESpam_service_name=vsftpduserlist_enable=YESuserlist_deny=NOssl_enable=YESssl_sslv2=NOssl_sslv3=NOssl_tlsv1_2=YESrsa_cert_file=/etc/vsftpd/vsftpd.pemrsa_private_key_file=/etc/vsftpd/vsftpd.keyallow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YESrequire_ssl_reuse=NOssl_ciphers=HIGHpasv_min_port=30000pasv_max_port=31000debug_ssl=YESchroot_local_user=YESlocal_root=/var/www/html/$USERallow_writeable_chroot=YES

开启服务

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

[root@localhost~]#systemctlenablevsftpdCreatedsymlink/etc/systemd/system/multi-user.target.wants/vsftpd.service¡ú/usr/lib/systemd/system/vsftpd.service.[root@localhost~]#systemctlstartvsftpd

设置防火墙

[root@localhost~]#firewall-cmd--permanent--add-service=ftpsuccess[root@localhost~]#firewall-cmd--reloadsuccess

设置SELinux

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

[root@localhost~]#setsebool-Pftpd_full_access1[root@localhost~]#getseboolftpd_full_accessftpd_full_access-->on创建ftp用户的目录

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

[root@localhost~]#mkdir/var/www/html/user0{1..2}[root@localhost~]#chown-Ruser01:apache/var/www/html/user01/[root@localhost~]#chown-Ruser02: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-yinstalllftp

下面使用user01登录:

[root@localhost~]#lftpuser01@localhostPassword:lftpuser01@localhost:~>lsls:Fatalerror:Certificateverification:Nottrusted(01:3E:A2:1B:39:E9:BE:DB:55:1F:C3:71:34:6F:B6:8E:E2:D0:2C:8C)

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

[root@localhost~]#echo"setssl:verify-certificateno">>/etc/lftp.conf

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

[root@localhost~]#lftpuser01@localhostPassword:lftpuser01@localhost:~>ls-rw-r--r--1000Apr0709:42user01_files

再使用user02登录看一下:

[root@localhost~]#lftpuser02@localhostPassword:lftpuser02@localhost:~>ls-rw-r--r--1000Apr0709:42user02_files

“Centos8通过VSFTPD配置FTPs的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!