基于本地VMware虚拟机上的centos搭建ftp服务器

基于VMware上的centos搭建ftp服务器

前言:最近整理后端相关知识点,然后在本机win10上搭建VMware虚拟机,并搭建了ftp服务器用于测试学习使用。虚拟机用的是centos7 64位系统的,ftp服务器用的是常用的vsftp服务器。

一、安装ftp

我这边用的是xshell连接上VM虚拟机的,如何连接可以自行百度,当然也可以在虚拟机上的控制台直接操作,另外,便于学习使用,建议可以在root账号下安装,普通账号可以使用su - 进入root账户。
1.安装:yum -y install vsftpd
在这里插入图片描述
因为我这边已经安装好了,所以可以直接看到已安装最新版本了。也可以通过vsftpd -v查看当前安装的版本。
2.可以通过指令whereis vsftpd查看安装的位置。
3.启动ftp服务:systemctl start vsftpd.service
4.查看服务是否启动成功:netstat -npal|grep vsftpd。可以看到21端口已经启动成功了。
5.关闭SELinux限制:
获取SELinux对ftp相关的配置信息:getsebool -a | grep ftp
将 ftpd_full_access设置开启状态: setsebool -P ftpd_full_access on
6.开启ftp防火墙:
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
查看防火墙状态:
firewall-cmd --list-all
在这里插入图片描述
在这里插入图片描述
可以看到21/tcp端口已经开启并且防火墙中也已经添加到白名单了。

二、配置ftp

通过前面我们知道ftp安装在 /etc/vsftpd目录下,执行:
[root@localhost ~]# cd /etc/vsftpd
[root@localhost vsftpd]#
进入对应目录,执行vim vsftpd.conf,进行相关配置,vsftpd.conf是ftp的配置文件:

不允许匿名访问,设置为NO时,访问ftp的时候不需要输入密码,设置为YES的时候,需要输入密码访问。
anonymous_enable=YES

允许ascii文件上传和下载
ascii_upload_enable=YES
ascii_download_enable=YES

将用户限制在为其配置的主目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

三、用户配置

1.修改ftp配置文件:[root@localhost vsftpd]# vim vsftpd.conf
设置启用虚拟用户功能:guest_enable=YES

指定宿主用户名(需要创建该用户,后面我们会创建):guest_username=ftpuser

制定虚拟用户配置文件放置文件夹(需要我们自己建立,后面创建)
user_config_dir=/etc/vsftpd/vuser_conf

允许写入:allow_writeable_chroot=YES
在这里插入图片描述
2.创建宿主用户
我们常用于ftp上传网页相关的资源文件,我这边是将虚拟用户指向/var/www/html目录下的,你们在创建的时候可以根据自己的需要配置。
useradd -g root -M -d /var/www/html -s /sbin/nologin ftpuser
其中useradd是添加用户,-s /sbin/nologin ftpuser 表示不允许该用户通过命令行方式登录。
然后输入:passwd ftpuser 设置好密码即可。
最后把 /var/www/html 的所有权给ftpuser.root : chown -R ftpuser.root /var/www/html
创建好了之后可以通过cat /etc/passwd查看。

3.创建虚拟用户信息文件:
切换到ftp安装目录下
[root@localhost vsftpd]# cd /etc/vsftpd
[root@localhost vsftpd]#
创建用户信息文件

touch vuser_passwd
编辑改文件:
vim vuser_passwd
编辑如下内容,创建虚拟账户信息,奇数行为用户名,偶数行为密码:
在这里插入图片描述
账号密码可以自己制定就ok了,只要满足规定设置即可。
4.生成虚拟用户数据文件:
db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
赋予相应权限:
chmod 600 /etc/vsftpd/vuser_passwd.db
可以看到在vsftp目录下生成一个vuser_passwd.db文件。

5.编辑pam认证文件:vim /etc/pam.d/vsftpd
将其他都注释掉,添加下面两行;

注:db=/etc/vsftpd/vuser_passwd 中的vuser_passwd 是你生成的虚拟用户的db文件,这里不要加扩展名。

系统为32位:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account
required pam_userdb.so db=/etc/vsftpd/vuser_passwd

系统为64位:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
这边直接复制就行了。
查看系统版本:
getconf LONG_BIT
在这里插入图片描述
6.为虚拟账户创建访问根目录,要在宿主用户下(当前是指在/var/www/html目录下)
/var/www/html
├──ftp-user1
└── files
└──ftp-user2
└──files
└──test
└──files
修改文件权限:
修改权限

chmod 777 ftp-user1
chmod 777 ftp-user2
chmod 777 test

7.创建虚拟用户配置目录
cd /etc/vsftpd/

创建上述配置文件中配置的虚拟用户文件夹,一定要对应(重点)

mkdir vuser_conf
cd vuser_conf

创建虚拟用户配置文件,文件名称要与虚拟用户名称相同
这里我们配置三个虚拟用户就创建三个配置文件

touch ftp-user1 ftp-user2 test

#编辑三个文件,加入以下信息(local_root需要替换成你自己的实际路径)

local_root=/var/www/html/ftp-user1
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
在这里插入图片描述
8.创建chroot_list:
cd /etc/vsftpd
创建使当前配置的虚拟用户允许访问
[root@localhost vsftpd]# touch chroot_list
[root@localhost vsftpd]# vim chroot_list

写入虚拟用户名
ftp-user1
ftp-user2
test
在这里插入图片描述
9.重启ftp服务
systemctl restart vsftpd.service
10.使用xftp连接ftp服务器:
在这里插入图片描述
其中主机可以通过ifconfig:
在这里插入图片描述
我们发现能正常连接,并且也能上传文件,例如我们上传一些文件:
在这里插入图片描述
在虚拟机上查看:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值