博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ftp的配置以及不同种类的用户的访问控制
阅读量:3961 次
发布时间:2019-05-24

本文共 3891 字,大约阅读时间需要 12 分钟。

ftp的配置以及不同种类的用户的访问控制

实验环境

selinux关闭,火墙开启,dnf安装设定完成,安装lftp #ftp协议文本浏览器

1.ftp介绍

ftp:file transfer proto

互联网中最老牌的文件传输协议

2.vsftpd安装及启用

dnf install lftp -y[root@d ~]# dnf install vsftpd -yvim /etc/selinux/config[root@d ~]# getenforce Disabled[root@d ~]# systemctl enable --now vsftpd[root@d ~]# systemctl enable --now firewalld[root@d ~]# firewall-cmd --permanent --add-service=ftp[root@d ~]# firewall-cmd --reload [root@d ~]# firewall-cmd --list-all[root@d ~]# ss -antlupe | grep ftp[root@d ~]# rpm -qc vsftpd  #查看ftp的主要配置文件[root@d ~]# vim /etc/vsftpd/vsftpd.confanonymous_enable=YES	##启动匿名用户的访问功能[root@d ~]# systemctl restart vsftpd用浏览器 ftp://iplftp ip  ##此访问方式必须能列出资源才算访问成功##在使用完成后请输入exit推出lftp[root@d ~]# cd /var/ftp/[root@d ftp]# touch file

3.vsftpd基本信息

服务名称:

vsftpd.service
配置目录:
/etc/vsftpd
主配置文件:
/etc/vsftpd/vsftpd.conf
默认发布目录:
/var/ftp
报错信息:
550 ##程序本身拒绝
553 ##文件系统权限限制
500 ##权限过大
530 ##认证失败

4.匿名用户访问控制

lftp ip ##当访问ftp服务时没有加入用户认证为匿名访问

lftp ip -u westos ##本地用户访问

当有什么配置如何生效不清楚的时候可以用下面的命令进行查找[root@d vsftpd]# man 5 vsftpd.conf[root@d vsftpd]# vim vsftpd.conf登陆控制anonymous_enable=YES|NO默认发布目录控制anon_root=/westosdir上传控制anon_upload_enable=YES|NOchmod 777 /var/ftp/publftp 192.168.0.10cd pubput /etc/passwd目录建立控制anon_mkdir_write_enable=YES|NO下载控制anon_world_readable_only=NO	##匿名用户可以下载不能读的文件下载的时候如果遇到:file already exists and xfer:clobber is unset解决方法:[root@d etc]# vim lftp.conf添加以下配置即可:set xfer:clobber on删除重命令控制anon_other_write_enable=YES|NO匿名用户上传文件权限设定anon_umask=xxxanon_umask=022		##当设定chown_username之后上传文权限将不是用此参数设定匿名用户上传文件的用户身份设定chown_upload=YESchown_username=leechown_upload_mode=0644登陆数量控制:max_clients=2上传速率控制anon_max_rate=102400编辑完配置文件都要systemctl restart vsftpd

5.本地用户的访问

登陆控制

useradd westos
useradd lee
echo admin | passwd --stdin westos
echo admin | passwd --stdin lee
lftp ip -u westos

当有什么配置如何生效不清楚的时候可以用下面的命令进行查找[root@d vsftpd]# man 5 vsftpd.confvim /etc/vsftpd/vsftpd.conflocal_enable=YES|NO  # 允许登陆,需要注释将匿名登陆改成否默认目录控制local_root=/software写权限控制write_enable=NO|YES上传文件权限控制local_umask=077用户登陆控制/etc/vsftpd/ftpusers	##永久黑/etc/vsftpd/user_list	##默认黑用户登陆白名单[root@d ~]# vim /etc/vsftpd/vsftpd.confuserlist_deny=NO#设定/etc/vsftpd/user_list位白名单#不在名单中的用户不能登陆ftp锁定用户到自己的家目录中,及用户不能访问自己家目录以外的目录chmod  u-w /home/*[root@d ~]# vim /etc/vsftpd/vsftpd.confchroot_local_user=YES[root@d vsftpd]# vim chroot_list锁定用户到自己的家目录中的白名单[root@d vsftpd]# vim /etc/vsftpd/vsftpd.confchroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list锁定用户到自己的家目录中的黑名单chroot_local_user=NOchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_listsystemctl restart vsftpd

6.虚拟用户访问

建立虚拟用户过程

1.vim /etc/vsftpd/ftp_auth_file #建立认证文件模板user1123user2123user31232.db_load -T -t hash -f ftp_auth_file ftp_auth_file.db	##加密认证文件       -T 转换 -t type -f 指定转换文件3.vim /etc/pam.d/westosaccount		required	pam_userdb.so		db=/etc/vsftpd/ftp_auth_file	auth		required	pam_userdb.so		db=/etc/vsftpd/ftp_auth_file4.vim /etc/vsftpd/vsftpd.confpam_service_name=/etc/vsftpd/westos			##指定认证策略文件guest_enable=YES			##指定虚拟用户功能开启guest_username=ftp			##指定虚拟用户在ftp服务器上的用户身份systemctl restart vsftpd

虚拟用户家目录的独立设定

[root@d ~]# mkdir -p /var/ftphome/user{1..3}[root@d ~]# touch /var/ftphome/user1/file1[root@d ~]# touch /var/ftphome/user2/file2[root@d ~]# touch /var/ftphome/user3/file3[root@d ~]# vim /etc/vsftpd/vsftpd.conf17 local_root=/var/ftphome/$USER18 user_sub_token=$USER[root@d ~]# systemctl restart vsftpdlftp ip -u user1

用户配置独立

[root@d ftphome]# mkdir -p user{1..3}/westos[root@d ftphome]# chmod 775 /var/ftphome/user{1..3}/westos[root@d ftphome]# chgrp ftp /var/ftphome/user{1..3}/westos[root@d ftphome]# vim /etc/vsftpd/vsftpd.conf #anon_upload_enable=YESuser_config_dir=/etc/vsftpd/confdirmkdir /etc/vsftpd/confdirtouch /etc/vsftpd/confdir/user2[root@d confdir]# vim user2anon_upload_enable=YES[root@d confdir]# systemctl restart vsftpdput: /etc/group: Access failed: 550 Permission denied. (group)#不是user2的话就不能上传文件

转载地址:http://gjhzi.baihongyu.com/

你可能感兴趣的文章
Canvas入门(一)
查看>>
一.JavaScript 基础
查看>>
7.ECMAScript 继承
查看>>
HTML DOM
查看>>
AJAX 基础
查看>>
JSON 基础
查看>>
J2EE监听器Listener接口大全[转]
查看>>
cookie、session、sessionid 与jsessionid[转]
查看>>
常见Oracle HINT的用法
查看>>
JAVA中各类CACHE机制实现的比较 [转]
查看>>
PL/SQL Developer技巧
查看>>
3-python之PyCharm如何新建项目
查看>>
15-python之while循环嵌套应用场景
查看>>
17-python之for循环
查看>>
18-python之while循环,for循环与else的配合
查看>>
19-python之字符串简单介绍
查看>>
20-python之切片详细介绍
查看>>
P24-c++类继承-01详细的例子演示继承的好处
查看>>
P8-c++对象和类-01默认构造函数详解
查看>>
P1-c++函数详解-01函数的默认参数
查看>>