配置安全的Ubuntu 13 FTP服务器

时间:2020-01-09 10:37:42  来源:igfitidea点击:

获取SSLTLS的签名证书

有三个选项可获取用于在服务器及其客户端之间创建SSLTLS安全连接的签名证书。选择哪种服务器取决于环境和将使用服务器的用户。

在不深入细节的情况下,证书通过使用金字塔式信任链来工作。每一层都是必须信任的权威,从最高层开始。如果这些层中的任何一层都不可信,则证书将无效。证书的金字塔可以是单个机构,也可以是多个机构。

  • 购买证书这涉及找到受信任的证书签名机构,例如Symantec Versign或者GeoTrust,并购买一个。如果目标受众是Internet用户,这是最佳选择。任何人都可以验证和信任此证书,这意味着用户将不会收到有关使用不可信证书的警告。
  • 从内部证书颁发机构生成一个证书颁发机构如果环境具有自己的PKI证书基础架构,例如Windows Active Directory证书服务托管的一个,则我们可以在组织的所有用户都信任它的前提下生成自己的PKI证书架构。但是,任何不属于我们组织的用户都将收到警告。
  • 自签名证书这是最不安全的方法,因为默认情况下,生成该证书的计算机以外的任何人都不信任它。它非常适合测试环境或者在几台计算机之间进行手动创建所需信任的完美环境。

在本教程中,我们将使用``自签名证书'',其唯一目的是举一个将证书应用于FTP服务的示例。

生成私人签名的证书

仅当我们没有其他获取证书的方法或者在实验室环境中工作时,才应执行此步骤。

  • 安装OpenSSL软件包
sudo apt-get install openssl
  • 创建必须受保护的私钥,该私钥将用于生成证书。
openssl genrsa -out theitroad.key 2048
  • 使用我们刚刚生成的私钥,创建一个证书签名请求文件。此文件用于填充将被编码到我们的证书中的必需信息。它用于验证证书的所有者。
openssl req -new -key theitroad.key -out ftp.theitroad.test.csr
  • 最后,使用私钥和证书签名请求文件生成证书。我们会将证书的有效期设置为从今天起365天。
openssl x509 -req -days 365 -in ftp.theitroad.test.csr -signkey theitroad.key -out ftp.theitroad.test.crt
  • 现在我们已经生成了签名密钥,证书申请和证书,现在该将它们移到我们服务器上的适当位置了。然后,我们将VSFTPD指向这些位置。 pre class =" bash"> cp ftp.theitroad.crt / etc / pki / tls / certs /
cp theitroad.key /etc/pki/tls/private/
cp ftp.theitroad.test.csr /etc/pki/tls/private/

安装和配置VSFTPD

  • 安装ftpd
sudo apt-get install ftpd
  • 在文本编辑器中打开ftpd的配置文件。
sudo nano /etc/vsftpd.conf
  • 添加以下行以启用SSLTLS。如果选项已存在,请对其进行修改以匹配显示的内容。
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_SSL=YES
force_local_logins_SSL=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
listen_port=990
require_ssl_reuse=NO
ssl_ciphers=HIGH
  • 配置我们的私钥和证书文件的位置。如果以下选项已存在,请对其进行修改以指向文件。
rsa_cert_file=/etc/ssl/cert/ftp.theitroad.test.crt
rsa_private_key_file=/etc/ssl/private/theitroad.key

如果我们从外部接收证书或者由Windows AD CS生成证书,则证书的扩展名可能是.pem。该文件通常包含密钥和证书。在两个选项中输入PEM文件的路径。

rsa_cert_file=/etc/ssl/cert/theitroad.pem
rsa_private_key_file=/etc/ssl/private/theitroad.pem
  • 保存更改并退出文本编辑器。
  • 重新启动VSFTPD的服务。
sudo service vsftpd restart

注册服务器的主机名

TLS证书仅在通过"证书签名请求"阶段定义的主机名访问使用它的服务时才起作用。如果我们有DNS服务器,则将FTP服务器的IP地址注册到主机名。如果我们没有DNS服务器,请在HOSTS文件中添加一个条目。

测试连接

我们安全的ftp服务器现在可以在线为本地用户提供文件了。现在是时候测试我们的配置以确保一切正常了。在此示例中,我将在Windows 8.1桌面上使用FileZilla进行测试。

  • 启动FileZilla
  • 创建一个新的连接。不要使用快速连接,连接将会失败。
  • 在"主机"文本字段中输入FTP服务器的主机名。
  • 将端口设置为990。
  • 将加密下拉列表设置为需要通过TLS的显式FTP。
  • 输入用户登录凭据。
  • 导航到"传输设置"选项卡。
  • 对于传输模式,选择活动单选按钮。
  • 单击``连接''按钮以保存设置并连接到ftp服务器。
  • 如果我们使用了自签名证书或者其他不受信任的证书形式,则将提示我们以下内容。验证证书的有效性,然后单击确定(如果我们信任它)。