防火墙是现代网络安全防护技术中的重要构成内容,可以有效地防护外部的侵扰与影响。随着网络技术手段
防火墙技术
防火墙技术的完善,防火墙技术的功能也在不断地完善,可以实现对信息的过滤,保障信息的安全性。防火墙就是一种在内部与外部网络的中间过程中发挥作用的防御系统,具有安全防护的价值与作用,通过防火墙可以实现内部与外部资源的有效流通,及时处理各种安全隐患问题,进而提升了信息数据资料的安全性。防火墙技术具有一定的抗攻击能力,对于外部攻击具有自我保护的作用,随着计算机技术的进步防火墙技术也在不断发展。
(1)过滤型防火墙
过滤型防火墙是在网络层与传输层中,可以基于数据源头的地址以及协议类型等标志特征进行分析,确定是否可以通过。在符合防火墙规定标准之下,满足安全性能以及类型才可以进行信息的传递,而一些不安全的因素则会被防火墙过滤、阻挡。
(2)应用代理类型防火墙
应用代理防火墙主要的工作范围就是在OSI的最高层,位于应用层之上。其主要的特征是可以完全隔离网络通信流,通过特定的代理程序就可以实现对应用层的监督与控制。这两种防火墙是应用较为普遍的防火墙,其他一些防火墙应用效果也较为显著,在实际应用中要综合具体的需求以及状况合理的选择防火墙的类型,这样才可以有效地避免防火墙的外部侵扰等问题的出现。
(3)复合型
目前应用较为广泛的防火墙技术当属复合型防火墙技术,综合了包过滤防火墙技术以及应用代理防火墙技术的优点,譬如发过来的安全策略是包过滤策略,那么可以针对报文的报头部分进行访问控制;如果安全策略是代理策略,就可以针对报文的内容数据进行访问控制,因此复合型防火墙技术综合了其组成部分的优点,同时摒弃了两种防火墙的原有缺点,大大提高了防火墙技术在应用实践中的灵活性和安全性。
支持网络区域所定义的网络连接以及接口安全等级的动态防火墙管理工具。
支持 IPV4、IPV6防火墙设置以及以太网桥
支持服务或应用程序直接添加防火墙规则接口
拥有两种配置模式:
●运行时配置
●永久配置
●位于Linux内核中的包过滤功能体系
●称为Linux防火墙的“内核态”
●CentOS7默认的管理防火墙规则的工具
●称为Linux防火墙的“用户态”
Firewalld | iptables | |
---|---|---|
配置文件 | /usr/lib/firewalld,/etc/firewalld | /etc/sysconfig/iptables |
对规则的修改 | 不需要全部刷新策略,不丢失现行连接 | 需要全部刷新策略,丢失链接 |
防火墙类型 | 动态防火墙 | 静态防火墙 |
centos7有firewalld,iptables
centos6是iptables
图形化管理工具 firewall-config
命令管理工具:iptables(操作复杂) firewall-cmd
netfilter是主要的工作模块,位于内核中,在网络层的五个位置(就是防火墙四表五链中的五链)注册了一些函数,用来抓取数据包
将数据包的信息拿出来匹配各个链位置在对应表中的规则:匹配之后,进行相应的处理ACCEPT,DROP等等
五链
●进路由(PREOUTING链):在进行路由选择前处理数据包
●进系统(INPUT):处理入站数据包
●转发(FORWARD):处理转发数据包
●出路由(POSTROUTING):在进行路由选择后处理数据包
●出系统(OUTPUT):处理出站数据包
四表
filter表——过滤数据包(filter是默认的表,在使用iptables命令进行配置规则的时候,不特指其他的表就会默认filter)
Nat表——用于网络地址转换(IP,端口)
Mangle表——修改数据包的服务类型,TTL,并且可以配置路由实现QOS
Raw表——决定数据包是否被状态跟踪机制处理
四表五链之间的关系
表包含链
iptables语法格式
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
如果不指定表名,则会默认指定filter表
iptables常用参数
-P 设置默认策略:iptables
-P INPUT(DROP|ACCEPT)
-F 清空规则链
-L 查看规则链
-A 在规则链的末尾加入新规则
-I num 在规则链的头部加入新规则
-D num 删除某一条规则
-s 匹配来源地址IP/MASK,加感叹号“!”表示除了这个IP外
-d 匹配目标地址
-i 网卡名称 匹配从这块网卡流入的数据
-o 网卡名称 匹配从这块网卡流出的数据
-p 匹配协议,如tcp,udp,icmp
--dport num 匹配目标端口号
--sport num 匹配来源端口号
iptables命令使用总结
所有链名必须大写
INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING
所有表名必须小写
filter/nat/mangle
所有动作必须大写
ACCEPT/DROP/SNAT/DNAT/MASQUERADE
所有匹配必须小写
-s/-d/-m <module_name>/-p
环境:
VMware软件
一台centos 7系统
一台win10
配置centos7
[root@localhost~]# yum install httpd -y
[root@localhost~]# systemctl start httpd
'此时用win10浏览器访问本主机ip地址发现是无法连接的'
[root@localhost~]# iptables -I INPUT -i ens33 -p tcp --dport 80 -s 192.168.197.141/24 -j ACCPET '在规则链头部加入规则,指定从ens33网卡流入的,匹配tcp协议,匹配80端口(httpd的端口号)匹配源ip地址(win10),指定控制类型为接受'
[root@localhost~]# iptables -L '查看策略是否设置成功'
此时使用win10网页输入centos7ip地址,可以看到Apache服务,配置成功
●区域如同进入主机的安全门,每个区域都具有不同限制程度的规则
●可以使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口
●默认情况下,public区域是默认区域,包含所有接口(网卡)
●iptables没有区域的概念
●外部流量通过规则进入相应的区域接口(网卡)
运行时配置
实时生效,并持续至firewalld重新启动或重新加载配置
不中断现有连接
不能修改服务配置
永久配置
不立即生效,除非firewalld重新启动和重新加载配置
中断现有连接
可以修改服务配置
firewall-config图形工具(用的少)
firewall-cmd命令行工具(用的多)
/etc/firewalld/中的配置文件
firewalld会优先使用/etc/firewalld/中的配置,如果不存在配置文件,则使用/usr/bin/firewalld/中的配置
/etc/firewalld/:用户自定义配置文件,需要时可通过从/usr/lib/firewalld/中拷贝
/usr/lib/firewalld/:默认配置文件,不建议修改,若恢复至默认配置,可以直接删除/etc/firewalld/中的配置
[root@localhost ~]# firewall-config '//在终端输入'
[root@promote opt]# firewall-cmd --get-default-zone 接口的默认的区域就是public
public
包含运行时配置/永久配置
更改永久配置并生效
关联网卡到指定区域
修改默认区域
连接状态
“区域”选项卡
“服务”子选项卡
“端口”子选项卡
“协议”子选项卡
“源端口”子选项卡
“伪装”子选项卡
“端口转发”子选项卡
“ICMP过滤器”子选项卡
“服务”选项卡