在debian上搭建proftpd

所属:Linux

简单的记录下,搭建 proFTPdTLS 服务的过程

安装 proFTPd

1
(sudo) apt-get install proftpd

回车后会弹出一个对话框,这里我是选择 standalone

配置 proFTPd

1
(sudo) vim /etc/proftpd/proftpd.conf

修改下 FTP 用户操作权限,如:上传文件后的存放路径等。

1
2
DefaultRoot ~
ServerIdent on "FTP Server ready."

第一行代表用户只能操作它的 home 目录

第二行隐藏 FTP 服务器的信息,包括使用的软件版本,系统等等信息。

安装 openssl

1
(sudo) apt-get install openssl

为了使用 TLS 创建 SSL 证书
首页创建个目录,用于存放证书的

1
(sudo) mkdir /etc/proftpd/ssl/

生成 SSL 证书

1
(sudo) openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem

根据提示回答一堆问题

1
2
3
4
5
6
7
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

回答问题完后
会在刚才创建的 ssl 目录多出两个文件来

修改这两个文件的权限

1
sudo chmod 600 /etc/proftpd/ssl/proftpd.*

再次配置 proFTPd

再次打开 proftp.conf 配置文件

1
(sudo) vim /etc/proftpd/proftpd.conf

找到下面这一行,把前面的注释去掉。

1
Include /etc/proftpd/tls.conf

配置 tls

1
(sudo) vim /etc/proftpd/tls.conf

修改配置文件如下:

1
2
3
4
5
6
7
8
9
10
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
</IfModule>

重启 proFTPd 服务

1
2
3
4
sudo /etc/init.d/proftpd restart
[ ok ] Stopping ftp server: proftpd.
[....] Starting ftp server: proftpdserver1 proftpd[6052]: mod_tls_memcache/0.1: notice: unable to register 'memcache' SSL session cache: Memcache support not enabled
. ok

如有以上提示,则需要编辑下 /etc/proftpd/modules.conf 文件

找到下面一行,在前面加上注释掉它

1
2
3
……
#LoadModule mod_tls_memcache.c
……

下载 FileZilla 客户端,选择 TLS 验证登录一下

如果没有 FTP 账户,则新创建一个。

创建 FTP 用户

这里创建一个名为 ocean 的用户

1
(sudo) useradd --shell /bin/false ocean

再给它创建 home 目录和指定用户组与权限

1
2
(sudo) mkdir /home/ocean
(sudo) chown ocean:ocean /home/ocean/

给新账户初始化密码

1
sudo passwd ocean

整个 proFTPdTLS 服务的搭建过程到这里就结束了。

Have a nice day.!

参考资料