[翻译]CentOS 7.0 上安装ProFTPD

本文讲述了在CentOS 7.0下安装和配置ProFTPD方法。ProFTPD是一个针对Unix或者类Unix系统的FTP 守护进程。ProFTPD是在GUN通用公共许可协议(基本确立了ProFTPD作为自由软件的身份)下开发,发布的,这意味着只需要在ProFTPD包中包含完整的源代码或者在网站上发布预编译的二进制文件,就可以以任何方式出售,授权。任何人在任何时间点都可以修改该软件,只要修改后的软件也遵守GNU PublicLicense即可。

1 准备工作

本教程是基于CentOS 7.0的,在继续本教程之前,你应该先安装CentOS 7.0。系统应该有一个静态IP地址。在本教程中使用192.168.0.100作为静态IP地址,用server1.example.com作为主机名。

2 安装 ProFTPD

2.1 安装配置:

使用如下命令安装有效的EPEL(Extra Packages for Enterprise Linux EPEL,企业版Linux附加软件包):

rpm -ivh Fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm

我们首先使用如下命令安装ProFTPD 和OpenSSL:

yum install -y proftpd openssl proftpd-utils

使用如下命令开启ProFTPD服务:

systemctl start proftpd.service

systemctl enable proftpd.service

在CentOS 7.0中我们需要使用如下命令为ftp服务额外配置一下防火墙(Firewall-cmd):

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

firewall-cmd --reload

我们可以使用如下命令查看ProFTPD的安装版本:

proftpd -v

[root@server1 ~]# proftpd -v

ProFTPD Version 1.3.5

[root@server1 ~]#

2.2 创建ProFTPD用户

我会为ProFTPD创建一个组:ftpgroup 并且创建一个用户:srijan。我将用户srijan的主目录设置为/ftpshare:

groupadd ftpgroup

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

useradd  -G ftpgroup srijan -s /sbin/nologin -d /ftpshare

passwd srijan

[root@server1 ~]# passwd srijan

Changing password for user srijan.

New password: <--ftppassword

Retype new password: <--ftppassword

passwd: all authentication tokens updated successfully.

[root@server1 ~]#

接下来,我们需要防止该目录被删除或者重命名,从而保护所有用户的数据,所以我们使用如下命令来改变该目录的访问权限:

chmod -R 1777 /ftpshare/

现在我们已经为连接ProFTPD做好了准备

现在我们可以使用用户名srijan和密码登录ftp://192.168.0.100了。

CentOS 7.0 上安装ProFTPD

CentOS 7.0 上安装ProFTPD

3 使ProFTPD中的TLS(安全传输层协议:Transport Layer Security)有效

为了使ProFTPD中的TLS有效,我们需要使用如下命令打开/etc/proftpd/proftpd.conf并更改该文件,在编辑该文件之前最好备份原始文件:

cp /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>
[...]

我为ftp的被动模式添加了6000和6100两个端口号,类似的我会使用如下命令允许被动模式通过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(Security-Enhanced Linux)允许对这些文件进行读写操作。

setsebool -P allow_ftpd_full_access=1

为了使用TLS,我们必须创建一个SSL证书。我们可以使用如下命令在/etc/pki/tls/certs中创建它:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1f878b81daaa98eb83d984581499c5a2.html