liunx防火墙

liunx防火墙

对于firewalld的理解

Centos7中有两个位置存放了firewall的配置文件,一个是/etc/firewalld,一个是/usr/lib/firewalld,前者是用户配置目录,后者是系统配置目录。/usr/lib/firewalld目录中存放的是firewalld提供的一些默认和备份的配置文件,一般不随意改变,/etc/firewalld目录下才是用户配置的真正生效的配置文件,只有在/etc/firewalld目录不存在或该目录下不存在配置文件的情况下/usr/lib/firewalld目录下的配置文件才会生效。

zone

zone定义了防火墙对某个连接(connection)、网口(interface)或源地址(source address)的信任等级。

  1. 每个zone的防火墙规则是通过/etc/firewalld/zones目录下的xml配置文件来配置的。
  2. Centos7中firewalld为用户预定义了9个zone,分别为drop,block,public,external,dmz,work,home,internal,trusted。这9个zone的配置文件在/usr/lib/firewalld/zones目录下,通过查看他们的配置文件可以得知这9个zone的规则是怎么样的。
    在这里插入图片描述

drop–丢弃
任何传入本机的网络数据包都会被丢弃,并且不会回复,只允许本机对外访问其他服务器。

block–阻塞
任何传入本机的网络连接请求都会被拒绝,并且会回复一条拒绝访问的消息。

public–公共
用于本机处于公共网络环境的场景下,仅接受特定的连接请求,如仅接受某些特定的IP的连接请求,或仅对外部开放特定的某些端口。Centos 7 默认的public.xml文件中仅开放用于ssh连接请求的22端口和dhcpv6-client服务的546端口。

external–外部
与public类似,Centos 7 默认仅开放用于ssh连接请求的22端口。

dmz–非军事区
与external一样,Centos 7 默认也是仅开放用于ssh连接请求的22端口。

work–工作
用于工作网络环境场景下,信任大部分的其他的计算机不会对本机进行攻击。Centos 7 默认开放用于ssh连接请求的22端口,dhcpv6-client服务的546端口,以及IPP协议的631端口。

home–家
用于家庭网络环境,信任网络上的其他计算机不会攻击本机。Centos 7默认开放用于ssh连接请求的22端口,dhcpv6-client服务的546端口,IPP协议的631端口,samba服务的137、138端口,mDNS服务的5353端口。

internal–内部
与home一样,Centos 7默认开放用于ssh连接请求的22端口,dhcpv6-client服务的546端口,IPP协议的631端口,samba服务的137、138端口,mDNS服务的5353端口。

trusted–信任
所有对本机的网络连接请求都会被接受。

将网口interface和源地址source划分到某个zone

firewall-cmd [–permanent] [–zone=zone] --add-interface=interface
firewall-cmd [–permanent] [–zone=zone] --add-source=source

firewall-cmd --permanent --zone=block --add-interface=ens33
这条命令会将ens33这个网口划分到block这个zone,这样其他机器访问本机的ens33网口时就会默认走这个zone。
如果某个连接请求没有划分到任何一个zone,那么就会走默认的zone,Centos7 默认情况下,默认zone为public。可以通过以下命令查看或者修改默认zone。

firewall-cmd --permanent --zone=trusted --add-source=192.168.5.112
这条命令会将192.168.5.112这个网口划分到trusted这个zone,–permanent参数会将该配置写入trusted这个zone的配置文件trusted.xml中,使其永久生效,如果不加–permanent,则只会临时生效,重启防火墙或者调用firewall-cmd --reload重新加载配置文件会使得该项配置失效。

获取默认的zone:firewall-cmd --get-default-zone
修改默认的zone:firewall-cmd --permanent --set-default-zone=[zone]
其他的一些相关的命令:1. 列出该zone下绑定了哪些interface:
firewall-cmd [–zone=zone] --list-interfaces
2. 将该interface绑定到另一个zone上:
firewall-cmd [–permanent] [–zone=zone] --change-interface=interface
3. 如果该interface之前绑定到了某个zone,则取消绑定,这样就会走默认zone
firewall-cmd [–permanent] --remove-interface=interface
4. 与source相关的:
firewall-cmd [–permanent] --remove-source=source
firewall-cmd [–permanent] [–zone=zone] --list-sources
firewall-cmd [–permanent] [–zone=zone] --add-source=source

zone的配置文件

<?xml version="1.0" encoding="utf-8"?>
<zone target="DEFAULT">
  <short>Public</short>     //给该zone指定一个名字
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>     //对该zone的描述
  <service name="ssh"/>     //该zone开启的服务
  <service name="dhcpv6-client"/>   
  <port protocol="tcp" port="80"/>    //该zone打开的端口协议
  <port protocol="tcp" port="8080"/>
  <source address="192.168.5.112">     //绑定到该zone的source
  <source address="10.12.18.0/24"/>
  <rule family="ipv4">    //为该zone添加的富语言规则(对10.12.18.X网段的source开放7180至7190所有端口的tcp连接请求。)
    <source address="10.12.18.0/24"/>
    <port protocol="tcp" port="7180-7190"/>
    <accept/>
  </rule>
</zone>

每个标签的含义:
zone:给一个zone指定target

target=“ACCEPT|%%REJECT%%|DROP”

可用于接受(ACCEPT)、拒绝(%%REJECT%%)或丢弃(DROP)与任何规则(端口、服务等)都不匹配的每个数据包,即指定该zone的默认的对连接(connection)、网口(interface)或源地址(source address)的行为,如果不指定target,则默认为default,default的行为与REJECT类似。

service的概念

service是预定义的一系列的本机的协议、端口、目标ip等,service可以让我们更加方便的让防火墙限制外部对本机的某些端口的访问。

配置文件:
/etc/firewalld/services
/usr/lib/firewalld/services

查看firewalld

firewall-cmd --state

启动关闭防火墙

启动:systemctl start firewalld
重启:systemctl restart firewalld
关闭:systemctl stop firewalld
开机自启动:systemctl enable firewalld.service
查看防火墙设置开机自启是否成功:systemctl is-enabled firewalld.service

查看已开启的端口

firewall-cmd --list-ports或netstat -ntlp

查看防火墙规则

firewall-cmd --list-all

查看允许协议

firewall-cmd --list-protocols

firewall-cmd --zone=public --list-ports   查看防火墙开放端口
firewall-cmd --add-port=123/tcp --permanent    添加123
firewall-cmd --reload    重新加载
firewall-cmd --query-port=123/tcp    查看123是否添加成功
firewall-cmd --permanent --remove-port=123/tcp    移除123
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值