防火墙:
保证数据的安全性是继数据可用性之后的最为重要的一项工作
防火墙作为公网和内网之间的保护屏障
防火墙种类:
硬件防火墙:网关服务器
软件防火墙:装在操作系统中的软件
防火墙管理工具
主要功能:依据策略对穿越防火墙的自身流量进行过滤。
在centos和RHEL系统中:
firewalld:7版本以上(centos7.x,RHEL7.x)
iptables:6版本(centos6.x,RHEL6.x)
注:iptables和firewalld都不是真正的防火墙,他们都只是定义防火墙策略的防火墙管理工具而已,或者说,他们只是一种服务
firewalld和iptables的区别:
iptables服务会把配置好的防火墙策略交给内核层的
netfilter网络过滤器来处理
firewalld服务会把配置好的防火墙策略交给内核层的nftables包过滤框架来处理
firewalld和iptables的区别:
|
firewalld |
iptables |
| 配置文件 |
/usr/lib/firewalld/ 和 /etc/firewalld/ |
/etc/sysconfig/iptables |
| 对规则的修改 |
不需要全部刷新策略,不丢失现行连接 |
需要全部刷新策略,丢失连接 |
| 防火墙类型 |
动态防火墙 |
静态防火墙 |
第一个防火墙管理工具——firewalld
centos1版本以上默认使用的防火墙配置管理工具
拥有基于CLI(命令行界面)和GUI(图形化用户界面)两种管理方式。
定义:基于firewalld服务的防火墙会查询每个网络数据包的头部。
依据头部中包含的信息,可以配置规则来过滤每个数据包。
通过网络发送信息的过程:
信息在通过网络发送之前,会被分解成更小的单元(称为数据包)。
数据包:数据类型、源ip地址、目标ip地址,还有源端口。
数据包通过网络到达目的地,防火墙会检查每一个数据包的头部的字段,按照已配置好的规则,去采取以下动作:
1、允许数据包进入系统
2、如果当前系统时网络间的网关或者路由器,则将数据包转发给其他系统
3、对数据包的传输速率进行限制
4、拒绝数据包,并给原始ip地址发送一条消息
5、丢弃数据包,并且不发送任何类型的信息。
-----------------------以上都是有关firewalld的基本概念-------------------------------
相较于传统的防火墙管理工具,firewalld支持动态更新技术,并加入了区域(zone)的概念
简单来说,firewalld基于区域,区域就是firewalld预先准备了几套防火墙策略的结合(策略模板),用户可以根据生产环境场景的不同选择合适的策略集合
常见区域:
| drop(丢弃) |
任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接 |
| block(限制) |
任何接收的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohited信息所拒绝 |
| public(公共) |
在公共区域内使用,不能相信网络的其他计算机不会对宁的计算机造成危害,只能接收经过选取的连接 |
| external(外部) |
特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算,不能相信他们不会对您的计算机造成危害,只能接收经过选择的连接 |
| dmz(非军事区) |
用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接 |
| work(工作) |
用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收过选择的连接 |
| home(家庭) |
用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接 |
| internal(内部) |
用于内部网络。您可以基本上信任网络内的其他计算机。仅仅接收经过限制的连接 |
| trusted(信任) |
可接收所有的网络连接 |
9大区域:trusted home internal work public external dmz block drop
常见区域元素:
| interfaces(接口)网卡 |
与区域相关的网络接口 |
| sources(源地址) |
与区域相关的源ip地址 |
| services(服务) |
允许通过区域的入战服务 |
| ports(端口) |
允许通过区域的目标端口 |
| protocols(协议) |
目标端口的协议,tcp、udp |
| masquerade(伪装) |
指定是否启用源网络地址转换(NAT) |
| forward-ports(转发端口) |
端口转发规则(将发送给本地端口的流量映射到同一台或另一台主机上的其他端口上) |
| source-ports(源端口) |
|
| icmp-blocks(ICMP堵塞) |
用于堵塞ICMP信息 |
| rich rules(福规则) |
写高级的防火墙规则 |
注:如果使用多个区域的话,必须有关联源地址或接口
firewalld拥有两种配置模式:
1、运行时配置(runtime) 当前生效模式,重启会生效
2、永久配置模式(permanent) 不会立即生效,只会重新启动或者重加载才会生效。
firewalld配置方法:
1、firewall-cmd 命令行,终端管理工具
2、firewall-config 图形化界面工具
3、/etc/firewalld中的配置文件
/etc/firewalld:用户自定义配置文件存放目录,可以在、/usr/lib/firewalld中拷贝模板,优先读取
/usr/bil/firewalld:默认配置文件
firewalld操作:
查看:
firewall-cmd --get-区域元素名 //查看指定的元素有哪些
firewall-cmd --get-default-zone //查看firewall默认区域
firewall-cmd --set-default-zone=区域名 //设置firewalld默认区域
firewalld默认区域是public区域
firewall-cmd --get-zones //列出所有fiewalld区域
注:firewall-cmd 是firewalld防火墙配置管理工具CLI版本使用的命令
永久生效:
firewall-cmd --set-default-zone=区域名 --permanent
firewall-cmd --get-active-zone //查看当前正在运行的区域
网卡
firewall-cmd --zone=work --add-interface=网卡名称 //添加一块网卡到指定区域中
firewall-cmd --get-zone-of-interfce=网卡名称 //查看指定网卡所在区域
firewall-cmd --zone=work --change-interface=网卡名称 //为指定区域更改网卡
firewall-cmd --zone=work --remove-interface=网卡名称 //为指定区域删除某块网卡
firewall-cmd --zone=区域名 --query-unterface=网卡名称 //判断指定区域中有没有该网卡
firewall-cmd --list-all-zones //查看所有区域里面的详细信息
firewall-cmd --zone=区域 --list-all // 查看指定区域的详细信息
firewall-cmd --list-all 当没有 --zone的选项,查看的是默认区域中详细信息
源ip地址:
firewall-cmd --zone=work --add-source=源ip地址 为指定区域添加源ip地址
firewall-cmd --zone=work --remove-source=源ip地址 为指定区域删除ip地址
防火墙
原文:http://blog.51cto.com/14158297/2351368