当前位置: 首页 > news >正文

Linux防火墙

一、什么是防火墙

二、windows防火墙的设置


一、什么是防火墙

防火墙是一种网络安全设备,它能够:

  • 监控和过滤进出网络的流量

  • 阻止不安全的连接

  • 保护计算机和网络免受未授权访问

  • 创建一个安全边界

简单来说,防火墙就像是电脑的"安全门卫",决定谁能进、谁能出。

1.1 为什么需要防火墙?

防火墙的重要性:

没有防火墙的系统就像没有锁的房门,任何人都可以随意进出:

  • 黑客可以轻易入侵系统

  • 恶意程序可以自由访问网络

  • 个人数据容易被窃取

  • 系统资源可能被滥用

1.2 防火墙区域(Zone)

firewalld引入了"区域"的概念,类似于不同的安全级别:

常见区域简介:

区域名称信任级别适用场景
trusted全信任完全信任的网络,允许所有连接
home高度信任家庭网络,信任大多数计算机
internal高度信任内部网络,类似home区域
work中度信任工作环境,信任部分计算机
public低信任公共场所,仅信任选择的连接(默认区域
external低信任外部网络,用于启用伪装模式
dmz低信任隔离区,有限度地允许外部访问
block拒绝拒绝所有连接,没有回应
drop拒绝丢弃所有连接,无任何回应

二、windows防火墙的设置

2.1 基本命令

查看防火墙状态
# 查看firewalld是否运行
systemctl status firewalld# 查看firewalld服务状态
firewall-cmd --state
启动和停止防火墙
# 启动防火墙
systemctl start firewalld# 停止防火墙(不推荐)
systemctl stop firewalld# 设置开机自启动
systemctl enable firewalld# 禁止开机自启动(不推荐)
systemctl disable firewalld
查看防火墙配置
# 查看默认区域(default)
firewall-cmd --get-default-zone# 查看活动区域
firewall-cmd --get-active-zones

2.2 防火墙规则管理

服务管理

在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.3 端口管理

除了服务,还可以直接管理具体端口:

# 查看开放的端口
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

2.4 防火墙规则模式

防火墙规则有两种模式:

  1. 临时模式

    • 立即生效

    • 重启后失效

    • 命令不包含 --permanent 参数

  2. 永久模式

    • 写入配置文件

    • 重启后仍有效

    • 命令包含 --permanent 参数

    • 需要执行 firewall-cmd --reload 使规则立即生效

# 添加永久规则后重新加载
firewall-cmd --zone=public --add-service=https --permanentfirewall-cmd --reload

三、换源

3.1 换源

步骤 1:备份原有的 YUM 源文件 在更换 YUM 源之前,建议先备份系统自带的 YUM 源配置文件,以防需要恢复原配置。

cd /etc/yum.repos.d-- 重命名文件
mv CentOS-Base.repo CentOS-Base.repo.bak

步骤 2:下载国内源的 YUM 配置文件 以下是一些常用的国内镜像源,你可以选择其中一个替换。

这里小编用的事阿里云的

wget 【地址】
  1. 阿里云源 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

  2. 清华大学源 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/Centos-7.repo

  3. 网易源 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

  4. 中科大源 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.ustc.edu.cn/centos/7/os/x86_64/

步骤 3:清理 YUM 缓存 更换源之后需要清理原有的缓存,以便使用新的源进行软件包更新。

-- 清理缓存
yum clean all-- 构建缓存
yum makecache

配置Apache Web服务器防火墙

以下是一个简单的Web服务器防火墙配置案例:

1、下载http服务
yum install httpd 2、启动http服务
systemctl start httpd3、设置http服务为自启
systemctl enable httpd4、配置防火墙允许http访问
firewall-cmd --zone=public --add-service=http --permanent5、重新加载http服务
firewall-cmd reload6、查看防火墙规则
firewall-cmd --list-all | grep http  7、测试访问web服务器
ctrl http://localhost 

默认情况下,Apache使用80端口提供HTTP服务。如果需要配置HTTPS服务,还需要开放443端口:

# 为Apache添加HTTPS支持
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --reload

3.2 常见问题排查

服务无法访问

如果配置了防火墙规则但服务仍然无法访问:

# 1. 检查服务是否正在运行
systemctl status httpd  # 以Apache为例# 2. 确认防火墙是否启用了相应服务或端口
firewall-cmd --list-all# 3. 暂时关闭防火墙测试
systemctl stop firewalld
# 尝试访问服务,如果现在可以访问,说明是防火墙规则问题# 4. 检查SELinux状态(可能也会阻止服务)
getenforce
# 如果显示Enforcing,可以尝试临时关闭SELinux
setenforce 0

3.3 规则不生效

如果添加的规则没有生效:

# 1. 确认是否添加了--permanent参数但忘记reload
firewall-cmd --reload# 2. 检查是否在正确的区域添加了规则
firewall-cmd --get-default-zone
firewall-cmd --get-active-zones# 3. 检查防火墙服务是否运行
systemctl status firewalld

3.4 安全建议

  1. 最小权限原则

    • 只开放必要的服务和端口

    • 定期检查已开放的端口列表

    • 关闭不需要的服务

  2. 记录和审计

    • 启用防火墙日志记录可疑活动

    • 定期审查防火墙规则

  3. 防火墙不是唯一防线

    • 结合其他安全措施(强密码、更新补丁等)

    • 定期备份重要数据

http://www.xdnf.cn/news/389197.html

相关文章:

  • Python模块与包以及工程文件管理
  • 【Python训练营打卡】day22 @浙大疏锦行
  • Linux-Ext系列文件系统
  • AI Agent(10):个人助手应用
  • Transformer Decoder-Only 参数量计算
  • 【计算机视觉】OpenCV实战项目 :Image_Cartooning_Web_App:基于深度学习的图像卡通化
  • 代理售票系统|基于Java+vue的代理售票系统(源码+数据库+文档)
  • CVPR2023 | StyLess: 提升对抗样本的可迁移性
  • MATLAB 矩阵与数组操作基础教程
  • 量化交易系统开发经验分享--回测框架调研
  • 股票回购、股票减持和股票解禁对股票价格影响的综合分析
  • Synchronized与锁升级
  • 经典工具箱、常见工具、软件合集【免费无广告】
  • 【C/C++】跟我一起学_C++同步机制效率对比与优化策略
  • 云计算中的虚拟化:成本节省、可扩展性与灾难恢复的完美结合
  • mybatis执行sql过程
  • 设计模式简述(十九)桥梁模式
  • 红黑树(C++)
  • 大模型对时尚穿搭体验的革新与重塑
  • 强化学习入门:马尔科夫过程
  • Linux系统中的Web服务器部署及优化
  • 5java集合框架
  • # Ollama 实现大模型调用
  • 无侵入式弹窗体验_探索 Chrome 的 Close Watcher API
  • Android Canvas API 详细说明与示例
  • python【扩展库】websockets
  • idea中的vcs不见了,如何解决
  • 探秘 DeerFlow:字节跳动开源的科研创作魔法盒!
  • 温湿度传感器SHT4X
  • 【C++】AVL树实现