RHEL8.0_FTP服务配置

一:FTP概述:

FTP (File transfer protocol) 是相当古老的传输协议之一,他最主要的功能是在服务器与客户端之间进行文件的传输,与客户端与服务器所处的位置、连接的方式、是否使用相同的操作系统无关。

1.1、vsftpd程序提供三种ftp认证登录方式:

1:匿名用户(anonymous):每个人都有权限去下载你的文件,不安全。

2:本地用户(Real user):以本地用户做为 FTP 登入者身份时,访问ftp需要知道普通用户的名称和密码,这样可以通过用户名和密码直接登录服务器,也是不安全的。

3:虚拟用户(Guest):该用户只负责ftp访问,无法登录服务器,保证了安全性。


二:FTP服务搭建:

1:准备两台linux虚拟机:  服务端:192.68.24.8   客户端:192.168.24.9

2:安装FTP服务(服务/客户端)

yum install -y vsftpd.x86_64 ftp.x86_64

主配置文件:/etc/vsftpd/vsftpd.conf

无法登入的用户配置文件:/etc/vsftpd/ftpusers

自定义的抵挡项目配置文件:/etc/vsftpd/user_list(与/etc/vsftpd/ftpusers作用相同)

使用 PAM 模块时的相关配置文件:/etc/pam.d/vsftpd

3:暂时关闭selinux(服务/客户端)

setenforce 0

4:防火墙放行ftp服务(服务/客户端)

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload   #使配置生效

5:三种不同的访问模式配置方法:

5.1、配置匿名访问模式:

①服务端编辑配置文件 /etc/vsftpd/vsftpd.conf

匿名访问配置文件各项参数对应功能介绍:

参数功能                             
anonymous_enable=YES是否允许匿名登入我们的 vsftpd 主机,底下的所有相关设定都需要将这个设定为YES之后才会生效
anon_upload_enable=YES是否让 anonymous 具有上传数据的功能
anon_mkdir_write_enable=YES是否让 anonymous 具有建立目录的权限
anon_other_write_enable=YES是否允许 anonymous 具有除了写入之外的权限(包括删除与修改服务器上的文件及文件名名等权限)
anon_umask=002设置匿名用户上传目录/文件的umask值

在配置文件中按照需求填写或者修改以上参数并保存退出

②重启vsftp服务 (服务/客户端)

systemctl restart vsftpd.service

③为/var/ftp/pub/目录赋予其他人w权限(服务/客户端)

chmod o+w /var/ftp/pub/

④在客户端登录FTP服务

[root@node1 ~]# ftp 192.168.24.8           #连接服务端
Connected to 192.168.24.8 (192.168.24.8).
220 (vsFTPd 3.0.3)
Name (192.168.24.8:root): anonymous        #匿名登录
331 Please specify the password.
Password:                                  #密码处不需要输入
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,24,8,245,98).
150 Here comes the directory listing.
drwxr-xrwx    2 0        0               6 Aug 12  2018 pub
226 Directory send OK.
ftp> cd pub                               #进入pub目录
250 Directory successfully changed.
ftp> mkdir ftp.txt                        #创建文件
257 "/pub/ftp.txt" created
ftp> ls
227 Entering Passive Mode (192,168,24,8,234,17).
150 Here comes the directory listing.
drwxr-xr-x    2 14       50              6 Nov 18 11:33 ftp.txt    #查看权限
226 Directory send OK.
ftp> 

⑤验证完成


5.2、配置本地用户访问模式:

①服务端编辑配置文件 /etc/vsftpd/vsftpd.conf

本地访问配置文件各项参数对应功能介绍:

参数功能
local_enable=YES这个设定值必须要为 YES 时,本地用户才能登入 vsftpd 服务器
write_enable=YES能否拥有写入权限
local_umask=022设置用户上传目录/文件的umask值
userlist_enable=YES是否借助vsftpd的抵挡机制来处理某些不受欢迎的账号
userlist_deny=YES当 userlist_enable=YES 时才会生效的设定,若此设定值为 YES 时,则当使用者账号被列入到/etc/vsftpd/user_list时, 在该档案内的使用者将无法登入 vsftpd 服务器

在配置文件中按照需求填写或者修改以上参数并保存退出

②重启vsftp服务 (服务/客户端)

systemctl restart vsftpd.service

③为/var/ftp/pub/目录赋予其他人w权限(服务/客户端)

chmod o+w /var/ftp/pub/

④用客户端的普通用户登录FTP服务

[root@node1 ~]# ftp 192.168.24.8
Connected to 192.168.24.8 (192.168.24.8).
220 (vsFTPd 3.0.3)
Name (192.168.24.8:root): admin           #普通用户登录
331 Please specify the password.
Password:                                 #输入密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,24,8,148,222).
150 Here comes the directory listing.
226 Directory send OK.
ftp> mkdir ftpuser.txt                    #创建目录
257 "/home/admin/ftpuser.txt" created
ftp> ls
227 Entering Passive Mode (192,168,24,8,138,127).
150 Here comes the directory listing.
drwxr-xr-x    2 1000     1000            6 Nov 18 12:39 ftpuser.txt
226 Directory send OK.
ftp> exit
221 Goodbye.
[root@node1 ~]# 

⑤验证完成

 


5.3、配置虚拟用户访问模式:

①添加虚拟用户口令文件

vim /etc/vsftpd/vuser.txt

 按照一行用户名一行密码的格式来添加虚拟用户

②生成虚拟用户口令认证文件

/etc/vsftpd/目录下:
db_load -T -t hash -f vuser.txt vuser.db  #利用哈希算法把文档转换为认证的数据库文件

③编辑vsftpd的PAM认证文件

vim /etc/pam.d/vsftpd
键入以下内容:
auth	required	/usr/lib64/security/pam_userdb.so	db=/etc/vsftpd/vuser
account	required	/usr/lib64/security/pam_userdb.so	db=/etc/vsftpd/vuser

注释1-8行,添加9-10行(注释掉之后本地用户无法登录,因为本地用户登录需要验证该文件的这些行)

④建立本地映射用户并设置宿主目录权限

#虚拟用户需要登录默认目录/home/vftproot,用来跟虚拟用户进行关联映射
useradd -d /home/vftproot -s /sbin/nologin vuser
chmod 755 /home/vftproot    #改变目录的权限 ,允许上传

⑤服务端编辑配置文件/etc/vsftpd/vsftpd.conf

vim /etc/vsftpd/vsftpd.conf
guest_enable=YES是否允许虚拟用户登入vsftpd服务
guest_username=vuser指定虚拟用户名
pam_service_name=vsftpd指定pam模块的名称
allow_writeable_chroot=YES允许用户登入请求

在配置文件中按照需求填写或者修改以上参数并保存退出

⑥重启vsftpf服务,并测试

systemctl restart vsftpd.service

此时登录ftp
发现本地用户无法登录,虚拟用户可以登录,可以查看,下载,确无法上传

[root@node1 ~]# ftp 192.168.24.8
Connected to 192.168.24.8 (192.168.24.8).
220 (vsFTPd 3.0.3)
Name (192.168.24.8:root): admin            #本地用户登录失败
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp> exit
221 Goodbye.

要想上传文件,必须修改权限,打开/etc/vsftpd/vsftpd.conf文件,配置以下命令:

anonymous_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

此时重启ftp可以上传,并且上传的目录就在宿主目录/home/vftproot/下

⑦调整虚拟用户权限

首先在/etc/vsftpd/vsftpd.conf配置文件中添加第一条命令同时拒绝匿名用户登录:

user_config_dir=/etc/vsftpd/vusers_dir
anonymous_enable=NO

然后在etc/vsftpd/目录下创建一个新的目录vuser_dir

在此目录下建立虚拟用户名文件并写入:

anonymous_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

重启动服务该虚拟户即可上传文件,其他虚拟用户仍不可上传文件

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值