centos 7的firewalld防火墙配置IP假装和端口转发(内附配置案例)

IP地址假装和端口转发都属于NAT(网络地址转换)。centos

地址假装和端口转发的区别以下:服务器

IP地址假装:
经过地址假装,NAT设备将通过设备的包转发到指定的接收方,同时将经过的数据包
源地址更改成其NAT设备本身的接口地址。当返回的数据包到达时,会将目的地址修改
为原始主机的地址并作路由。地址假装能够实现局域网多个地址共享单一公网地址上网。
相似于NAT技术中的端口多路复用(PAT)。IP地址假装仅支持ipv4,不支持ipv6。网络


端口转发:
也能够称之为目的地址转换或端口映射。经过端口转发,将指定IP地址及端口的流量转发到相同计算机上的不一样端口,或不一样计算机上的端口。通常公司内网的服务器都采用私网地址,而后经过端口转发将使用私网地址的服务器发布到公网上。运维

在firewalld中,有一个富语言的概念,firewalld的富语言提供了一种不须要了解iptables语法的经过高级语言配置复杂的防火墙规则的机制,经过这种语言,能够表达firewalld的基本语法中不能实现的自定义防火墙规则。ssh

富规则可用于表达基本的容许/拒绝规则,也能够用于配置记录(面向syslog和auditd),以及端口转发、假装和速率限制。tcp

在firewalld防火墙配置中有一个超时的工具,当包含超时的规则添加到防火墙时,计时器便针对该规则开始倒计时,一旦倒计时达到0秒,便从运行时配置中删除该规则。ide

在测试更复杂的规则集时,若是规则有效,那么咱们能够再次添加该规则,若是规则没有实现咱们预期的效果,甚至可能将咱们管理员锁定而使其没法进入系统,那么规则将被自动删除,以便咱们运维人员继续进行测试工做。工具

在使用firewall-cmd进行配置规则时,在命令的结尾追加选项--timeout=<timeval> 便可,--help中关于该选项的参考以下(单位能够是秒、分、时):测试

Enable an option for timeval time, where timeval is
                       a number followed by one of letters 's' or 'm' or 'h'
                       Usable for options marked with [T]

firewall-cmd有四个选项能够用于处理富规则,全部这些选项均可以和常规的--permanent或--zone=<ZONE>选项组合使用,具体以下:
centos 7的firewalld防火墙配置IP假装和端口转发(内附配置案例)日志

在任何已配置的富规则都会显示在firewall-cmd --list-all 和 firewall-cmd --list-all-zone的输出结果中。具备语法解释以下所示:

centos 7的firewalld防火墙配置IP假装和端口转发(内附配置案例)

富规则配置举例:

① 为认证报头协议AH使用新的ipv4和ipv6链接
[root@localhost /]# firewall-cmd --add-rich-rule='rule protocol value=ah accept'
②容许新的ipv4和ipv6链接ftp,并使用审核每分钟记录一次
[root@localhost /]# firewall-cmd --add-rich-rule='rule service name=ftp log limit value=1/m audit accept'
③容许来自192.168.1.0/24地址的TFTP协议的ipv4链接,而且使用系统日志每分钟记录一次
[root@localhost /]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="tftp" log prefix="tftp" level="info" limit value="1/m" accept'
④为RADIUS协议拒绝全部来自1:2:3:4:6::的新ipv6链接,日志前缀为“dns”,级别为“info”,并每分钟最多记录3次。接受来自其余发起端新的ipv6链接:
[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'
[root@localhost /]# firewall-cmd --add-rich-rule='rule family="ipv6" service name="radius" accept'
⑤将源192.168.2.2地址加入白名单,以容许来自这个源地址的全部链接:
[root@localhost /]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.2.2" accept'
⑥拒绝来自public区域中IP地址192.168.0.11的全部流量:
[root@localhost /]# firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.0.11/32 reject'
⑦丢弃来自默认区域中任何位置的全部传入的ipsec esp协议包:
[root@localhost /]# firewall-cmd --add-rich-rule='rule protocol value="esp" drop'
⑧在192.168.1.0/24子网的DMZ区域中,接收端口7900~7905的全部TCP包:
[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'
⑨接收从work区域到SSH的新链接,以notice级别且每分钟最多三条消息的方式将新链接记录到syslog:
[root@localhost /]# firewall-cmd --zone=work --add-rich-rule='rule service name=ssh log prefix="ssh" level="notice" limit value="3/m" accept'
⑩在接下来的5min内(经过--timeout=300配置项实现),拒绝从默认区域中的子网192.168.2.0/24到DNS的新链接,而且拒绝的链接将记录到audit系统,且每小时最多一条消息。

[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

这篇文章写的有点多了,为了不杂乱,因此就将配置firewall防火墙的地址假装和端口转发的配置实例写到另外一篇博文里吧!博文连接: http://www.javashuo.com/article/p-ymgskfrz-mq.html

相关文章
相关标签/搜索