FTP服务器高级配置

摘要:
首先,只允许Team1和Team2帐户登录到FTP服务器,但不能登录到本地系统。这两个帐户的根目录限于/var/www/html,不能输入除此目录之外的任何目录。该公司的合作伙伴可以使用FTP服务器进行上传和下载,但不能删除数据。此外,还应保证服务器的稳定性。应进行适当的优化设置,并进行需求分析。根据企业的需要,应该对不同的用户施加不同的权限限制。FTP服务器需要实现用户审核。
设置FTP服务器的访问限制

 /etc/vsftpd/ftpusers
 ftpusers :黑名单 其内所有的用户无法登录FTP服务器
 如果userlist_enable=YES(主配置文件中设置),user_list黑名单 其内所有的用户无法登录
 如果userlist_deny=NO(主配置文件中设置),user_list白名单 其内所有的用户可以登录
 通过/etc/hosts.allow和/etc/hosts.deny来控制用户的访问,这种方式称   TCPWRAPPER。
 Vim /etc/csftpd/csftpd.conf

tcp_wrappers=YES 

 如果用户满足/etc/hosts.allow,那么允许访问。
 如果用户不满足/etc/hosts.allow,满足/etc/hosts.deny,那么不允许访问。
 如果用户两文件都没有满足,默认是允许访问的。
 格式:
  服务名: 主机
  vsftpd: 172.18.49.99

虚拟用户

 1.建立虚拟用户口令数据库
 cd ~
 vim login.txt 创建虚拟用户口令文件

tom虚拟用户 
123密码 
jack 
123 

 rpm -vih db4-utils 安装db_load命令对应的软件包
 db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db
 将虚拟用户口令文件转换为数据库文件
 chmod 600 /etc/vsftpd/vsftpd_login.db
 安全起见 设置存有虚拟用户口令的的数据库权限
 2.为虚拟用户建立PAM认证文件
 ls /etc/pam.d/ 验证文件所在路径
 vim /etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd 当前pam文件,只能对匿名用户本地用户身份验证 

 vim /etc/pam.d/vsftpd.vu创建虚拟用户身份验证pam文件

auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login 
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login 

 3.准备一个映射账号,用于虚拟用户对应的系统账号
 useradd vu -s /sbin/nologin
 ls /home/vu
 touch /home/vu/file1.txt 标记当前路径,方便识别
 一旦使用了虚拟用户,匿名用户就不可用了
 4.配置vsftpd server支持虚拟用户
  (1)禁用匿名用户相关(一旦支持虚拟用户就不能支持其他)
  (2)启用虚拟用户功能,并指定映射账户
  (3)使用新的PAM文件
 vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO 禁用匿名用户相关 
guest_enable=YES  启用虚拟用户功能 
guest_username=vu  指定映射账户 
pam_service_name=vsftpd.vu 使用新的PAM文件 

 对虚拟用户设置权限的指令 和 对匿名用户设置权限的指令完全相同

anon_world_readable_only=NO 打开匿名用户浏览功能 

 可以看到文件,可以下载不可上传
 5、给虚拟用户设置不同权限
  srj 游客 上传下载速率50kb 线程5个
  lf VIP 上传下载速率100kb 线程10个
  gjn 管理员 创建,修改删除等
 权限由主配置文件和个人配置文件决定,主配置文件权限尽量小,在个人配置文件当中释放权限。
 vim /etc/vsftpd/vsftpd.conf

anon_world_readable_only=NO  开放匿名用户的浏览权限 
user_config_dir=/etc/vsftpd/1304B 

 cd /etc/vsftpd
 mkdir local
 创建个人配置文件
 vim srj

write_enable=YES 
anon_max_rate=10000  对匿名用户限速 
max_per_ip=5   设置每个IP最大的连接数(线程数) 
anon_upload_enable=YES  启用匿名用户上传文件的功能(文件夹不成) 

 其他类似
 重启服务
 测试

FTP常规配置应用案例1:

需求:
  公司内部现在有一台FTP和WEB服务器,FTP的功能主要用于维护公司的网站内容,包括上传文件、创建目录、更新网页等等哈~公司现有两个部门负责维护任务,他们分别适用team1和team2帐号进行管理。先要求仅允许team1和team2帐号登录FTP服务器,但不能登录本地系统,并将这两个帐号的根目录限制为/var/www/html,不能进入该目录以外的任何目录。
分析:
  将FTP和WEB服务器做在一起是企业经常采用的方法,这样方便实现对网站的维护,为了增强安全性,首先需要使用仅允许本地用户访问,并禁止匿名用户登录。其次使用chroot功能将team1和team2锁定在/var/www/html目录下。如果需要删除文件则还需要注意本地权限哈~
  (1)建立维护网站内容的ftp帐号team1和team2并禁止本地登录,然后设置其密码
useradd -s /sbin/nologin 用户名
  (2)配置vsftpd.conf主配置文件并作相应修改
    vim /etc/vsftpd/vsftpd.conf
    anonymous_enable=NO:禁止匿名用户登录
    local_enable=YES:允许本地用户登录
    local_root=/var/www/html:设置本地用户的根目录为/var/www/html 
    chroot_list_enable=YES:激chroot功能 
    chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件
保存退出
  (3)建立/etc/vsftpd/chroot_list文件,添加team1和team2帐号
    touch /etc/vsftpd/chroot_list
  (4)重启vsftpd服务使配置生效
    service vsftpd restart
  (5)修改本地权限
    Chmod -R o+w /var/www/html
  (6)测试

FTP常规配置应用案例2:

企业环境
  公司为了宣传最新的产品信息,计划搭建FTP服务器,为客户提供相关文档的下载。对所有权互联网开放共享目录,允许下载产品信息,禁止上传。公司的合作单位能够使用FTP服务器进行上传和下载,但不可以删除数据。并且保证服务器的稳定性,进行适当优化设置哈~
需求分析
  根据企业的需求,对于不同用户进行不同的权限限制,FTP服务器需要实现用户的审核。需考虑到服务器的安全性,所以关闭实体用户登录,使用虚拟帐号验证机制,并对不同虚拟帐号设置不同的权限。为了保证服务器的性能,还需要根据用户的等级,限制客户端的连接数及下载速度。
1、创建用户数据库
(1)创建用户文本文件
  先建立用户文本文件vsftpd_virtualuser.txt,添加两个虚拟帐号,公共帐号ftp及客户帐号vip
(2)生成数据库
  保存虚拟帐号和密码的文本文件无法被系统帐号直接调用,使用db_load命令生成db数据库文件
 db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser.txt  /etc/vsftpd/vsftpd_virtualuser.db
3)修改数据库文件访问权限
  数据库文件中保存着虚拟帐号的密码信息,为了防止非法用户盗取,修改该文件的访问权限。生成的认证文件的权限应设置为只对root用户可读可写,即600
  chmod 600 /etc/vsftpd/vsftpd_virtualuser
2、配置PAM文件
3、创建虚拟帐号对应的系统用户
  对于公共帐号和客户帐号,因为需要配置不同的权限,所以可以将两个帐号的目录进行隔离,控制用户的文件访问。公共帐号ftp对应系统帐号ftpuser,并指定其主目录为/var/ftp/share,而客户帐号vip对应系统帐号ftpvip,指定主目录为/var/ftp/vip
  chmod -R 500 /var/ftp/share/ :公共帐号ftp只允许下载,修改share目录其他用户权限为rx可读可执行。 
  chmod -R 700 /var/ftp/vip/ :客户帐号vip允许上传和下载,所以对vip目录权限设置为rwx,可读可写可执行。
  如果不设置可执行用户登录会出不能更改目录错误。
(1)修改vsftpd.conf主配置文件
  配置主配置文件/etc/vsftpd/vsftpd.conf添加虚拟帐号的共同设置并添加user_config_dir字段,定义虚拟帐号的配置文件目录
  禁用匿名用户登录并启用本地用户登录设置
  anonymous_enable=NO 
  local_enable=YES
  将所有本地用户限制在家目录中,NO则不限制
  chroot_local_user=YES
  pam_service_name=vsftpd:配置vsftpd使用的PAM模块为vsftpd 
  user_config_dir=/etc/vsftpd/vuserconfig:设置虚拟帐号的主目录为/vuserconfig 
  max_clients=300:设置FTP服务器最大接入客户端数为300个 
  max_per_ip=10:设置每个IP地址最大连接数为10个
2)建立虚拟帐号配置文件
  在user_config_dir指定路径下,建立与虚拟帐号同名的配置文件并添加相应的配置字段哈~
  首先建立公共帐号ftp的配置文件
  guest_enable=yes:开启虚拟帐号登录 
  guest_username=ftpuser:设置ftp对应的系统帐号为ftpuser 
  anon_world_readable_only=no:允许匿名用户浏览器整个服务器的文件系统
  anon_max_rate=50000:限定传输速率为50KB/s
 然后建立客户帐号的配置文件vip
  guest_enable=yes:开启虚拟帐号登录 
  guest_username=ftpvip:设置ftp对应的系统帐号为ftpvip 
  anon_world_readable_only=no:允许匿名用户浏览器整个服务器的文件系统 
  write_enable=yes:允许在文件系统写入权限 
  anon_mkdir_write_enable=yes:允许创建文件夹 
  anon_upload_enable=yes:开启匿名帐号的上传功能 
  anon_max_rate=100000:限定传输速度为100KB/s

 重启vsftpd使配置生效 测试

免责声明:文章转载自《FTP服务器高级配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python+Appium学习篇之WebView处理获取电脑实时CPU使用率下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java上传图片到Ftp,包含上传后文件大小为0的问题和Properties配置文件的读取

准备工作:需要使用coomos-net jar包。下载地址 一、 上传图片到FTP,文件大小为0的问题,解决:将ftp模式修改为Passive模式就可以了。 //将ftp模式修改为Passive模式 ftpClient.enterLocalPassiveMode(); 二、配置文件的操作,具体介绍请看 Java中Properties类的用法总结 1.使用...

Azkaban简介和使用

概述 为什么需要工作流调度系统 l 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序、hive脚本等 l 各任务单元之间存在时间先后及前后依赖关系 l 为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行; 例如,我们可能有这样一个需求,某个业务系统每天产生20G原始数据,我们每天...

QT程序在windows下部署发布

转载:http://www.cnblogs.com/Fan_Fan/archive/2010/05/29/1746860.html QT程序在windows下部署发布 以下包括了部分网上收集的,以及qt帮助里的内容(Deploying an Application on Qt/Windows) 首先,打开windows控制台,然后,找到vs安装目录下的bi...

How to Install VMware Tools in Arch Linux (Manjaro Linux)

by adminOctober 2, 2019VMware Tools incorporates many features that enhance the operation of VMware Workstation. For example, you can activate copy and pasting from documents on t...

用git如何把单个文件回退到某一版本

暂定此文件为a.jsp 1.首先到a.jsp所在目录: 通过 git  log a.jsp 查看a.jsp的更改记录 2.找到想要回退的版本号:例如 fcd2093 通过 git reset  fcd2093 a.jsp 把文件回退 3.提交本次回退 git commit -m "注释内容" 4.选中该文件 git checkout a.jsp...

Dockerfile构建容器镜像

在Docker的运用中,从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低。所以就需要一 种文件或脚本,我们把想执行的操作以命令的方式写入其中,然后让docker读取并分析、执行,那么重复构建、更新将变得很方便,所以Dockerfile就此诞生了。Docker提供了Dockerfile作为构建Do...