登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 592|回复: 0

完全指南:如安在CentOS7中安装、设置和安全加固FTP服务 ...

[复制链接]

177

主题

177

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2019-2-28 10:22:05 | 显示全部楼层 |阅读模式 来自 江苏徐州
bGat9GZt0B4t9eri.jpg FTP(文件传输协议)是一种用于通过网络在服务器和客户端之间传输文件的传统并广泛利用的尺度工具,特殊是在不必要身份验证的环境下(答应匿名用户毗连到服务器)。我们必须明确,默认环境下 FTP 是不安全的,由于它不加密传输用户根据和数据。-- Aaron Kili


本文导航

  • -
    步调 1:安装 FTP 服务器07%
  • -
    步调 2: 设置 FTP 服务器14%
  • -
    步调 3: 用 SELinux 加密 FTP 服务器39%
  • -
    步调 4: 测试 FTP 服务器47%
  • -
    步调 5: 设置差别的 FTP 家目次72%


FTP(文件传输协议)是一种用于通过网络在服务器和客户端之间传输文件[1]的传统并广泛利用的尺度工具,特殊是在不必要身份验证的环境下(答应匿名用户毗连到服务器)。我们必须明确,默认环境下 FTP 是不安全的,由于它不加密传输用户根据和数据。
在本指南中,我们将先容在 CentOS/RHEL7 和 Fedora 发行版中安装、设置和掩护 FTP 服务器( VSFTPD 代表 “Very Secure FTP Daemon”)的步调。
请留意,本指南中的全部下令将以 root 身份运行,假如你不利用 root 帐户操纵服务器,请利用 sudo下令[2] 获取 root 权限。
[size=1em]步调 1:安装 FTP 服务器
1、 安装 vsftpd 服务器很直接,只要在终端运行下面的下令。

  • # yum install vsftpd
2、 安装完成后,服务先是被禁用的,因此我们必要手动启动,并设置在下次启动时主动启用:

  • # systemctl start vsftpd
  • # systemctl enable vsftpd
3、 接下来,为了答应从外部体系访问 FTP 服务,我们必要打开 FTP 保卫历程监听的 21 端口:

  • # firewall-cmd --zone=public --permanent --add-port=21/tcp
  • # firewall-cmd --zone=public --permanent --add-service=ftp
  • # firewall-cmd --reload
[size=1em]步调 2: 设置 FTP 服务器
4、 如今,我们会举行一些设置来设置并加密我们的 FTP 服务器,让我们先备份一下原始设置文件 /etc/vsftpd/vsftpd.conf:

  • # cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
接下来,打开上面的文件,并将下面的选项设置相干的值:

  • anonymous_enable=NO             ### 禁用匿名登录
  • local_enable=YES        ### 答应当地用户登录
  • write_enable=YES        ### 答应对文件体系做改动的 FTP 下令
  • local_umask=022             ### 当地用户创建文件所用的 umask 值
  • dirmessage_enable=YES           ### 当用户初次进入一个新目次时表现一个消息
  • xferlog_enable=YES      ### 用于记载上传、下载细节的日记文件
  • connect_from_port_20=YES        ### 利用端口 20 (ftp-data)用于 PORT 风格的毗连
  • xferlog_std_format=YES          ### 利用尺度的日记格式
  • listen=NO               ### 不要让 vsftpd 运行在独立模式
  • listen_ipv6=YES             ### vsftpd 将监听 IPv6 而不是 IPv4
  • pam_service_name=vsftpd         ###  vsftpd 利用的 PAM 服务名
  • userlist_enable=YES             ### vsftpd 支持载入用户列表
  • tcp_wrappers=YES        ### 利用 tcp wrappers
5、 如今基于用户列表文件 /etc/vsftpd.userlist 来设置 FTP 来答应/拒绝用户的访问。
默认环境下,假如设置了 userlist_enable=YES,当 userlist_deny 选项设置为 YES 的时间,userlist_file=/etc/vsftpd.userlist 中列出的用户被拒绝登录。
然而, 更改设置为 userlist_deny=NO,意味着只有在 userlist_file=/etc/vsftpd.userlist 显式指定的用户才答应登录。

  • userlist_enable=YES                   ### vsftpd 将从 userlist_file 给出的文件中载入用户名列表
  • userlist_file=/etc/vsftpd.userlist    ### 存储用户名的文件
  • userlist_deny=NO  
这并不是全部,当用户登录到 FTP 服务器时,它们会进入 chroot jail 中,这是仅作为 FTP 会话主目次的当地根目次。
接下来,我们将先容怎样将 FTP 用户 chroot 到 FTP 用户的家目次(当地 root)中的两种大概环境,如下所述。
6、 接下来添加下面的选项来限定 FTP 用户到它们本身的家目次。

  • chroot_local_user=YES
  • allow_writeable_chroot=YES
chroot_local_user=YES 意味着用户可以设置 chroot jail,默认是登录后的家目次。
同样默认的是,出于安全缘故原由,vsftpd 不会答应 chroot jail 目次可写,然而,我们可以添加 allow_writeable_chroot=YES 来覆盖这个设置。
生存并关闭文件。
[size=1em]步调 3: 用 SELinux 加密 FTP 服务器
7、如今,让我们设置下面的 SELinux 布尔值来答应 FTP 能读取用户家目次下的文件。请留意,这本来是利用以下下令完成的:

  • # setsebool -P ftp_home_dir on
然而,由于这个 bug 陈诉:http://bugzilla.redhat.com/show_bug.cgi?id=1097775,ftp_home_dir 指令默认是禁用的。
如今,我们会利用 semanage 下令来设置 SELinux 规则来答应 FTP 读取/写入用户的家目次。

  • # semanage boolean -m ftpd_full_access --on
这时,我们必要重启 vsftpd 来使现在的设置见效:

  • # systemctl restart vsftpd
[size=1em]步调 4: 测试 FTP 服务器
8、 如今我们会用 useradd 下令[3]创建一个 FTP 用户来测试 FTP 服务器。

  • # useradd -m -c “Ravi Saive, CEO” -s /bin/bash ravi
  • # passwd ravi
之后,我们如下利用 echo 下令[4]添加用户 ravi 到文件 /etc/vsftpd.userlist 中:

  • # echo "ravi" | tee -a /etc/vsftpd.userlist
  • # cat /etc/vsftpd.userlist
9、 如今是时间测试我们上面的设置是否可以工作了。让我们利用匿名登录测试,我们可以从下面的截图看到匿名登录没有被答应。

  • # ftp 192.168.56.10
  • Connected to 192.168.56.10  (192.168.56.10).
  • 220 Welcome to TecMint.com FTP service.
  • Name (192.168.56.10:root) : anonymous
  • 530 Permission denied.
  • Login failed.
  • ftp>
s9F09R5gY8rFhy2E.jpg

测试 FTP 匿名登录

10、 让我们也测试一下没有列在 /etc/vsftpd.userlist 中的用户是否有权限登录,下面截图是没有列入的环境:

  • # ftp 192.168.56.10
  • Connected to 192.168.56.10  (192.168.56.10).
  • 220 Welcome to TecMint.com FTP service.
  • Name (192.168.56.10:root) : aaronkilik
  • 530 Permission denied.
  • Login failed.
  • ftp>
g7k9AAkezEKl0K7v.jpg

FTP 用户登录失败

11、 如今末了测试一下列在 /etc/vsftpd.userlist 中的用户是否在登录后真的进入了他/她的家目次:

  • # ftp 192.168.56.10
  • Connected to 192.168.56.10  (192.168.56.10).
  • 220 Welcome to TecMint.com FTP service.
  • Name (192.168.56.10:root) : ravi
  • 331 Please specify the password.
  • Password:
  • 230 Login successful.
  • Remote system type is UNIX.
  • Using binary mode to transfer files.
  • ftp> ls
MofcQcfpx1Xmc4oc.jpg

用户乐成登录

告诫:利用 allow_writeable_chroot=YES 有肯定的安全隐患,特殊是用户具有上传权限或 shell 访问权限时。
只有当你完全知道你正做什么时才激活此选项。紧张的是要留意,这些安全性影响并不是 vsftpd 特定的,它们实用于全部提供了将当地用户置于 chroot jail 中的 FTP 保卫历程。
因此,我们将在下一节中看到一种更安全的方法来设置差别的不可写当地根目次。
[size=1em]步调 5: 设置差别的 FTP 家目次
12、 再次打开 vsftpd 设置文件,并将下面不安全的选项解释掉:

  • #allow_writeable_chroot=YES
接着为用户(ravi,你的大概差别)创建别的一个替换根目次,并将全部用户对该目次的可写权限移除:

  • # mkdir /home/ravi/ftp
  • # chown nobody:nobody /home/ravi/ftp
  • # chmod a-w /home/ravi/ftp
13、 接下来,在用户存储他/她的文件的当地根目次下创建一个文件夹:

  • # mkdir /home/ravi/ftp/files
  • # chown ravi:ravi  /home/ravi/ftp/files
  • # chmod 0700 /home/ravi/ftp/files/
接着在 vsftpd 设置文件中添加/修改这些选项:

  • user_sub_token=$USER         ### 在当地根目次下插入用户名
  • local_root=/home/$USER/ftp   ### 界说任何用户的当地根目次
生存并关闭文件。再说一次,有新的设置后,让我们重启服务:

  • # systemctl restart vsftpd
14、 如今末了在测试一次检察用户当地根目次就是我们在他的家目次创建的 FTP 目次。

  • # ftp 192.168.56.10
  • Connected to 192.168.56.10  (192.168.56.10).
  • 220 Welcome to TecMint.com FTP service.
  • Name (192.168.56.10:root) : ravi
  • 331 Please specify the password.
  • Password:
  • 230 Login successful.
  • Remote system type is UNIX.
  • Using binary mode to transfer files.
  • ftp> ls
lyq0VRCCHqe08ggq.jpg

FTP 用户家目次登录乐成

就是如许了!在本文中,我们先容了如安在 CentOS 7 中安装、设置以及加密的 FTP 服务器,利用下面的批评栏给我们复兴,大概分享关于这个主题的任何有效信息。
发起阅读: 在 RHEL/CentOS 7 上安装 ProFTPD 服务器[5]
在下一篇文章中,我们还将向你先容如安在 CentOS 7 中掩护利用 SSL/TLS[6]毗连的 FTP 服务器,再此之前,请继承关注 TecMint。
作者简介:
Aaron Kili 是一名 Linux 和 F.O.S.S 爱好者,即将从事 Linux 体系管理员和网页开辟工作,他日前是 TecMint 技能网站的原创作者,非常喜好利用电脑工作,坚信分享知识是一种美德。
via: http://www.tecmint.com/install-ftp-server-in-centos-7/
作者:Aaron Kili[7] 译者:geekpi 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出


LCTT 译者 aWH5rK66cec6aaRG.jpg geekpi共计翻译:450 篇贡献时间:2014-05-21 -> 2017-05-19
相干阅读

  • [1]: 在服务器和客户端之间传输文件 - http://www.tecmint.com/scp-commands-examples/
  • [2]: sudo下令 - http://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/
  • [3]: useradd 下令 - http://www.tecmint.com/add-users-in-linux/
  • [4]: echo 下令 - http://www.tecmint.com/echo-command-in-linux/
  • [5]: 在 RHEL/CentOS 7 上安装 ProFTPD 服务器 - http://linux.cn/article-8504-1.html
  • [6]: 掩护利用 SSL/TLS - http://www.tecmint.com/secure-vsftpd-using-ssl-tls-on-centos/
  • [7]: Aaron Kili - http://www.tecmint.com/author/aaronkili/
保举文章

< 左右滑动检察相干文章 >

Ncc5vcAVJJQfVCIA.jpg wr6W66xW1866MUR6.jpg m10VNTsSL0gupO8b.jpg G611YPvT7ZQ14TjP.jpg HDec0vxgG68Cd5gr.jpg xtUx308K3X3igkFd.jpg tHxnBM7xNN9urhZx.jpg ii9I92Mk43InX6I3.jpg yEpyAp1bOhe9PY9w.jpg
输入文章 ID 或长按二维码直达




上一篇:win10/CentOS7双体系安装教程
下一篇:LinuxCentOS7安装教程
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-3 04:43 , Processed in 0.065242 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表