本文档介绍如何在Debian Wheezy服务器上安装和配置ProFTPD,它也可以在Ubuntu 14.04上工作。 ProFTPD是用于unix和类Unix操作系统的FTP守护程序。 ProFTPD是根据GNU公共许可证(GPL)进行开发,发布和分发的,GNU公共许可证(GPL)基本上将其定义为免费软件,这意味着只要完整和完整的源代码随附任何方式,它可以以任何方式出售,许可和以其他方式操作ProFTPD软件包或由分发预编译二进制文件的任何和所有站点提供。 任何人都可以随时修改该软件,只要所有派生作品也可以根据GNU公共许可证进行许可。
本指南适用于Ubuntu和Debian服务器。
1初步说明
本教程基于Debian 7.6服务器,因此您应该在继续本教程之前设置基本的Debian 7.6服务器安装。 系统应该有一个静态IP地址。 我在本教程中使用192.168.0.100
作为我的IP地址,将server1.example.com
用作主机名。
2安装ProFTPD
2.1安装:
我们将首先安装ProFTPD和OpenSSL,如下所示:
apt-get install proftpd openssl
它会询问有关ProFTPD的一些问题,选择独立
,然后按确定
。
我们可以检查ProFTPD版本如下:
proftpd -vroot @ server1:〜#proftpd -v
ProFTPD版本1.3.4a
root @ server1:〜#
2.2创建ProFTPD用户
为此,我将为ProFTPD创建一个组ftpgroup
和用户srijan
。 我将把主目录的用户srijan
限制为/ ftpshare
addgroup ftpgroup
adduser srijan -shell /bin/false -home /ftpshare
root@server1:~# adduser srijan -shell /bin/false -home /ftpshare
Adding user `srijan' ...
Adding new group `srijan' (1002) ...
Adding new user `srijan' (1001) with group `srijan' ...
Creating home directory `/ftpshare' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: <--ftppassword
Retype new UNIX password: <--ftppassword
passwd: password updated successfully
Changing the user information for srijan
Enter the new value, or press ENTER for the default<--ENTER
Full Name []: <--ENTER
Room Number []: <--ENTER
Work Phone []: <--ENTER
Home Phone []: <--ENTER
Other []: <--ENTER
Is the information correct? [Y/n] <--Y
root@server1:~#
现在我们将把srijan
用户添加到ftpgroup中
,如下所示:
adduser srijan ftpgroup
接下来,我们需要使目录保护不被任何用户删除和重命名其内容,因此我们将如下更改目录权限:
chmod -R 1777 /ftpshare/
接下来我们需要配置ProFTPD如下:
nano /etc/proftpd/proftpd.conf
进行如图所示的更改
[...]
UseIPv6 off
[...]
<Global>
RootLogin off RequireValidShell off </Global> DefaultRoot ~ <Limit LOGIN> DenyGroup !ftpgroup </Limit>
我没有使用IPV6
,所以我做了
上面,我通过RootLogon关闭
ProFTPD禁用root用户登录。 添加DefaultRoot
以限制仅使用其主文件夹访问的用户。 DenyGroup
将只允许来自ftpgroup
的用户访问ftp服务器,所有其他连接将被拒绝。
重新启动服务:
service proftpd restart
有时您会在重新启动服务时收到错误,例如
root @ server1:〜#service proftpd restart[ok]停止ftp服务器:proftpd。
[....]启动ftp服务器:proftpdserver1 proftpd [6052]:mod_tls_memcache / 0.1:通知:无法注册“memcache”SSL会话缓存:Memcache支持未启用
。 好
root @ server1:〜#
我们可以通过编辑/etc/proftpd/modules.conf
文件来解决这个错误,并按如下方式对行进行注释:
nano /etc/proftpd/modules.conf
[...]
#LoadModule mod_tls_memcache.c
[...]
它会排序错误。
现在我们可以使用用户srijan
和密码登录ftp://192.168.0.100
3在ProFTPD中启用TLS
为了在ProFTPD中启用TLS,请打开/etc/proftpd/proftpd.conf
nano /etc/proftpd/proftpd.conf
进行以下更改,取消注释行:
[...]
Include /etc/proftpd/tls.conf
[...]
现在我们将原始文件备份,然后编辑文件,如下所示:
cp /etc/proftpd/tls.conf /etc/proftpd/tls.conf_orig
cat /dev/null > /etc/proftpd/tls.conf
nano /etc/proftpd/tls.conf
给出如图所示的条目
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
</IfModule>
为了使用TLS,我们必须创建SSL证书。 我将在/ etc / proftpd / ssl
中创建它,因此我先创建该目录:
mkdir /etc/proftpd/ssl
之后,我们可以生成SSL证书,如下所示:
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
国家名称(2字母代码)[AU]:
< - 输入您的国家名称(例如,“DE”)。 州或省名(全名)[部分国家]:
< - 输入您的州或省名称。 地点名称(如城市)[]:
< - 进入你的城市。 组织机构名称(如公司)[互联网Widgits有限公司]:
< - 输入您的组织名称(例如,您公司的名称)。 组织单位名称(如部分)[]:
< - 输入您的组织单位名称(例如“IT部门”)。 通用名称(例如,您的姓名)[]:
< - 输入系统的完全限定域名(例如“server1.example.com”)。 电子邮件地址 []:
< - 输入您的电子邮件地址。
为了安全起见,我将使证书只能读取如下:
chmod 0440 /etc/proftpd/ssl/proftpd.key.pem
最后重新启动ProFTPD服务,如下所示:
service proftpd restart
我们可以使用FileZilla软件连接到ProFTPD服务器。 您必须在客户端安装FileZilla才能连接到服务器。 打开FileZilla并给出详细信息如下:
细节将会
主机= 192.168.0.100
协议= FTP
User = srijan
如果您尚未自定义另一个端口比21,则Port =可以为空
Password = ftppassword
(刚刚创建)
注意:由于我们已经在上述步骤中加入了我们的连接,所以我们将使用加密与需求显式FTP通过TLS
如果您尚未配置TLS,则可以使用“ 使用普通FTP”
它将要求信任证书按OK
它将连接到FTP共享目录。
4 ProFTPD中的匿名FTP访问
我们可以在ProFTPD中创建匿名FTP帐户,只需在ProFTPD配置文件中添加这些条目即可:
nano /etc/proftpd/proftpd.conf
并在文件的最后添加这些条目,
[...]
###Anonymous share##### <Anonymous ~ftp> User ftp Group nogroup <Limit LOGIN> AllowAll </Limit> # We want clients to be able to login with "anonymous" as well as "ftp" UserAlias anonymous ftp # Cosmetic changes, all files belongs to ftp user DirFakeUser on ftp DirFakeGroup on ftp RequireValidShell off # Limit the maximum number of anonymous logins MaxClients 10 # Limit WRITE everywhere in the anonymous chroot <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous> ~
现在通过FileZilla连接如下:
注意:由于我们已经在上述步骤中加入了我们的连接,所以我们将使用加密与需求显式FTP通过TLS
如果您尚未配置TLS,则可以使用“ 使用普通FTP”
按连接
:
它将要求信任证书按OK
我们已经使用匿名用户成功连接到服务器。
恭喜! 现在我们已经在Debian Wheezy中成功配置了ProFTPD服务器环境:)
5链接
- Debian: https : //www.debian.org/
- Ubuntu: http : //www.ubuntu.com/
- ProFTPD: http:// www。 proftpd .org /