Linux下FTP服务器的安装和简单配置

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
运维安全中心(堡垒机),企业双擎版 50资产 7天
简介:
为方便讲解我这里准备了两台Linux系统(一台用做服务器一台为客户机访问)。
创建测试用的本地用户(我这里已经创建好了 略)
 
安装vsftpd
查看到vsftpd服务器的配置文件保存在/etc目录和它的子目录中:
查看vsftpd服务器的主配置文件vsftpd.conf
查看vsftpd.conf文件中的配置项:
若有必要可使用   man vsftpd.conf查看配置帮助信息。
 
文件vsftpd.ftpuser位于/etc目录下,用于保存不允许进行FTP登录的本地用户的帐户(这些帐户包括root用户在内,一般都是存储一些权限较大的用户,为安全性考虑),其中nobody是相当于Windows中的Guest帐户(来宾帐户):
文件vsftpd.user_list文件位于/etc目录中,具有与vsftpd.ftpusers文件类似的访问控制功能,但是使用起来更加灵活:
vsftpd.user_list文件需要与主配置文件vsftpd.conf的配置项结合来实现对于vsftpd.user_list文件中指定用户帐号的访问控制:
userlist_enable=YES
userlist_deny=YES
时则表示禁止该文件的用户访问FTP服务器
userlist_enable=YES
userlist_deny=NO
时则表示允许该文件的用户访问FTP服务器
我这里先则的是允许该文件的帐户访问FTP服务器:
vi  /etc/vsftpd/vsftpd.conf
注:userlist_deny=NO需要管理员手动添加并修改。
vi  /etc/vsftpd.user_list
匿名用户登录FTP服务器时将进入/var/ftp目录,并将该目录作为根目录,即匿名用户不能离开该目录,只能进入该目录的子目录:
V sftpd服务的启动和关闭:
 
vsftpd服务器的启动脚本文件位于/etc/init.d/目录下名为vsftpd的文件,且在这里配置vsftpd服务在35系统启动级别时,随系统自启动:
启动vsftpd服务:
linux客户机测试FTP用户登录:
OK!登录成功,从上面可以看出如果我用的本地用户,可以通过cd命令来进入我的/根目录,这样显然是不安全的,我们再做如下操作即可把它禁锢在其宿主目录中:
配置将FTP本地用户禁锢在宿主目录中:
vsftpd服务器的配置文件vsftpd.conf中添加配置项chroot_local_user设置为YES,再重启vsftpd服务程序:
再到客户机去测试:
 
从上图可以看出我们用pwd显示时不再是/home/tom目录了而是直接说我们现在处在/目录下,再次也是一样的),证明禁锢成功。
 
目标:配置FTP服务器的虚拟用户
环境介绍:接着上面的环境走(呵呵!)
建立虚拟用户口令库文件:
vi /var/logins.txt
注:这里单行为FTP登录的用户名,双行则为FTP上面单行用户登录时的口令。
生成vsftpd的认证文件:
注:这里的/var/logins.txt文件是我前面创建的虚拟用户口令库文件,这里就是根据它来生成的认证文件。
为安全起见配置vsftpd_login.db文件的权限为只对root用户可读可写,即:600
建立虚拟用户所需的PAM配置文件:
vi /etc/pam.d/vsftpd.vu
此文件默认没有用上面的指令创建并添加发下两行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
 
建立虚拟用户及要访问的目录并设置相应的权限:
useradd  d /home/ftpsite virtual指令的意思为创建virtual用户并为其创建宿主目录ftpsite(这样它就不会创建与其用户名同名的宿主目录了),并给其配置权限。
useradd  d  /home/ftpsite virtual
chmod  706  /home/ftpsite    
配置vsftpd.conf配置文件:
注:在配置vsftpd.conf配置文件时请先备份其文件,以免出现配置错误时可进行修复。
 
vi  /etc/vsftpd/vsftpd.conf
guest_enable=YES表示启用虚拟用户登录FTP
guest_username=virtual  表示 通过virtual帐户做为中间(类似进入皇宫时的令牌)
pam_service_name=vsftpd.vu认证模块所指向的文件
userlist_deny=YES(此行这样改的意思是因为我们之前将其改为NO便是允许vsftpd.user_list文件中用户来访问FTP服务器,但我并未将虚拟用户添加进去,这里我们禁用[即此文件的用户不可能访问FTP服务器,它便会读我们的虚拟用户了],否则会显示530错误。
 
重启vsftpd服务程序:
测试作用虚拟用户登录:
 
对不同的虚拟用户设置不同的权限:
 
设置主配置文件:
vi  /etc/vsftpd/vsftpd.conf
进入vsftpd的主配置文件添加如下行:
 
建立用户配置文件目录:
/etc/vsftpd_user_conf目录中为每个虚拟用户建立独立的配置文件,配置文件名称和用户名同:
在创建的文件中为每个用户配置相应在权限:
测试:
 
上图证明test001没有写入权限,而test002则有创建目录的权限。
目标:在vsftpd服务器中限制客户机连接数和传输速率
修改vsftpd主配置文件/etc/vsftpd/vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
添加如下几行:
max_clients=3(表示最大客户连接数量为3个)
max_per_ip=1(表示配置FTP服务器对于同一个IP地址的最大连接数为1[即只允许一个线程]
local_max_rate=50(表示本地用户的最大传输速率为50KB/s
anon_max_rate=20(表示匿名用户[包括虚拟用户]最大传输速率为20KB/s
重启vsftpd服务:
测试:
上图表示我在同一个机器已经有一个连接,不能再连接了,需要连接成功则需关闭现有连接。
上图为我超过了FTP服务器允许的最大连接数的错误信息。



本文转自 tomsjack  51CTO博客,原文链接:http://blog.51cto.com/tom110/189844
相关文章
|
10天前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
166 78
|
1月前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
180 15
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
15天前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
|
21天前
|
存储 弹性计算 安全
阿里云服务器配置选择策略参考及后期使用注意事项
对于初次购买阿里云服务器的一些新手用户来说,在云服务器配置选择和后期使用过程中有一些不清楚的地方,小编分享几点阿里云服务器配置选择策略,以及后期使用注意事项,购买过程中注意好下面这些事项,能让我们选对选好阿里云服务器,购买之后,在使用过程中,注意下面这些事项,能够让我们更好、更安全的使用阿里云服务器。下面是小编分享的一份详尽的阿里云服务器配置与使用指南,以供参考和借鉴。
|
25天前
|
安全 编译器 Linux
深入解析与防范:基于缓冲区溢出的FTP服务器攻击及调用计算器示例
本文深入解析了利用缓冲区溢出漏洞对FTP服务器进行远程攻击的技术,通过分析FreeFlow FTP 1.75版本的漏洞,展示了如何通过构造过长的用户名触发缓冲区溢出并调用计算器(`calc.exe`)。文章详细介绍了攻击原理、关键代码组件及其实现步骤,并提出了有效的防范措施,如输入验证、编译器保护和安全编程语言的选择,以保障系统的安全性。环境搭建基于Windows XP SP3和Kali Linux,使用Metasploit Framework进行攻击演示。请注意,此内容仅用于教育和研究目的。
70 4
|
2月前
|
安全 Linux 应用服务中间件
从零开始启动、配置、保护你的云服务器并搭建一个简单的网站
本文详细介绍了如何准备原料、搭建基础环境、进行安全防护、建设网站、管理证书以及开启BBR优化网络性能。主要内容包括获取健康云服务器、配置SSH登录、创建非root用户、启用密钥认证、安装Nginx、申请TLS证书、配置HTTPS自动跳转及优化网络性能等步骤。通过本文,读者可以掌握从零开始搭建个人网站的全过程。
55 2
从零开始启动、配置、保护你的云服务器并搭建一个简单的网站
|
1月前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
2月前
|
存储 人工智能 弹性计算
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理。通过合理优化资源分配、利用自动伸缩及高效数据管理,ECS能显著提升AI系统的性能与效率,降低运营成本,助力科研与企业用户在AI领域取得突破。
72 6
W9
|
2月前
|
运维 关系型数据库 MySQL
轻松管理Linux服务器的5个优秀管理面板
Websoft9 应用管理平台,github 2k star 开源软件,既有200+的优秀开源软件商店,一键安装。又有可视化的Linux管理面板,文件、数据库、ssl证书方便快捷管理。
W9
131 1
|
1月前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。