千家信息网

保证Linux系统安全之firewalld防火墙配置地址伪装和端口转发详解

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,通过保证Linux系统安全之firewalld防火墙入门详解认识Linux系统firewalld防火墙,并可以编写一些相对简单一些的防火墙规则。Linux防火墙可以充当路由器(网关)。路由器上的NAT
千家信息网最后更新 2025年02月02日保证Linux系统安全之firewalld防火墙配置地址伪装和端口转发详解

通过保证Linux系统安全之firewalld防火墙入门详解认识Linux系统firewalld防火墙,并可以编写一些相对简单一些的防火墙规则。Linux防火墙可以充当路由器(网关)。路由器上的NAT技术,同样可以通过Linux防火墙来实现。地址伪装和端口转发说白了就是路由器中的NAT技术。

一、地址伪装和端口转发简介

firewalld防火墙支持两种类型的NAT:

(1)地址伪装

地址伪装:基于源地址进行转换,通过地址伪装,NAT设备将经过设备的数据包转发到指定接收方,同时将通过的数据包的源地址更改为其本身的接口地址。当返回的数据包到达时,会将目的地址修改为原始主机的地址并做路由。地址伪装可以实现局域网多个IP地址共享单一公网地址上网。类似于NAT技术中的端口多路复用(PAT)。IP地址伪装仅支持IPV4,不支持IPV6。

(2)端口转发

端口转发:基于目标地址进行转换,也称为目的地址转换或端口映射。通过端口转发,将指定IP地址及端口的流量转发到相同计算机上的不同端口。或不同计算机上的端口,企业内部的服务器一般使用私网地址,可以通过端口转发将使用私网地址的服务器发布到公网上,供互联网用户进行访问。类似于NAT技术中的静态NAT。

二、firewall-cmd高级配置

(1)firewalld中的直接规则

直接规则特性:

  • 允许管理员手动编写的iptables、ip6tables和ebtables 规则插入到Firewalld管理的区域中;
  • 通过firewall-cmd命令中的--direct选项实现;
  • 除显示插入方式之外,优先匹配直接规则;
[root@localhost ~]# firewall-cmd --direct --add-chain ipv4 raw blacklistsuccess[root@localhost ~]# firewall-cmd --direct --add-rule ipv4 raw PREROUTING 0 -s 192.168.0.0/24 -j blacklistsuccess[root@localhost ~]# firewall-cmd --direct --add-rule ipv4 raw blacklist 0 -m limit --limit 1/min -j LOG --log-prefix "blacklisted"success[root@localhost ~]# firewall-cmd --direct --add-rule ipv4 raw blacklist 1 -j DROPsuccess

这些仅是把192.168.0.0网段的地址添加到黑名单(使用直接规则)!太麻烦!

(2)使用富语言

富语言特性:

  • 表达性配置语言,无需了解iptables语法;
  • 用于表达基本的允许/拒绝规则、配置记录(面向syslog和auditd)、端口转发、伪装和速率限制;

富语言语法格式

rule [family=""]    [ source address="
" [invert="True"] ] [ destination address="
" [invert="True"] ] [ ] [ log [prefix=""] [level=""] [limit value="rate/duration"] ] [ audit ] [ accept|reject|drop ]

规则的每个单一元素都能够以option=value的形式来采用附加参数。

富语言规则各常用选项:

任何已配置的富规则都会显示在firewall-cmd --list-all和firewall-cmd --list-all-zones的输出结果中。

富语言规则各语法解释:

富语言规则配置示例:

  • [root@localhost ~]# firewall-cmd --add-rich-rule='rule protocol value=ah accept'
    success
    //为认证包头协议AH使用IPV4和IPV6连接
  • [root@localhost ~]# firewall-cmd --add-rich-rule='rule service name=ftp log limit value=1/m audit accept'
    success
    //允许新的IPV4和IPV6连接FTP,并使用审核每分钟记录一次
  • [root@localhost ~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" service name="tftp" log prefix="tftp" level="info" limit value="1/m" accept'
    success
    //允许来自192.168.0.0/24地址的TFTP协议的IPV4连接,并且使用系统日志每分钟记录一次
  • [root@localhost ~]# firewall-cmd --add-rich-rule='rule family="ipv6" source address="1:2:3:4:6::" service name="radius" log prefix="dns" level="info" limit value="3/m" reject'
    success
    [root@localhost ~]# firewall-cmd --add-rich-rule='rule family="ipv6" service name="radius" accept'
    success
    //为RADIUS协议拒绝所有来自1:2:3:4:6::的新ipv6连接,日志前缀为"dns",级别为"info",并每分钟最多记录3次。接受来自其他发起端新的ipv6连接
  • [root@localhost ~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.2.2" accept'
    success
    //将源192.168.2.2地址加入白名单,以允许来自这个源地址的所有连接
  • [root@localhost ~]# firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.0.11/32 reject'
    success
    //拒绝来自public区域中IP地址192.168.0.11的所有流量
  • [root@localhost ~]# firewall-cmd --add-rich-rule='rule protocol value="esp" drop'
    success
    //丢弃来自默认区域中任何位置的所有传入的ipsec esp协议包
  • [root@localhost ~]# firewall-cmd --zone=dmz --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 port port=7900-1905 protocol=tcp accept'
    success
    //在192.168.1.0/24子网的DMZ区域中,接收端口7900~7905的所有TCP包
  • [root@localhost ~]# firewall-cmd --zone=work --add-rich-rule='rule service name=ssh log prefix="ssh" level="notice" limit value="3/m" accept'
    success
    //接收从work区域到SSH的新连接,以notice级别且每分钟最多三条消息的方式将新连接记录到syslog
  • [root@localhost ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.2.0/24 service name=dns audit limit value="1/h" reject' --timeout=300
    success
    //在接下来的5min内(通过--timeout=300配置项实现),拒绝从默认区域中的子网192.168.2.0/24到DNS的新连接,并且拒绝的连接将记录到audit系统,且每小时最多一条消息
firewalld防火墙检查规则的顺序是:1.直接规则;2.富规则;3.区域规则

在实际环境中如何配置请参考保证Linux系统安全之配置firewalld防火墙的地址伪装及端口转发实例,可跟做!!!

地址 规则 端口 防火墙 配置 防火 区域 语言 系统 技术 路由 数据 语法 路由器 支持 安全 保证 不同 可以通过 方式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 怀旧服服务器如何切换区域 c语言清空数据库表的sql语句 进口网络技术诚信经营 酒店网络安全新闻稿 网络安全管理系统软件 车载网络技术经历的发展历程 数据库导入数据提示重复键 网络安全的黑板设计 软件开发工具调用开源库步骤 根域名服务器有什么功能 网络安全信息工程师好考吗 小学网络安全演练方案 西安软件开发人员招聘咋这么难 河北定制网络技术服务以客为尊 谭宏(山东)互联网科技 2021网络安全大事件 软件开发验收申请表格 geo中的测序数据库 生产企业的数据库系统设计 临潼区软件开发 创胜网络技术 网络安全责任制主管和主办 软件开发python方向 工控机软件开发语言 网络安全需要考什么证件 山东专业软件开发设施价钱 世渺科技互联网金融公司待遇 普陀区辅助网络技术备案 我的世界服务器和好友一起玩 大连艾溜达网络技术公司
0