Linux基础服务 ·

vsftpd增加SSL加密功能

有 openssl 这个加密函式库, 我们就能够使用类似的机制来处理 FTP !但前提之下是你的 vsftpd 有支持 SSL 函式库才行!此外,我们也必须要建立 SSL 的凭证文件给 vsftpd 使用,这样才能够进行加密。

接下来,就让我们一步一步的搭建 ftps 的服务器。

检查 vsftpd 有无支持 ssl 模块:

如果你的 vsftpd 当初编译的时候没有支持 SSL 模块,那么你就得只好自己重新编译一个 vsftpd 了!我们的 CentOS 默认支持的有,可以执行如下命令查看:

如果有出现 libssl.so 的字样,就是有支持!这样才能够继续下一步!

建立专门给 vsftpd 使用的凭证数据:

CentOS 给我们一个建立凭证的地方,那就是 /etc/pki/tls/certs/ 这个目录!

修改 vsftpd.conf 的配置文件,假定有实体、匿名账号:

前面大多是单纯匿名或单纯实体帐户,这里我们将实体账号通过 SSL 联机,但匿名者使用明码传输! 两者同时提供给客户端使用啦!FTP 的设定项目主要是这样:

  • 提供实体账号登入,实体账号可上传数据,且 umask 为 002
  • 实体账号默认为 chroot 的情况,且全部实体账号可用带宽为 1Mbytes/second
  • 实体账号的登入与数据传输均需透过 SSL 加密功能传送;
  • 提供匿名登录,匿名者仅能下载,不能上传,且使用明码传输 (不通过 SSL)

此时,整体的设定值会有点像这样:

如果一切都没有问题,那么你可以通过客户端进行加密通信了。

例题:

想一想,既然有了 SFTP 可以进行加密的 FTP 传输,那为何需要 ftps 呢?

答:

因为既然要开放 SFTP 的话,就得要同时放行 sshd 亦即是 ssh 的联机,如此一来,你的 port 22 很可能会常常被侦测,若是 openssl, openssh 出问题,恐怕你的系统就会被绑架。如果你的 FTP 真的有必要存在,那么透过 ftps 以及利用 vsftpd 这个较为安全的服务器软件来架设, 理论上,是要比 sftp 来的安全些,至少对 Internet 放行 ftps 还不会觉得很可怕...

参与评论