本教程介绍了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并详细说明如下:
细节将是:
主机= 192.168.1.100
协议= FTP
用户= 汤姆
如果您尚未自定义另一个端口比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>
现在我们需要重新启动FTP服务:
systemctl restart proftpd.service
现在通过Filezilla连接到anon帐户如下:
注意:由于我们已经在上述步骤中加入了我们的连接,所以我们将使用加密与需求显式FTP通过TLS
如果您尚未配置TLS,则可以使用“ 使用普通FTP”
按连接。
我们使用匿名用户成功连接到服务器。
恭喜! 现在我们在CentOS 7.2中成功配置了ProFTPD服务器环境:)
5链接
- CentOS: http : //www.centos.org/
- ProFTPD: http:// www。 proftpd .org /