第一章 初识防火墙体系

1.1 简介

当代Linux系统多采用firewalld服务管理防火墙(以CentOS 8技术栈为例)。通过区域化管理策略,我们可对不同网络接口实施差异化防护。查看当前状态的命令如同给服务器做安全体检:

# 查看当前默认区域及启用规则
$ sudo firewall-cmd --list-all
public (active)
  interfaces: eth0
  services: ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

# 查看所有可用服务预设
$ sudo firewall-cmd --get-services
amqp-client https mysql ssh ...

1.2 端口精准控制

部署Web服务时需开放HTTP/HTTPS端口,以下实战命令包含防护升级技巧:

# 永久开放端口(立即生效加--permanent参数)
$ sudo firewall-cmd --permanent --add-port=80/tcp
$ sudo firewall-cmd --permanent --add-port=443/tcp

# 紧急封禁可疑IP(有效期30秒)
$ sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="202.96.134.33" reject' --timeout=30

# 持久化规则需加载生效
$ sudo firewall-cmd --reload

1.3 高级防护机制

防止端口扫描的伪装策略值得关注,以下配置让服务器对扫描器显示为全封闭状态:

# 在/etc/firewalld/zones/public.xml中追加
<rule>
  <source port="1025-65535"/>
  <port protocol="tcp" port="1025-65535"/>
  <reject/>
</rule>

第二章 SSH密钥认证进阶

2.1 密钥体系构建

采用ED25519算法生成密钥对(Ubuntu 22.04技术栈),既安全又高效:

# 生成密钥对(-t指定算法,-f指定保存路径)
$ ssh-keygen -t ed25519 -f ~/.ssh/prod_rsa -C "admin@server"
Generating public/private ed25519 key pair...
Enter passphrase (empty for no passphrase): 
# 建议设置密码短语增强安全性

# 查看公钥指纹
$ ssh-keygen -lf ~/.ssh/prod_rsa.pub
256 SHA256:G3r3K2gQz0w+8a8D... admin@server (ED25519)

2.2 服务端深度加固

修改/etc/ssh/sshd_config时应采用最小权限原则:

# 禁用密码登录
PasswordAuthentication no

# 限制root直连
PermitRootLogin no

# 密钥白名单控制
AllowUsers deploy@192.168.1.0/24

# 重启服务使配置生效
$ sudo systemctl restart sshd

# 验证连接可用性(保持已有会话不退出)
$ sudo tail -f /var/log/secure

第三章 SELinux防护指南

3.1 强制模式开启

通过检测工具确保SELinux处于active状态(CentOS 8技术栈):

# 检查当前模式
$ getenforce
Enforcing

# 若显示Disabled需修改/etc/selinux/config
SELINUX=enforcing

# 临时切换模式(用于故障排查)
$ sudo setenforce 0  # 宽容模式
$ sudo setenforce 1  # 强制模式

3.2 文件上下文修正

部署自定义服务时需要调整安全标签,示例修复Nginx的非标准端口:

# 查看原始上下文
$ ls -Z /var/www/html
system_u:object_r:httpd_sys_content_t:s0 index.html

# 添加新端口的安全策略
$ sudo semanage port -a -t http_port_t -p tcp 8080

# 验证变更结果
$ sudo semanage port -l | grep http
http_cache_port_t       tcp      8080, 8112, 8123...

第四章 关联技术拓展

4.1 审计日志分析

结合ausearch工具进行安全事件回溯:

# 查询最近10条SELinux拒绝事件
$ sudo ausearch -m avc -ts today | audit2why

4.2 自动加固脚本

整合防护措施的Shell脚本示例:

#!/bin/bash
# 启用firewalld基础防护
systemctl start firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-port=80/tcp

# SELinux策略更新
restorecon -Rv /var/www/html
semanage fcontext -a -t httpd_sys_content_t "/webapps(/.*)?"

# SSH安全配置
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
systemctl reload sshd

第五章 应用场景解析

在高并发电商系统中,通过组合防火墙的速率限制与SELinux的策略控制,可有效抵御CC攻击。金融机构则常采用SSH证书双向认证,搭配命令执行审计模块实现运维安全。

第六章 技术方案优劣势

防火墙优势:流量控制颗粒度精细,支持动态规则调整
防火墙劣势:复杂规则影响网络吞吐,需要持续维护白名单

SSH密钥优势:彻底杜绝暴力破解,支持多因素认证
SSH密钥劣势:密钥丢失可能导致访问永久失效

SELinux优势:强制访问控制模型防御零日漏洞
SELinux劣势:策略学习曲线陡峭,容易引发服务异常

第七章 部署注意事项

  1. 生产环境变更前务必在测试环境验证防火墙规则
  2. SSH密钥建议存储在硬件加密设备中
  3. 禁用SELinux前需确认是否是权限问题导致服务异常
  4. 定期审查访问日志并更新失效密钥

第八章 整体实施建议

建立三阶段防护体系:

  • 初级防护:基础防火墙+SSH密钥认证
  • 中级防护:SELinux强制模式+日志监控
  • 高级防护:应用程序沙箱化+入侵检测联动