热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

linux运维之搭建出符合自己要求的vsftp服务

当我们在服务器上安装好了vsftpd这个软件后,并且已经理解该软件的主配置文件etcvsftpdvsftpd.conf后,我们就可以搭建出自己想要的ftp服务了。
当我们在服务器上安装好了vsftpd这个软件后,并且已经理解该软件的主配置文件/etc/vsftpd/vsftpd.conf后,我们就可以搭建出自己想要的ftp服务了。

指定端口等

listen_port=21 设置监听的端口

download_enable=YES 允许下载文件

max_clients=100 限制并发客户端连接数

max_per_ip=100 限制统一ip的并发链接数

禁止匿名、实体用户登陆

首先把匿名用户登陆给关了,不给匿名用户浏览权限。

anonymous_enable=NO

那么为什么不允许实体用户登陆呢?因为实体用户本就可以用更安全的sftp登陆,所以,就不用使用ftp协议登陆了。另外,因为ftp是明文传输协议,如果账号密码被截获了,那就不好了。

如何禁止实体用户登陆呢?在文章下面配置虚拟用户的第三步骤会讲到,把/etc/pam.d/vsftpd下的所有内容都注释掉。

主动连接、被动连接设置

我们想要搭建既要支持主动连接模式也支持被动连接,那么设置如下:

主动连接模式的端口设置

connect_from_port_20=YES

设置防火墙,将21端口放行,另外不用开启20端口,直接对于主机主动向外请求的而响应的数据包允许进入本机(establish/related)。

iptables -A INPUT -p tcp --dport 21 -j ACCEPT # FTP服务
iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

开启被动模式,被动连接的端口限定为10001~11000中的任意一个。

pasv_enable=YES
pasv_min_port=10001
pasv_max_port=11000

设置防火墙,允许10000~11000之间的端口开放。

iptables -A INPUT -p tcp --dport 10001::11000 -j ACCEPT # ftp被动连接端口

配置虚拟用户

配置虚拟用户的步骤如下:

  1. 建立虚拟用户口令文件

  2. 生成虚拟用户口令认证文件

  3. 编辑vsftpd的PAM认证文件

  4. 建立本地映射目录并设置宿主目录权限

  5. 修改配置文件。

  6. 给每一个虚拟用户弄一个单独的配置文件

1.建立虚拟用户的口令文件,该文件的格式为奇数行为用户名,偶数行为密码。下面建立一个这样的文件/etc/vsftpd/vusers,内容如下:

ftptest1
111111
ftptest2
222222

2.生成虚拟用户口令认证文件,执行如下命令:

db_load -T -t hash -f  /etc/vsftpd/vusers  /etc/vsftpd/login.db

当命令正确执行后,就会出现 /etc/vsftpd/login.db文件。为了安全起见,我们将该文件的权限设置为600.

chmod 600 login.db

3.编辑虚拟用户所需的PAM配置文件

vim /etc/pam.d/vsftpd

将之前的内容全部给注释掉,并新加入两行

auth    required    /lib64/security/pam_userdb.so  db=/etc/vsftpd/login 
account   required    /lib64/security/pam_userdb.so  db=/etc/vsftpd/login

注意,如果是32位的去掉lib后面64,另外login后面不用加入后缀的。这样操作之后,实体用户就不能登陆ftp服务了。

4.建立本地映射目录并设置宿主目录权限。

建立虚拟用户的宿主用户

# useradd -d /home/vsftp -s /sbin/nologin ftpuser

修改目录权限为755

# chmod 755 /home/vsftp/

5.修改配置文件。

把下面几行配置信息写入到/etc/vsftpd/vsftpd.conf配置文件中。

# 开启虚拟用户登陆功能
guest_enable=YES

# 将虚拟用户与宿主用户对应
guest_username=ftpuser

# pam认证文件(该配置默认存在)
pam_service_name=vsftpd

# vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了,所以要加入下面配置
allow_writeable_chroot=YES

6.给每一个虚拟用户建立单独的配置文件。

若想给每一个虚拟用户都建立单独的配置文件,则需要在主配置文件中加入

user_config_dir=/etc/vsftpd/config

指定虚拟用户的配置文件路径。接下来给两个虚拟用户建立各自的配置文件:

# ftptest1虚拟用户的配置文件

# 创建虚拟用户家目录
# mkdir /home/vsftp/ftptest1
# chown ftpuser:ftpuser /home/vsftp/ftptest1/

# 建立配置文件
# mkdir /etc/vsftpd/config 
# vim /etc/vsftpd/config/ftptest1  <=== 虚拟用户各自配置文件和自己的用户名对应起来

# 指定家目录
local_root=/home/vsftp/ftptest1
# 允许相关权限
download_enable=yes
anon_upload_enable=yes
anon_other_write_enable=YES
anon_mkdir_write_enable=yes
anon_world_readable_Only=no
# 设置最大传输速度,单位b/s
anon_max_rate=100000

注意:目前还没给ftptest2虚拟用于建立单独的配置文件,那么对于此用户就使用主配置文件的配置(/etc/vsftpd/vsftpd.conf)

更多相关技术文章,请访问linux系统教程栏目!

以上就是linux运维之搭建出符合自己要求的vsftp服务的详细内容,更多请关注其它相关文章!


推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 图片复制到服务器 方向变了_双服务器热备更新配置文件步骤问题及解决方法
    本文介绍了在将图片复制到服务器并进行方向变换的过程中,双服务器热备更新配置文件所出现的问题及解决方法。通过停止所有服务、更新配置、重启服务等操作,可以避免数据中断和操作不规范导致的问题。同时还提到了注意事项,如Avimet版本的差异以及配置文件和批处理文件的存放路径等。通过严格执行切换步骤,可以成功进行更新操作。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文详细介绍了Vim编辑器中的三种模式(命令模式、末行模式和编辑模式)以及它们之间的操作区别和切换方法。Vim编辑器凭借其多种命令快捷键和高效率的操作方式,得到了广大厂商和用户的认可。对于想要高效操作文本的用户来说,了解这些模式的使用方法是必不可少的。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
author-avatar
mobiledu2502901883
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有