如何配置防火墙提高服务器安全性

配置防火墙是提高服务器安全性的重要措施之一。防火墙可以控制网络流量,限制未经授权的访问,防止恶意攻击。以下是配置防火墙以提高服务器安全性的详细指南。
一、为什么需要配置防火墙
防火墙的主要作用是:
- 限制未经授权的访问:只允许可信任的流量通过。
- 防止恶意攻击:如 DDoS 攻击、端口扫描和入侵尝试。
- 保护敏感服务:确保只有特定 IP 地址或网络能够访问关键服务(如 SSH、数据库等)。
二、常见防火墙工具
-
Linux 系统:
- UFW(Uncomplicated Firewall):Ubuntu 和 Debian 系推荐,易于配置。
- firewalld:CentOS 和 RHEL 系推荐,动态管理规则。
- iptables:强大但复杂,可直接管理内核的防火墙功能。
- nftables:现代化替代 iptables,性能更高。
-
Windows 系统:
- Windows 防火墙(Windows Defender Firewall):内置于 Windows 系统。
- 第三方防火墙:如 Sophos、Comodo。
-
云防火墙:
- 公有云提供的防火墙(如 AWS Security Groups、阿里云安全组、Azure NSG)。
三、防火墙配置基础(以 Linux 为例)
1. 使用 UFW 配置防火墙(适用于 Ubuntu/Debian)
(1)安装和启用 UFW
bash
复制
sudo apt update
sudo apt install ufw -y
sudo ufw enable
(2)查看当前防火墙状态
bash
复制
sudo ufw status
(3)设置默认规则
默认规则应禁止所有入站流量,允许所有出站流量:
bash
复制
sudo ufw default deny incoming
sudo ufw default allow outgoing
(4)允许必要的端口
根据服务器需求,允许需要的端口:
- SSH(默认端口 22):
bash
复制
如果修改了 SSH 端口(如改为 2222):sudo ufw allow 22bash
复制
sudo ufw allow 2222 - HTTP(端口 80)和 HTTPS(端口 443):
bash
复制
sudo ufw allow 80 sudo ufw allow 443 - 其他服务:
例如允许 MySQL 数据库(端口 3306):bash
复制
sudo ufw allow 3306
(5)限制特定 IP 的访问
- 允许特定 IP 访问 SSH:
bash
复制
sudo ufw allow from 192.168.1.100 to any port 22 - 禁止特定 IP:
bash
复制
sudo ufw deny from 192.168.1.200
(6)启用防火墙并重新加载
确保规则生效:
bash
复制
sudo ufw reload
2. 使用 firewalld 配置防火墙(适用于 CentOS/RHEL)
(1)安装和启用 firewalld
bash
复制
sudo yum install firewalld -y
sudo systemctl start firewalld
sudo systemctl enable firewalld
(2)查看当前防火墙状态
bash
复制
sudo firewall-cmd --state
sudo firewall-cmd --list-all
(3)设置默认规则
- 默认拒绝所有入站流量:
bash
复制
sudo firewall-cmd --set-default-zone=drop - 查看默认区域:
bash
复制
sudo firewall-cmd --get-default-zone
(4)允许必要的端口
- 允许 SSH:
bash
复制
sudo firewall-cmd --permanent --add-service=ssh - 允许 HTTP 和 HTTPS:
bash
复制
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https - 允许自定义端口:
例如允许端口 8080:bash
复制
sudo firewall-cmd --permanent --add-port=8080/tcp
(5)限制特定 IP 的访问
- 允许特定 IP 访问 SSH:
bash
复制
sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port protocol='tcp' port='22' accept" - 禁止特定 IP:
bash
复制
sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.200' drop"
(6)重新加载规则
bash
复制
sudo firewall-cmd --reload
3. 使用 iptables 配置防火墙(适用于所有 Linux 系统)
(1)查看当前规则
bash
复制
sudo iptables -L -v
(2)设置默认规则
- 默认拒绝所有入站流量:
bash
复制
sudo iptables -P INPUT DROP - 默认允许所有出站流量:
bash
复制
sudo iptables -P OUTPUT ACCEPT
(3)允许必要的端口
- 允许 SSH:
bash
复制
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT - 允许 HTTP 和 HTTPS:
bash
复制
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
(4)限制特定 IP 的访问
- 允许特定 IP 访问:
bash
复制
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT - 禁止特定 IP:
bash
复制
sudo iptables -A INPUT -s 192.168.1.200 -j DROP
(5)保存规则
根据系统选择保存命令:
- Ubuntu:
bash
复制
sudo iptables-save > /etc/iptables/rules.v4 - CentOS:
bash
复制
sudo service iptables save
四、Windows 防火墙配置
1. 打开 Windows 防火墙
- 按
Win + R,输入firewall.cpl,回车。
2. 配置入站规则
- 点击“高级设置”。
- 在“入站规则”中,点击“新建规则”。
- 选择“端口”,点击“下一步”。
- 选择协议(如 TCP),输入端口号(如 22)。
- 选择“允许连接”,点击“下一步”。
- 按需求选择应用的网络类型(如“公用”或“专用”)。
- 为规则命名并保存。
3. 配置出站规则
类似入站规则的配置,但用于限制服务器发出的流量。
4. 限制特定 IP
在规则设置中,选择“作用域”,为允许或禁止的 IP 设置范围。
五、云防火墙配置
如果服务器运行在云环境中(如 AWS、阿里云、Azure),需要配置云防火墙(安全组):
- 登录云平台。
- 定位安全组:
- AWS:Security Groups。
- 阿里云:安全组规则。
- Azure:网络安全组(NSG)。
- 配置入站规则:
- 开放必要的端口(如 SSH、HTTP)。
- 限制特定 IP 的访问。
- 配置出站规则(可选)。
六、防火墙配置建议
-
最小化开放端口:
- 仅开放必要的端口,例如:
- SSH:22(或修改为其他端口)。
- HTTP:80、HTTPS:443。
- 数据库:仅对内部网络开放(如 3306)。
- 禁止未使用的服务端口。
- 仅开放必要的端口,例如:
-
限制访问范围:
- SSH 和数据库服务仅允许可信任的 IP 地址访问。
- 使用 VPN 或跳板机访问敏感服务。
-
启用日志记录:
- 开启防火墙日志记录,以便监控异常流量。
-
防止恶意扫描:
- 配合防火墙使用工具(如 Fail2Ban),自动封禁多次失败尝试的 IP。
-
定期审查规则:
- 每隔一段时间检查防火墙规则,移除不必要的规则。
通过合理配置防火墙,可以显著提高服务器的安全性,减少恶意流量、入侵和攻击的风险。将防火墙与其他安全措施(如 SSH 密钥、定期更新系统)结合使用,才能构建一个全面的安全防护体系。
相关文章:
如何配置防火墙提高服务器安全性
配置防火墙是提高服务器安全性的重要措施之一。防火墙可以控制网络流量,限制未经授权的访问,防止恶意攻击。以下是配置防火墙以提高服务器安全性的详细指南。 一、为什么需要配置防火墙 防火墙的主要作用是: 限制未经授权的访问:…...
java集合-Map HashMap 源码解析
hashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,无序,不可重复。HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。HashMap 实现了Ser…...
案例分享|企查查的数据降本增效之路
分享嘉宾 任何强 企查查科技股份有限公司 大数据架构负责人 关于企查查 “企查查”是企查查科技股份有限公司旗下的一款企业信用查询工具。2023年5月20日,企查查正式发布全球首款商查大模型——“知彼阿尔法”,该模型基于企查查覆盖的全球企业信用数据进…...
图书馆管理系统(四)基于jquery、ajax--完结篇
任务3.6 后端代码编写 任务描述 这个部分主要想实现图书馆管理系统的后端,使用 Express 框架来处理 HTTP 请求,并将书籍数据存储在一个文本文件 books.txt 中。 任务实施 3.6.1 引入模块及创建 Express 应用 const express require(express); cons…...
什么是Modbus协议网关?
在工业自动化领域,设备间的通信与数据交换是实现高效、智能控制的关键。Modbus协议作为一种广泛应用的通信协议,自1971年由Modicon公司首次推出以来,便以其标准、开放、支持多种电气接口等特点,在工业控制系统中占据了重要地位。然…...
Docker 容器中启用 SSH 服务
在 Docker 容器中运行 SSH 服务需要一些调整,因为 Docker 容器通常使用 init 系统而不是完整的 systemd。以下是配置 SSH 服务在 Docker Ubuntu 容器中运行的步骤: 1. 安装 SSH 服务 如果还未安装 OpenSSH,请先安装: apt update…...
Linux系统—利用systemd管控系统以及服务详解(十四)
本文为Ubuntu Linux操作系统- 第十四弹~~ 新的一周开始了,时间过得真快,这星期就要冬至啦!! 今天继续Linux系统高级管理板块,主要讲述使用systemd管控系统和服务~ 上期回顾:“Linux系统—进程管理详解” 更…...
人工智能 AI 大模型研究设计与实践应用技术毕业论文
标题:人工智能 AI 大模型研究设计与实践应用技术 内容:1.摘要 人工智能 AI 大模型是当前人工智能领域的研究热点之一,它具有高度的通用性、灵活性和智能性,可以应用于多种领域,如自然语言处理、计算机视觉、语音识别等。本文旨在探讨人工智能…...
已有 containerd 的情况下部署二进制 docker 共存
文章目录 [toc]学习目的开始学习dockerd启动 containerd准备配置文件启动 containerd 启动 docker准备配置文件启动 docker 环境验证停止 docker 和 containerd 学习目的 使用容器的方式做一些部署的交付,相对方便很多,不需要担心别人的环境缺少需要的依…...
VSCode 搭建Python编程环境 2024新版图文安装教程(Python环境搭建+VSCode安装+运行测试+背景图设置)
名人说:一点浩然气,千里快哉风。—— 苏轼《水调歌头》 创作者:Code_流苏(CSDN) 目录 一、Python环境安装二、VScode下载及安装三、VSCode配置Python环境四、运行测试五、背景图设置 很高兴你打开了这篇博客,更多详细的安装教程&…...
vue+springboot+cas配置及cookie传递问题
cookie的注意事项 前边的文章已经介绍过cookie的基本信息,这里再次说明一点:cookie是无法进行跨域传递的,很多时候cookie无法设置和传递都是因为跨域问题,ip/端口不一致。 主要就是:被设置cookie和要传递cookie的地址…...
0009.基于springboot+layui的ERP企业进销存管理系统
一、系统说明 基于springbootlayui的ERP企业进销存管理系统,系统功能齐全, 代码简洁易懂,适合小白学编程,课程设计,毕业设计。 二、系统架构 前端:html| layui 后端:springboot | mybatis| thymeleaf 环境:jdk1.8 |…...
ZYNQ初识2(zynq_7010)基于vivado,从PL端调用PS端的时钟
由于需要进行一些FPGA的简单开发,但板载PL端没有焊接晶振,所以需要从PS端借用时钟到PL端使用。 首先新建项目,根据自己的板载选择芯片,我的板载芯片是zynq_7010。 一路next,在自己的vivado的工作文档新建文件夹并给自…...
Android详解——ConstraintLayout约束布局
目录 一、ConstraintLayout概述 二、ConstraintLayout属性介绍 1. 相对位置 2. 边距 3. 中心和偏移位置 中心位置 偏移位置 4. 圆形位置 5. 可见性 6. 尺寸约束 最小尺寸 WRAP_CONTENT :强制约束 MATCH_CONSTRAINT Min和Max 百分比尺寸 比率 7. 链式布局 创建…...
docker简单命令
docker images 查看镜像文件 docker ps -a 查看容器文件 docker rm 0b2 删除容器文件,id取前三位即可 docker rmi e64 删除镜像文件(先删容器才能删镜像),id取前三位即可 在包含Dockerfile文件的目录…...
【linux】shell(36)-文件操作
1. 文件创建 1.1 使用 touch 命令创建空文件 touch filename创建一个名为 filename 的空文件。如果文件已存在,touch 会更新该文件的时间戳。 示例: touch file1.txt1.2 使用重定向符创建文件 > filename使用 > 符号创建一个空文件。如果文件…...
c语言——数据结构【链表:单向链表】
上篇→快速掌握C语言——数据结构【创建顺序表】多文件编译-CSDN博客 一、链表 二、单向链表 2.1 概念 2.2 单向链表的组成 2.3 单向链表节点的结构体原型 //类型重定义,表示存放的数据类型 typedef int DataType;//定义节点的结构体类型 typedef struct node {union{int l…...
Python 标识符是啥?
Python 的标识符就是我们写代码时用来给变量、函数、类等取名字的东西。 你写的 my_variable 是个标识符, 定义的 add_numbers 函数名也是个标识符, 甚至你写的 Cat 类名,也是标识符。 一句话总结:标识符就是代码里给“东西”起…...
视频及JSON数据的导出并压缩
npm下载安装 jszip 和 file-saver 这两个库来实现文件的压缩和保存功能: npm install jszip npm install file-saver 导入依赖库: import JSZip from jszip; import { saveAs } from file-saver; 方法实现: batchDownload() {const zip…...
VScode使用教程(菜鸟版)
目录 1.VScode是什么? 2.VScode的下载和安装? 2.1下载和安装 下载路径: 安装流程: 一、点击【Download for Windows】 二、等一小会儿的下载,找到并双击你下载好的.exe文件,开始进入安装进程 三、点…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...
