第十章 基于端口号

  • 内容
  • 评论
  • 相关

Web服务器还能根据端口号来区分网站,因为SElinux的存在我们不仅要考虑上下文的限制,还有考虑SElinux对端口的限制,一般正常的80,443,8080不会限制,但是其他端口会有限制。

分别在/home/wwwroot中创建用于保存不同网站数据的两个目录,并向其中分别写入网站的首页文件。每个首页文件中应有明确区分不同网站内容的信息,方便我们稍后能更直观地检查效果。

在httpd服务配置文件的第43行和第44行分别添加用于监听6111和6112端口的参数。

在httpd服务的配置文件中大约113行处开始,分别追加写入两个基于端口号的虚拟主机网站参数,然后保存并退出。记得需要重启httpd服务,这些配置才生效。

<VirtualHost 192.168.38.10:6111>

DocumentRoot “/home/wwwroot/6111”

ServerName www.linux.com

<Directory “/home/wwwroot/6111”>

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

在设置SElinux安全上下文

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111/*

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6112

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6112/*

restorecon -Rv /home/wwwroot/

重启服务报错了,因为SElinux监控到2个怪端口当http服务了。我们可以使用semanage命令查询并过滤出所有与HTTP协议相关且SELinux服务允许的端口列表。

SELinux允许的与HTTP协议相关的端口号中默认没有包含6111和6222,因此需要将这两个端口号手动添加进去。该操作会立即生效,而且在系统重启过后依然有效。设置好后再重启httpd服务程序,然后就可以看到网页内容了

semanage port -a -t http_port_t -p tcp 6111

semanage port -a -t http_port_t -p tcp 6112