学习啦>学习电脑>电脑安全>防火墙知识>

CentOS 7下用firewall-cmd控制端口与端口转发教程

加城分享

  防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。这篇文章主要给大家介绍了在CentOS 7下用firewall-cmd控制端口与端口转发的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下来来一起看看吧。

  一、firewalld 守护进程

  firewall-cmd命令需要firewalld进程处于运行状态。我们可以使用systemctl status/start/stop/restart firewalld来控制这个守护进程。firewalld进程为防火墙提供服务。

  当我们修改了某些配置之后(尤其是配置文件的修改),firewall并不会立即生效。可以通过两种方式来激活最新配置systemctl restart firewalld和firewall-cmd --reload两种方式,前一种是重启firewalld服务,建议使用后一种“重载配置文件”。重载配置文件之后不会断掉正在连接的tcp会话,而重启服务则会断开tcp会话。

  二、控制端口/服务

  可以通过两种方式控制端口的开放,一种是指定端口号另一种是指定服务名。虽然开放http服务就是开放了80端口,但是还是不能通过端口号来关闭,也就是说通过指定服务名开放的就要通过指定服务名关闭;通过指定端口号开放的就要通过指定端口号关闭。还有一个要注意的就是指定端口的时候一定要指定是什么协议,tcp还是udp。知道这个之后以后就不用每次先关防火墙了,可以让防火墙真正的生效。

  firewall-cmd --add-service=mysql # 开放mysql端口

  firewall-cmd --remove-service=http # 阻止http端口

  firewall-cmd --list-services # 查看开放的服务

  firewall-cmd --add-port=3306/tcp # 开放通过tcp访问3306

  firewall-cmd --remove-port=80tcp # 阻止通过tcp访问3306

  firewall-cmd --add-port=233/udp # 开放通过udp访问233

  firewall-cmd --list-ports # 查看开放的端口

  三、伪装IP

  防火墙可以实现伪装IP的功能,下面的端口转发就会用到这个功能。

  firewall-cmd --query-masquerade # 检查是否允许伪装IP

  firewall-cmd --add-masquerade # 允许防火墙伪装IP

  firewall-cmd --remove-masquerade# 禁止防火墙伪装IP

  四、端口转发

  端口转发可以将指定地址访问指定的端口时,将流量转发至指定地址的指定端口。转发的目的如果不指定ip的话就默认为本机,如果指定了ip却没指定端口,则默认使用来源端口。

  如果配置好端口转发之后不能用,可以检查下面两个问题:

  比如我将80端口转发至8080端口,首先检查本地的80端口和目标的8080端口是否开放监听了

  其次检查是否允许伪装IP,没允许的话要开启伪装IP

  # 将80端口的流量转发至8080

  firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080

  # 将80端口的流量转发至

  firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1192.168.0.1

  # 将80端口的流量转发至192.168.0.1的8080端口

  firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080

  当我们想把某个端口隐藏起来的时候,就可以在防火墙上阻止那个端口访问,然后再开一个不规则的端口,之后配置防火墙的端口转发,将流量转发过去。

  端口转发还可以做流量分发,一个防火墙拖着好多台运行着不同服务的机器,然后用防火墙将不同端口的流量转发至不同机器。

  补充阅读:防火墙主要使用技巧

  一、所有的防火墙文件规则必须更改。

  尽管这种方法听起来很容易,但是由于防火墙没有内置的变动管理流程,因此文件更改对于许多企业来说都不是最佳的实践方法。如果防火墙管理员因为突发情况或者一些其他形式的业务中断做出更改,那么他撞到枪口上的可能性就会比较大。但是如果这种更改抵消了之前的协议更改,会导致宕机吗?这是一个相当高发的状况。

  防火墙管理产品的中央控制台能全面可视所有的防火墙规则基础,因此团队的所有成员都必须达成共识,观察谁进行了何种更改。这样就能及时发现并修理故障,让整个协议管理更加简单和高效。

  二、以最小的权限安装所有的访问规则。

  另一个常见的安全问题是权限过度的规则设置。防火墙规则是由三个域构成的:即源(IP地址),目的地(网络/子网络)和服务(应用软件或者其他目的地)。为了确保每个用户都有足够的端口来访问他们所需的系统,常用方法是在一个或者更多域内指定打来那个的目标对象。当你出于业务持续性的需要允许大范围的IP地址来访问大型企业的网络,这些规则就会变得权限过度释放,因此就会增加不安全因素。服务域的规则是开放65535个TCP端口的ANY。防火墙管理员真的就意味着为黑客开放了65535个攻击矢量?

  三、根据法规协议和更改需求来校验每项防火墙的更改。

  在防火墙操作中,日常工作都是以寻找问题,修正问题和安装新系统为中心的。在安装最新防火墙规则来解决问题,应用新产品和业务部门的过程中,我们经常会遗忘防火墙也是企业安全协议的物理执行者。每项规则都应该重新审核来确保它能符合安全协议和任何法规协议的内容和精神,而不仅是一篇法律条文。

  四、当服务过期后从防火墙规则中删除无用的规则。

  规则膨胀是防火墙经常会出现的安全问题,因为多数运作团队都没有删除规则的流程。业务部门擅长让你知道他们了解这些新规则,却从来不会让防火墙团队知道他们不再使用某些服务了。了解退役的服务器和网络以及应用软件更新周期对于达成规则共识是个好的开始。运行无用规则的报表是另外一步。黑客喜欢从来不删除规则的防火墙团队。


CentOS 7下用firewall-cmd控制端口与端口转发教程相关文章:

1.CentOS 7安装完成后初始化教程

2.CentOS7关闭防火墙和SELinux

3.CentOS 7 在vmware中的网络设置的介绍

4.win7怎么用命令行关闭防火墙

5.在CentOS的防火墙上开启通行端口的方法

    4042287