如何在CentOS 7.0上安装ProFTPD

本文档介绍如何在CentOS 7.0服务器中安装和配置ProFTPD。 ProFTPD是用于UNIX和类UNIX操作系统的FTP守护程序。 ...

如何在CentOS 7.0上安装ProFTPD

本文档介绍如何在CentOS 7.0 Server中安装和配置ProFTPD。 ProFTPD是用于unix和类Unix操作系统的FTP守护程序。 ProFTPD是根据GNU公共许可证(GPL)进行开发,发布和分发的,GNU公共许可证(GPL)基本上将其定义为免费软件,这意味着只要完整和完整的源代码随附任何方式,它可以以任何方式出售,许可和以其他方式操作ProFTPD软件包或由分发预编译二进制文件的任何和所有站点提供。 任何人都可以随时修改该软件,只要所有派生作品也可以根据GNU公共许可证进行许可。

1初步说明

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

2安装ProFTPD

2.1安装:

为此启用EPEL如下:

rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm

我们将首先安装ProFTPD和OpenSSL,如下所示:

yum install -y proftpd openssl proftpd-utils

我们需要开始服务

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版本1.3.5
[root @ server1〜]#

2.2创建ProFTPD用户

为此,我将为ProFTPD创建一个组ftpgroup和用户srijan 。 我将把主目录的用户srijan限制为/ ftpshare

groupadd ftpgroup

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

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








3在ProFTPD中启用TLS

为了在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>
[...]

我添加了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]: < - ISPConfig
组织单位名称(如部分)[]: < -开发
通用名称(例如,您的姓名或服务器的主机名)[]: < - 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并详细说明如下:

细节将会

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

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

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



它将要求信任证书按OK




它将通过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>

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

systemctl restart proftpd.service

现在通过Filezilla连接如下:

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

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

连接

它将要求信任证书按OK

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

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