其它规则

  • 当基本firewalld语法规则不能满足要求时,可以使用以下更复杂的规则
  • rich-rules 富规则,功能强,表达性语言
  • Direct configuration rules 直接规则,灵活性差
  • 帮助:man 5 firewalld.direct

管理rich规则

  • rich规则比基本的firewalld语法实现更强的功能,不仅实现允许/拒绝,还可以实现日志syslog和auditd,也可以实现端口转发,伪装和限制速率
  • rich语法:

    rule

[source]
[destination]
service|port|protocol|icmp-block|masquerade|forward-port
[log]
[audit]
[accept|reject|drop]
man 5 firewalld.richlanguage

  • man 5 firewalld.richlanguage

规则

  • 规则实施顺序:
  • 该区域的端口转发,伪装规则
  • 该区域的日志规则
  • 该区域的允许规则
  • 该区域的拒绝规则
  • 每个匹配的规则生效,所有规则都不匹配,该区域默认规则生效

rich规则选项

rich规则示例

  • 拒绝从192.168.0.11的所有流量,当address 选项使用source 或 destination时,必须用family= ipv4 |ipv6

  firewall-cmd --permanent --zone=classroom --add-rich-rule='rule
  family=ipv4 source address=192.168.0.11/32 reject‘

  • 限制每分钟只有两个连接到ftp服务

  firewall-cmd --add-rich-rule=‘rule service name=ftp limit value=2/m accept’

  • 抛弃esp( IPsec 体系中的一种主要协议)协议的所有数据包

  firewall-cmd --permanent --add-rich-rule='rule protocol value=esp drop'

  • 接受所有192.168.1.0/24子网端口5900-5905范围的TCP流量

  firewall-cmd --permanent --zone=vnc --add-rich-rule='rule family=ipv4
  source address=192.168.1.0/24 port port=5900-5905 protocol=tcp accept'

rich日志规则

  • log [prefix="<PREFIX TEXT>" [level=<LOGLEVEL>] [limit value="<RATE/DURATION>"]
  • <LOGLEVEL> 可以是emerg,alert, crit, error, warning, notice, info, debug.
  • <DURATION> s:秒, m:分钟, h:小时, d:天
  • audit [limit value="<RATE/DURATION>"]

rich日志规则实例

  • 接受ssh新连接,记录日志到syslog的notice级别,每分钟最多三条信息

firewall-cmd --permanent --zone=work --add-rich-rule='rule service
name="ssh" log prefix="ssh " level="notice" limit value="3/m" accept

  • 从2001:db8::/64子网的DNS连接在5分钟内被拒绝,并记录到日志到audit,每小时最大记录一条信息

  firewall-cmd --add-rich-rule='rule family=ipv6 source
  address="2001:db8::/64" service name="dns" audit limit value="1/h" reject' --timeout=300

 规则示例

  • firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.X.10/32 service name="http" log level=notice prefix="NEW HTTP " limit value="3/s" accept'
  • firewall-cmd --reload
  • tail -f /var/log/messages
  • curl http://serverX.example.com

伪装和端口转发

  • NAT网络地址转换,firewalld支持伪装和端口转发两种NAT方式
  • 伪装NAT
  • firewall-cmd --permanent --zone=<ZONE>
  • firewall-cmd --query-masquerade 检查是否允许伪装
  • firewall-cmd --add-masquerade 允许防火墙伪装IP
  • firewall-cmd --remove-masquerade 禁止防火墙伪装IP
  • 示例:
  • firewall-cmd --add-rich-rule='rule family=ipv4 address=192.168.0.0/24 masquerade'

端口转发

  • 端口转发:将发往本机的特定端口的流量转发到本机或不同机器的另一个端口。通常要配合地址伪装才能实现
  • firewall-cmd --permanent --zone=<ZONE> --add-forward-port=port=<PORTNUMBER>:proto=<PROTOCOL>[:toport=<PORTNUMBER>][:toaddr=<IPADDR>] 说明:toport= 和toaddr= 至少要指定一个
  • 示例:
  • 转发传入的连接9527/TCP,到防火墙的80/TCP到public zone 的192.168.0.254
  • firewall-cmd --add-masquerade 启用伪装
  • firewall-cmd --zone=public --add-forward-
  • port=port=9527:proto=tcp:toport=80:toaddr=192.168.0.254

rich规则

  • rich规则语法:
  • forward-port port=<PORTNUM> protocol=tcp|udp [to-port=<PORTNUM>] [to-addr=<ADDRESS>]
  • 示例:
  • 转发从192.168.0.0/24来的,发往80/TCP的流量到防火墙的端口8080/TCP

firewall-cmd --zone=work --add-rich-rule='rule family=ipv4 source address=192.168.0.0/24 forward-port port=80 protocol=tcp to-port=8080'

rich规则示例

  • firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=172.25.X.10/32 forward-port port=443 protocol=tcp to-port=22'
  • firewall-cmd --reload
  • ssh -p 443 serverX.example.com

Linux之iptables(六、rich规则)的更多相关文章

  1. Linux下iptables防火墙用法规则详解

    管理网络流量是系统管理员必需处理的最棘手工作之一,我们必需规定连接系统的用户满足防火墙的传入和传出要求,以最大限度保证系统免受×××.很多用户把 Linux 中的iptables当成一个防火墙,从严格 ...

  2. Linux防火墙iptables规则设置(转)

    iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分.可以直接配置,也可以通过许多前端和图形界面配置. 一.语法 iptables(选项)(参数) 二.选项 -t< ...

  3. Linux防火墙iptables的基础

    一.网络访问控制 1.Linux一般都是作为服务器系统使用,对外提供一些基于网络的服务 2.通常我们都需要对服务器进行一些网络访问控制,类似防火墙的功能 3.常见的访问控制包括:哪些IP可以访问服务器 ...

  4. Linux防火墙iptables介绍

    介绍网络防火墙是通过一个或多个允许或拒绝的规则来过滤网络流量的网络设备或软件.网络防火墙还可以执行更复杂的任务,例如网络地址转换,带宽调整,提供加密隧道以及更多与网络流量相关的任务.而我们的任务就是需 ...

  5. 【Linux】iptables相关实践,原理及参数解释

    1.禁止指定IP地址的主机进行连接 iptables -I INPUT -s .***.***. -j DROP 2.解除禁止指定IP地址的主机进行连接 iptables -D INPUT -s .* ...

  6. linux 防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  7. Linux防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  8. (转载)Linux上iptables防火墙的基本应用教程

    (转载)http://www.vpser.net/security/linux-iptables.html iptables是Linux上常用的防火墙软件,下面vps侦探给大家说一下iptables的 ...

  9. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

随机推荐

  1. MFC ListControl技巧汇总

    转自:http://hi.baidu.com/qi_xian/blog/item/1971aa22da89ada24723e856.html 以下未经说明,listctrl默认view 风格为repo ...

  2. BZOJ_3175_[Tjoi2013]攻击装置_二分图匹配

    BZOJ_3175_[Tjoi2013]攻击装置_二分图匹配Description 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照“日”字攻击其周围的 8个位置 ...

  3. DNS中的AC、rndc、智能DNS解析和基础排错

    bind中的ACL和rndc DNS除了服务器外,还具有一些访问控制和视图功能. 访问控制是指仅对定义的网络进行解析,视图也就是智能解析. 1>访问控制是通过acl函数来实现的,acl把一个或多 ...

  4. codeforces 37 E. Trial for Chief【spfa】

    想象成一层一层的染,所以相邻的两个格子连边,边权同色为0异色为1,然后答案就是某个格子到距离它最远得黑格子的最短距离的最小值 注意特判掉不需要染色的情况 #include<iostream> ...

  5. P2476 [SCOI2008]着色方案

    传送门 数学太珂怕了--膜一下->这里 记\(sum[i]\)为题中\(c[i]\)的前缀和,\(C[i][j]\)表示\(C_{i}^j\) 设\(f[i][j]\)表示前面\(i\)中颜色已 ...

  6. jQuery多项选择器

    jQuery多项选择器模式: $("selector1,selector2,selectorN"); 将每一个选择器匹配到的元素合并后一起返回,可以指定任意多个选择器,并将匹配到的 ...

  7. knockout 和mvc4结合使用

    Knockout (或者Knockout.js ,KnockoutJS)是一个开源的JavaScript库,网址为www.knockoutjs.com.Knockout语法简洁.可读性好,能轻松实现与 ...

  8. Java多线程(九) synchronized 锁对象的改变

    public class MyService { private String lock = "123"; public void testMethod() { synchroni ...

  9. 03—AOP基本配置

  10. Java 遍历Map对象的4种方法

    http://blog.csdn.net/tjcyjd/article/details/11111401