千家信息网

vsftpd实例:匿名访问共享+系统用户访问控制

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,FTP环境实例:某公司由于业务发展需求,现需要在公司内部搭建一台FTP服务器!该公司有数个部门(IT FD HR)和N名员工(fus1 fus2 fus3 fus4 fus5 fus6 fus7 fu
千家信息网最后更新 2024年11月23日vsftpd实例:匿名访问共享+系统用户访问控制

FTP环境实例:

某公司由于业务发展需求,现需要在公司内部搭建一台FTP服务器!该公司有数个部门(IT FD HR)和N名员工(fus1 fus2 fus3 fus4 fus5 fus6 fus7 fus8 fus9)使用该服务器!为了保障系统和其他数据的安全,要求用户只能访问FTP服务根目录(/var/ftp)以下的数据;要求根目录下有一个公共目录,该目录所有人都可以访问,并且具有上传下载权限;根目录下还要有每个部门的工作目录,并且仅限该部门的员工访问;在各部门目录下要有一个仅限该部门员工使用的公共目录,还要有每个员工的工作目录,员工目录要求只能该员工自己访问;创建一个特权用户(manager),该用户可以访问根目录下的任何公共目录,并且具有上传下载的权限!为了方便特权用户访问,要求在每个部门的目录被访问时有该部门的提示信息;为了显示人文精神,在用户登录FTP服务器时,要显示欢迎信息!另外,要求匿名用户可以访问,并且所有访问FTP服务器的账户都不能登录到系统!


思路:

1、安装FTP服务器软件,设置SELinux访问权限

2、测试环境是否可用,备份主配置文件

3、创建用户组和用户及其所属目录

4、修改服务器配置文件进行访问控制

5、修改目录访问权限控制访问

6、重启服务并设置开机启动


步骤:

第一步:安装vsftpd软件

[root@feng ~]# yum install vsftpd -y

第二步:设置SELinux安全访问

[root@feng ~]#getsebool -a | grep ftp

[root@feng ~]#setsebool allow_ftpd_full_access 1

第三步:测试环境是否运行正常

[root@feng ~]# service vsftpd start

[root@feng ~]# firefox ftp://127.0.0.1

另:安装ftp客户端测试:

[root@feng ~]# yum install ftp -y

(匿名用户(ftp/anonymous)登录不需要密码)

第四步:备份主配置文件

[root@feng ~]# mkdir -p /backup/vsftpd

[root@feng ~]# cp -p /etc/vsftpd/vsftpd.conf /bachup/vsftpd/vsftpd.conf

第五步:创建用户组及其部门目录

[root@feng ~]# groupadd IT

[root@feng ~]# groupadd FD

[root@feng ~]# groupadd HR

[root@feng ~]# mkdir -p /var/ftp/OU_{IT,FD,HR}

第六步:创建用户及其属主目录

[root@feng ~]# for name in fus{1..3}

> do

> useradd -s /sbin/nologin -d /var/ftp/OU_IT/$name -G IT -m $name

> echo 123456 | passwd --stdin $name

> done

[root@feng ~]# for name in fus{4..6}

> do

> useradd -s /sbin/nologin -d /var/ftp/OU_FD/$name -G FD -m $name

> echo 123456 | passwd --stdin $name

> done

[root@feng ~]# for name in fus{7..9}

> do

> useradd -s /sbin/nologin -d /var/ftp/OU_HR/$name -G HR -m $name

> echo 123456 | passwd --stdin $name

> done

第七步:创建特权用户

[root@feng ~]# useradd -G IT,HR,FD -d /var/ftp/manager -s /sbin/nologin manager

[root@feng ~]# echo 123456 | passwd --stdin manager

第八步:检查用户属性

[root@feng ~]# for name in fus{1..9}; do id $name; done

[root@feng ~]# id manager

第九步:修改服务器主配置文件

[root@feng ~]# cat /etc/vsftpd/vsftpd.conf | grep -vE "^$|#"

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

local_enable=YES //允许系统用户登录

write_enable=YES //启用全局写权限

local_umask=022 //系统用户权限掩码

anon_umask=022 //匿名用户权限掩码

anon_upload_enable=YES //允许匿名用户上传

anon_mkdir_write_enable=YES //允许匿名用户创建目录

dirmessage_enable=YES //开启目录访问提示

message_file=.message //定义目录访问提示文件

xferlog_enable=YES //开启用户访问日志记录

xferlog_file=/var/log/vsftpd.log //定义日志记录文件的位置及名称(需要自己创建)

xferlog_std_format=YES //定义日志记录的文件格式

connect_from_port_20=YES //定义服务器的连接端口

idle_session_timeout=600 //当超过600s无交互时断开会话

data_connection_timeout=120 //当超过120s无数据时断开传输通道

banner_file=/etc/vsftpd/banner //定义登录提示文件banner的位置

chroot_local_user=YES //锁定用户访问权限到家目录

ls_recurse_enable=YES //允许用户使用ls命令

listen=YES //定义vsftpd工作模式为standalone

pam_service_name=vsftpd //开启vsftpd的PAM认证

userlist_enable=YES //开启userlist访问控制

userlist_deny=NO //仅限userlist中的用户访问(双重否定等于肯定)

tcp_wrappers=YES //开启TCP访问控制(hosts.allow和hosts.deny)

local_root=/var/ftp //锁定系统用户访问的根目录

no_anon_password=YES //匿名用户访问时提示输入密码,可直接访问

第十步:创建主配置文件中定义的文件

vsftpd.log:

[root@feng ~]# touch /var/log/vsftpd.log

banner:

[root@feng ~]# vi /etc/vsftpd/banner

[root@feng ~]# cat /etc/vsftpd/banner

-------------------------------------

Hellow,everyone

welcome to FTPServer!

Good luck!

-------------------------------------

.message:

[root@feng ~]# echo "welcome to IT." > /var/ftp/OU_IT/.message

[root@feng ~]# echo "welcome to FD." > /var/ftp/OU_FD/.message

[root@feng ~]# echo "welcome to HR." > /var/ftp/OU_HR/.message

user_list:

[root@feng ~]# for name in fus{1..9}; do echo $name; done > /etc/vsftpd/user_list

[root@feng ~]# echo ftp >> /etc/vsftpd/user_list

[root@feng ~]# echo manager >> /etc/vsftpd/user_list

第十一步:设置文件目录访问权限

ftp目录的访问权限:

[root@feng ~]# chown root:ftp /var/ftp/

[root@feng ~]# tree /var/ftp

/var/ftp/ 目录权限 目录所有者 目录属组 目录

├── manager drwx------ manager manager manager

├── OU_IT drwxr-x--- root IT OU_IT

│ ├── fus1 drwx------ fus1 fus1 fus1

│ ├── fus2 drwx------ fus2 fus2 fus2

│ ├── fus3 drwx------ fus3 fus3 fus3

│ └── pub_it drwxrwx--- root IT pub_it

├── OU_FD drwxr-x--- root FD OU_FD

│ ├── fus4 drwx------ fus4 fus4 fus4

│ ├── fus5 drwx------ fus5 fus5 fus5

│ ├── fus6 drwx------ fus6 fus6 fus6

│ └── pub_fd drwxrwx--- root FD pub_it

├── OU_HR drwxr-x--- root HR OU_H

│ ├── fus7 drwx------ fus7 fus7 fus7

│ ├── fus8 drwx------ fus8 fus8 fus8

│ ├── fus9 drwx------ fus9 fus9 fus9

│ └── pub_hr drwxrwx--- root HR pub_it

└── pub drwxrwxr-x root ftp pub

第十二步:重启服务,使配置文件生效

[root@feng ~]# ps -ef | grep vsftpd (获取vsftpd进程的PID-2784)

[root@feng ~]# kill -HUP 2784 (2784=vsftpd的进程号)

第十三步:设置vsftpd开机启动

[root@feng ~]# chkconfig vsftpd on


用户 目录 文件 权限 服务 服务器 员工 登录 配置 系统 根目录 提示 控制 部门 公司 数据 日志 特权 环境 工作 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全扎实有效推进 数据库开发流程六步 网络技术两面性的案例 读取照片上的内容存在数据库中 全球降雨量数据库 第八届国家网络安全宣传周黑板报 文件服务器管理员权限 新沂市网络安全民警 华为服务器上架实施步骤 网络安全和量子信息关系 七巧板拼图游戏软件开发 高速公路通信网络技术的主要类型 学校网络安全周宣传实施方案 电力行业软件开发前景 数据库与云存储 草料二维码连接自有数据库 翻译助手来自哪个中文期刊数据库 传说对决体验服无法登录服务器 aql服务器文件夹在哪 宜兴现代软件开发资费 有没有好的软件开发 蒂森克虏伯电梯服务器快车调试 网络电视缓存服务器 数据库填空题SQL 网络安全法规定国内信息 管家婆数据库安装好了连接不上 网络安全新技术对疫情的应用 tomcat 数据库配置 赫赫11服务器 mysql复制行数据库
0