Linux下ftp服务配置

FTP服务配置

1.关闭SElinux配置yum源,安装软件

  vsftp ---> very secure ftp
  安装
  yum install vsftpd lftp -y

2.在防火墙中添加FTP服务,重启防火墙

  firewall-cmd --permanet --add-service=ftp 
  firewall-cmd --reload

3.编译配置文件 /etc/vsftpd/vsftpd.conf
基本配置参数

  允许匿名用户登录			anonymous_enable=YES
  
  是否允许本地用户登录			local_enable=YES
  
  登录后是否具有可写权限		write_enable=YES
  
  匿名用户是否可以上传文件		anon_upload_enable=YES
  
  匿名用户具有读权限			anon_world_readable_only=NO 

  匿名用户的可删除权限			anon_other_write_enable=YES 

  匿名用户上传文件的权限限制	anon_umask=022 

  更改上传文件所属用户			chown_uploads=YES 

  上传文件权限				chown_upload_mode=0644 

  匿名用户上传限速			anon_max_rate=1024(字节为单位)

  最大可登录用户				max_clients=2 

  设置匿名用户的家目录			anon_root=/anon

切换目录的黑白名单限制

  限制用户只能在自己的家目录	chroot_local_user=NO  黑名单
	 								  	     =YES 白名单
  
  启用名单					chroot_list_enable=YES
  
  名单内容					chroot_list_file=/etc/vsftpd/chroot_list

限制本地用户登录的黑白名单

  永久黑名单
  /etc/vsftpd/ftpusers

  临时黑名单
  /etc/vsftpd/user_lists

  白名单设置
  userlist_deny=NO
  /etc/vsftpd/user_list   此时该文件为白名单

虚拟用户配置参数(该用户仅针对ftp使用/注意取消全局黑名单)

  创建用户文件	/etc/vsftpd/login.file
  zy1
  123
  zy2
  123
  zy3
  123
  加密			db_load -T -t hash -f login_file login_file.db

  创建验证文件	/etc/pam.d/login_ftp
  编辑内容
  account required pam_userdb.so	db=/etc/vsftpd/login_file
  auth	required pam_userdb.so	db=/etc/vsftpd/login_file
  
  编辑配置文件(注意临时白名单此时需要取消) /etc/vsftpd/vsftpd.conf
  #userlist_deny=no
  pam_service_name=login_ftp
  guest_enable=yes

给每一个虚拟用户创建家目录

  创建虚拟用户的家目录
  mkdir /var/ftpuser
  mkdir /var/ftpuser/zy{1,2,3}
  mkdir /var/ftpuser/zy{1,2,3}/pubzy -p

  修改配置文件
  local_root=/var/ftpuser/$USER	使用虚拟用户家目录
  user_sub_token=$USER			使用虚拟用户名称以便调用家目录

单独配置每一个用户的单独配置文件(注意关闭原配置文件的全局配置)

  修改全局配置文件
  user_config_dir=/etc/vsftpd/zy/
  
  编写单个配置文件内容/etc/vsftpd/zy/zy1(目录名称要与用户名称相同)
  anon_upload_enable=YES
  ...
  ...

4.连接方式

  lftp ip  匿名用户连接 
  参数  -u 指定本地用户

5.报错提示

  错误代码
  			500 	权限过大,不允许登陆
  			530 	认证失败
  			550 	服务没有开启
  			553 	文件系统不可写

配置示例

安装FTP服务器,并完成使用环境的配置
安装lftp以及vsftp
在这里插入图片描述
关闭SELINUX,将ftp服务添加至防火墙并重启防火墙
在这里插入图片描述
启动vsftpd服务,同时设置为开机自启动
在这里插入图片描述
设置参数,使得匿名用户不可以登陆
在这里插入图片描述
设置参数,使得匿名用户可以登陆,本地用户不能登陆
在这里插入图片描述
设置匿名用户可以登陆,也可以上传文件
在这里插入图片描述
此时参数虽然已经设置,但仍无法上传文件,查看错误是由于没有权限,可以将/var/ftp/pub组改为ftp,同时赋予组读写权限解决
在这里插入图片描述
此时尝试删除刚刚上传的文件,发现失败,于是赋予匿名用户删除权限
在这里插入图片描述
匿名尝试创建目录,失败,修改赋予匿名用户创建目录的权限
在这里插入图片描述
尝试上传文件至新建的zy目录中,上传文件成功,但却无法查看
在这里插入图片描述
于是赋予匿名用户查看文件的权利
在这里插入图片描述
由上查看发现匿名用户上传的文件的权限为600,对普通用户没有读的权限,于是修改匿名用户的系统保留权限值,使得文件具有读权限
在这里插入图片描述
配置参数,使得上传文件的默认所有者为student,同时权限为644
在这里插入图片描述
限制上传文件速率为1M
在这里插入图片描述
限制最大可登陆客户数为2
在这里插入图片描述
设置登陆用户是否可以进入root目录的黑白名单
白名单设置
在这里插入图片描述
黑名单设置
在这里插入图片描述
限制本地用户登陆的黑白名单
限制本地用户登录
永久黑名单 /etc/vsftpd/ftpusers
在这里插入图片描述
取消永久黑名单设置临时黑名单
在这里插入图片描述

变更白名单设置
在这里插入图片描述
创建仅用于ftp服务的虚拟用户
创建用户并加密
在这里插入图片描述
创建验证文件
在这里插入图片描述
配置参数使用该验证模块
在这里插入图片描述
分配使得每个用户都有不同的家目录
创建家目录
在这里插入图片描述

配置参数分配家目录,登陆zy1,上传/etc/passwd,退出,登陆zy2,查看,发现无此文件,证明不在同一家目录
在这里插入图片描述

取消全局参数,分别设置zy1具有上传和删除文件的能力,zy2具有上传的能力,但不能删除
注释匿名用户的参数,修改配置参数,同时创建与用户对应名称的配置文件,重启服务
在这里插入图片描述
验证结果
验证zy1用户
在这里插入图片描述
验证zy2
在这里插入图片描述

FTP服务配置 VSFTP配置文件路径:/etc/vsftpd/vsftpd.conf,重要参数: anonymous_enable=yes/no 是否允许匿名用户访问 anon_upload_enable=yes/no 是否允许匿名用户上传文件 anon_mkdir_write_enable=yes/no 是否允许匿名用户创建目录 anon_other_write_enable=yes/no 匿名用户和虚拟用户是否拥有删除权限 local_enable=yes/no 是否允许本地用户登陆 write_enable=yes/no 设置全局是否可写 anon_root=/var 指定匿名用户目录 chroot_local_user=yes 锁定所有用户到用户主目录 chroot_list_enable=yes/no 锁定列表中的用户到主目录,需要配合下一参数使用 chroot_list_file=/etc/vsftpd/chroot_list 指定存储被锁定用户的列表文件位置 chown_uploads=yes/no 匿名用户上传所有者指定功能,需要与下一参数配合使用 chown_username=用户名 指定匿名用户上传文件的所有者 max_clients=300 最大客户端连接数为300 anon_max_rate=30000 匿名用户和虚拟用户限速为30K/S local_max_rate=30000 本地用户限速为30K/S max_per_ip=10 每个IP最大连接数 listen_port=22 更改监听端口 实现如下要求:允许匿名用户登陆,匿名用户限速为60K/S,只允许下载。监听端口为22,最大连接数为10。新建用户ftp1,限速为200K/S,允许上传下载删除新建文件夹。进入目录/etc/vsftpd,用vi编辑器打开vsftpd.conf主配置文件: 直接添加以下选项: [root@LidadeFedora vsftpd]# service vsftpd restart 添加用户ftp1,设置登录脚本为 /sbin/nologin: vsftp默认目录为:/var/ftp,为方便测试,在/var/ftp下新建一个文件"testLocal",在"/var/ftp/pub"新建一个文件"testAnon"。 由于使用root用户新建文件,文件的所有者为root,所以需要把文件的权限设置为644其他用户才能读取该文件 设置/var/ftp/pub权限为777,表示所有用户均有读写权限. 由于端口22被ssh服务器占用,所以需要关闭ssh服务并重启vsftp服务。 客户端用Flashfxp测试:新建站点"VsftpTest",输入Vsftp服务器的IP地址,端口填22,用户名填ftp1,密码填你设置的密码,然后点击"连接"按钮: 由于没有使用选项:local_root,登陆本地用户时自动跳转到该用户的主目录.没有使用chroot_local_user=yes,所以本地用户可以浏览整个文件系统中他有权限读取的文件和文件夹: 切换到目录"/var/ftp/pub",该目录的权限为777,上传一个10M以上的文件,测试ftp1的上传速度: 新建文件夹和删除权限测试省略。下面测试匿名用户权限:勾选"匿名"选项并连接: 匿名用户登陆成功: 进入pub目录,尝试删除testAnon文件失败,说明这里是配置文件中的anon_other_write_enable=no生效了。最终权限等于配置文件中的权限和linux文件系统权限相或的结果。比如vsftp配置文件中允许匿名用户下载,但光这样是不够的,还需要被下载的文件或文件夹的能够被其他用户读取。 尝试上传文件失败,符合匿名用户只允许下载的要求: 最后测试匿名用户的下载速度: vsftp配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值