防火墙位于企业Internet出口保护内网安全。在防火墙上可以指定规则,允许内网10.1.1.0/24网段的PC访问Internet,禁止Internet用户访问IP地址为192.168.1.2的内网主机。
由上文可见,防火墙与路由器、交换机是有区别的。路由器用来连接不同的网络,通过路由协议保证互联互通,确保将报文转发到目的地;交换机通常用来组建局域网,作为局域网通信的重要枢纽,通过二层/三层交换快速转发报文;而防火墙主要部署在网络边界,对进出网络的访问行为进行控制,安全防护是其核心特性。路由器与交换机的本质是转发,防火墙的本质是控制。
防火墙控制网络流量的实现主要依托于安全区域和安全策略,下文详细介绍。
1.2 接口与安全区域
前文提到防火墙用于隔离不同安全级别的网络,那么防火墙如何识别不同网络呢?答案就是安全区域(Security Zone)。通过将防火墙各接口划分到不同的安全区域,从而将接口连接的网络划分为不同的安全级别。防火墙上的接口必须加入安全区域(部分机型的独立管理口除外)才能处理流量。
安全区域的设计理念可以减少网络攻击面,一旦划分安全区域,流量就无法在安全区域之间流动,除非管理员指定了合法的访问规则。如果网络被入侵,攻击者也只能访问同一个安全区域内的资源,这就把损失控制在一个比较小的范围内。因此建议通过安全区域为网络精细化分区。
接口加入安全区域代表接口所连接的网络加入安全区域,而不是指接口本身。接口、网络和安全区域的关系如图1.2所示。 防火墙的安全区域按照安全级别的不同从1到100划分安全级别,数字越大表示安全级别越高。防火墙缺省存在trust、dmz、untrust和local四个安全区域,管理员还可以自定义安全区域实现更细粒度的控制。例如,一个企业按图1-3划分防火墙的安全区域,内网接口加入trust安全区域,外网接口加入untrust安全区域,服务器区接口加入dmz安全区域,另外为访客区自定义名称为guest的安全区域。
一个接口只能加入到一个安全区域,一个安全区域下可以加入多个接口。 上图中有一个特殊的安全区域local,安全级别为100。local代表防火墙本身,local区域中不能添加任何接口,但防火墙上所有接口本身都隐含属于local区域。凡是由防火墙主动发出的报文均可认为是从local安全区域发出,凡是接收方是防火墙的报文(非转发报文)均可认为是由local安全区域接收。
另外除了物理接口,防火墙还支持逻辑接口,如子接口、VLANIF、Tunnel接口等,这些逻辑接口在使用时也需要加入安全区域。
这个问题有点太广泛,可以补充下问题的细节。 首先内网,是本地物理环境中的内网,还是云环境中的内网。 其次,防火墙可以分为硬件防火墙和软件防火墙(比如iptables),还有专门的Web防火墙,在云中可以有虚拟防火墙。 接着,需要明确防火墙部署的位置。 最后,就是配置策略,需要知道放行哪些IP、端口、协议、应用等等,还有的需要配置NAT、路由等信息。
楼主,首先需要确认防火墙在网络中的具体位置。
1、防火墙上涉及到的物理端口需加入安全域。
2、创建对象组,对访问服务器的IP进行限制,然后指定源安全域和目的安全域。
3、防火墙上对高危端口进行封堵,比如445、135-139端口等。
4、对于要远程登陆这台主机,最好能有堡垒机,将RDP功能给映射出来,这样既可以实现安全登陆,又能实现操作的审计。
firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念。
firewalld跟iptables比起来至少有两大好处:
firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。
firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。
firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结 构以及使用方法不一样罢了。
命令格式
firewall-cmd [选项 ... ]
选项
通用选项
-h, --help # 显示帮助信息;
-V, --version # 显示版本信息. (这个选项不能与其他选项组合);
-q, --quiet # 不打印状态消息;
状态选项
--state # 显示firewalld的状态;
--reload # 不中断服务的重新加载;
--complete-reload # 中断所有连接的重新加载;
--runtime-to-permanent # 将当前防火墙的规则永久保存;
--check-config # 检查配置正确性;
日志选项
--get-log-denied # 获取记录被拒绝的日志;
--set-log-denied=<value> # 设置记录被拒绝的日志,只能为 'all','unicast','broadcast','multicast','off' 其中的一个;
实例
# 安装firewalld
yum install firewalld firewall-config
systemctl start firewalld # 启动
systemctl stop firewalld # 停止
systemctl enable firewalld # 启用自动启动
systemctl disable firewalld # 禁用自动启动
systemctl status firewalld # 或者 firewall-cmd --state 查看状态
# 关闭服务的方法
# 你也可以关闭目前还不熟悉的FirewallD防火墙,而使用iptables,命令如下:
systemctl stop firewalld
systemctl disable firewalld
yum install iptables-services
systemctl start iptables
systemctl enable iptables
内网环境可以使用firewalld或者iptables进行配置,需要学习四表五链。还需要涉及selinux
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。