端口转发:firewalld rich rule实现

 目录

内部端口转发

外部端口转发

firewalld配置延展


firewalld提供了masquerade,用以辅助port-forward;但是,内部port-forward不需要masquerade。此外,端口转发rule中配置的port属性(eg:port=22002)无需添加到防火墙例外,因为无论添加与否都能被访问到,如果要对访问进行限制,则需要在策略中增加source address属性加以限制;或者在目的服务器上加以限制。

内部端口转发

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 forward-port port=22002 protocol=tcp to-port=22'
# 或者
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 forward-port port=22001 protocol=tcp to-port=22 to-addr=192.168.10.151'
# reload配置以令生效
firewall-cmd --reload

如上所述配置内部端口转发,即:to-addr不配置或者配置成本机IP地址。这里无需配置:firewall-cmd --permanent --add-masquerade以开启地址伪装。

内部端口转发需要注意 带to-address和不带是有区别的;如果带则to-port上的访问限制会生效,否则不生效。
例如:上面所示转发策略,to-port=22端口未添加到例外,只配置如下访问限制策略(允许192.168.188.0/14)

# 需要注意的是:rich rule每个字段之间只能有1个空格,否则会报错,比如将port前面多一个空格,firewalld会将“空格+port”做为一个element,查看systemctl status firewalld:firewalld[1545]: ERROR: INVALID_RULE: unknown element  port
$ sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="192.168.10.0/24" port protocol=tcp port=22001 accept'
$ sudo firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.14.109" port protocol="tcp" port="22001" accept"

即便port=22001允许访问也无法将请求转发到to-port=22上;而port=22002则可以正常访问。

外部端口转发

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 forward-port port=22003 protocol=tcp to-port=22 to-addr=192.168.188.29'
firewall-cmd --permanent --add-masquerade
# 或者只允许源地址为192.168.14.0/23地址访问
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.14.0/23 masquerade'
firewall-cmd --reload

如上所述配置外部端口转发,和内部端口转发的区别在于:需要开启masquerade。不然因请求和响应路径不一致导致会话无法建立。

未配置masquerade(假设Client为C,中间转发服务器为F,目的服务器为D,转发策略如上所示)。
    1、C发送请求22003端口给F;
    2、F将请求转发给D的22端口(未做SNAT,故请求报文的源地址还是C的);
    3、D收到请求为C发送的,故D直接响应C;
    4、而C发送请求给的是F:22003,所以一直在等待F回复,虽然D回复了,然并不是C所要的会直接被丢弃;
    5、可以发现因为没有masquerade,而导致整个请求和响应的路径并不一致。

    

配置masquerade后请求响应路径

    

firewalld配置延展

firewall-cmd --get-services 查看预定义服务列表
/usr/lib/firewalld/services/*.xml预定义服务的配置

三种配置方法
firewall-config (firewall-config包)图形工具
firewall-cmd (firewalld包)命令行工具
/etc/firewalld 配置文件,一般不建议修改

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值