第一章 初识防火墙体系
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劣势:策略学习曲线陡峭,容易引发服务异常
第七章 部署注意事项
- 生产环境变更前务必在测试环境验证防火墙规则
- SSH密钥建议存储在硬件加密设备中
- 禁用SELinux前需确认是否是权限问题导致服务异常
- 定期审查访问日志并更新失效密钥
第八章 整体实施建议
建立三阶段防护体系:
- 初级防护:基础防火墙+SSH密钥认证
- 中级防护:SELinux强制模式+日志监控
- 高级防护:应用程序沙箱化+入侵检测联动
评论