linux vsftp安全配置
vsftp配置安装以及权限设置

vsftpd FTP服务器架设在windows上完了完server-u,很简单,一个小时就能完成ftp服务器的假设,在liunx下要架设一个ftp就没那么容易了,在网上找了找资料在windows上架设 FTP 首选 Server-u,看看资料,点点下一步,基本上10分钟就能架设一个ftp服务器了,在linux下面架设ftp服务器,确实费了我一番功夫,现在想起来,需要总结的就是看资料的时候一定要全面,并且做好一个资料要看完。
最终我选择了 vsFTPd是一款在Linux发行版中最受推崇的FTP服务器程序。
特点是小巧轻快,安全易用。
vsftpd (号称最安全的ftp 服务器)下面讲下linux 下使用vsftpd 的步骤:1.首先下载需要的软件,双机直接安装:a.vsftpd-2.0.1-5.EL4.5.i386.rpm (在liunx4 的第一张光盘)b.db4-utils-4.2.52-7.1.i386.rpm (在liunx4 的第三张光盘) ,用来加密虚拟用户密码等文件的工具2.启动vsftpd服务在控制台执行 service vsftpd start ,如果没有什么问题,你可以看到服务启动的进程号,如果出现了问题,你可以试着将 gssftp 这个服务停掉,执行service vsftpd stop 因为这个服务或许会造成冲突查看vsftpd服务器启动情况 service vsftpd status3.用客户端工具连接ftp服务器在window操作系统下,打开命令提示符,输入 ftp 133.64.81.164 回车然后使用默认的用户名(ftp)和密码(ftp) ,就可以登录ftp服务器了,或者你也可以使用系统用户的用户名和口令登录ftp服务器。
经过以上3个步骤我们就完成了ftp服务器的假设,但是这里有许多问题a.安全性,匿名用户也可以登录,进行操作b.用户登录以后并没有锁定目录c.用户的权限配置没有体现还有其他的问题,基于这些问题,需要我们了解下 vsftpd的工作原理,上面的操作都是基于一下的3个配置文件的vsftp相关配置文件说明/etc/vsftpd/vsftpd.conf/etc/vsftpd.ftpusers/etc/er_list其中,/etc/vsftpd/vsftpd.conf 是主配置文件。
Linux下的VSFTP服务黑名单白名单的策略配置

龙源期刊网 Linux下的VSFTP服务黑名单白名单的策略配置
作者:帅志军
来源:《科学大众》2019年第10期
摘; ;要:文件传输协议是专门用于文件传输的一种协议,是在互联网中应用最为广泛的协议之一,为了确保网络中文件共享的安全,必須对用户进行甄别,所以,建立黑名单白名单的策略显得尤为重要。
关键词:VSFTP服务;黑名单;白名单
1; ; VSFTP服务的简介
VSFTP是一种基于通用公共授权(General Public License,GPL)发布的一种服务,其中VS是“Very Secure”的简写,从字面上理解可以看出该软件编写的目的就是代码的安全性保障,当然除了安全性更强外,高速和稳定的特性也是VSFTP的特色。
2; ; 任务一:设置用户黑名单
具体步骤:(1)在虚拟机中准备两个虚拟Linux操作系统,一台为Linux服务器,另一
台为Linux客户端,此客户端用于测试使用。
两个系统都要安装好FTP服务。
linux下配置FTP服务器步骤

一、创建匿名FTP服务器的方法1。
增加新用户ftp,设置其主目录对任何用户都无写权限;2。
新建立一个组anonymou,它只能被匿名ftp使用;3.在ftp用户的主目录下创建一个bin目录,它属于root用户,而且对任何用户都不能写;4。
在ftp用户主目录下创建一个etc目录,它属于root用户,而且对任何用户都不能写;5.在ftp用户主目录下创建一个public目录,它属于ftp用户,而且对任何用户都能写。
如果由于安全等原因,您不允许其他用户在您的计算机上具有存储能力,那么您可以将其权限设置成555;6.将ls程序放到已创建的bin目录下,并将其修改成111方式,即对任何用户只能执行;7。
在已创建的etc目录下,创建passwd和group两个文件,并将它们设置成444方式(只读)。
二、创建匿名FTP---—在Unix下用root登录,然后按下列步骤逐步建立FTP服务器.1.建立新组anonymou----#mkgroupanonymou2.建立新用户ftp,且ftp用户属于anonymou组—--—#mkuserpgrp=‘nonymou'home=‘ /u/anonymou’ftp3。
在用户目录下建立相关的目录#cd/u/anonymou#mkdiretc#mkdirbin#mkdirpublic4。
将ls拷贝到/usr/anonymou/bin下,并设置其读写属性#cp/bin/ls./bin#chmod111。
/bin/ls5.创建/u/anonymou/etc/group文件————在该文件中增加一行:anonymou:!:201:6.创建/u/anonymou/etc/passwd文件--—-在该文件中增加一行:ftp:*:213:201::/u/anonymou:/bin/ksh7。
修改/u/anonymou/etc/group文件和/u/anonymou/etc/passwd文件的属性#chmod444/u/anonymou/etc/passwd—--—#chmod444/u/anonymou/etc/group8。
杨海艳-主讲-linux之VsFTP配置步骤截图

vsftp的配置步骤讲解说明主讲人:杨海艳然后vim /etc/vsftpd/vsftpd.confservice vsftpd restart【案例1】建立基于虚拟用户的FTP服务器,并根据以下要求配置FTP服务器。
(1)配置FTP匿名用户的主目录为/var/ftp/anon。
下载带宽限制为100kB/s(2)建立一个名为abc,口令为xyz的FTP账户。
下载带宽限制为500kB/s。
(3)设置FTP服务器同时登录到FTP服务器的最大链接数为100;每个IP最大链接数为3;用户空闲时间超过限值为5分钟。
mkdir /var/ftp/anonuseradd abcpasswd abcvim /etc/vsftpd/vsftpd.conf主要内容如下anonymous_enable=YESanon_root=/var/ftp/anonanon_max_rate=100000# Uncomment this to allow local users to log in.local_enable=YESlocal_max_rate=500000max_clients=100max_per_ip=3connect_timeout=300以上是本地的LOCAL用户下面是用虚拟用户来实现vim /etc/vsftpd/vuser内容如下tom123生成数据库文件db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.dbchmod 600 /etc/vsftpd/vuser.dbvim /etc/pam.d/vsftpd注释掉原来的内容然后加入auth required pam_userdb.so db=/etc/vsftpd/vuseraccount required pam_userdb.so db=/etc/vsftpd/vuser最后编辑VSFTPD.CONF加入下面两句guest_enable=YESguest_username=abc大家可以自行测试。
VSFTPD配置方法

VSFTPD配置方法1.安装VSFTPD软件首先,使用以下命令在Linux系统上安装VSFTPD软件:```sudo apt-get install vsftpd```2.配置VSFTPD打开VSFTPD的配置文件,通常位于/etc/vsftpd.conf,使用以下命令:```sudo nano /etc/vsftpd.conf```-设置FTP根目录:``````-允许匿名访问(可选):```anonymous_enable=YES```-关闭匿名上传(可选):```anon_upload_enable=NO```-允许本地用户登录:```local_enable=YES```-限制用户仅访问其主目录:```chroot_local_user=YES```将用户限制在其主目录下,防止访问系统其他部分。
-设置FTP用户的权限:```file_open_mode=0777local_umask=022```file_open_mode设置为0777将文件权限设置为可读写执行,local_umask设置为022保证新创建的文件和文件夹的权限正确。
``````3.重启VSFTPD服务使用以下命令重启VSFTPD服务,使配置生效:```sudo systemctl restart vsftpd```4.配置防火墙如果系统上使用了防火墙,需要修改防火墙规则以允许FTP流量通过。
根据所使用的防火墙软件和具体配置方法来进行相应的设置。
5.创建FTP用户使用以下命令创建一个FTP用户:```sudo adduser ftpuser```将ftpuser替换为你希望创建的FTP用户名。
6.设置FTP用户密码使用以下命令设置FTP用户的密码:```sudo passwd ftpuser```7.连接FTP服务器使用FTP客户端软件连接到配置好的VSFTPD服务器,使用FTP用户的用户名和密码登录即可。
以上就是VSFTPD配置的一般方法。
FTP服务器的安全设置方法-服务器安全设置

FTP服务器的安全设置方法:服务器安全设置FTP的隐患早期FTP并没有涉及安全问题,随着互连网应用的快速增长,人们对安全的要求也不断提高。
目前在各种平台上包括UNIX、Linux、Windows NT以及Netware 等网络操作系统,都实现了FTP的客户和服务器。
FTP是为了共享资源、方便用户文件下载而制定的文件传输协议,那么必然有对系统读写的权利,所以它也是整个网络系统的薄弱环节,一些网上的黑客常常利用FTP作为侵入和破坏系统的突破口。
他们有时利用FTP将一些监控程序装入系统,以窃取管理口令;有时利用FTP获取系统的passwd文件,从而了解系统的用户信息;有时利用FTP的puts和gets功能,增加系统负担,从而导致硬盘塞满甚至系统崩溃。
FTP主要工作原理FTP是基于客户端/服务器方式来提供文件传输服务的。
一个FTP服务器进程可同时为多个客户进程提供服务,即用户所在的一方是客户方,客户方翻译用户发出的命令,向提供FTP服务的文件服务器传送适当的请求。
服务器端则一直运行着ftpd守护程序,遵循TCP协议,服务进程ftpd在指定的通信端口监听客户发来的FTP请求,当ftpd确认该用户为合法时,就开始为其客户进程提供文件传输服务了。
因此FTP协议在客户和服务器之间通过TCP来建立连接,并利用TCP提供的可靠传输在不同的站点间传输文件。
当FTP 客户与FTP服务器进行会话时,FTP建立了两个连接,一个是控制连接,一个是数据连接,如图所示。
/UploadFiles_3263/20xx01/20xx0115085631711.jpg ” border=1>FTP的客户服务器模式在一个FTP会话中需建立一个控制连接和若干个数据连接。
控制连接是执行ftp命令时由客户建立的通向FTP服务器的连接,该连接只能用来传送FTP 执行的内部命令以及命令的响应等控制信息而非数据,数据连接是为在服务器与客户端,或两个ftp服务器之间传输文件(即FTP代理传输方式)而建立的连接,该连接是全双工的,允许同时进行双向数据的传输。
Linux下ftp的安装配置

FTP,file transfer protocol,这是档案传输的通讯协议,也是一般最常用来传送档案的方式。
读者在使用RedHat9 的时候,可能会感受到ftp server 有一些改变:第一,就是ftp server 只剩下vsftp,原有的wuftp 等都没放入﹔第二,就是vsftp 从XINET D 中独立出来,并将设定档从/etc/vsftpd.conf 之中移到/etc/vsftpd/vsftpd.conf。
社区论坛为什么做这样的改变?可以想见的是vsftp 已有独立运作的能力,不需要XINET D 来做更进一步的管控,并且类似sendmail、httpd、ssh、samba 等,将设定文件的放入/etc 下独立的目录。
FTP 分为两类,一种为PORT FTP,也就是一般的FTP﹔另一类是PASVFTP,分述如下:PORT FTP这是一般形式的FTP,首先会建立控制频道,默认值是port 21,也就是跟port 21 建立联机,并透过此联机下达指令。
第二,由FTP server 端会建立数据传输频道,默认值为20,也就是跟port 20 建立联机,并透过port20作数据的传输。
PASV FTP跟PORT FTP 类似,首先会建立控制频道,默认值是port 21,也就是跟port 21 建立联机,并透过此联机下达指令。
第二,会由client 端做出数据传输的请求,包括数据传输port 的数字。
这两者的差异为何?PORT FTP 当中的数据传输port是由FTP server 指定,而PASV FTP 的数据传输port 是由FTP client 决定。
通常我们使用PASV FTP,是在有防火墙的环境之下,透过client 与server 的沟通,决定数据传输的port。
一:安装一般系统在安装的时候都已经自带了ftp功能,所以对于linux9.0以上的版本系统自动安装了vsftpd,对于linux9.0一下的低版本系统自带的是wu-ftp,如果系统没有安装的话,可以下载软件包安装。
Linux下配置 FTP服务

Vsftpd 配置
用户 特性
登录名 密码 映射系统用户 ftp登陆目录 ftp 下载 上传 建文件夹 删除、改名
匿名用户 本地用户 anonymous、ftp 本地用户名 Email、空密码 本地密码 ftp ftp=/var/ftp/ OK NO NO NO 本地用户 用户的主目录 OK OK OK OK
ftp的欢迎语
1 在FTP的主目录下建立.message文件 写入内容,欢迎语句,support Chinese 2 在ftp的主配置文件中最后加入 ftpd_banner=welcome ….. 3 banner_file=路径加文件名
Vsftpd 配置
• • • • Lcd 命令查看本地路径 Pwd 命令查看服务器端的目录 Status 查看状态 ACSII 或是binary是二进制传输
ftp工作的模式
• • • • • pasv_enable=yes/no yes=pash&port no=port pasv模式:服务器被动开启连接 port模式:服务器主动开启连接 是否开启pasv模式,在默认的情况下 是开启的,vsftpd支持两种传输模式:
设置客户端连接的端口范围
• • • • pasv_enable=yes pasv_min_port=50000 pasv_max_port=51213 使客户连接时的端口范围在50000 和51213之间。 • 客户端使用命令passive来改变数据传 输的模式,这是个开关命令
Linux下配置 FTP服务 Linux下配置 FTP服务
Linux下配置 FTP服务
FTP简介: FTP即文件传输协议(file transport protocol), protocol),是基于TCP/IP协议的一个网 TCP/IP 络应用协议。负责在互联网上提供文件 传输应用,是ARPANet最早的网络服务 之一。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux vsftp安全配置FTP服务器面临的安全隐患FTP服务器面临的安全隐患主要包括:缓冲区溢出攻击、数据嗅探、匿名访问缺陷和访问漏洞。
VSFtp一些安全配置:1. 修改Vsftpd服务器的默认端口和修改其他设置基于安全考虑,将预设的21端口改为2123。
修改配置文件/etc/vsftpd/,在文件最后增加如下一行内容:listen_port=2123ftp_data_port=2020在实际应用中,为了增加安全性,会将FTP服务器置于防火墙之后。
修改Vsftpd 服务器的默认端口后要及时修改防火墙的端口设定。
现在服务器FTP端口为2123,数据传输端口为2020。
#iptables -A INPUT -p tcp -m multiport --dport 2123,2020 -j ACCEPT#iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset修改其他设置ls_recurse_enable=NO #关闭“ls -R"命令,该命令常被用于DoS攻击,非常浪费系统资源# ascii_download_enable=NO #关闭ASCII模式下载,防止被用于DoS 攻击,ASCII下载很消耗CPU负担2.使用BlockHosts软件防范暴力破解BlockHosts软件就是利用通过分析日志文件帮助tcp_wrappers实现工作自动化。
例如在30秒钟内一个IP地址()连续30次登录sshd服务器而且全部因为密码错误登录失败。
那么这个IP地址无疑是非法或者恶意主机。
这时BlockHosts 会自动将该IP地址写入/etc/文件。
首先编辑你的/etc/文件,一般修改security.* /var/log/security条目内容如下:security.*; /var/log/security原因很简单,这样syslogd就把连接到sshd的日志信息记录下来。
BlockHosts官方网站:,最新版本:1.0.3。
下载启动BlockHosts步骤,另外需要Python语言和SSH软件的支持。
可以使用下面命令检测。
#rpm -qa|grep Python;rpm -qa|grep ssh#wget#tar –zxvf “建立一个目录”pythonBlockHosts是基于命令行模式的,使用非常简单这里就不赘述了。
3.使用xinetd方式运行Vsftpd能以Stand-alone、xinetd两种模式运行,当用户账号比较少又经常需要连接到Vsftpd服务器时推荐使用xinetd模式运行。
使用xinetd方式运行可以有效防范DoS攻击。
从传统的守护进程的概念可以看出,对于系统所要通过的每一种服务,都必须运行一个监听某个端口连接所发生的守护进程,这通常意味着资源浪费。
为了解决这个问题,一些Linux引进了“网络守护进程服务程序”的概念。
Redhat Linux 以后的版本使用的网络守护进程是xinted(eXtended InterNET daemon)。
和stand-alone模式相比xinted模式也称Internet Super-Server(超级服务器)。
xinetd能够同时监听多个指定的端口,在接受用户请求时,他能够根据用户请求的端口不同,启动不同的网络服务进程来处理这些用户请求。
可以把xinetd看做一个管理启动服务的管理服务器,它决定把一个客户请求交给那个程序处理,然后启动相应的守护进程。
xinetd模式工作原理见图7。
图7 xinetd模式网络服务和stand-alone工作模式相比,系统不想要每一个网络服务进程都监听其服务端口。
运行单个xinetd就可以同时监听所有服务端口,这样就降低了系统开销,保护系统资源。
但是对于访问量大、经常出现并发访问时,xinetd想要频繁启动对应的网络服务进程,反而会导致系统性能下降。
察看系统为Linux服务提供那种模式方法在Linux命令行可以使用pstree命令可以看到两种不同方式启动的网络服务。
xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。
能有效的防止拒绝服务攻击(Denial of Services):从stand-alone转换到守护进程模式下:我们需要在守护进程配置目录/etc/里建立vsftpd 的守护进程文件。
我们在安装时已经将该文件考到/etc/目录下了。
我们稍稍修改其内容:#vi /etc/vsftpdservice ftp{disable = nosocket_type = streamwait = nouser = rootserver = /usr/local/sbin/vsftpdserver_args = /etc/vsftpd/nice = 10}接下来把配置文件中的listen=yes或listen_ipv6=yes去掉,停掉vsftpd服务,重启xinetd服务:# sesrvice vsftpd stop# service xinetd restart重新启动守护进程后,vsftpd 服务就会让守护进程来管理了。
在守护进程管理过程中,我们再修改主配置文件的话,就不需要重新启动服务了。
a、限制同时运行的进程数。
通过设置instances选项设定同时运行的并发进程数:instances=20当服务器被请求连接的进程数达到20个时,xinetd将停止接受多出部分的连接请求。
直到请求连接数低于设定值为止。
限制一个IP地址的最大连接数:通过限制一个主机的最大连接数,从而防止某个主机独占某个服务。
per_source=5这里每个IP地址可以连接单个IP地址的连接数是5个。
b.限制负载。
xinetd还可以使用限制负载的方法防范拒绝服务攻击。
用一个浮点数作为负载系数,当负载达到这个数目的时候,该服务将暂停处理后续的连接:max_load =上面的例子中当一项系统负载达到时,所有服务将暂时中止,直到系统负载下降到设定值以下。
说明要使用这个选项,编译时要加入--with-loadavg ,xinetd将而已处理max-load配置选项。
从而在系统负载过重时关闭某些服务进程,来实现某些拒绝服务攻击。
c.限制所有服务器数目(连接速率)。
xinetd可以使用cps选项设定连接速率,下面的例子:cps = 25 60第一个参数表示每秒可以处理的连接数,如果超过了这个连接数之后进入的连接将被暂时停止处理;第二个参数表示停止处理多少秒后继续处理先前暂停处理的连接。
即服务器最多启动25个连接,如果达到这个数目将停止启动新服务60秒。
在此期间不接受任何请求。
使用上面指令有助于防止某个xinetd 服务大量占用系统,从而导致“拒绝服务”情况的出现。
关于TCP WrappersTCP Wrappers的作用,就是通过分析TCP网络数据包,根据其包头的IP地址和端口号,决定是否让这个数据进入到主机之中,因此我们也可以把它当成一个最内层的防火墙。
数据包要进入ftp服务器,首先经过netfilter的过滤,通过TCP Wrappers筛选,守护进程(xinetd模式)限制,最后才能交由vsftpd进程来处理。
我们可以设置TCP Wrappers来限制某些主机能或者不能访问ftp服务器,这需要编辑两个文件:/etc//etc/当数据包通过TCP Wrappers筛选时,/etc/文件会首先读取,然后再读取/etc/文件,就是说/etc/优先级要高一些。
这两个文件设置规则如下:<service_name>:<IP, domain,hostname,network>:<allow|deny><service_name>字段是服务名,也就是/etc/目录下存在的文件名;第二个字段是可以是IP、域名、一台主机或者一个网段;第三个字段表示允许通过或者禁止。
具体看下面的例子:vsftpd: 2.0.52.0.52.0.01注vsftpd服务器日志网络管理员应当记录vsftpd服务器所有日志,它记录了系统每天发生的各种各样的事情,包括哪些用户曾经或者正在使用系统,可以通过日志来检查错误发生的原因,更重要的是在系统受到黑客攻击后,日志可以记录下攻击者留下的痕迹,通过查看这些痕迹,系统管理员可以发现黑客攻击的某些手段以及特点,从而能够进行处理工作,为抵御下一次攻击做好准备。
这里推荐使用AWStats它是在Sourceforge上发展很快的一个基于Perl的WEB日志分析工具。
现今它也可以用来分析多种日志包括:Apache 、proftp、wuftp、vsftp、Postfix, Sendmail, QMail。
现在介绍一下用它来分析vsftp日志的安装配置方法。
(1)软件下载安装#mkdir /var/www/html/syc ;cd /var/www/html/syc;#wget# tar zxvf /usr/local/src/ ;mv awstats# chmod 755 /var/www/html/syc/awstats ;mkdir -p /var/www/cgi-bin/awstats #mv /var/www/html/syc/awstats/wwwroot/cgi-bin/* /var/www/cgi-bin/awstats #说明下载的软件版本一定要大于,之前版本有安全漏洞。
(2)修改配置文件/etc/vsftpd/ ,添加以下内容:xferlog_enable=YESxferlog_std_format=YESxferlog_file=/var/log/(3)清空旧日志文件内容:true > /var/log/(4)重新啟動vsftpd 服务器# /etc/vsftpd restart(5)建立日志文件目录# mkdir /etc/awstats# cp /var/www/cgi-bin/awstats/ /etc/awstats/# mkdir /var/www/html/syc/awstats/data(6)修改缺省配置文件LogFile="/var/log/LogType=F#LogFormat=1LogFormat="%time3 %other %host %bytesd %url %other %other %method %othe r %logname %other %code %other %other"LogSeparator="\s"SiteDomain=" " #主机名称#HostAliases="localhost " #域名、服务器名、别名#DNSLookup=0 #不逆向解析域名#DirData="/var/www/html/syc/awstats/data" #日志文件存放目录#DirCgi="/cgi-bin/awstats" # CGI统计脚本目录#DirIcons="/syc/awstats/wwwroot/icon" #图标在Web服务器apache对应目录# MiscTrackerUrl="/syc/awstats/wwwroot/js/"LevelForBrowsersDetection=0 # 是否可以用浏览器来执行更新,默认是不可以#LevelForOSDetection=0 #是否可以通过浏览器频道操作系统默认是不可以#LevelForRefererAnalyze=0 # 0 disables Origin detection.LevelForRobotsDetection=0 # 0 disables Robots detection.LevelForSearchEnginesDetection=0 # 0 disables Search engines detection.Lang="cn" #设置国家语言类型#ShowMonthStats=UVHBShowDaysOfMonthStats=HBShowDaysOfWeekStats=HBShowHoursStats=HBShowDomainsStats=HBShowHostsStats=HBShowAuthenticatedUsers=HBLShowRobotsStats=0ShowOSStats=0ShowBrowsersStats=0ShowOriginStats=0ShowKeyphrasesStats=0ShowKeywordsStats=0ShowMiscStats=0ShowHTTPErrorsStats=0StyleSheet="/syc/awstats/wwwroot/css/" #css启示位置#注意上面粗黑体字部分是笔者服务器的情况,读者在实际操作中要按照你的具体情况设置。