在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在Linux系统中,FTP服务器软件有很多,都已经成熟,像vsftpd, wu-ftp, Pure-FTPd等。但这些软件安装配置起来都比较麻烦,搭建个人的FTP服务器,如果不选用发行版自带的FTP软件的话,还是Proftpd比较简单。 Proftpd是一款开放源码的FTP服务器软件,它是原来世界范围使用最广泛的wu-ftpd的改进版,它修正了wu-ftpd的许多缺陷,在许多方面进行了重大的改进,其中一个重要变化就是它学习了Apache 的配置方式,使proftpd的配置和管理更加简单易懂。 ProFTPD设计目标是实现一个安全且易于设定的FTP Server。 有两种运行方式,独立服务器与超级服务器的子服务器。无论从安全性和稳定性,还是可配置性来说都是非常好的选择。 面是一些 ProFTPD 服务器的主要功能: 每个目录都可以包含 ".ftpaccess" 文件用于访问控制,类似 Apache 的 ".htaccess" 1. 安装 ProFTPD 复制代码 代码如下:$ sudo dnf -y install proftpd proftpd-utils 2. 配置 ProFTPD 现在,我们将修改软件的一些配置。要配置它,我们需要用文本编辑器编辑 /etc/proftpd.conf 文件。/etc/proftpd.conf 文件是 ProFTPD 软件的主要配置文件,所以,这个文件的任何改动都会影响到 FTP 服务器。在这里,是我们在初始步骤里做出的改动。 复制代码 代码如下:$ sudo vi /etc/proftpd.conf 之后,在用文本编辑器打开这个文件后,我们会想改下 ServerName 以及 ServerAdmin,分别填入自己的域名和 email 地址。下面是我们改的。 复制代码 代码如下:在这之后,我们将把下面的设定加到配置文件里,这样可以让服务器将访问和授权记录到相应的日志文件里。 复制代码 代码如下:ExtendedLog /var/log/proftpd/access.log WRITE,READ default ExtendedLog /var/log/proftpd/auth.log AUTH auth 3. 添加 FTP 用户 在设定好了基本的配置文件后,我们很自然地希望添加一个以特定目录为根目录的 FTP 用户。目前登录的用户自动就可以使用 FTP 服务,可以用来登录到 FTP 服务器。但是,在这篇教程里,我们将创建一个以 ftp 服务器上指定目录为主目录的新用户。 下面,我们将建立一个名字是 ftpgroup 的新用户组。 复制代码 代码如下:$ sudo groupadd ftpgroup 然后,我们将以目录 /ftp-dir/ 作为主目录增加一个新用户 arunftp 并加入这个组中。 复制代码 代码如下:$ sudo useradd -G ftpgroup arunftp -s /sbin/nologin -d /ftp-dir/ 在创建好用户并加入用户组后,我们将为用户 arunftp 设置一个密码。 复制代码 代码如下:$ sudo passwd arunftp Changing password for user arunftp. New password: Retype new password: passwd: all authentication tokens updated successfully. 现在,我们将通过下面命令为这个 ftp 用户设定主目录的读写权限(LCTT 译注:这是SELinux 相关设置,如果未启用 SELinux,可以不用)。 复制代码 代码如下:$ sudo setsebool -P allow_ftpd_full_access=1 $ sudo setsebool -P ftp_home_dir=1 然后,我们会设定不允许其他用户移动或重命名这个目录以及里面的内容。 复制代码 代码如下:$ sudo chmod -R 1777 /ftp-dir/ 4. 打开 TLS 支持 目前 FTP 所用的加密手段并不安全,任何人都可以通过监听网卡来读取 FTP 传输的数据。所以,我们将为自己的服务器打开 TLS 加密支持。这样的话,需要编辑 /etc/proftpd.conf 配置文件。在这之前,我们先备份一下当前的配置文件,可以保证在改出问题后还可以恢复。 复制代码 代码如下:$ sudo cp /etc/proftpd.conf /etc/proftpd.conf.bak 然后,我们可以用自己喜欢的文本编辑器修改配置文件。 复制代码 代码如下:$ sudo vi /etc/proftpd.conf 然后,把下面几行附加到我们在第 2 步中所增加内容的后面。 TLSEngine on 然后,我们需要生成 SSL 凭证 proftpd.pem 并放到 /etc/pki/tls/certs/ 目录里。这样的话,首先需要在 Fedora 22 上安装 openssl。 复制代码 代码如下:$ sudo dnf install openssl 然后,可以通过执行下面的命令生成 SSL 凭证。 复制代码 代码如下:$ sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem 系统会询问一些将写入凭证里的基本信息。在填完资料后,就会生成一个 2048 位的 RSA 私钥。 Generating a 2048 bit RSA private key 复制代码 代码如下:$ sudo chmod 600 /etc/pki/tls/certs/proftpd.pem 5. 允许 FTP 通过 Firewall 现在,需要允许 ftp 端口,一般默认被防火墙阻止了。就是说,需要允许 ftp 端口能通过防火墙访问。 如果 打开了 TLS/SSL 加密,执行下面的命令。 复制代码 代码如下:$ sudo firewall-cmd --add-port=1024-65534/tcp $ sudo firewall-cmd --add-port=1024-65534/tcp --permanent 如果 没有打开 TLS/SSL 加密,执行下面的命令。 复制代码 代码如下:$ sudo firewall-cmd --permanent --zone=public --add-service=ftp success 然后,重新加载防火墙设定。 复制代码 代码如下:$ sudo firewall-cmd --reload success 6. 启动并激活 ProFTPD 全部设定好后,最后就是启动 ProFTPD 并试一下。可以运行下面的命令来启动 proftpd ftp 守护程序。 复制代码 代码如下:$ sudo systemctl start proftpd.service 然后,我们可以设定开机启动。 复制代码 代码如下:$ sudo systemctl enable proftpd.service Created symlink from /etc/systemd/system/multi-user.target.wants/proftpd.service to /usr/lib/systemd/system/proftpd.service. 7. 登录到 FTP 服务器 现在,如果都是按照本教程设置好的,我们一定可以连接到 ftp 服务器并使用以上设置的信息登录上去。在这里,我们将配置一下 FTP 客户端 filezilla,使用 服务器的 IP 或名称 *作为主机名,协议选择 *FTP,用户名填入 arunftp,密码是在上面第 3 步中设定的密码。如果你按照第 4 步中的方式打开了 TLS 支持,还需要在加密类型中选择 要求显式的基于 TLS 的 FTP,如果没有打开,也不想使用 TLS 加密,那么加密类型选择 简单 FTP。 要做上述设定,需要打开菜单里的文件,点击站点管理器,然后点击新建站点,再按上面的方式设置。 随后系统会要求允许 SSL 凭证,点确定。之后,就可以从我们的 FTP 服务器上传下载文件和文件夹了。 总结 |
请发表评论