时间:2024-05-04
洪焕江
摘要:随着科技日新月异,时代步伐的高速向前,互联网作为该时代的产物,已经渗透到社会人们生活的各行各业。伴随着互联网技术不断提高,我国逐渐步入“大数据、云计算”时代。在“大数据、云计算”时代的今天,为中职计算机网络专业开设《cetos7操作系统》这门课程,以就业为导向为学生打下坚实的基础。centos7作为目前流行的新版本的linux系统,需要老师和学生一起去不断地努力研究和学习,解决各类问题,以提高自身的技术水平。本文以vsftp的应用进行研究和学习为切入点,解决搭建vsftp服务器过程碰到的各类问题。
关键词:大数据、云计算;centos7;vsftp
中图分类号:G712 文献标识码:A 文章编号:1672-9129(2020)09-0050-02
1 研究学习的必要性
1.1 centos系统版本更新后内容变化大。centos7由centos6升级而来,在原有的centos6版本基础上进行了很大的改变。单纯的以旧版本的内容去与学生教学,则会抛弃新知识,效果会适得其反。
1.2 centos开启全命令学习模式,难度大,拦路虎多。中职计算机专业学生英文基础差,理解能力弱,加上centos7以全命令的方式学习,命令之多数不胜数,使教师学生无从下手。另外学习centos服务过程中的拦路虎多,单就一条命令足以影响整个实验结果,探索与学习也是迫不及待的。
1.3 cnetos7为目前主流操作系统,安全性较好。与windows系统相比,centos7既免费,系统安全性又较高。就当前而言,绝大多数的网络服务器基本上使用linux操作系统。而vsftp作为该系统的一项常用的服务功能,仔细研究和学习也是不可或缺的。
以下将以vsftp服务器的搭建过程为例,基于中职学生的学习,对centos7中的vsftp的应用进研究和学习。
2 研究学习理论知识,实践部署vsftp服务器
2.1vsftp介绍。ftp也叫文件传输协议,是计算机中最早出现的服务之一,是一个tcp协议,其功能是在服务器与客户端之间进行文件的上传和下载。简单地说ftp就是实现两台计算机之间的拷贝。而vsftp(very secure file transfer protocol)则是centos7系统中一种非常安全的ftp协议,它所使用系统服务为vsfpd服务。它主要由三种登录的访问方式,分别是匿名用户登录、本地用户登录和虚拟用户登录,以下主要围绕这三种登录方式进行研究分析。
2.2vsftp服务的部署。在搭建vsftp服务器之前,首先需要对该服务器进行部署。所谓部署,就是在搭建vsftp之前需要为其进行的一系列的准备工作,一般主要由以下几个步骤。
(1)安装vsftpd服务。
yum install vsftpd -y
(2)手工啟动vsftpd服务。
systemctl start vsftpd
(3)vsftpd开机自启动设置。
systemctl enable vsftpd
(4)检查服务是否已经启动。
systemctl status vsftpd
(5)设置防火墙,使用户能够访问服务器的vsftp服务。
①关闭selinux
setenforce 0
②防火墙开放ftp端口
firewall-cmd --add-service=ftp --zone=public
2.3主配置文件及相关说明
(1)vsftp主配置文件
在vsftp配置中,有一个最重要的文件,即主配置文件,其包含该服务所有的配置信息(默认的服务配置信息和自定义的服务配置信息)。vsfp服务安装后,其主配置文件保存在目录etc/vsftpd下,文件名为/vsftpd.conf。
(2)控制列表文件
控制列表文件,通俗地说,就是用户登录的黑白名单。这里主要有两个文件,一个叫ftpusers文件,另一个叫user_list文件。
①ftpusers文件
ftpusers文件只能作为黑名单存在,也就是说只要在此文件中的用户名单,则是被拉入了vsftp登录时的黑名单,不能登录vsftp,此文件可以进行修改。
②user_list
user_list文件既可以做黑名单,也可以做白名单,具体需要和主配置文件匹配操作。当其为白名单时,若以上两相文件中有相同用户名时,则是属于黑名单,同样不能登录ftp的,
3 探索学习vsftp服务搭建
3.1以匿名用户的方式登录。使用匿名用户的登录时,用户名一般为anonymous或ftp,密码为空或以邮件的形式。默认情况下,部署好vsftp后,匿名用户匿名只能下载,不能上传,主配置文件中默认匿名用户访问的目录为/var/ftp。当对匿名用户登录有特殊需求时,如需要匿名用户可以上传文件时,那么需要按如下操作步骤进行配置。
(1)修改主配置文件vsftpd.conf
①开启匿名用户上传功能
anon_upload_enable=YES
②允许匿名用户对目录及文件具有写的功能
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
(2)设置主目录权限
①去掉匿名用户主目录的写权限,只有把主目录的写权限去掉,匿名用户才允许登录ftp。
chmod a-w /var/ftp
(2)/var/ftp/目录没有了写权限,上传文件就不可以在主目录下,所以需要建立一个子目录pub,并给它添加权限,匿名用户就只能在子目录pub中上传和下载。
chown ftp /var/ftp/pub
②以本地用户的方式登录。部署完vsftp后,本地用户默认情况下与匿名用户不同,它登录后既具有下载权限也具有上传权限。假设以本地用户user为例,使用user用户登录后,它的主目录为/home/user。但是当user用户登录后,可以随意切换到该服务器的各个目录(包括根目录),此时便存在着一个重大的安全隐患。为了消除隐患,一般需要让本地用户登录vsftp时进行家目录锁定,使该用户不能切换到家目录以外的其他目录。以下为具体操作步骤。
(1)在主配置vsftpd.conf中把以下几行注释去掉
①开启对本地用户chroot的限制,YES为默认所有用户都不能切出家目录,NO代表默认用户都可以切出家目录。
chroot_local_user=YES
②启用特殊例外用户列表
chroot_list_enable=YES
③指定存放特殊例外用户的列表位置。
chroot_list_file=/etc/vsftpd/chroot_list
(2)在目录/etc/vsftpd/下创建文件chroot_list文件,把需要例外的用户添加到此文件中,此处可以理解为白名单,即放入文件的用户为可以切换出家目录。对于此列表,需要结合上文匹配使用。当chroot_local_user的值是YES则该文件中的用户是可以切出家目录,如果是NO,该文件中的用户则能不出家目录,一行只能写一个用户。
(3)更改目录权限,若以本地用户user为例。
①去除主目录user的写权限
chmod u-w /home/user/
②添加子目录ftp,并设置写权限
chown ftp /home /user/ftp
若要在使家目录/home/user可以具备写的权限,也可以在主配置文件vsftpd.conf中添加命令allow_writeable_chroot=YES来代替家目录权限的设置。
(4)对于本地用户的登录,也可以通过ftpuser和user_list这两个用户列表文件来控制访问。
2.3以虚拟用户的方式登录
(1)ftp使用过程中的安全问题
ftp在操作使用中暴露出以下众多的问题:
①ftp在传输过程中,是以明文的方式进行的,当客户端采用本地用户登录时,那么会直接将服务器的本地用户暴露在互联网中,如果没有相关的安全设置,ftp客户端用户会使用本地用户去登录你的计算机。
②其次需要大量的ftp用户账户时,管理员则必须创建大量的本地用户,又给安全带来了不小的挑战。
综上所述,其实如果ftp登录的用户不是本地系统真实存在的用户,那么系统的安全问题就能够解决了,这就引出了虚拟用户。
(2)虚拟用户方式登录的操作
在创建虚拟用户后,给每个虚拟用户单独建立目录,并建立自己的配置文件,这样每个用户都可以单独来配置自已的权限,并可以单独指定上传目录。详细地操作可以按如下进行。
①添加虚拟用户及口令文件
在/etc/vsftpd/目录下创建vuser.txt文件,此处文件名可以任意,存放文件位置也任意,并在文件中添加一行用户名一行密码。
vim /etc/vsftpd/vuser.txt
aa
123
bb
123
②把新建立的虚拟用户名和密码打包生成数据库文件,并赋予600权限。
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db
③编辑vsftpd的PAM认证文件,文件位于目录/etc/pam.d/下,清空文件中所有的内容,只添加以下两行。
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
其中lib64代表64位系统。
④把虚拟用户和本地用户user(假设存在user本地用户)进行关联,创建宿主目录vftproot并赋予权限。
useradd -d /home/vftproot -s /sbin/nologin user
chmod 755 /home/vftproot
⑤修改主配置文件vsftpd.conf。
allow_writeable_chroot=YES #這样可以避免主目录需要去除写的权限。
guest_enable=YES #开启虚拟用户
guest_username=user#映射虚拟用户至本地用户
user_config_dir=/etc/vsftpd/vusers_dir#指定虚拟用户配置文件存放位置
pam_ service_name=vsfpd pam #认证文件
⑥建立存放虚拟用户配置文件的主目录
mkdir /etc/vsftpd/vusers_dir
⑦在vusers_dir目录下为每个虚拟用户建立各自的配置文件。若没有为某用户创建其配置文件,则这一用户是依据主配置文件的全局配置为准。以下给aa用户添加配置文件。
vim /etc/vsftpd/vusers_dir/aa
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/tmp/aa #給aa指定独立的上传目录。
⑧建立user用户上传目录,并添加权限。
mkdir /tmp/aa
chown user /tmp/aa/
⑨重启vsftpd服务并测试
systemctl vsftpd restart
配置完后可以达到如下效果:
(1)禁止匿名用户登录(配置文件修改)
(2)禁止本地系统用户登录(pam文件修改)
(3)允许虚拟用户登录(配置文件修改)
(4)aa的上传目录是/tmp/aa,并且允许看,下载,上传
(5)如果bb用户没有定义上传下载的主目录,则bb用户上传目录是虚拟用户的默认目录/home/vftproot,只能查看,下载,而不能上传。
4 结语
本文基于中职学生的基础以及需要达到的知识层面,通过对vsftp服务器搭建学习中存在的各类问题,系统的罗列出vsftp三种登录方式在搭建服务器时详细过程。当学生在学习过程中触类不同的登录方式时,理解剖析,积极应对,冷静处理。通过vsftp服务的研究探索,进一步强化对centos7系统服务的掌握,努力提升学习兴趣,扩大知识层面,为跨入“大数据、云计算”的大门打下坚实的基础。
参考文献:
[1]高志君.Linux系统管理与服务器配置(基于CentOS7)[M].北京:电子工业出版社.2018.
[2]唐乾林,黎现云.Linux基础与服务配置(基于CentOS7.6)[M]北京:人民邮电出版社2019.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!