运维初学者必备之centos7防火墙策略配置
运维初学者必备之centos7防火墙策略配置
1.前言:
Centos7以上的发行版都试自带了firewalld防火墙的,firewalld去带了iptables防火墙。其原因是iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是交由内核层面的nftables包过滤框架来处理。 相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。
2.操作与配置:
a.服务操作:
指令 | 详解 |
---|---|
systemctl start firewalld | 启动防火墙 |
systemctl restart firewalld | 重启防火墙 |
systemctl stop firewalld | 停止防火墙 |
systemctl status firewalld | 防火墙运行状态 |
b.配置文件说明:
3.基础命令:
这里需要首先说明的是,在执行命令时,如果没有带 --permanent 参数表示配置立即生效,但是不会对该配置进行存储,相当于重启服务器就会丢失。如果带上则会将配置存储到配置文件,,但是这种仅仅是将配置存储到文件,却并不会实时生效,需要执行 firewall-cmd --reload 命令重载配置才会生效。
a.重载防火墙配置
firewall-cmd --reload
b.查看防火墙运行状态
firewall-cmd --state
c.查看默认区域的设置
firewall-cmd --list-all
d.应急命令: (谨慎使用)
e.服务增改:
指令 | 详解 |
---|---|
firewall-cmd --add-service= | #添加服务 |
firewall-cmd --remove-service= | #移除服务 |
f.添加端口
指令 | 详解 |
---|---|
firewall-cmd --add-portl=/ | #添加端口/协议(tcp/UDP) |
firewall-cmd --remove-port=/ | #移除端口/协议(tcp/udp) |
firewall-cmd --list-ports | #查看开放端口 |
例如永久开放80端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent 返回:(succes) firewall-cmd --reload
命令含义:
4.IP指向限制配置:
a.允许指定ip访问所有流量:
firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" accept"
例:# 允许来自192.168.2.1的所有流量
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.1" accept"
b.允许指定ip的指定协议:
firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" protocol value="<protocol>" accept"
例: #允许192.168.2.208主机的icmp协议,即允许192.168.2.208主机访问
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.208" protocol value="icmp" accept"
c.允许指定ip访问指定服务:
firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" service name="<service name>" accept
例: # 允许192.168.2.208主机访问ssh服务
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.208" service name="ssh" accept"
d.允许指定ip访问端口:
firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" port protocol="<port protocol>" port="<port>" accept"
例:# 允许192.168.2.1主机访问22端口
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.1" port protocol="tcp" port="22" accept"
e.将指定ip改为网段:
例:允许192.168.2.0/24网段的主机访问22端口 :
firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="22" accept"
f.禁止指定ip/网段:
例如:#禁止192.168.2.0/24网段的主机访问22端口
firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="22" reject"
5.防火墙常用指令:
a.指定端口开放与删除:
新增端口开放:
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload
删除80端口开放:
firewall-cmd --zone=public --remove-port=80/tcp --permanent firewall-cmd --reload
b.查看开放端口:
指令 | 详解 |
---|---|
netstat -ntlp | 查看所有端口 |
firewall-cmd --list-ports | 查看已开放的端口 |
firewall-cmd --list-all | 查看所有端口策略设置 (ip指定访问) |
c.查询端口是否开启防火墙:
例:查询tcp端口3939
firewall-cmd --query-port=3939/tcp
ps:服务器防火墙必须开启,不能因为繁琐或图省事直接关闭防火墙。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端