扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
来源:TechTarget中国 2011年12月15日
关键字: VSFTPd
在《实例剖析开源系统中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
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者