相较于企业内网,外部的公网环境更加恶劣,罪恶丛生。在公网与企业内网之间充当保护屏障的防火墙。虽然有软件或硬件之分,但主要功能都是依据 策略对穿越防火墙自身的流量进行过滤。防火墙策略可以基于流量的源目地址、端口号、协议、应用等信息来定制,然后防火墙使用预先定制的策略规则监控出入的 流量,若流量与某一条策略规则相匹配,则执行相应的处理,反之则丢弃。这样一来,就可以保证仅有合法的流量在企业内网和外部公网之间流动了。
防火墙是整个数据包进入主机前的第一道关卡。防火墙主要通过Netfilter与TCPwrappers两个机制来管理的。
1)Netfilter:数据包过滤机制
2)TCP Wrappers:程序管理机制
关于数据包过滤机制有两个软件:firewalld与iptables
iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已,或者说,它们只是一种服务。 iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理,而firewalld服务则是把配置好的防火墙策略交由 内核层面的nftables包过滤框架来处理。

firewalld
firewalld的配置方法主要有三种:firewall-config、firewall-cmd和直接编辑xml文件,其中 firewall-config是图形化工具,firewall-cmd是命令行工具。
firewall将配置文件存储再/usr/lib/firewalld 和/etc/firewalld中的各种XML文件中
1、安装firewalld
root执行 # yum install firewalld firewall-config
2、运行、停止、禁用firewalld
启动:# systemctl start firewalld
查看状态:# systemctl status firewalld 或者 firewall-cmd --state
停止:# systemctl disable firewalld
禁用:# systemctl stop firewalld
systemctl mask firewalld
systemctl unmask firewalld
3.firewalld中常用的区域名称及策略规则
| 区域 | 默认规则策略 |
| trusted | 允许所有的数据包 |
| home | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量 |
| internal | 等同于home区域 |
| work | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量 |
| public | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量 |
| external | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量 |
| dmz | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量 |
| block | 拒绝流入的流量,除非与流出的流量相关 |
| drop | 拒绝流入的流量,除非与流出的流量相关 |
4.配置firewalld
查看版本:firewall-cmd --version
查看帮助:firewall-cmd --help
显示状态:firewall-cmd --state
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝:firewall-cmd --query-panic
5.图形窗口改变端口
firewall-config ##打开火墙的图形界面

Configuration :Runtime ##暂时 permanent##永久 (每次火墙设定都要选择)
Options: Relood Firewalld ##重启火墙(图形设定完退出之前重启)
Sercices ##火墙允许的资源
Ports:Add ##添加端口
Masquerading:Masquerade zone ##路由功能设置
6.命令行管理
firewall-cmd --state ##查看火墙当前状态
firewall-cmd --get-active-zones ##查看火墙当前生效的域
firewall-cmd --get-zones ##查看所有域
firewall-cmd --get-default-zone ##显示默认的域
firewall-cmd --ger-services ##列出系统当中用名称代表的服务
firewall-cmd --list-all ##显示火墙的规则
firewall-cmd --list-all-zones ##查看所有域的列表信息
firewall-cmd --list-all --zone=trusted ##显示trusted域的列表信息
firewall-cmd --zone=pubilc --list-all ##查看所有public域的信息
firewall-cmd -zone=block --list-all ##查看所有域block的信息 


7.文件方式更改火墙
/etc/firewalld/zones/public.xml ##火墙资源的配置文件
vim public.xml ##可手动添加资源


查看设备中所有服务器的信息文件
/usr/lib/firewalld/services/ ##设备中所有设备的文件都是以xml格式结尾

iptables
1.理论基础:当主机收到一个数据包后,数据包先在内核空间中处理,若发现目的地址是自身,则传到用户空间中交给对应的应用程序处理,若发现目的不是自身,则会将包丢弃或进行转发。
2.iptables实现防火墙功能的原理是:在数据包经过内核的过程中有五处关键地方,分别是PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING,iptables这款用户空间的软件可以在这5处地方写规则,对经过的数据包进行处理,规则一般的定义为“如果数据包头符合这样的条件,就这样处理数据包”。
iptables中定义有表,分别表示提供的功能,有filter表(实现包过滤)、nat表(实现网络地址转换)、mangle表(实现包修改)、raw表(实现数据跟踪),这些表具有一定的优先级:raw–>mangle–>nat–>filter
iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,具体如下:
在进行路由选择前处理数据包(PREROUTING);
处理流入的数据包(INPUT);
处理流出的数据包(OUTPUT);
处理转发的数据包(FORWARD);
在进行路由选择后处理数据包(POSTROUTING)
systemctl unmask iptables.service
systemctl start iptables.service ##iptables打开,firewall自动关闭
systemctl enable iptables.service
systemctl status iptables.service

基本语法:iptables [-t 表] [操作命令] [链][规则匹配器][-j 目标动作]
| 参数 | 作用 |
| -P | 设置默认策略 |
| -F | 清空规则链 |
| -L | 查看规则链 |
| -A | 在规则链的末尾加入新规则 |
| -I num | 在规则链的头部加入新规则 |
| -D num | 删除某一条规则 |
| -s | 匹配来源地址IP/MASK,加叹号“!”表示除这个IP外 |
| -d | 匹配目标地址 |
| -i 网卡名称 | 匹配从这块网卡流入的数据 |
| -o 网卡名称 | 匹配从这块网卡流出的数据 |
| -p | 匹配协议,如TCP、UDP、ICMP |
| --dport num | 匹配目标端口号 |
| --sport num | 匹配来源端口号 |
iptables -t (filter/nat/mangle) -nL #查看指定表(filter/nat/mangle)中的策略 -n参数存在时显示的是ip,没有的话是主机名
iptables -F #-F:删除指定表中所有规则
iptables -nL service iptables save #保存当前策略,保存了之后重启火墙策略重新出现 vim /etc/sysconfig/iptables #iptables的配置文件 


添加策略:
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A INPUT -s 172.25.60.200 -j ACCEPT
iptables -t filter -A INPUT -s 172.25.60.200 -j REJECT 200主机可以访问,匹配到第二条
iptables -nL iptables -D INPUT 3 删除第三条


250不能访问本机,设置可以访问22端口
iptables -I INPUT 2 -s 172.25.60.250 -p tcp --dport 22 -j ACCEPT 必须放在REJECT前面才能匹配


###修改默认策略
iptables -P INPUT DROP
iptables -P INPUT ACCEPT

本文深入探讨了防火墙在企业网络安全中的角色,对比了公网与内网的环境差异,详细解析了firewalld与iptables两种防火墙管理工具的配置方法、策略规则及操作命令,适合网络安全管理员和IT专业人士阅读。
554

被折叠的 条评论
为什么被折叠?



