简易的vsftpd服务器的架设

本文涉及的产品
运维安全中心(堡垒机),企业双擎版|50资产|一周时长
运维安全中心(堡垒机),免费版 6个月
简介:

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。vsftpd 的名字代表"very secure FTP daemon", 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。vsftpd - 特点

vsftpd 是以一般身份启动服务,所以对于 Linux 系统的使用权限较低,对于Linux 系统的危害就相对的减低了。此外, vsftpd 亦利用 chroot() 这个函式进行改换根目录的动作,使得系统工具不会被vsftpd 这支服务所误用;
      ②任何需要具有较高执行权限的 vsftpd 指令均以一支特殊的上层程序( parent process ) 所控制 ,该上层程序享有的较高执行权限功能已经被限制的相当的低,并以不影响Linux 本身的系统为准;

所有来自 clients 端,想要使用这支上层程序所提供的较高执行权限之vsftpd 指令的需求,均被视为『不可信任的要求』来处理,必需要经过相当程度的身份确认后,方可利用该上层程序的功能。例如chown(), Login 的要求等等动作;

此外,上面提到的上层程序中,依然使用 chroot() 的功能来限制使用者的执行权限。

ubuntu系统如下 sudo apt-get install vsftpd

 centos系统如下 yum -y install vsftpd
  这里我就安装RPM包了,其它的安装方法就不提了,,不懂的可以查阅相关资料

首先查看是否安装了vsftpd,如果安装,可以直接使用  

如果没安装,使用RPM包进行安装

 建立ftp用户及其主目录,若本来就存在ftp用户,则不需要新建 我的已经建好了,具体创建方法如下:

  

建立vsftp需要的特殊目录:

Mkdir  -p  /usr/share/empty

如果想要移除vsftp 时,可以这样做
rm /usr/sbin/vsftpd   或是  rm /usr/local/sbin/vsftpd

rm /usr/local/man/man5/vsftpd.conf.5
rm /usr/local/man/man8/vsftpd.8
rm /etc/xinetd.d/vsftpd
rm /etc/vsftpd.conf  或是rm /etc/vsftpd/vsftpd.conf
因为刚刚安装只有安装这几个档案文件而已,所以,vsftpd 真的是挺安全的说!

启动和关闭vsftpd

启动vsftp 可以采用3中方式:inetdxinetdstandalone(独立)工作模式,由于目前使用的xinetd扩展了inetd,它比inetd更加高效和实用,所以主要以xinetd以及standalone两种启动方式

编辑vsftpd启动配置文件 将disable  = yes 该为 disable = no

确认xinetd.d没有问题  重启vsftpd

 

还没有配置/etc/vsftpd/vsftpd.conf  所以无法登陆还

Vsftpd的包结构 (企业版的RedHat 不同的版本可能有所不通)

/etc/vsftpd/vsftpd.conf     主配置文件

/etc/vsftpd/banner_emails         该文件与匿名登录有关

/usr/sbin/vsftpd/            这是vsftpd的主要执行文件

/etc/vsftpd/user_list        文件中指定的用户是否可以访问ftp服务器由vsftpd.conf文件中userlist_deny的取值决定的

/etc/vsftpd/ftpusers       设置不允许登陆的用户

/etc/pam.d/vsftpd     利用pam模块来进行身份确认的动作   看/etc/pam.d/vsftpd的内容即可知道是否使用/etc/vsftpd.ftpusers/etc/vsftpd/ftpusers


带红色下划线的就是限制用户无法使用vsftpd的主配置文件

Vsftpd.conf设置说明

connect_from_port_20=YES(NO)

该设置项是在启动主动连接的端口20

 listen_port=21
使用的 vsftpd命令通道的 port number 设定,如果您想要使用非正规的 ftpport,在这个设定项目修改
dirmessage_enable=YES(NO)

当使用者进入某个目录时,会显示该目录需要注意的内容,显示的文件.message ,当然可以使用下面的设定项目来修该。

message_file=.message
当 dirmessage_enable=YES时,可以设定这个项目来让 vsftpd寻找该文件来显示信息,也可以设定其他文件名

listen=YES(NO)
若设定为YES 表示 vsftpd 是以 standalone 的方式来启动的!
pasv_enable=YES(NO)
启动被动式连接(passivemode),一定要设定为 YES 

use_localtime=YES(NO)
是否使用主机的时间?!预设使用GMT 时间(格林威治),会比北京时间晚8小时,一般来说,建议设定为 YES 吧!

write_enable=YES(NO)
是否允许使用者具有写入的权限?!这包括删除与修改等功能喔!
connect_timeout=60

单位是秒s,如果client 尝试连接我们的 vsftpd 命令通道超过 60 秒,则不等待,强制断线咯。

accept_timeout=60
当使用者以被动式PASV 来进行数据传输时,如果主机启用 passive port并等待 client超过60 秒,那么就给他强制断线!可以修改数值 60 
data_connection_timeout=300
如果 client与 Server 间的数据传送在 300 秒内都无法传送成功,那 Client的联机就会被我们的 vsftpd 强制切断
idle_session_timeout=300

如果使用者在300 秒内都没有任何命令动作,强制离线!
max_clients=0
如果 vsftpd是以 stand alone 方式启动的,那么这个设定项目可以设定同一时间,最多有多少client 可以同时连上 vsftpd 哩!?
max_per_ip=0
与上面 max_clients类似,这里是同一个 IP 同一时间可允许多少联机?
pasv_max_port=0

pasv_min_port=0
上面两个是与passive mode 使用的端口号有关,如果您想要使用65400 65410 这 11 个 port 来进行被动式数据的连接,可以这样设定pasv_max_port=65410以及 pasv_min_port=65400
ftpd_banner=一些文字说明
当使用者无法顺利连上我们的主机,例如联机数量已经超过max_clients
的设定了,那么client 的画面就会显示『一些文字说明』的字样,你可以根据需要修改

guest_enable=YES(NO)
若这个值设定为YES 时,那么任何非 anonymous 登入的账号,均会被假设成为guest (访问者)
local_enable=YES(NO)
这个设定值必须要为YES 时,在 /etc/passwd 内的账号才能以实体用户的方式登入我们的vsftpd 主机!
local_max_rate=0
实体用户的传输速度限制,单位为bytes/second, 为不限制。
chroot_local_user=YES(NO)
将使用者限制在自己的家目录之内(chroot)!这个设定在vsftpd当中预设是NO,因为有底下两个设定项!所以不需要启动他!

chroot_list_enable=YES(NO)
是否启用将某些实体用户限制在他们的家目录内?!预设是NO ,不过,如果您想要让某些使用者无法离开他们的家目录时,可以考虑将这个设定为YES ,并且规划下个设定值
chroot_list_file=/etc/vsftpd.chroot_list
如果 chroot_list_enable=YES那么就可以设定这个项目了!他里面可以规定
那一个实体用户会被限制在自己的家目录内而无法离开!(chroot) 一行一个账号即可!

userlist_deny=YES(NO)
若此设定值为YES 时,则当使用者账号被列入到某个档案时,在该档案内的使用者将无法登入vsftpd 服务器!该档案文件名与下列设定项目有关。
userlist_file=/etc/vsftpd/user_list
若上面 userlist_deny=YES时,在这个文件内的账号都无法使用vsftpd 
关于匿名者登入的设定值
anonymous_enable=YES(NO)
设定为允许anonymous 登入我们的 vsftpd 主机!默认是 YES 下面的所有相关设定都需要将这个设定为anonymous_enable=YES 之后才会生效!
anon_world_readable_only=YES(NO)

仅允许 anonymous具有下载可读文件的权限,默认是 YES
anon_other_write_enable=YES(NO)
是否允许anonymous 具有写入的权限?预设是 NO!如果要设定为 YES,那么开放给anonymous 写入的目录亦需要调整权限,让 vsftpd 的 PID拥有者可以写入才行!
anon_mkdir_write_enable=YES(NO)
是否让anonymous 具有建立目录的权限?默认值是 NO!如果要设定为 YES,那么 anony_other_write_enable必须设定为 YES 
anon_upload_enable=YES(NO)
是否让anonymous 具有上传数据的功能,预设是 NO,如果要设定为 YES ,则 anon_other_write_enable=YES必须设定。
deny_email_enable=YES(NO)
拒绝某些特殊的email address ,不让那些 anonymous 登入!如果以 anonymous登入主机时,就会输入您的email address 如果你很讨厌某些 email address ,就可以使用这个设定来将他取消登入的权限!需与下个设定项目配合:

banned_email_file=/etc/vsftpd.banned_emails
如果 deny_email_enable=YES时,可以利用这个设定项目来规定那个email address不可登入我们的 vsftpd 喔!在上面设定的档案内,一行输入一个email address 即可!
no_anon_password=YES(NO)
当设定为YES 时,表示 anonymous 将会略过密码检验步骤,而直接进入vsftpd 服务器内喔!所以一般预设都是 NO 的!
anon_max_rate=0
这个设定值后面接的数值单位为bytes/秒 ,限制 anonymous 的传输速度,如果是 0则不限制(由最大频宽所限制),如果您想让 anonymous 仅有30 KB/s 的速度,可以设定『anon_max_rate=30000
anon_umask=077
限制 anonymous的权限!如果是 077 则 anonymous 传送过来的档案权限会是-rw------- 
关于系统安全的设定值:
ascii_download_enable=YES(NO)
如果设定为YES ,那么 client 就可以使用 ASCII 格式下载档案。一般来说,由于启动了这个设定项目可能会导致DoS 的攻击,因此预设是NO
ascii_upload_enable=YES(NO)
与上一个设定类似的,只是这个设定针对上传而言!预设是NO

async_abor_enable=YES(NO)
如果您的FTP client 会下达 "async ABOR" 这个指令时,这个设定才需要启用一般来说,由于这个设定并不安全,所以通常都是将他取消的!
check_shell=YES(NO)
如果您想让拥有任何特殊shell 的使用者(在 /etc/passwd 的 shell 字段)可以使用vsftpd 的话,这个设定可以设定为 NO 
one_process_model=YES(NO)
这个设定项目比较危险一点~当设定为YES 时,表示每个建立的联机都会拥有一支process 在负责,可以增加 vsftpd 的效能。不过,除非您的系统比较安全,而且硬件配备比较高,否则容易耗尽系统资源!一般建议设定为NO 
tcp_wrappers=YES(NO)
我们都习惯支持TCP Wrappers !所以设置为 YES
xferlog_enable=YES(NO)
当设定为YES 时,使用者上传与下载文件都会被纪录起来。记录文件与下一个设定项目有关:
xferlog_file=/var/log/vsftpd.log
这是日志的文件名如果上一个xferlog_enable=YES 的话,这里就可以设置。
xferlog_std_format=YES(NO)
是否设定为wu ftp 相同的日志文件格式。默认为 NO ,因为日志文件比较容易读!不过,如果您有使用wu ftp 登录文件的分析软件,这里才需要设定为 YES
nopriv_user=nobody
vsftpd默认以 nobody 作为此服务执行者的权限。因为 nobody 的权限相当的低,因此即使被入侵,入侵者仅能取得nobody 的权限!
pam_service_name=vsftpd
这个是 pam模块的名称,我们放置在 /etc/pam.d/vsftpd 即是这个!

上面的这些都是很常见的vsftpd的设置参数,还有很多没有列出来,你可以使用man 5 vsftpd.conf 查阅 。。。不过,以上这些参数基本上已经够我们设置了。



本文转自 abc16810 51CTO博客,原文链接:http://blog.51cto.com/abc16810/993028

相关文章
|
7月前
|
弹性计算 数据安全/隐私保护
2024年阿里云雾锁王国/Enshrouded服务器搭建架设教程(保姆级)
随着游戏行业的日新月异,玩家们对游戏体验的期待也不断攀升。阿里云针对这一需求,推出了快速、便捷的游戏联机服务器一键部署方案。在本篇教程中,我们将向大家展示如何在短短的10秒钟内,利用阿里云服务器轻松搭建雾锁王国游戏服务器,为您的游戏体验增添更多流畅与顺畅。跟随我们的步骤,让您的游戏世界更加精彩!
|
7月前
|
Web App开发 安全 Unix
Linux 配置FTP服务器 + vsftpd服务安装配置 (Good篇)
Linux 配置FTP服务器 + vsftpd服务安装配置 (Good篇)
201 1
|
7月前
|
弹性计算 Linux 数据安全/隐私保护
1分钟幻兽帕鲁社区服务器搭建架设开服教程(Linux)
1分钟幻兽帕鲁社区服务器搭建架设开服教程(Linux)玩转幻兽帕鲁服务器,幻兽帕鲁Palworld多人游戏专用服务器一键部署教程,阿里云推出新手0基础一键部署幻兽帕鲁服务器教程,傻瓜式一键部署,3分钟即可成功创建一台Palworld专属服务器,成本仅需26元,阿里云百科分享2024年新版基于阿里云搭建幻兽帕鲁服务器教程
133 3
|
7月前
|
Linux 应用服务中间件 nginx
国服浪潮服务器操作系统——KeyarchOS多容器架设体验心得
国服浪潮服务器操作系统——KeyarchOS多容器架设体验心得
119 0
|
7月前
|
弹性计算 Ubuntu Linux
帕鲁服务器多少钱?2024年幻兽帕鲁服务器搭建架设教程(保姆级)
帕鲁服务器多少钱?阿里云帕鲁服务器26.52元1个月在帕鲁的世界中,与神奇的生物共度悠闲时光是一种无与伦比的乐趣。然而,有时官方服务器的不稳定性可能会给游戏体验带来延迟和卡顿。 为了告别这些问题,部署自己的幻兽帕鲁服务器成为了一个不错的选择。通过搭建专属的游戏服务器(Dedicated Server),和小伙伴们获得一个专属的服务空间,获得顺畅流畅的游戏体验。 在本文中,我们将介绍如何使用自己的服务器来部署属于自己的幻兽帕鲁服务器,与小伙伴们共同展开一场精彩的冒险之旅。
245 0
|
SQL jenkins Linux
一篇文章了解开源 FTP 服务器 vsftpd
一篇文章了解开源 FTP 服务器 vsftpd
|
Ubuntu Linux 网络安全
百度搜索:蓝易云【ubuntu系统使用vsftpd搭建FTP服务器。】
现在您已经成功在Ubuntu系统上使用vsftpd搭建了FTP服务器。请注意,这些步骤适用于Ubuntu系统,如果您使用的是其他Linux发行版,请查阅相应的文档或指南进行操作。
274 0
|
Linux 网络安全 开发工具
【Linux】【CentOS】【FTP】FTP服务器安装与配置2(vsftpd、lftp)
【Linux】【CentOS】【FTP】FTP服务器安装与配置(vsftpd、lftp)
404 1
【Linux】【CentOS】【FTP】FTP服务器安装与配置2(vsftpd、lftp)
|
安全 Linux 数据安全/隐私保护
谁再说不会搭建vsftpd,就把这个脚本给他扔过去!——CentOS7下一键脚本搭建虚拟用户模式的vsftpd服务器
谁再说不会搭建vsftpd,就把这个脚本给他扔过去!——CentOS7下一键脚本搭建虚拟用户模式的vsftpd服务器
435 0
谁再说不会搭建vsftpd,就把这个脚本给他扔过去!——CentOS7下一键脚本搭建虚拟用户模式的vsftpd服务器
|
安全 Linux 网络安全
CentOS7下搭建vsftpd服务器(本地用户模式)
CentOS7下搭建vsftpd服务器(本地用户模式)
525 0
CentOS7下搭建vsftpd服务器(本地用户模式)