28 安全管理与防护之防火墙与SELinux

在上一章节中,我们讨论了自动化运维工具中的定时任务与 cron 的使用,学习了如何利用定时任务来帮助我们实现高效的日常运维工作。这一篇将深入探讨Linux系统中的安全管理与防护,特别是 防火墙SELinux 的使用。

一、防火墙概述

防火墙是网络安全的重要组成部分,它通过监控和控制进出网络的数据包,从而保护系统不受未授权访问和网络攻击的威胁。在Linux中,最常用的防火墙工具是 iptablesfirewalld

1.1 iptables

iptables 是一个强大的命令行工具,允许用户设置规则来决定哪些流量可以通过,哪些流量要被阻止。下面是一个简单的使用示例,演示如何允许SSH流量并阻止其他所有流量:

1
2
3
4
# 允许SSH(端口22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 拒绝所有其他流量
iptables -A INPUT -j DROP

在以上示例中,-A INPUT 代表添加一条入站规则,-p tcp --dport 22 指定了SSH服务的端口号,-j ACCEPT 是接受该流量的指令。

1.2 firewalld

firewalldiptables 的一种前端封装,提供了更易使用的命令行界面和图形界面。它使用区域和服务的概念来简化配置过程。以下是一个常用的命令示例,展示如何使用 firewalld 配置防火墙以允许HTTP流量:

1
2
3
4
5
6
7
8
# 启动firewalld服务
systemctl start firewalld
# 设置firewalld开机启动
systemctl enable firewalld
# 允许HTTP服务
firewall-cmd --permanent --add-service=http
# 重新加载防火墙规则
firewall-cmd --reload

通过以上命令,我们成功为HTTP服务(端口80)打开了防火墙。记得使用 --permanent 选项,以确保更改在重启后依旧有效。

二、SELinux

SELinux(Security-Enhanced Linux)是由美国国家安全局开发的Linux内核模块和用户空间工具,提供了一种强制访问控制(MAC)机制。SELinux通过上下文来定义进程和文件的访问权限,可以有效保护系统不被潜在的安全漏洞所攻击。

2.1 SELinux模式

SELinux 有三种基本模式:

  1. Enforcing(强制模式):会强制执行规则,并记录违反规则的事件。
  2. Permissive(宽容模式):不强制执行规则,但会记录可能违反规则的事件,对于调试是非常有用的。
  3. Disabled(禁用模式):禁用SELinux。

你可以通过以下命令查询当前SELinux的状态:

1
sestatus

2.2 常见操作与案例

下面是一些基本的操作示例,帮助你了解如何使用SELinux。

2.2.1 查看和设置SELinux模式

要临时将SELinux设置为 permissive 模式:

1
setenforce 0

要设置为 enforcing 模式:

1
setenforce 1

此外,可以通过修改配置文件 /etc/selinux/config 来永久改变SELinux的模式:

1
2
# 设置SELINUX为enforcing
SELINUX=enforcing

2.2.2 修改文件和进程的上下文

当某个应用因SELinux限制无法正常运作时,我们可以通过设置相应的上下文来解决这个问题。以下是修改文件上下文的示例:

1
2
# 修改文件上下文
chcon -t httpd_sys_content_t /var/www/html/index.html

在此示例中,chcon 命令用于将 /var/www/html/index.html 的上下文设置为 httpd_sys_content_t,以便让HTTP服务能够访问该文件。

三、小结

在本章中,我们讨论了Linux系统中的主要安全管理工具 防火墙SELinux。通过理解它们的基本原理和使用方式,我们能够有力地提升系统的安全性。在接下来的章节中,我们将进一步学习安全策略与用户权限管理,以确保我们构建的Linux运维环境既高效又安全。

28 安全管理与防护之防火墙与SELinux

https://zglg.work/linux-maintenance/28/

作者

IT教程网(郭震)

发布于

2024-08-11

更新于

2024-08-12

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论