公司为了宣传最新的产品信息,计划搭建一个FTP服务器,为客户提供相关文档的下载。对所有权互联网开放共享目录,允许下载产品信息。公司的合作单位能够使用FTP服务器进行上传和下载。
需求分析
根据企业的需求,对于不同给用户进行不同的权限限制,FTP服务器需要实现用户的审核。需考虑到服务器的安全性,所以关闭了实体用户的登录,使用虚拟账号验证机制,并对不同的虚拟账号设置不同的权限。为了保证服务器的性能,还需要根据用户等级,限制客户端的连接数及下载速度。
解决方案
- 匿名用户允许下载我们公司的产品,但需要对其限速100K
- 普通用户可以针对自己的目录进行上传和下载,对其限速500kb(虚拟用户)
- 管理用户可以访问所有资源,并可以操作客户的目录,但不可以操作对外用户目录
- 优化:根据不同的等级用户做不同的限速,限制客户端连接次数(5)
实施步骤
- 关闭防火墙,SElinux
[root@chenjiangfeng ~]# systemctl stop ebtables firewalld
[root@chenjiangfeng ~]# systemctl disable ebtables firewalld
- 安装vsftp软件
[root@chenjiangfeng ~]# yum -y install vsftpd
- 创建系统账户,供虚拟账户使用
[root@chenjiangfeng ~]# useradd virftp -s /sbin/nologin
- 创建对应目录的,赋予权限
[root@chenjiangfeng ~]# mkdir -p /data/vsftp/{manager,soft,public}
[root@chenjiangfeng ~]# chown -R virftp.virftp /data/vsftp/{manager,soft}
- 创建虚拟用户账户及密码
[root@chenjiangfeng ~]# cat > /etc/vsftpd/vsftpd_login << EOF
manager
manager
chenjf
chenjf
EOF
- 生成对应的库文件
[root@chenjiangfeng ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
- 修改密码文件及对应库文件访问权限
[root@chenjiangfeng ~]# chmod 600 /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
- 修改pam文件
[root@chenjiangfeng ~]# vim /etc/pam.d/vsftpd
#新增如下内容
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
- 建立虚拟目录
[root@chenjiangfeng ~]# mkdir /etc/vsftpd/vsftpd_user_conf/
- 配置匿名用户的权限,限速100k
[root@chenjiangfeng ~]# systemctl stop ebtables firewalld [root@chenjiangfeng ~]# systemctl disable ebtables firewalld
[root@chenjiangfeng ~]# yum -y install vsftpd
[root@chenjiangfeng ~]# useradd virftp -s /sbin/nologin
[root@chenjiangfeng ~]# mkdir -p /data/vsftp/{manager,soft,public} [root@chenjiangfeng ~]# chown -R virftp.virftp /data/vsftp/{manager,soft}
[root@chenjiangfeng ~]# cat > /etc/vsftpd/vsftpd_login << EOF manager manager chenjf chenjf EOF
[root@chenjiangfeng ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
[root@chenjiangfeng ~]# chmod 600 /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
[root@chenjiangfeng ~]# vim /etc/pam.d/vsftpd #新增如下内容 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
[root@chenjiangfeng ~]# mkdir /etc/vsftpd/vsftpd_user_conf/
匿名用户登录默认目录,必须要和/etc/passwd中的ftp用户的默认宿主要一样,否则也会出现错误!
[root@chenjiangfeng ~]# cat >> /etc/vsftpd/vsftpd.conf <<EOF
anonymous_enable=YES #启动匿名用户
anon_root=/data/vsftp/public#锁定匿名用户家目录
anon_max_rate=100000#匿名用户限速100k
EOF
- 配置管理用户,限速2M
[root@chenjiangfeng ~]# cat > /etc/vsftpd/vsftpd_user_conf/manager <<EOF local_root=/data/vsftp/ allow_writeable_chroot=YES write_enable=YES local_umask=022 anonymous_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5 local_max_rate=2000000 EOF
- 配置普通用户,限速1M
[root@chenjiangfeng ~]# cat > /etc/vsftpd/vsftpd_user_conf/chenjf <<EOF local_root=/data/vsftp/chenjf allow_writeable_chroot=YES write_enable=YES local_umask=022 anonymous_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5 local_max_rate=1000000 EOF
- 在配置文件的尾部追加如下内容
cat >> /etc/vsftpd/vsftpd.conf <<EOF ##固定家目录 chroot_local_user=YES ##开启匿名用户 guest_enable=YES ##匿名用户 guest_username=virftp ##引用配置文件目录 virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vsftpd_user_conf EOF
- 启动VSFTPD服务,并加入开机自启
[root@chenjiangfeng ~]# systemctl start vsftpd [root@chenjiangfeng ~]# systemctl enable vsftpd
验证权限
- 匿名用户权限验证
1.2 匿名用户下载文件
- 普通用户权限验证
2.1普通用户登录
2.2 普通用户下载测试
2.3 测试上传文件
- 管理用户权限验证
3.1 管理员账户登录
3.2 管理员账号下载文件测试
3.3 管理员账号上传文件测试
3.4 删除文件
验证完成
备注:
后续新增账户则需要做如下操作
- 创建访问目录,修改权限
mkdir /data/vsftp/chenjf
chown virftp.virftp /data/vsftp/chenjf
- 创建访问用户
cat >> /etc/vsftpd/vsftpd_login <<EOF
test
test
EOF
- 创建配置文件
[root@chenjiangfeng ~]# cat > /etc/vsftpd/vsftpd_user_conf/chenjf <<EOF
local_root=/data/vsftp/chenjf
allow_writeable_chroot=YES
write_enable=YES
local_umask=022
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=1000000
EOF
- 重启服务
[root@chenjiangfeng ~]# systemctl restart vsftpd
1.2 匿名用户下载文件
2.1普通用户登录
2.2 普通用户下载测试
2.3 测试上传文件
3.1 管理员账户登录
3.2 管理员账号下载文件测试
3.3 管理员账号上传文件测试
3.4 删除文件
验证完成
备注:
后续新增账户则需要做如下操作
- 创建访问目录,修改权限
mkdir /data/vsftp/chenjf chown virftp.virftp /data/vsftp/chenjf
- 创建访问用户
cat >> /etc/vsftpd/vsftpd_login <<EOF test test EOF
- 创建配置文件
[root@chenjiangfeng ~]# cat > /etc/vsftpd/vsftpd_user_conf/chenjf <<EOF local_root=/data/vsftp/chenjf allow_writeable_chroot=YES write_enable=YES local_umask=022 anonymous_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5 local_max_rate=1000000 EOF
- 重启服务
[root@chenjiangfeng ~]# systemctl restart vsftpd
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容