Web服务器(也称为一个HTTP服务器)是处理切换到客户机的内容(最常用的网页,但其他类型的文档以及)网络中的服务。
一台FTP服务器是最古老和最常用的资源(即使这一天),以使文件提供给客户的情况下的网络中没有认证是必要的,因为FTP使用用户名和密码没有加密的之一。
在RHEL 7可用的Web服务器是Apache HTTP服务器的2.4版本。 作为FTP服务器,我们将使用非常安全的FTP守护程序(又名vsftpd的 )建立由TLS安全连接。
RHCSA:安装,配置和保护Apache和FTP - 第9部分
在本文中,我们将解释如何在RHEL 7中安装,配置和保护Web服务器和FTP服务器。
安装Apache和FTP服务器
在本指南中,我们将使用RHEL 7服务器的192.168.0.18/24一个静态IP地址。 要安装Apache和VSFTPD,请运行以下命令:
# yum update && yum install httpd vsftpd
安装完成后,这两个服务将最初被禁用,因此我们需要手动启动它们,并使他们能够自动开始自动下次启动:
# systemctl start httpd # systemctl enable httpd # systemctl start vsftpd # systemctl enable vsftpd
此外,我们必须打开端口80和21,其中Web和FTP守护进程分别聆听,以允许访问来自外部的这些服务:
# firewall-cmd --zone=public --add-port=80/tcp --permanent # firewall-cmd --zone=public --add-service=ftp --permanent # firewall-cmd --reload
要确认Web服务器正常工作,请激活浏览器并输入服务器的IP。 您应该看到测试页:
确认Apache Web服务器
至于ftp服务器,我们将进一步配置它,我们将在一分钟内,在确认它的工作正常。
配置和保护Apache Web服务器
Apache的主配置文件位于/etc/httpd/conf/httpd.conf
,但它可能依靠现在里面的其他文件/etc/httpd/conf.d
。
虽然默认的配置应足以满足大多数情况下,这是一个好主意,熟悉的中描述的所有可用选项的官方文档 。
一如既往,在编辑主配置文件之前备份其副本:
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.$(date +%Y%m%d)
然后使用首选的文本编辑器打开它,并查找以下变量:
- ServerRoot的 :所在服务器的配置,错误和日志文件保存的目录。
- 听 :指示Apache监听特定的IP地址和/或端口。
- 包括 :允许其它配置文件,它必须存在的包容性。 否则,服务器将失败,而不是IncludeOptional指令,如果指定的配置文件不存在,该指令将被忽略。
- 用户和组 :用户/组的名称来运行httpd服务的。
- 的DocumentRoot:目录外面的Apache将成为您的文档。 默认情况下,所有请求都来自此目录,但符号链接和别名可用于指向其他位置。
- 服务器名称:这个指令设置服务器用于辨识自己的主机名(或IP地址)和端口。
第一安全措施将包括建立一个专门的用户和组(即youcl / youcl)运行Web服务器和更改默认端口到更高的(9000在这种情况下)的:
ServerRoot "/etc/httpd" Listen 192.168.0.18:9000 User youcl Group youcl DocumentRoot "/var/www/html" ServerName 192.168.0.18:9000
您可以使用测试配置文件。
# apachectl configtest
如果一切正常 ,然后重新启动Web服务器。
# systemctl restart httpd
并且不要忘记在防火墙中启用新端口(并禁用旧端口):
# firewall-cmd --zone=public --remove-port=80/tcp --permanent # firewall-cmd --zone=public --add-port=9000/tcp --permanent # firewall-cmd --reload
需要注意的是,由于SELinux策略,您只能使用返回的端口
# semanage port -l | grep -w '^http_port_t'
为Web服务器。
如果你想使用其他端口(如TCP端口8100),则必须将其添加到httpd服务SELinux的端口上下文:
# semanage port -a -t http_port_t -p tcp 8100
将Apache端口添加到SELinux策略
要进一步确保您的Apache安装,请按照下列步骤操作:
1. Apache是运行作为用户不应该有访问shell:
# usermod -s /sbin/nologin youcl
2.禁用目录,以防止浏览器显示目录的内容,如果有出现在该目录中没有列出的index.html。
编辑/etc/httpd/conf/httpd.conf
(和虚拟主机配置文件,如果有的话),并确保在Options指令,无论是在顶部和目录块级别,设置为无 :
Options None
3.关于Web服务器和操作系统在HTTP响应中隐藏的信息。 编辑/etc/httpd/conf/httpd.conf
如下:
ServerTokens Prod ServerSignature Off
现在,你就可以开始从您的/ var / www / html等目录服务的内容。
配置和保护FTP服务器
作为Apache的情况下,为的Vsftpd主配置文件(/etc/vsftpd/vsftpd.conf)
有很好的注释,虽然默认配置应该能满足大部分的应用程序,你应该成为熟悉的文档和手册页(man vsftpd.conf)
为了更有效地运行FTP服务器(我不能强调的是足够的!)。
在我们的例子中,这些是使用的指令:
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES allow_writeable_chroot=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
通过使用chroot_local_user=YES
,本地用户将(默认)放在一个chroot的监狱在他们的家目录登录之后。 这意味着本地用户将无法访问其相应主目录之外的任何文件。
最后,允许FTP在用户的主目录中读取文件,设置以下中的SELinux:
# setsebool -P ftp_home_dir on
现在,您可以使用客户端,如Filezilla的连接到FTP服务器:
检查FTP连接
请注意, /var/log/xferlog
日志记录的下载和上传,这与上面的目录列表同意:
监控FTP下载和上传
另请阅读 : 限制ftp的网络带宽在一个Linux系统,带有涓流应用程序使用
概要
在本教程中,我们已经解释了如何设置web和ftp服务器。 由于主题的广泛性,不可能覆盖这些主题的所有方面(即虚拟web主机)。 因此,我建议你也检查本网站对其他优秀文章的Apache 。