实验:linux搭建FTP服务器
Posted kiroct
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验:linux搭建FTP服务器相关的知识,希望对你有一定的参考价值。
FTP服务器默认使用TCP协议的20、21端口与客户端进行通讯
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令
FTP数据连接分为主动模式和被动模式
在主动模式:服务器主动发起数据连接
被动模式:服务器被动等待数据连接
!FTP主要用于在相同的网段内进行文件数据的传输!
实验步骤! (环境:centos7 win7。都是192.168.206.0网段的)
!首先记得yum安装
yum install -y vsftpd
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak ;对配置文件修改之前进行备份!(必做)
设置匿名用户访问的FTP服务(最大权限)
vim /etc/vsftpd/vsftpd.conf ;修改配置文件
anonymous_enable=YES ;开启匿名用户访问,默认情况下已开启
write_enable=YES ;开放服务器写的权限:默认已开启(如果想要上传,则必须开启此选项)
anon_umask=022 ;允许匿名用户上传数据的权限掩码(反掩码)
anon_upload_enable=YES ;允许匿名用户上传文件。默认已注释,需要取消注释
anon_mkdir_write_enable=YES ;允许匿名用户上传(创建)目录。默认已经注释,需要取消注释
anon_other_write_enable =YES :允许删除、重命名、覆盖等操作。需要添加。
(斜体部分是给匿名用户上传、写的权限。如果不需要这些权限的话,这几个可以不用写)
为匿名访问FTP的根目录下的pub子目录设置最大权限,以便匿名用户上传数据
chmod 777 /var/ftp/pub/
开启服务,关闭防火墙和增强安全功能
systemctl start vsftpd
systemctl stop firewalld
setenforce 0
匿名访问测试
在windows系统打开:开始-菜单,输入cmd命令打开命令提示符
建立ftp连接
ftp 192.168.80.10
匿名访问没用户为ftp,密码为空,直接回车即可完成登录
ftp>pwd ;匿名访问ftp的根目录为linux系统的/var/ftp目录
ftp>ls ;查看当前目录
ftp>cd pub ; 切换到pub目录
ftp> get 文件名 ,下载文件到windows本地目录
ftp> put 文件名 ;上传文件到ftp目录
ftp> quit ;退出
修改本地用户的验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)
修改配置文件:vim /etc/vsftpd/vsftpd.conf ;
local_enable=YES ;启用本地用户
anonymous_enable=NO ;关闭匿名用户访问
write_enable=YES ;开放服务器写的权限(如果要上传,则必须开启)
local_umask=077 ;设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES ;将访问禁锢在用户的宿主目录当中
allow_writebale_chroot=YES ;允许被限制的用户主目录拥有写的权限
之后重启服务:systemctl restart vsftpd
修改匿名用户、本地用户登录的默认跟目录
anon_root=/var/www/html ;anon_root 针对匿名用户
local_root=/var/www/html ; local_root 针对系统用户
使用user_list 用户列表文件(yes是黑名单、no时候是白名单!)
vim /etc/vsftpd/user_list
//末尾添加zhangsan用户
zhangsan
vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES ; 启用user_list 用户列表文件
userlist_deny=NO ; 设置白名单,仅允许userlist用户列表文件的用户访问。默认为YES;表示黑名单
实验实操1:设置匿名用户访问的FTP服务(最大权限)
1、首先进行yum安装vsftpd的服务
2、其次进入/etc/ftp/目录内,cp备份ftp的配置文件vsftpd.conf.bak,以防不测!
3、vim /etc/ftp/vsftpd.conf中修改配置文件,主要修改项是如图所示的白色文件。修改完成后wq退出。下一步是chmod 777来赋予我们默认的共享文件夹/var/ftp/pub最高的匿名用户可读写权限。
这一切准备就绪后,我们systemctl start vsftpd服务器(如果报错就vi /var/log/messages里面报错)。最后就是关闭防火墙systemctl stop friewalld 以及关闭增强功能 setenforce 0
4、下面我们切换到同网段的win7,首先我们ping同网段的ftp服务端,确定是否连通。
最后我们ftp 192.168.206.3 (我们linux做的ftp服务器端),进入后输入ftp以匿名客户登录,passwd界面我们直接回车略过。就成功进入到了ftp服务当中。
实验实操2:改修本地用户验证登录ftp,并禁止切换到一切非ftp以外目录的行为
环境:我们以实验1的环境下修改!
1、vim /etc/ftp/vsftp.conf进入配置文件,如下图所示,框内的代码改成这样
2、之后我们systemctl restart vsftpd 服务
3、接着我们切换到win7界面,以实验1的方式进行一次登录尝试。会发现登录被拒绝
4、最后我们以test用户输入passwd登录,会发现成功登录(test用户是我linux系统中创建的一个测试用户)
5、之后我们让用户限制在各自登录的家目录中。首先vi /etc/vsftp/vsftpd.conf
之后如下图所示更改
之后我们wq保存退出,再restart一下vsftpd
返回win7,我们连接入ftp后,使用cd切换目录,发现失败了
实验实操3:操作白名单与黑名单
1、首先我们vim /etc/vsftpd/user_list,里面加入test
2、接着我们进入/etc/vsftp/vsftpd.conf,找到user_list =YES(表示设置黑名单)
{ps:如果是NO,则是白名单;仅允许名单上的用户登录}
3、最后我们登录win7,在设置了用户黑名单的情况下。我们发现登录失败
以上是关于实验:linux搭建FTP服务器的主要内容,如果未能解决你的问题,请参考以下文章