Centos8通过VSFTPD配置FTPs的方法
本篇内容介绍了“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 user01Changing password for user user01.passwd: all authentication tokens updated successfully.[root@localhost ~]# echo '123'|passwd --stdin user02Changing 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:2048Generating 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 incorporatedinto 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 blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:CNState or Province Name (full name) []:ShandongLocality Name (eg, city) [Default City]:QDOrganization Name (eg, company) [Default Company Ltd]:LinuxprobeOrganizational Unit Name (eg, section) []:Common Name (eg, your name or your server's hostname) []:ftp.linuxprobe.comEmail 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.rootbindaemonadmlpsyncshutdownhaltmailnewsuucpoperatorgamesnobodyuser01user02
下面编辑/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=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 ~]# systemctl enable vsftpdCreated 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=ftpsuccess[root@localhost ~]# firewall-cmd --reloadsuccess
设置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_accessftpd_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@localhostPassword: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@localhostPassword:lftp user01@localhost:~> ls -rw-r--r-- 1 0 0 0 Apr 07 09:42 user01_files
再使用user02登录看一下:
[root@localhost ~]# lftp user02@localhostPassword:lftp user02@localhost:~> ls -rw-r--r-- 1 0 0 0 Apr 07 09:42 user02_files
“Centos8通过VSFTPD配置FTPs的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341