firewalld规则配置介绍

在基于RHEL7的服务器上,firewalld是一个可动态管理的防火墙服务,提供IPv4和IPv6防火墙规则定义和区域的支持。它可以直接代替iptables管理服务器的网络活动,能直接作用于内核的netfilter代码。
本文简要介绍了如何通过firewall-cmd命令管理和配置防火墙,假定所有命令都以root权限执行。

一. 启动和状态

1. 查询firewalld运行状态

$ firewall-cmd --state

如果返回not running,表示服务没有启动,输入下面命令启动firewallD

$ service firewalld start

对firewalld做了修改,通过下面的命令执行

$ firewall-cmd --reload

配置好firewalld之后,通过systemd命令使服务开机启动

$ systemctl enable firewalld

二. 规则设置

1. 查询firewalld当前规则

$ firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http ssh ssh-custom
ports:
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:

2. 添加删除service规则

添加httpservice

$ firewall-cmd --permanent --zone=public --add-service=http

删除httpservice

$ firewall-cmd --permanent --zone=public --remove-service=http

3. 添加删除port规则

允许放行7777 TCP端口

$ firewall-cmd --permanent -zone=public --add-port=7777/tcp

允许放行多个端口

$ firewall-cmd --permanent -zone=public --add-port=7777-8000/tcp

删除端口

$ firewall-cmd --permanent --zone=public --remove-port=7777/tcp

查看当前打开的端口

$ firewall-cmd --zone=public --list-ports

4. 通过”RICH LANGUAGE”创建复杂规则

rich rule 命令的格式和结构如下所示

rule [family="rule family"]
[ source [NOT] [address="address"] [mac="mac-address"] [ipset="ipset"] ]
[ destination [NOT] ]
[ element ]
[ log [prefix="prefix text"] [level="log level"] [limit] ]
[ audit ]
[ action ]

NOTE: 一条rule作用于一个特定的zone。一个zone可以包含多条rule。如果几条rule互相影响或产生冲突,第一条匹配的rule会生效。

  • 封锁一个IP
$ firewall-cmd --permanent --add-rich-rule="rule source reject"
  • 封锁一个IP段, 192.168.1.0 ~ 192.168.1.254
$ firewall-cmd --permanent --add-rich-rule="rule source reject"

更详细rich rule的介绍参见redhat文档:
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html

5. 关于192.168.1.0/24的说明

192.168.0.0/24
表示网络码占24位,就是说该网络上可以有254个主机(2^8-2)
IP范围:192.168.0.1~192.168.0.254 192.168.0.255是广播地址,不能被主机使用

192.168.0.0/16
表示网络码占16位,也就是说该网络上可以有65534个主机(2^16-2)
IP范围:192.168.0.1~192.168.255.254 192.168.255.255是广播地址,不能被主机使用。

标签:Firewalld 发布于:2019-11-16 22:35:41