16 安全管理之防火墙和SELinux

在上一篇中,我们探讨了系统监控与性能调优的各种技巧,包括如何使用工具来监测系统性能以及适时调整系统参数以确保最佳性能。在本篇中,我们将重点讨论Linux系统的安全管理,重点关注两个关键组件:防火墙SELinux。这些组件是保护Linux环境免受未授权访问和潜在攻击的关键。

防火墙

Linux防火墙通常是通过iptables或更新的firewalld服务来实现的。防火墙的主要职责是根据定义的规则过滤入站和出站的网络流量。

1. 使用 firewalld 管理防火墙

firewalld是一个动态管理防火墙的工具,允许用户在不重新加载的情况下添加、删除规则。它使用“区域”(zones)来定义网络界面的访问级别。

安装和启动 firewalld

1
2
3
sudo yum install firewalld        # 对于基于RedHat的系统
sudo systemctl start firewalld
sudo systemctl enable firewalld

定义区域

你可以使用以下命令查看可用的区域:

1
sudo firewall-cmd --get-zones

默认区域通常是public。可以通过命令切换到trusted区域,这样所有流量都会被允许:

1
sudo firewall-cmd --set-default-zone=trusted

2. 添加防火墙规则

假设你有一个Web服务器运行在80443端口,你可以添加以下规则以允许HTTP和HTTPS流量:

1
2
3
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

3. 查看防火墙状态和规则

要查看当前的防火墙状态和已有规则,可以使用:

1
sudo firewall-cmd --list-all

案例:禁止某IP地址

如果你发现某个IP由于恶意行为需要被阻止,你可以使用以下命令进行阻止:

1
2
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' --permanent
sudo firewall-cmd --reload

SELinux

SELinux(Security-Enhanced Linux)是一个强制访问控制(MAC)系统,提供了更细粒度的安全控制。它通过定义政策来控制进程和文件之间的交互,从而增强Linux的安全性。

1. 查看 SELinux 状态

首先,我们需要确认SELinux的运行状态:

1
sestatus

如果状态为disabled,你需要在/etc/selinux/config文件中将SELINUX项设置为enforcingpermissive,并重启系统。

2. 基本命令

  • 临时切换到宽松模式:
1
sudo setenforce 0
  • 切换回强制模式:
1
sudo setenforce 1

3. 创建和修改策略

当你遇到某个程序因为SELinux策略而被拒绝访问文件时,可以查看拒绝日志:

1
ausearch -m avc -ts recent

若某个Web应用需要访问的文件被SELinux阻止,可以通过chcon命令来临时改变文件的上下文。假设你需要允许应用访问一个新的HTML文件:

1
sudo chcon -t httpd_sys_content_t /var/www/html/index.html

确保你在检查日志后,再次确认文件上下文是否符合预期,使用以下命令查看:

1
ls -Z /var/www/html/index.html

案例:为MySQL允许访问特定目录

如果MySQL在访问特定目录时被SELinux拒绝,请使用以下步骤:

  1. 使用getsebool查看和修改布尔值:
1
2
sudo getsebool mysql_connect_any
sudo setsebool -P mysql_connect_any on
  1. 确认MySQL服务是否能访问你指定的目录,修改对应上下文:
1
2
sudo semanage fcontext -a -t mysql_db_t "/my/custom/directory(/.*)?"
sudo restorecon -Rv /my/custom/directory

小结

在本篇中,我们深入讨论了Linux系统中的安全管理,重点是防火墙和SELinux的配置与使用。通过学习如何配置firewalld,我们能够有效管理网络流量,而使用SELinux则为系统提供了更强的安全保障。

在下篇中,我们将讨论安全审计与日志管理,帮助你查找和分析系统中的安全事件。通过完整的安全管理流程,我们可以确保你的Linux系统能够抵御可能的安全威胁。

16 安全管理之防火墙和SELinux

https://zglg.work/linux-system-admin/16/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论