防火墙的配置和策略
安全技术:
入侵检测系统:特点是不阻断网络访问,量化,定位的方式来锁定内外网络的危险情况,提供告警服务和事后监督为主。
说白了就是默默看着你,没有主动行为
入侵防御系统:特点是以透明模式工作,分析数据包,木马,病毒,服务攻击等进行准确的分析判断,判定之后会立即阻断。
他是主动地有效的保护网络安全
是所有数据进入指定网络的必经之路
防火墙就是入侵防御系统(人工配置或者系统预设):主要就是隔离,工作在网络或者主机的边缘
对进出网络或者主机的数据包基于一定规则的检查。而且在匹配到某规则时,由规则定义做出相应的处理动作
只有允许策略的数据包,才能够通过
防水墙:ensp.他是不透明的一种工作方式,你干什么都会有记录,但是你自己不知道
保护范围:
主机防火墙:只能保护当前一台主机
网络防火墙:可以保护整个防火墙另一侧的局域网
网络协议:
网络层防火墙:iptables firwalld 包过滤防火墙,对数据包进行过滤
应用层防火墙:
iptables 就是包过滤防火墙
面试题:通信的五要素和四要素:
五要素:
源IP和目的IP
源端口和目的端口
协议(tcp/udp)
四要素:
源IP和目的IP
源端口和目的端口
iptables:属于用户态防火墙
用户态:面向使用对象,我们就是使用工具,配置策略
内核态:代码层(开发考虑的)
iptables的配置规则生效之后,会立即生效,无须重启
centos7之前,iptables是默认配置,现在默认配置是firewalld
之后要使用iptables需提前将firewalld关闭
面试题:四个表组成:
row表:控制数据包的状态跟踪,以及可以决定是否跳过后续的处理。(关闭还是启用数据包的跟踪机制,加快数据包穿越防火墙的速度)
mangle表:修改数据包的头部信息(修改数据包的标记位规则)
nat表:用于网络地址转换,可以改变数据包的源IP地址和目的IP地址
filter表:是iptables的默认表,用于过滤数据包,可以控制数据包的进出。以及是否接受或者拒绝数据包
每个表里面都有链:链里面有5个链:
INPUT链:数据包进入本机的规则
OUTPUT链:数据包出本机的规则
PREROUTING链:数据包进入本机之前,是否做地址转换
POSTROUTING链:数据包离开本机之前,是否要做地址转换
FORWARD链:是否运行数据包通过本机进行转发
四个表......5个链......每个链里面都有对应的规则
规则就是我们人工配置的策略
数据包进入本机之后,匹配表是由优先级的
row............mangle.........net............filter
PS:到工作中千万不要这么干,发现服务无法启动不要去关防火墙。 生产的防火墙都是白名单。清空防火墙策略,你也要倒霉。
iptables命令的格式和相关选项:
格式:
iptables -t 表名 管理选项 链名 匹配条件 -j 控制类型
不加 -t 表名 默认就是fiter表
不加链名,就是指所有链,不推荐如此操作
管理选项:
-A:在指定链的末尾追加一条
-I:在指定链中插入一条新的规则,根据编号来进行插入,不指定序号,直接插入当前链中的第一条(不推荐)
-P:指定默认策略
-D:删除规则
-R:修改或者替换规则(不推荐)
-L:查看
v:显示详细信息
n:所有字段以数字形式显示
-F:清空链当中的所有规则(慎用)
-X:清空自定义链的规则
匹配条件:
-p:指定匹配数据包的协议类型
-s:指定匹配数据包的源IP地址
-d:指定匹配数据包的目的IP地址
-i:指定数据包进入使用本机的网络接口
-o:指定数据包离开本机使用的网络接口
-sport:指定源端口
-dport:指定目的端口
控制类型:
ACCPET:允许数据包通过
DROP:直接丢弃数据包而且没有任何回应信息
REJECT:拒绝数据包通过,会给一个响应信息
SNAT:修改数据包的源地址
DNAT:修改数据包的目的地址
规则内的匹配顺序:
自上向下按照顺序依次进行检测,找到匹配的规则立刻停止,如果在链中找不到规则,则会按照该链默认策略处理
1.如果策略已保存过,写在配置文件中的保存,导入到iptables,重启服务即可
2.机房调整
3.炸
命令:
iptables -F #清空所有策略
iptables -vnL
iptables -vnL --line-numbers
iptables -t filter -A INPUT -p icmp -j REJECT #禁止所有主机ping本机,包括本机
iptables -t filter -A INPUT -p icmp -j ACCEPT #允许ping通,-A在前一条规则后添加
PS:匹配到了就不会在匹配后面的规则
iptables -t filter -I INPUT 1 -P icmp -j ACCEPT #指定序号插入,插入到第一条,他是立即生效
iptables -vnL --line-numbers #查看行规则的位置
iptables -t filter -I INPUT 1 -p icmp -j DROP #
iptables -A INPUT -s 192.168.86.12 -p icmp -j REJECT #指定拒绝主机
iptables -t filter -I INPUT 1 -s 192.168.86.12 -p tcp --dport 80 -j REJECT
删除规则:
iptables -D INPUT 需要删除的序号
修改规则:(极其不推荐此功能)
iptables -R INPUT 1 -s 192.168.86.12 -p tcp --dport 80 -j ACCEPT
修改默认策略:
iptables -P INPUT DROP
拒绝整个网段:
iptables -A INPUT -ptcp -s 192.168.86.0/24 --dport 80 -j REJECT
拒绝多个网络是用逗号隔开
拒绝多个端口是用:隔开,而且需要小的端口在前,大的端口在后
iptables -A INPUT -p tcp -m -- dport 22:80 -j REJECT
显示匹配:已-m扩展模块形式指出类型,多端口MAC地址,ip范围
多端口:
iptables -A INPUT -p tcp -m multiport -- dport 80,22,21,53 -j REJECT
IP范围:
iptables -A INPUT -p tcp -m iprange --src-range 192.168.86.11-192.168.86.14 --dport 80 -j REJECT
MAC地址:
iptables -A INPUT -m mac --mac-source mac地址 -j REJECT
对指定设备进行操作:
-i:数据的入口设备
-o:数据的出口设备
需求:所有从ens33接口进入的数据包,全部拒绝,而且指定IP地址DROP
iptables -A INPUT -i ens33 -s 192.168.86.12,192.168.86.13 -j DROP
iptables -A INPUT -p icmp -j ACCEPT
备份:
iptables-save > /opt/iptables.bak
cat /etc/sysconfig/iptables
iptables-restore < /opt/iptables.bak #这是临时导入
cat /opt/iptables.bak > /etc/sysconfig/iptables #这是永久导入
PS:导入配置文件之前,原文件一定要备份!