Browsed by
Tag: ftp

pure-ftp over TLS

pure-ftp over TLS

最近查看log,感觉有些无聊人士尝试干扰或者攻击FTP服务器,因此有必要将FTP服务修改为加密方式。最简单的方法就是采用TLS进行传输(即FTPS),确保传输过程是加密的。

目前系统为Debian7,已部署pureFTPd作为FTP服务器。打开TLS支持方法比较简单,请参考pureFTP over TLS文档。主要步骤如下(假定pureFTPd已经部署):

步骤1:打开pureFTP的TLS支持

执行命令:

echo 1 > /etc/pure-ftpd/conf/TLS

设置TLS为1,运行采用overTLS以及普通不加密方式。如果要求必须使用TLS加密方式,则应设置TLS为2。实际部署中,建议设置为2。

步骤2:创建TLS加密密钥

使用openssl创建即可:

openssl req -x509 -nodes -days 7200 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

会提示各项信息输入,照着填写即可。同时,修改pem文件的属性:

chmod 600 /etc/ssl/private/pure-ftpd.pem

完成上述配置后,重启pureFTPd即可:

service pure-ftpd restart

步骤3:FileZilla采用显式加密

在FileZilla的站点管理配置中,“通用 – 加密”项必须配置为“要求显式的FTP over TLS”,如附图所示即可。

FTP over TLS
配置FileZilla采用FTP over TLS
Filezilla Failing to Retrieve Directory Listing

Filezilla Failing to Retrieve Directory Listing

在EC2上安装完pure-ftpd后,用Filezilla访问,登录都很正常,最后在获取目录时超时失败。

根本原因可能在于:EC2给各server分配的是private地址,我又assign了一个public地址。server本身是不知道这个public地址的,因此ftp client如果用public地址请求信息,可能就导致失败。

解决方式也比较简单,修改FileZilla的配置即可:

点击菜单 “Edit / Setting / Connection / FTP”,其中:

(1)”Active mode”选择“Ask your operating system for external IP address”

(2)”Passive mode”选择”Fall back to active mode”

在Ubuntu系统中安装ftp服务器软件: pure-ftpd

在Ubuntu系统中安装ftp服务器软件: pure-ftpd

最近由于工作的需要,我们需要在EC2上完整搭建一套平台,因此研究了一下FTP,wordpress等常用软件的安装和使用方式。

不知道为什么,网上的资料多半是从各网站上下载tar包,甚至下载源码包编译并安装。我觉得这种方式完全没有必要,我们毕竟不是要研究这些软件本身,只要会使用就可以了。另外,Ubuntu软件中心的软件已经非常丰富,直接从软件中心安装就好,同样没有必要费事另外去下载。

以下各种情况下的安装,都是基于Ubuntu Server 10.04 (LTS)版本。首先从安装FTP Server开始。

我选择了pure-ftpd进行安装。选择这个软件的理由很简单,虚拟主机bluehost就是用的这个软件,而我们目前对bluehost还是相当满意的,因此照搬就好了。

step 1: 安装

命令非常简单:

sudo apt-get install pure-ftpd

step 2: … …

实际上没有step 2。完成安装后,就可以用Ubuntu系统的用户名和密码登陆了。

Ubuntu Server中的pure-ftpd缺省配置不允许匿名登陆,每个用户登陆都是访问自己的home目录,最多允许50名用户同时连接。基本上已经满足需要,不需要再多做配置。

如果实在想进行配置,可以访问/etc/pure-ftpd/conf目录。看上去似乎每个文件就是一个单独的配置项,要注意区分大小写,否则启动server时会认为配置出错。

重起pure-ftpd的命令如下:

sudo service pure-ftpd restart