admin管理员组文章数量:1642331
目录
内部端口转发
外部端口转发
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 配置文件,一般不建议修改
版权声明:本文标题:端口转发:firewalld rich rule实现 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1729335604a1196939.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论