CentOS 8 的FTP服务的配置与管理

目录

安装配置

FTP服务配置实例

FTP服务配置实例2(本地用户登录)项目需求


安装配置

1.安装vsftpd
(1)使用dnf命令安装vsftpd服务(光盘挂载、yum源的制作请参考前面相关内容)。

[root@Server01 ~]#rpm –qa |grep  vsftpd        //查看vsftpd服务是否安装
[root@Server01 ~]# mount  /dev/cdrom  /media
[root@Server01 ~]# dnf  clean  all    //安装前先清除缓存
[root@Server01 ~]# dnf  install  vsftpd  -y
[root@Server01 ~]# dnf  install  ftp  -y  //同时安装ftp软件包

2.重新启动vsftpd服务、随系统启动,开放防火墙,开放SELinux。

[root@Server01 ~]# systemctl  restart  vsftpd
[root@Server01 ~]# systemctl  enable  vsftpd
[root@Server01 ~]# firewall-cmd  --permanent  --add-service=ftp
[root@Server01 ~]# firewall-cmd  --reload
[root@Server01 ~]# firewall-cmd  --list-all
[root@Server01 ~]# setsebool -P  ftpd_full_access=on

3.主配置文件(/etc/vsftpd/vsftpd.conf)

[root@Server01 ~]# mv  /etc/vsftpd/vsftpd.conf   /etc/vsftpd/vsftpd.conf.bak                            //备份主配置文件
[root@Server01 ~]#  grep  -v  “#”  /etc/vsftpd/vsftpd.conf.bak  >  /etc/vsftpd/vsftpd.conf    //过滤重输出
[root@Server01 ~]# cat  /etc/vsftpd/vsftpd.conf   -n                                                                   //按行号查看文件
[root@Server01 ~]# cat  /etc/vsftpd/vsftpd.conf

anonymous_enable=YES   # 开启匿名用户登录
local_enable=YES   # 开启本地用户登录
write_enable=YES   # 允许本地用户写入
local_umask=022   # 设置本地用户创建文件的umask值为022
dirmessage_enable=YES  # 激活消息目录
xferlog_enable=YES   # 是否启用日志
connect_from_port_20=YES  # 主动模式端口为20
xferlog_std_format=YES  # 将日志格式设置为标准格式
listen=NO    # 不可同时将listen与listen_ipv6都设置为YES
listen_ipv6=YES   # 允许IPv4或IPv6客户端的连接
pam_service_name=vsftpd  # PAM(可插拔认证)服务的名称为vsftpd
userlist_enable=YES   # 允许用户列表生效
tcp_wrappers=YES   # 使用tcp_wrappers作为主机访问控制方式
 



FTP服务配置实例


项目需求
搭建一台FTP服务器,允许匿名用户上传和下载文件,匿名用户的根目录设置为/var/ftp。

第1步:新建测试文件,编辑/etc/vsftpd/vsftpd.conf。

[root@Server01 ~]# date  > /var/ftp/pub/file1
[root@Server01 ~]# vim   /etc/vsftpd/vsftpd.conf

第2步:在文件后面添加如下4行(语句前后一定不要带空格,若有重复的语句请删除或直接在其上更改,“#”及后面的内容不要写到文件里)。
 


anonymous_enable=YES                     #允许匿名用户登录

anon_root=/var/ftp                             #设置匿名用户的根目录为/var/ftp

anon_upload_enable=YES                   #允许匿名用户上传文件

anon_mkdir_write_enable=YES           #允许匿名用户创建文件夹

第3步:允许SELinux,让防火墙放行ftp服务,重启vsftpd服务。
selinux的设置:

[root@Server01 ~]# setsebool   -P   ftpd_full_access=on    //设置selinux规则的布尔值,开放ftp访问
或者:
[root@Server01 ~]#setenforce  0                    //设置运行级别为permissive
或者
[root@Server01 ~]#vi  /etc/selinux/config              //永久关闭selinux
SELINUX=disabled

防火强的设置:

[root@Server01 ~]# firewall-cmd  --list-all
[root@Server01 ~]# firewall-cmd  --permanent  --add-service=ftp
[root@Server01 ~]# firewall-cmd  --reload
[root@Server01 ~]# firewall-cmd  --list-all

重启服务:

[root@Server01 ~]# systemctl  restart  vsftpd

第4步:访问测试。

Centos 8客户端(Client2):
(1)安装ftp软件包
(2)在终端中输入ftp  192.168.10.1,使用匿名用户ftp登录,密码无需输入

        ftp>pwd             //查看当前所在位置
        ftp>ls                 //查看当前目录里的内容
        ftp>cd   pub      //进入到pub目录
        ftp>ls                 //查看当前目录里的内容
        ftp>mkdir   newdir         //提示报错

原因是:系统本地权限未设置!
解决办法:
服务器端:
[root@Server01 ~]#  chmod   o+w  /var/ftp/pub            //给其他用户赋予写权限
[root@Server01 ~]# systemctl   restart  vsftpd

Centos 8客户端(Client2):
(3)#cal  >file2
        在终端中输入ftp  192.168.10.1,使用匿名用户ftp登录,密码无需输入

        在终端中输入ftp  192.168.10.1,使用匿名用户ftp登录,密码无需输入
        ftp>lcd   pub      //进入到pub目录
        ftp>ls                 //查看当前目录里的内容
        ftp>mkdir   newdir         
        ftp> get     file1      //file1下载到哪里去了?
        

        ftp> put    file2
        ftp>ls                   //验证上传成功与否

        ftp>delete  file1    //删除成功与否


提示:anon_other_write_enable=YES #表示允许匿名用户修改目录名或者删除目录。




FTP服务配置实例2(本地用户登录)
项目需求

       公司内部现在有一台FTP服务器和Web服务器,FTP主要用于维护公司的网站内容,包括上传文件、创建目录、更新网页等。公司现有两个部门负责维护任务,两者分别使用team1和team2账号进行管理。要求仅允许team1和team2账号登录FTP服务器,但不能登录本地系统,并将这两个账号的根目录限制为/web/www/html,不能进入该目录以外的任何目录。

第1步:建立维护网站内容的FTP账号team1、team2,并设置密码

[root@Server01 ~]# useradd  team1
[root@Server01 ~]# useradd  team2
[root@Server01 ~]# passwd   team1
[root@Server01 ~]# passwd   team2

第2步:配置vsftpd.conf主配置文件并做相应修改

[root@Server01 ~]# vim  /etc/vsftpd/vsftpd.conf
local_enable=YES 
local_root=/web/www/html   
chroot_local_user=NO    
chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES


第3步:防火墙放行和SELinux允许!重启FTP服务。

[root@Server01 ~]# firewall-cmd  --permanent  --add-service=ftp
[root@Server01 ~]# firewall-cmd  --reload
[root@Server01 ~]# setenforce  0
[root@Server01 ~]# systemctl  restart  vsftpd

第4步:修改本地权限。

[root@Server01 ~]# mkdir   /web/www/html  -p

[root@Server01 ~]# touch   /web/www/html/test.sample

[ [root@Server01 ~]# chmod   -R   o+w   /web/www/html  //其他用户可以写入!

第4步:防火墙放行和SELinux允许!重启FTP服务。

[root@Server01 ~]# firewall-cmd  --permanent  --add-service=ftp
[root@Server01 ~]# firewall-cmd  --reload
[root@Server01 ~]# setenforce  0
[root@Server01 ~]# systemctl  restart  vsftpd

第5步:修改本地权限。

[root@Server01 ~]# mkdir   /web/www/html  -p
[root@Server01 ~]# touch   /web/www/html/test.sample
[ [root@Server01 ~]# chmod   -R   o+w   /web/www/html  //其他用户可以写入!

第6步:在Linux客户端client1上安装ftp工具后测试。

[root@client1 ~]# mount  /dev/cdrom/media
[root@client1 ~]# dnf  clean  all
[root@client1 ~]# dnf  install  ftp  -y

第6步:测试过程。

使用team1和team2用户不能转换目录,但能建立新文件夹,显示的目录是“/”,其实是/web/www/html文件夹。
 

[root@client1 ~]# ftp  192.168.10.1
Connected to 192.168.10.1 (192.168.10.1).
220 (vsFTPd 3.0.2)
Name (192.168.10.1:root): team1    //锁定用户测试
331 Please specify the password.
Password:                   //输入team1用户密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd 
257 “/”                           //显示是“/”,其实是/web/www/html,从ll列出的文件中可看出
ftp> mkdir  testteam1
257 "/testteam1" created
ftp> get  test.sample  test1111.sample       //从ftp服务器下载test.sample文件另存为test1111.sample
ftp> put  test1111.sample  test00.sample   //上传文件并改名为test00.sample

你可能感兴趣的:(CentOS8,centos,服务器,linux)