FTP服务器搭建和多用户授权企业实战案例
1.FTP的介绍和作用
FTP:实现不同操作系统之间的文件共享,范围包括广域网,局域网。
2.FTP的端口
控制连接:TCP21端口,发送FTP命令信息
数据连接:TCP20端口,上传/下载数据
3.FTP的用户类型
匿名用户:ftp和anonymous登录ftp
本地用户:linux服务器本机的系统用户帐号登录ftp
虚拟用户:帐号信息存放在独立的文件或数据库中登录ftp
4.默认情况下FTP用户的下载和上传
匿名用户和本地用户的都可以登录FTP
匿名用户:默认登录到/var/ftp/,只能下载,不能上传。
本地用户:登录到本地用户的家目录,可以下载,也可以上传。
5.FTP配置文件中语句解析
listen: 是否以独立运行的方式监听服务
listen_address: 设置监听FTP服务的IP地址
listen_port: 设置监听FTP服务的端口
write_enable: 是否启用写入权限
download_enable: 是否允许下载
amonymous_enable: 是否启用匿名访问
anon_root: 匿名FTP的根目录
local_root: 是否启用本地用户的FTP根目录
local_umask: 本地用户上传的权限掩码
chroot_local_user: 是否禁锢在主目录/家目录
max_clients: 限制并发的客户端个数
max_per_ip: 限制每个客户机IP的并发连接数
anon_max_rate: 匿名最大速度(字节/s)
local_max_rate: 验证用户最大速率(字节/s)
6.登录FTP服务的黑名单和黑白名单
1). 黑名单文件:/etc/vsftpd/ftpusers 列入其中的用户被禁止访问
2).黑白名单: /etc/vsftpd/user_list 有时为黑名单,有时为白名单
为黑名单时:和黑名单作用一样,里面的用户不允许访问FTP服务
# vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES (决定是否启用此文件)
userlist_deny=YES
为白名单时:只允许白名单里面的用户访问
# vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES (决定是否启用此文件)
userlist_deny=NO
7.黑白名单启用步骤
1).把下面两个添加到主配置文件中:/etc/vsftpd/vsftpd.conf
userlist_enable=YES
userlist_deny=YES/NO NO时为白名单,YES时为黑名单
2).把用户写入 /etc/vsftpd/user_list文件 (里面是是否能让登录的用户)
# vim /etc/vsftpd/user_list
shi1
shi2
8.服务器上开启匿名用户端的上传权限(了解)(默认客户端匿名用户没有上传权限)
1).修改配置文件 /etc/vsftpd/vsftpd.conf
# vim /etc/vsftpd/vsftpd.conf
使:anon_upload_enable=YES
2).还需要给你们用户家目录(/var/ftp/)的子目录pub增加w权限
# chmod o+w /var/ftp/pub
两者缺一不可。
注意:这样客户端匿名用户才能有上传文件,匿名用户的家目录不允许其他用户有w权限,可以给它的子目录设置w权限。
9.服务器上使匿名用户能创建文件夹并有其他写权限(了解)
# vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
10.FTP服务器工作模式 (主动模式和被动模式)
主动模式:数据传输时,服务器主动连接客户端(默认)
被动模式:数据传输时,服务器等待客户端来连接自己
端口21:控制端口(传指令)
如:get a.txt 下载a.txt通过21端口
端口20:数据端口(传数据)
11.ftp默认是主动模式,修改成被动模式的设置
# vim /etc/vsftpd/vsftpd.conf
添加:
pasv_enable=YES
port_enable=NO
客户端测试:
登录到ftp后,输入passive,显示passive mode on表示服务器设置成功。
12.FTP服务企业实战案例
案例1:企业安装vsftpd服务,多用户管理上传和下载文件权限
1).创建多个普通用户,各个普通用户使用自己的用户上传和下载文件,普通用户只能对自己目录有上传和下载、删除权限
2).再创建一个管理员用户,可以对所有用户的目录有上传、下载、删除权限
机器规划:
FTP服务器: 192.168.171.128
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
#注意:配置文件中,每行结尾不能有空格
#下面修改为NO,禁止匿名用户登, 默认为YES:
anonymous_enable=NO
#下面默认为YES,允许本地用户登录
local_enable=YES
#下面默认为YES,允许写操作
write_enable=YES
#下面释放并修改,默认YES,改为NO,是否禁锢在主目录/家目录
chroot_local_user=NO
#下面释放,默认为YES
chroot_list_enable=YES
#下面释放:
chroot_list_file=/etc/vsftpd/chroot_list
#默认为NO,修改为YES
listen=YES
#默认为YES,修改为NO
listen_ipv6=NO
#开启下面 (是否启用黑白名单文件/etc/vsftpd/user_list,YES表示启用黑白名单文件,但具体是黑名单功能还是白名单功能需要看下面:userlist_deny)
userlist_enable=YES
#增加下面3个:
max_clients=50
local_root=/opt/ftp_dir
userlist_deny=NO
#上面:userlist_deny=NO表示:是属于白名单的功能,只有白名单里的用户才能访问FTP服务,如果等于YES则表示为黑名单的功能
user_config_dir=/etc/vsftpd/vsftpd
[root@localhost ~]# mkdir /opt/ftp_dir
[root@localhost ~]# mkdir /etc/vsftpd/vsftpd
[root@localhost ~]# echo 'local_root=/opt/ftp_dir' > /etc/vsftpd/vsftpd/admin
[root@localhost ~]# echo 'local_root=/opt/ftp_dir/shi1' > /etc/vsftpd/vsftpd/shi1
[root@localhost ~]# echo 'local_root=/opt/ftp_dir/shi2' > /etc/vsftpd/vsftpd/shi2
[root@localhost ~]# cat /etc/vsftpd/vsftpd/admin
local_root=/opt/ftp_dir
[root@localhost ~]# cat /etc/vsftpd/vsftpd/shi1
local_root=/opt/ftp_dir/shi1
[root@localhost ~]# cat /etc/vsftpd/vsftpd/shi2
local_root=/opt/ftp_dir/shi2
#创建几个ftp登录用户—系统本地登录账号:
[root@localhost ~]# useradd -d /opt/ftp_dir/admin admin
[root@localhost ~]# useradd -d /opt/ftp_dir/shi1 shi1
[root@localhost ~]# useradd -d /opt/ftp_dir/shi2 shi2
[root@localhost ~]# echo 'admin' |passwd --stdin admin
[root@localhost ~]# echo 'shi1' |passwd --stdin shi1
[root@localhost ~]# echo 'shi2' |passwd --stdin shi2
[root@localhost ~]# gpasswd -a admin root #将admin加入到管理员组root
[root@localhost ~]# id admin
uid=1000(admin) gid=1000(admin) groups=1000(admin),0(root)
[root@localhost ~]# vim /etc/vsftpd/user_list #添加白名单用户,只有白名单里的用户才能访问FTP服务
.......
#添加下面用户:白名单
admin
shi1
shi2
[root@localhost ~]# ls /opt/ftp_dir/
admin shi1 shi2
[root@localhost ~]# chmod -R 755 /opt/ftp_dir/ #总目录权限,主要给管理员使用,管理员对总目录有权限,但不能777,否则ftp登录不了
[root@localhost ~]# chmod -R 775 /opt/ftp_dir/* #下面给各普通用户的目录权限,尽量不要777,否则普通用户之间能互相访问
[root@localhost ~]# chown -R admin.root /opt/ftp_dir/admin/ #下面给各个普通用户目录再授权,因没授权777,所有admin用户没权限,给root组
[root@localhost ~]# chown -R shi1.root /opt/ftp_dir/shi1/
[root@localhost ~]# chown -R shi2.root /opt/ftp_dir/shi2/
[root@localhost ~]# ls -ld /opt/ftp_dir/*
drwxrwxr-x 2 admin root 62 Jun 18 21:06 /opt/ftp_dir/admin
drwxrwxr-x 2 shi1 root 62 Jun 18 21:06 /opt/ftp_dir/shi1
drwxrwxr-x 2 shi2 root 62 Jun 18 21:06 /opt/ftp_dir/shi2
[root@localhost ~]# echo admin > /etc/vsftpd/chroot_list
[root@localhost ~]# cat /etc/vsftpd/chroot_list
admin
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# systemctl enable vsftpd
[root@localhost ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2023-06-18 21:04:51 CST; 26s ago
客户端工具FileZilla测试FTP各用户的上传、下载和删除:
1).普通用户shi1测试(只能对自己目录有权限): 192.168.171.128 shi1/shi1
上传目录和文件直接拖入即可。
2).管理用户admin测试(对所有用户目录有权限): 192.168.171.128 admin/admin
随便找一个用户目录: shi2
删除目录:
上传目录和文件直接拖入即可。
binbinyouli301: 你的低版本jenkins是怎么安装插件成功的,很怀疑
weixin_57900254: 讲的很详细,非常好
小石石石石石石: 为什么我配置了allow ip白名单和deny all ,白名单ip请求时403呢?注掉deny all 之后就正常
CSDN-Ada助手: 恭喜你,获得了 2023 博客之星评选的入围资格,请看这个帖子 (https://bbs.csdn.net/topics/617009456?utm_source=blogger_star_comment)。 请在这里提供反馈: https://blogdev.blog.csdn.net/article/details/129986459?utm_source=blogger_star_comment。