热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux16防火墙与firewalld

目录一、netfilter与firewalld二、firewalld与firewall-cmd、firewall-config2.1、预定义区域2.2、预定义服务2.3、

 

目录

一、netfilter与firewalld

二、firewalld与firewall-cmd、firewall-config

2.1、预定义区域

2.2、预定义服务

2.3、firewall-cmd和firewall-config配置工具

2.4、富规则rich-rule




一、netfilter与firewalld

linux内核有个防火墙模块netfilter,它是一个 包过滤防火墙,工作在OSI的2、3、4层。netfilter通过策略来控制和匹配条件,满足数据包的状态。与netfilter交互需要工具。最常见的就是iptables和firewalld书写和加载策略的工具。

RHEL6:iptables 没有明确的拒绝就是允许
RHEL7:firewalld 没有明确的允许就是拒绝


二、firewalld与firewall-cmd、firewall-config

CentOS/RHEL7以后引入了一个与netfilter交互的新方法firewalld服务。通过启动和关闭firewalld服务来打开和关闭防火墙,通过直接编辑firewalld配置文件、firewall-cmd命令行工具、firewall-config图形化工具来配置防火墙规则。

[root@server0 ~]# systemctl status firewalld.service
firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)Active: active (running) since Sun 2021-03-28 15:19:30 CST; 1h 15min ago

2.1、预定义区域

firewalld随附了一些预定义区域,适合不同用途,默认区域为publlic。随附区域有trusted、home、internal、work、public、external、dmz、block、drop区域。相关设置,可以编辑配置文件/etc/firewalld/zones/zone.xml。关于各个区域的功能和配置文件语法,直接man 5 firewalld.zone。


2.2、预定义服务

firewalld随附了预定义服务,可以方便允许流量通过防火墙。配置文件/etc/firewalld/services/service.xml。关于各个服务的功能和配置文件语法,直接man 5 firewalld.service。

amanda-client ftp ipsec mdns pmcd radius tftp
bacula high-availability kerberos mountd pmproxy rpc-bind tftp-client
bacula-client http kpasswd ms-wbt pmwebapi samba transmission-client
dhcp https ldap mysql pmwebapis samba-client vnc-server
dhcpv6 imaps ldaps nfs pop3s smtp wbem-https
dhcpv6-client ipp libvirt ntp postgresql ssh
dns ipp-client libvirt-tls openvpn proxy-dhcp telnet

2.3、firewall-cmd和firewall-config配置工具

常用的firewall-cmd命令常用选项如下。
更改规则以后,--reload加载到内存,规则才生效。
--permanent是写入配置文件,保证重启后依旧生效。

其他具体用法直接 man firewall-cmd。
firewall-config是firewall-cmd的图形化界面,不推荐使用。

firewall-cmd --list-all # 查看当前防火墙策略
firewall-cmd --permanent --add-port=123/udp # 添加入站规则 端口/协议
firewall-cmd --permanent --add-service=https # 添加入站规则 服务
firewall-cmd --permanent --remove-port=80/tcp # 删除入站规则 端口/协议
firewall-cmd --permanent --remove-service=telnet # 删除入站规则 服务
firewall-cmd --reload # 加载到内存才生效

2.4、富规则rich-rule

此外,firewalld还提供了自定义的防火墙规则rich-rule富规则。具体用法直接 man 5 firewalld.richlanguage。这里展示一个语法和手册的一个ipv6端口转发的例子。

firewall-cmd --permanent --add-rich-rule='rule' # 添加富规则
firewall-cmd --permanent --remove-rich-rule='rule' # 删除富规则Example 5Forward IPv6 port/packets receiving from 1:2:3:4:6:: on port 4011 with protocol tcp to 1::2:3:4:7 on port 4012rule family="ipv6" source address="1:2:3:4:6::" forward-port to-addr="1::2:3:4:7" to-port="4012" protocol="tcp" port="4011"

 


推荐阅读
author-avatar
手机用户2602915825_387
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有