如何在CentOS 7.2上安装带有TLS的ProFTPD

本教程介绍在CentOS 7.2服务器上安装和配置ProFTPD。 ProFTPD是一个用于Unix和Linux操作系统的FTP守护进程

本教程介绍了CentOS 7.2服务器上ProFTPD的安装和配置。 ProFTPD是Unix和Linux操作系统的FTP守护程序,并根据GNU公共许可证(GPL)分发。

1初步说明

本教程基于CentOS服务器,因此您应该在继续本教程之前设置基本的CentOS 7.2服务器安装。 系统应该有一个静态IP地址。 我在本教程中使用192.168.1.100作为我的IP地址,将server1.example.com用作主机名。

2安装和配置ProFTPD

2.1安装:

我们需要EPEL存储库中的软件,如下所示:

yum -y install epel-release

然后导入EPEL GPG密钥:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

并更新包:

yum -y update

我们将安装ProFTPD和OpenSSL如下:

yum install -y proftpd openssl proftpd-utils

我们需要启动服务并使其自动启动。

systemctl start proftpd.service
systemctl enable proftpd.service

如果您已安装防火墙,请使用firewall-cmd配置防火墙以打开FTP端口:

firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload

我们可以检查ProFTPD版本如下:

proftpd -v

[root @ server1〜]#proftpd -v
ProFTPD版本1.3.5b
[root @ server1〜]#

2.2创建ProFTPD用户

我将为ProFTPD创建一个组ftpgroup和一个用户tom 。 我将把/ ftpshare设置为用户tom的主目录

groupadd ftpgroup

接下来我将在ftpgroup中添加用户srijan

useradd  -G ftpgroup tom -s /sbin/nologin -d /ftpshare
passwd tom

[root@server1 ~]# passwd tom
Changing password for user srijan.
New password: <--ftppassword
Retype new password: <--ftppassword
passwd: all authentication tokens updated successfully.
[root@server1 ~]# 

设置ftpshare目录的权限:

chmod -R 1750 /ftpshare/

现在我们准备好ProFTPD连接了。 但连接尚未加密,我们将在下一章中解决。

3在ProFTPD中启用TLS

为了在ProFTPD中启用TLS,请打开/etc/proftpd/proftpd.conf。 在编辑文件之前,最好备份原始文件,然后用nano编辑文件。

cp -pf /etc/proftpd.conf /etc/proftpd.conf.bak
nano /etc/proftpd.conf

添加和修改行,如红色所示。

[...]
DefaultRoot ~ !adm PassivePorts 6000 6100
[...]

#
<IfDefine TLS> TLSEngine on TLSRequired on TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem TLSCipherSuite ALL:!ADH:!DES TLSOptions NoCertRequest TLSVerifyClient off TLSRenegotiate ctrl 3600 data 512000 required off timeout 300 TLSLog /var/log/proftpd/tls.log # <IfModule mod_tls_shmcache.c> # TLSSessionCache shm:/file=/var/run/proftpd/sesscache # </IfModule> #</IfDefine>
[...]

我添加了6000和6100端口,以允许ftp的被动模式,相似地,我将允许通过CentOS防火墙服务的被动模式如下:

firewall-cmd --add-port=6000-6100/tcp --permanent
firewall-cmd --reload

我们可以检查端口状态如下:

firewall-cmd --list-ports

[root@server1 ~]# firewall-cmd --list-ports
6000-6100/tcp
[root@server1 ~]#

另外,我们需要告诉SELINUX允许文件的读/写。

setsebool -P allow_ftpd_full_access=1

为了使用TLS,我们必须创建SSL证书。 我将在/ etc / pki / tls / certs中创建它,我们可以生成SSL证书,如下所示:

openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem

[root @ server1 certs]#openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
生成1024位RSA私钥
................................... ++++++
......... ++++++
将新的私钥写入'/etc/pki/tls/certs/proftpd.pem'
-----
您将被要求输入将被纳入的信息
进入您的证书请求。
您要输入的内容是所谓的可分辨名称或DN。
有很多领域,但你可以留下一些空白
对于某些字段,将有一个默认值,
如果输入'。',该字段将留空。
-----
国家名称(2个字母代码)[XX]: < - DE
州或省名(全名)[]: < -汉堡
地点名称(例如,城市)[默认城市]: < - Luneberg
组织名称(如公司)[Default Company Ltd]: < - Howtoforge
组织单位名称(如部分)[]: < -开发
通用名称(例如,您的姓名或服务器的主机名)[]: < - server1.example.com
电子邮件地址[]: < - info@example.com
[root @ server1 certs]#

给出上述值为红色,根据您的选择,我刚刚举个例子。

为了安全起见,我将使证书只能读取如下:

chmod  0440 /etc/pki/tls/certs/proftpd.pem

最后重新启动ProFTPD服务,如下所示:

systemctl restart proftpd.service

我们可以使用Filezilla软件连接到ProFTPD服务器,您必须在客户端计算机上安装Filezilla才能连接到服务器。 打开Filezilla并详细说明如下:

在FileZilla中输入帐户详细信息。

细节将是:

主机= 192.168.1.100
协议= FTP
用户= 汤姆
如果您尚未自定义另一个端口比21,则Port =可以为空
Password = ftppassword (刚刚创建)

注意:由于我们已经在上述步骤中加入了我们的连接,所以我们将使用加密与需求显式FTP通过TLS

如果您尚未配置TLS,则可以使用“ 使用普通FTP”

接受SSL证书

它会要求信任证书,按OK

FileZilla连接到ProFTPd。

它将通过TLS连接连接到FTP共享目录。


4 ProFTPD中的匿名ftp访问

我们可以在ProFTPD中创建一个匿名ftp帐户,只需在ProFTPD配置文件中添加这些行:

nano /etc/proftpd.conf

并在文件末尾添加这些行。

[...]
###Anonymous share##### <Anonymous ~ftp> User ftp Group ftp UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>

现在我们需要重新启动FTP服务:

systemctl restart proftpd.service

现在通过Filezilla连接到anon帐户如下:

匿名登录

注意:由于我们已经在上述步骤中加入了我们的连接,所以我们将使用加密与需求显式FTP通过TLS

如果您尚未配置TLS,则可以使用“ 使用普通FTP”

连接。

匿名FTP登录成功。

我们使用匿名用户成功连接到服务器。

恭喜! 现在我们在CentOS 7.2中成功配置了ProFTPD服务器环境:)