linux ftp详解

该文详细介绍了如何在CentOS7系统中安装和管理VSFTPD服务,包括安装FTP服务器和客户端,设置服务自动启动,以及调整配置文件以控制匿名用户、本地用户权限、日志记录和端口设置。同时,文章讲解了用户列表和权限控制,如user_list和ftpusers文件的用途,以及如何限制用户主目录。
摘要由CSDN通过智能技术生成

1. 安装、启动

# 查看是否已经安装了vsftpd
# 如果没有返回任何结果,表示没有安装;如果返回文件包名,这表示已经安装了该服务;
[root@centos7 ~]# rpm -qa|grep vsftpd
vsftpd-3.0.2-29.el7_9.x86_64               # 代表已安装
[root@centos7 ~]# vsftpd -version
vsftpd: version 3.0.2                      # 代表已安装
[root@centos7 ~]# rpm -e vsftpd            # 卸载vsftpd
# 再次检查
[root@centos7 ~]# rpm -qa|grep vsftpd
[root@centos7 ~]# vsftpd -version
bash: vsftpd: 未找到命令...

# 安装ftp服务器
# 如果已经安装,再次执行yum就会把软件包升级到最新版本
[root@centos7 ~]# yum install -y vsftpd

# 安装ftp客户端
[root@centos7 ~]# yum install -y ftp lftp

# 设置为开机自动启动服务
[root@centos7 ~]# systemctl enable vsftpd.service 

# 启动vsftpd服务
# ftp服务器的服务名是vsftpd,相关的操作如下:
[root@centos7 ~]# systemctl start  vsftpd.service      # 启动服务
systemctl stop  vsftpd.service        # 停止服务
systemctl restart vsftpd.service      # 重启服务
systemctl status vsftpd.service       # 查看服务状态
systemctl enable vsftpd.service       # 设置开机自启动vsftpd服务
systemctl disable vsftpd.service      # 禁用开机自启动vsftpd服务

# 连接ftp
ftp 192.168.202.132

2. ftp配置文件

# 核心配置文件
vim /etc/vsftpd/vsftpd.conf

# 黑名单文件,此文件中的用户不允许访问FTP服务器
/etc/vsftpd/ftpusers

# 白名单文件,此文件中的用户允许访问FTP服务器
/etc/vsftpd/user_list


#----匿名用户设置----
anonymous_enable=NO #禁止匿名用户登录
# 开放上传权限
Anon_upload_enable=yes
# 可创建目录的同时可以在此目录中上传文件
Anon_mkdir_write_enable=yes   

#----本地用户设置----
local_enable=YES #允许本地用户登录ftp服务器
write_enable=YES #允许用户想服务器执行写入操作
local_umask=022 #设置服务器上本地用户创建文件的权限掩码

#----欢迎语设置----
dirmessage_enable=YES #启用目录提示消息

#----日志文件设置----
xferlog_enable=YES #启用日志文件功能,记录于/var/log/xferlog
xferlog_std_format=YES #启用标准的日志格式

#----FTP工作方式与端口设置----
connect_from_port_20=YES #主动模式下,是否启用默认的20端口进行数据传输

#----与连接相关的设置----
listen=NO            #vsftpd不是以独立的服务运行,要受到xinetd服务的管控,功能上会受到限制
listen_ipv6=YES

#----控制用户是否允许切换到上级目录----
chroot_list_enable=YES         #开启限制用户在主目录的功能
chroot_list_file=/etc/vsftpd/chroot_list #在chroot_list文件中加入你要限制的用户名,一行一个用户

#----虚拟用户设置----
pam_service_name=vsftpd      #虚拟用户使用PAM认证方式

#----控制用户访问(通过vsftpd.user_list和ftpusers文件来实现)----
userlist_enable=YES #是否启用userlist_file文件
userlist_file=/etc/vsftpd/user_list #允许user_list文件中加入的用户访问ftp服务器

#----控制主机访问----
tcp_wrappers=YES #vsftpd服务器检查/etc/hosts.allow和/etc/hosts.deny中的设置,来决定请求连接的主机,是否允许访问该FTP服务器

#----其它设置----
allow_writeable_chroot=YES #去除用户主目录的写权限

3. 用户管理

# ftpusers不受任何配制项的影响,它总是有效,它是一个黑名单
该文件存放的是一个禁止访问FTP的用户列表


# userlist_enable和userlist_deny
当且仅当userlist_enable=YES时:userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP
当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous



# 添加用户到 user_list,只有添加到 user_list 的用户才有权访问 ftp 服务器
vi /etc/vsftpd/user_list

# 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.
edi
test


# 限制主目录
chroot_local_user #是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)

chroot_list_enable #是否启动限制用户的名单 YES为启用  NO禁用(包括注释掉也为禁用)

chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值,我们可以这样记忆: chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制",所以当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),"例外"就是:不被锁定的用户是哪些;当"全部用户不被锁定于主目录"时(即chroot_local_user=NO),"例外"“就是:要被锁定的用户是哪些。这样解释和记忆两者之间的关系就很清晰了!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值