admin管理员组文章数量:1516870
一:Linux中的防火墙
什么是防火墙
windows防火墙的设置
linux防火墙设置命令
二:什么是防火墙?
防火墙是一种网络安全设备,它能够:
监控和过滤进出网络的流量
阻止不安全的连接
保护计算机和网络免受未授权访问
创建一个安全边界
简单来说,防火墙就像是电脑的"安全门卫",决定谁能进、谁能出。
三:为什么需要防火墙?
防火墙的重要性:
没有防火墙的系统就像没有锁的房门,任何人都可以随意进出:
黑客可以轻易入侵系统
恶意程序可以自由访问网络
个人数据容易被窃取
系统资源可能被滥用
四:Windows中的防火墙
大多数学生可能更熟悉Windows防火墙:
Windows防火墙的基本操作:
(2)什么是Nginx?
Nginx(发音为"engine-x")是一个高性能的开源Web服务器和反向代理服务器。相比传统的Apache服务器,Nginx具有以下特点:
轻量级 :占用资源少,内存消耗低
高并发 :能够同时处理数万个连接
高性能 :处理静态文件的速度非常快
可扩展性 :丰富的模块系统
反向代理 :可以作为前端服务器分发请求
在Windows系统中,Nginx也可以安装使用,同样需要在防火墙中开放相应端口才能正常访问。
五:Linux中的防火墙
(1)Linux防火墙的发展
Linux系统中的防火墙经历了几次演变:
CentOS 5/6 使用的是 iptables 防火墙
CentOS 7 开始使用 firewalld 防火墙
httpd 最后字母d一般都是守护进程,后台进程
# firewalld名称的由来
firewalld = fire(火) + wall(墙) + d(守护进程)
# 守护进程就是在后台持续运行的程序iptables和firewalld的主要区别:
iptables是静态的,修改规则需要重新加载整个规则集
firewalld是动态的,可以在运行时修改规则
firewalld引入了"区域"的概念,使管理更简单
firewalld提供了更友好的命令行工具
(2)防火墙区域(Zone)
firewalld引入了"区域"的概念,类似于不同的安全级别:
常见区域简介:
| 区域名称 | 信任级别 | 适用场景 |
|---|---|---|
| trusted | 全信任 | 完全信任的网络,允许所有连接 |
| home | 高度信任 | 家庭网络,信任大多数计算机 |
| internal | 高度信任 | 内部网络,类似home区域 |
| work | 中度信任 | 工作环境,信任部分计算机 |
| public | 低信任 | 公共场所,仅信任选择的连接( 默认区域 ) |
| external | 低信任 | 外部网络,用于启用伪装模式 |
| dmz | 低信任 | 隔离区,有限度地允许外部访问 |
| block | 拒绝 | 拒绝所有连接,没有回应 |
| drop | 拒绝 | 丢弃所有连接,无任何回应 |
六:基本命令
(1)查看防火墙状态
# 查看firewalld是否运行
systemctl status firewalld
# 查看firewalld服务状态
firewall-cmd --state(2)启动和停止防火墙
# 启动防火墙
systemctl start firewalld
# 停止防火墙(不推荐)
systemctl stop firewalld
# 设置开机自启动
systemctl enable firewalld
# 禁止开机自启动(不推荐)
systemctl disable firewalld(3)查看防火墙配置
# 查看默认区域(default)firewall-cmd --get-default-zone
# 查看活动区域firewall-cmd --get-active-zones七:防火墙规则管理
(1)服务管理
在Linux防火墙中,"服务"是预定义的常用端口和协议组合。
# 查看所有可用服务
firewall-cmd --get-services
# 查看当前区域启用的服务
firewall-cmd --zone=public --list-services
# 临时添加服务
firewall-cmd --zone=public --add-service=http
# 永久添加服务
firewall-cmd --zone=public --add-service=http --permanent
# 移除服务
firewall-cmd --zone=public --remove-service=http --permanent常用服务示例:
http (80端口):网站服务
https (443端口):安全网站服务
ssh (22端口):远程连接
ftp (21端口):文件传输
(2)端口管理
除了服务,还可以直接管理具体端口:
# 查看开放的端口
firewall-cmd --zone=public --list-ports
# 临时开放单个端口
firewall-cmd --zone=public --add-port=8080/tcp
# 永久开放端口范围
firewall-cmd --zone=public --add-port=5000-6000/tcp --permanent
# 关闭端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent(3)防火墙规则模式
防火墙规则有两种模式:
临时模式
立即生效
重启后失效
命令不包含
--permanent参数
永久模式
写入配置文件
重启后仍有效
命令包含
--permanent参数需要执行
firewall-cmd --reload使规则立即生效
# 添加永久规则后重新加载
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --reload八:简单应用案例
(1)什么是Apache HTTP Server(httpd)?
Apache HTTP Server(通常简称为httpd)是世界上最流行的Web服务器软件之一。它具有以下特点:
稳定可靠 :经过多年验证的稳定性和可靠性
模块化设计 :丰富的模块可以扩展功能
跨平台 :支持几乎所有主流操作系统
活跃的社区 :大型开发者社区提供支持
多功能 :支持CGI、PHP、Perl等多种技术
Apache在Linux系统中被广泛使用,特别适合:
网站托管
动态内容处理
虚拟主机
身份验证和授权
(2)换源
步骤 1:备份原有的 YUM 源文件 在更换 YUM 源之前,建议先备份系统自带的 YUM 源配置文件,以防需要恢复原配置。
sudo cp /etc/yum.repos.d/CentOS-Base.repo
/etc/yum.repos.d/CentOS-Base.repo.bak步骤 2:下载国内源的 YUM 配置文件 以下是一些常用的国内镜像源,你可以选择其中一个替换。
阿里云源 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo
清华大学源 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo
网易源 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo
中科大源 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo
步骤 3:清理 YUM 缓存 更换源之后需要清理原有的缓存,以便使用新的源进行软件包更新。
sudo yum clean all
sudo yum makecache(3) 配置Apache Web服务器防火墙
以下是一个简单的Web服务器防火墙配置案例:
# 1. 安装Apache Web服务器
yum install httpd -y
# 2. 启动Apache服务
systemctl start httpd
systemctl enable httpd
# 3. 配置防火墙允许HTTP访问
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload
# 4. 验证防火墙规则
firewall-cmd --list-all | grep http
# 5. 测试访问Web服务器
curl
# 也可以从浏览器访问服务器IP地址默认情况下,Apache使用80端口提供HTTP服务。如果需要配置HTTPS服务,还需要开放443端口:
# 为Apache添加HTTPS支持
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --reload(4)配置SSH远程连接
保护SSH服务的案例:
# 1. 确认SSH服务状态
systemctl status sshd
# 2. 查看SSH是否已在防火墙中开放
firewall-cmd --list-services | grep ssh
# 3. 如果没有开放,添加SSH服务
firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --reload九:常见问题排查
(1)服务无法访问
如果配置了防火墙规则但服务仍然无法访问:
# 1. 检查服务是否正在运行
systemctl status httpd # 以Apache为例
# 2. 确认防火墙是否启用了相应服务或端口
firewall-cmd --list-all
# 3. 暂时关闭防火墙测试
systemctl stop firewalld
# 尝试访问服务,如果现在可以访问,说明是防火墙规则问题
# 4. 检查SELinux状态(可能也会阻止服务)
getenforce
# 如果显示Enforcing,可以尝试临时关闭SELinux
setenforce 0(2)规则不生效
如果添加的规则没有生效:
# 1. 确认是否添加了--permanent参数但忘记reload
firewall-cmd --reload
# 2. 检查是否在正确的区域添加了规则
firewall-cmd --get-default-zone
firewall-cmd --get-active-zones
# 3. 检查防火墙服务是否运行
systemctl status firewalld十:安全建议
最小权限原则
只开放必要的服务和端口
定期检查已开放的端口列表
关闭不需要的服务
记录和审计
启用防火墙日志记录可疑活动
定期审查防火墙规则
防火墙不是唯一防线
结合其他安全措施(强密码、更新补丁等)
定期备份重要数据
版权声明:本文标题:深度解析:如何在Linux上搭建强大的防火墙来屏蔽Flash中心的攻击 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1772628477a3275918.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论