在《实例剖析开源系统中vsftpd的安全设置方法(一)》中,我们介绍到了用户访问权限管理中的使用nologin禁止FTP帐户登录Linux服务器,下面我们继续介绍如何安全配置开源系统中vsftpd。 3)使用chroot控制用户访问权限 假设FTP用户根目录在/ftproot/game,那我们就要在配置文件中添加local_root=/ftproot/game。然后激活chroot,编辑添加chroot_list_enable=YES,把允许访问FTP的用户加到/etc/vsftpd/chroot_list这个文件中去,即:chroot_list_file=/etc/vsftpd/ch……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
在《实例剖析开源系统中vsftpd的安全设置方法(一)》中,我们介绍到了用户访问权限管理中的使用nologin禁止FTP帐户登录Linux服务器,下面我们继续介绍如何安全配置开源系统中vsftpd。
3)使用chroot控制用户访问权限
假设FTP用户根目录在/ftproot/game,那我们就要在配置文件中添加local_root=/ftproot/game。然后激活chroot,编辑添加chroot_list_enable=YES,把允许访问FTP的用户加到/etc/vsftpd/chroot_list这个文件中去,即:chroot_list_file=/etc/vsftpd/chroot_list。修改后的配置文件如图4:
图4
值得注意的是:这里所介绍的/etc/vsftpd/chroot_list文件系统默认是没有的,需要手工创建,命令如下:
#touch /etc/vsftpd/chroot_list
#echo xiaowang > /etc/vsftpd/chroot_list
#echo xiaowang1 >> /etc/vsftpd/chroot_list
上述命令添加了两个用户,分别是xiaowang和xiaowang1。重新启动vsftpd服务即可。
这个时候再从客户端来访问一下FTP服务器,发现需要输入用户名密码。如图5:
图5
下面进一步使用WinSCP这个传输工具来看看上传下载的情况如何。如图6:
图6
可以看到,本地的文件都传输到服务器上去了。如图7:
图7
以上需要说明一点的是:必须先确定FTP根目录没有权限问题,否则将会出现如下问题(见图8)。如果出现该问题,可以使用chmod 757 /ftproot/game这个命令来设定权限。
图8
(2)如何限制恶意占有带宽的用户
如果所在公司或单位服务器性能够强,带宽够多,带宽限制这方面的需求可能不是特别地突出。然而,如果下载量特别大,人也特别多,就有必要进行一下安全的设置。
在vsftp中,匿名用户和本地用户的速度限制是分开的。前者是anon_max_rate,后者是local_max_rate。 它们的单位都是byte(字节)。
如果让匿名用户和本地的用户都以最高100KB的速度下载,所以这个数字应该是1024x100=102400。在vsftpd.conf文件末尾中加入下面的两行即可:
anon_max_rate=102400
local_max_rate=102400
然后重启vsftpd服务即可。
另外,还可以限制FTP的最大连接数和每个IP的最大连接数。这两个参数分别是Max_clients和Max_per_ip。和上面一样,也只需要在vsftpd.conf文件末尾添加参数即可,如下设成了最大连接数100,每个IP的最大连接数5个:
max_clients=100
max_per_ip=5
(3)如何防止FTP密码被恶意嗅探
由于vsftpd发送的数据是以明文方式传输,尤其是密码容易被恶意的嗅探(Sniffering)到,所以企业通常会采用SSL(Secure Sockets Layer,安全套接字层)技术,配置使得vsftpd支持SSL加密传输,以此来抵御恶意嗅探攻击。
SSL是一种国际标准的加密及身份认证通信协议,用户采用的浏览器就支持此协议。SSL最初是由美国Netscape公司研究出来的,后来成为了Internet网上安全通讯与交易的标准。比如,当IE浏览器需要通过不可靠的互联网,与服务器安全地连接时,我们通常可以看到SSL技术被使用于其中。同样,这类技术也可以灵活地运用到邮件服务或FTP服务中去。SSL协议使用通讯双方的客户证书以及CA根证书,允许客户/服务器应用以一种不能被偷听的方式通讯,在通讯双方间建立起了一条安全的、可信任的通讯通道。它具备以下基本特征:信息保密性、信息完整性、相互鉴定。该协议主要使用Hash编码、加密技术。
使用SSL技术,依赖于另外一个软件:OpenSSL,它是一个可以自由使用的SSL实现,首先需要安装这个软件。用户可以从网站http://www.openssl.org/source/上下载Linux下OpenSSL的稳定版本,比如:openssl-0.9.8e-7.el5.i686.rpm,然后执行命令生成密钥:
# openssl req –new –x509 –nodes –out vsftpd.pem –keyout vsftpd.pem
接着,把生成的vsftpd.pem复制到/usr/share/ssl/certs的目录中:
#cp vsftpd.pem /usr/share/ssl/certs/vsftpd.pem
然后,修改/etc/vsftpd/vsftpd.conf文件。在末尾添加SSL相关配置。如图9:
图9
保存后重启vsftpd服务。下面就可以用客户端来尝试进行SSL加密连接了。这里使用的客户端是Core FTP,选择SSL加密登录后,会出现如下提示,如图10:
图10
选择Accept之后我们即可登入远程的ftp服务器。如图11:
图11
若使用不支持SSL的客户端工具访问时有可能会出现:530 Non-anonymous sessions must use encryption.的错误提示。所以提醒用户尽量选择flashfxp或CoreFtp这类的多功能客户端。
到这里为止,采用SSL机制保护下的vsftpd就算配置完成了。其中DES-CBC3-SHA是默认的加密方式,用户可以修改“ssl_ciphers=xxx”的方式来选择想要的加密方式。关于vsftpd对SSL的支持选项设置,可以参见表1。
主要选项 | 功能 |
ssl_enable | 是否启用 SSL,默认为no |
allow_anon_ssl | 是否允许匿名用户使用SSL,默认为no |
rsa_cert_file | rsa证书的位置 |
dsa_cert_file | dsa证书的位置 |
force_local_logins_ssl | 非匿名用户登陆时是否加密,默认为yes |
force_local_data_ssl | 非匿名用户传输数据时是否加密,默认为yes |
force_anon_logins_ssl | 匿名用户登录时是否加密,默认为no |
force_anon_data_ssl | 匿名用户数据传输时是否加密,默认为no |
ssl_sslv2 | 是否激活sslv2加密,默认no |
ssl_sslv3 | 是否激活sslv3加密,默认no |
ssl_tlsv1 | 是否激活tls v1加密,默认yes |
ssl_ciphers | 默认是DES-CBC3-SHA |
表1
相关推荐
-
实例剖析开源系统中vsftpd的安全设置方法(一)
越来越多的企业应用开源的vsftpd软件来搭建自己的文件共享服务,优点是速度快且节省开支。然而企业用户行为难以预料,配置稍有不当则会使该服务成为一个安全风险点。
-
SMTP TLS证书与FTP SSL证书相同吗?
不同服务的认证证书是不同的吗,如SMTP、FTP等?在同一个服务器上的SMTP和FTP服务可以只有一个认证证书吗?
-
安全的FTP服务能保护敏感数据免遭黑客攻击吗?
和很多其他的互联网协议一样,FTP在推出SSL之前建立,所以它本质上是不安全的,因为数据在运输过程中没有加密。那么,是否使用安全的FTP或EFT就有助于防止黑客攻击呢?
-
引黑客入瓮-给Linux系统蒙上Windows面纱
黑客经常利用工具扫描用户机器,再针对找到的漏洞进行攻击。通过伪装Linux系统给黑客设置系统假象,可加大黑客对系统的分析难度,提高计算机系统的安全性……