企业级Linux之ftp服务的搭建

1.ftp的定义

ftp://文件传输协议

2.ftp协议提供的软件

准备工作:将selinux的状态更改为disabled:

vim /etc/sysconfig/selinux

查看selinux状态:

在rhel7中:vsftpd

yum install vsftpd -y    #####安装ftp服务器

安装成功之后查看vsftpd的配置文件:

vim /etc/vsftpd/vsftpd.conf

配置文件如下:

<注>此文件里的格式必须正确,不然在启动ftp服务会报错

在虚拟机上将防火墙服务修改:

firewall-config 打开firewall的图形设置:

reload重新加载服务

查看firewall-cmd --list-all 查看firewall的设置。设置成功:

 

测试:在另一台主机上运行:

lftp 172.25.80.106

lftp服务正常运行。

<匿名用户上传>

vim  /etc/vsftpd/vsftpd.conf    ###编辑ftp服务的配置文件
write_enable=YES               ###将写入权限打开
anon_upload_enable=YES         ###将上传权限打开
chgrp ftp /var/ftp/pub         ###将/var/ftp/pub目录的组改为ftp组(用户通过ftp服务写入的东西属于ftp组)
chmod 775 /var/ftp/pub         ###将/var/ftp/pub改为775(组可写)

12 anonymous_enable=YES                                   ###允许匿名用户登录
 13 #
 14 # Uncomment this to allow local users to log in.
 15 # When SELinux is enforcing check for SE bool ftp_home_dir
 16 local_enable=YES                                               ###允许本地用户登录
 17 #
 18 # Uncomment this to enable any form of FTP write command.
 19 write_enable=YES                                              ###写入权限

将12行的语句更改为anonymous_enable=NO,之后匿名用户不能登录:

将16行的语句更改为local_enable=NO:

#<匿名用户家目录修改>     
anon_root=/direcotry

#<匿名用户上传文件默认权限修改>
anon_umask=xxx

用户创建文件的初始权限是:

 此时的umask值是:077

将用户上传的umask值更改为022此时创建文件的权限是:

#<匿名用户建立目录>
 

anon_mkdir_write_enable=YES

anon_mkdir_mkdir_enable=NO

#<匿名用户下载>
anon_world_readable_only=YES|NO  ##设定参数值为no表示匿名用户可以下载

#<匿名用户删除>
anon_other_write_enable=YES|NO

此时,其他用户有删除的权限。

#<匿名用户使用的用户身份修改>
chown_uploads=YES
chown_username=student
chown_upload_mode=0644

此时用其他用户上传的passwd所属的用户是student,文件权限是644。

本地用户家目录修改>
local_root=/directory

 

#<本地用户上传文件权限>
local_umask=xxx

#<限制本地用户浏览/目录>
所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*

用户黑名单建立
chroot_local_user=NO                                注:后面写的是YES表示白名单,后面写的是NO表示的是黑名单
chroot_list_enable=YES                             开启名单功能
chroot_list_file=/etc/vsftpd/chroot_list        注:指定名单的地址

将student用户设置成黑名单,此时student用户被固定在student的目录中。

用户白名单设定
chroot_local_user=YES
cgroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

将student用户设置成白名单,此时student用户可以去到/var/ftp/pub,而westos只能在westos的家目录中:

#限制本地用户登陆>
vim /etc/vsftpd/ftpusers     ##用户黑名单

如图:将student写入用户黑名单中,在黑名单中的用户不可以登录ftp


vim /etc/vsftpd/user_list    ##用户临时黑名单

用户白名单设定
userlist_deny=NO

 

用户的白名单的设定是在/etc/vsftpd/vsftpd.conf文件下加上userlist_deny=NO,再加上这句语句之后黑名单(默认)变成白名单

/etc/vsftpd/user_list        ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp

<ftp虚拟用户的设定>
创建虚拟账号身份
vim /etc/vsftpd/westosfile      ####文件里面记录着用户的账号和密码
文件中写入:  ####注:必须按照格式写不能加入别的字符
ftpuser1               ####账号
123                   ####密码
ftpuser2
123
ftpuser3
qwe

将用户信息文件加密
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db

注:将westosfile 文件加密加密文件格式为.db文件

查看加密文件:

vim /etc/pam.d/westos    ##文件名称任意,加密服务的名字,文件下面写:
account        require        pam_userdb.so    db=/etc/vsftpd/westosfile
auth            require         pam_userdb.so   db=/etc/vsftpd/westosfile
 ##注:上面这个文件默认会加上.db文件后缀,实际上用户认证用的是westosfile.db这个加密文件

vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos         ###pam服务的名字
guest_enable=YES                        ###允许虚拟用户登录ftp

(虚拟身份的指定)
guest_username=ftpuser             ###虚拟用户登录的身份
chmod u-w /home/ftpuser             ###更改ftpuser目录的权限

local_root=/var/ftpuserdir/$USER    ####将虚拟用户定位到自己家目录中
user_sub_token=$USER                  ####shell识别$USER

    

注:运行echo $USER
[root@localhost ~]# echo $USER
    root
                                                            此命令会得到当前用户的名字

猜你喜欢

转载自blog.csdn.net/halobios_/article/details/86616650