linux之防火墙

firewalld防火墙

防火墙:防范一些网络攻击。有软件防火墙、硬件防火墙之分。

windows防火墙

 

Linux防火墙

CentOS6x中防火墙叫做iptables

CentOS7.x 中默认使用的防火墙是firewalld

firewalld = fire 火 wall 墙 daemon 守护进程

firewalld防火墙的概念

区域

firewalld增加了区域的概念,所谓区域(zone)是指,firewalld预先准备了几套防火墙策略的集合,类 似于策略的模板,用户可以根据需求选择区域。 常见区域及相应策略规则(即:哪些端口或服务可以通过防火墙,哪些不可通过)

区域默认策略
trusted(信任区域)允许所有数据包
home(家庭区域)拒绝流入的流量,除非与流出的流量相关,允许 ssh,mdns,ippclient,amba-client,dhcpv6-client服务通过
internal(内部区域)等同于home
work(工作区域)拒绝流入的流量,除非与流出的流量相关,允许ssh,ipp-client,dhcpv6- client服务通过
public(公共区域)拒绝流入的流量,除非与流出的流量相关,允许ssh,dhcpv6-client服务通 过
external(外部区域)拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过
dmz(隔离区域|非军事区域)拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过
block(限制区域)拒绝流入的流量,除非与流出的流量相关,非法流量采取拒绝操作。有响 应消息
drop(丢弃区域)拒绝流入的流量,除非与流出的流量相关,非法流量采取丢弃操作。无响 应消息

案例:在linux系统中安装httpd服务(web服务),占用80端口

# yum install httpd -y
扩展: 卸载:yum remove 服务名称
# systemctl start http

安装启动完成后,在浏览器中输入:http://服务器的ip地址,即可访问httpd服务的页面

以上操作,无法进行正常访问,因为firewalld防火墙,已经把httpd(80端口)屏蔽了,所以无法访问这台服务器的80端口,即httpd服务

临时解决
# systemctl stop firewalld

管理firewall配置

命令:firewall-cmd 
作用:管理firewall具体配置 
语法: 
#firewall-cmd [参数选项1] ....[参数选项n]
查看默认使用的区域
用法一:firewall-cmd 选项
示例代码:
#firewall-cmd --get-default-zone
含义:查看默认使用区域,当前默认使用区域为public

查看所有可用区域
用法二:firewall-cmd 选项
示例代码:
#firewall-cmd --get-zones
含义:查看所有可用区域

列出当前使用区域配置
用法三:firewall-cmd 选项
示例代码:
#firewall-cmd --list-all
含义:查看所有可用区域

target: default: 没有指定特定的目标规则集,可能是使用默认的规则集。
icmp-block-inversion: no: 不反转 ICMP 阻塞规则,即不对 ICMP 进行特殊处理。
interfaces: ens33: 规则应用于 ens33 网络接口。
services: ssh dhcpv6-client: 允许通过防火墙的流量服务包括 SSH 和 DHCPv6 客户端。
ports:: 没有特定端口被指定,这可能意味着允许所有端口的流量通过。
protocols:: 没有指定特定的协议,这可能意味着允许所有协议的流量通过。
masquerade: no: 不对流量进行伪装,即不修改数据包的源地址。
forward-ports:: 没有指定端口转发规则,这可能意味着不进行端口转发。
source-ports:: 没有指定源端口规则,这可能意味着允许所有源端口的流量通过。
icmp-blocks:: 没有指定 ICMP 阻塞规则,这可能意味着 ICMP 流量不受阻碍。
rich rules:: 没有提供详细的规则,通常用于指定更复杂的防火墙规则
列出所有区域的配置
用法四:firewall-cmd 选项
示例代码:
#firewall-cmd --list-all-zones
含义:查看所有可用区域

添加允许通过的服务或端口
用法五:firewall-cmd 选项
通过服务名称添加规则
语法:
# firewall-cmd --zone=区域名称 --add-service=服务名称
示例:
#firewall-cmd --zone=public --add-service=ftp
含义:在public区域,添加允许ftp服务通过的规则
#firewall-cmd --zone=public --add-service=http
含义:在public区域中,添加允许http服务通过的规则
备注:服务必须存储在/usr/lib/firewalld/services目录中

案例:把http服务添加到防火墙的规则中,允许通过防火墙

# firewall-cmd --zone=public --add-service=http

通过端口号添加规则
语法:
#firewall-cmd --zone=要添加到的区域名称 --add-port=端口号/协议
如何查看端口号:
1、usr/lib/firewalld/service/服务名.xml
2、ss -naltp | grep 服务名称
示例代码:
#firewall-cmd --zone=public --add-port=1024/tcp
含义:在public区域,添加允许tcp协议的1024端口通过的规则
案例: 把80/tcp添加到防火墙规则中,允许通过防火墙

查看服务端口的命令:
# ss -naltp | grep 服务名称
如:
# ss -naltp | grep sshd

# firewall-cmd --zone=public --add-port=80/tcp

去掉允许通过的服务或端口
用法六:firewall-cmd 选项
示例代码:
#firewall-cmd --zone=public --remove-port=1024/tcp
含义:在public区域,去掉允许tcp协议的1024端口通过的规则
#firewall-cmd --zone=public --remove-service=ftp
含义:在public区域,去掉允许ftp服务通过的规则

运行模式和永久模式
运行模式:此模式下,配置的防火墙策略立即生效,但是不写入配置文件。重启就失效
永久模式:此模式下,配置的防火墙策略写入配置文件,但是需要reload重新加载才能生效。
firewalld默认采用运行模式
永久模式参数permanent
用法七:firewall-cmd 选项
示例代码:
#firewall-cmd --permanent --zone=public --add-port=1024/tcp
含义:在public区域,使用permanent参数,永久添加允许1024端口通过的规则
#firewall-cmd --permanent --zone=public --add-service=http
含义:在public区域,使用permanent参数,永久添加允许http服务通过
重新加载配置reload
用法七:firewall-cmd 选项
示例代码:
#firewall-cmd --reload
含义:重新加载配置 相当于 systemctl reload firewall

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值