防火墙的含义
firewalld:隔离功能
病毒防护:
1、入侵检测系统:在互联网访问的过程中,不阻断任何网络访问,也不会定位网络的威胁,提供告警和事后的监督,类似于监控。
2、入侵防御系统:透明工作模式,在判定为攻击行为或者是病毒威胁时,主动的隔断。
防水墙:
防止内部信息泄露的产品,网络,外设接口等等全访问的实现监控。
防火墙的隔离规则:
1、对进出网络或者主机的数据包基于一定的规则进行检查,匹配规则的则方行,不匹配的就会隔离在主机之外。防火墙会配置在网络边缘或者主机边缘。有主机防火墙和网络防火墙
Linux系统主机自带的防火墙:
iptables:centos7之前是系统的默认防护墙
firewalld:centos7系统的默认防护墙
ufw:ubuntu的防火墙,自带的,默认就没有规则。
iptables
属于用户态防火墙,通过表匹配链——>链中的规则对数据包放行或者拒绝进行匹配。
表是自带的
链是自有的
规则是人工配置,规则一旦配置,立即生效,不需要重启。
四表五链
四表
raw表:用来控制数据包的状态跟踪,决定是否跳过后续的处理流程。
mangle表:用于修改数据包的头部信息。
nat表:网络地址转换,改变数据包的源地址和目的地址。用于内网和外网之间通信。
filter表:用于过滤数据包,可以控制数据包的进出,以及接受或者拒绝数据包。
表的优先级
raw——>mangle——>nat——>filter(不指定表名时,默认就是filter)
五链
INPUT:处理数据包进入本机的规则
OUTPUT:处理本机发出的或者其他请求响应的数据包的规则,一般不做限制。
FORWARD:处理数据包转发到其他主机的规则
PREROUTING:处理数据包进入本机之前的规则(地址转换)
POSTOUTING:处理数据离开本机之后的规则(地址转换)
规则内的匹配顺序:
1、自上而下按照顺序依次进行检查,找到了匹配的规则即停止。
2、链内没有规则,就会按照链的默认策略进行处理。
命令格式
iptables -t 表名(默认就是filter表) 管理选项 链名 匹配的条件 -j 控制类型
管理选项:
- -A:在指定链的末尾添加一条规则
- -I(大写):在注定链中插入一条新的规则,根据序号来进行插入
- -P:指定链的默认规则(慎用,没有特殊需求不要修改)
- -D:删除链里的规则,根据规则的序号进行删除
- -R:修改,替换某一条规则(不常用)
- -L:查看规则
- -n:数字化的展示规则的字段
- -v:查看详细的信息
- --line-number:查看规则时带有编号
- -F:清除链中的所有规则(慎用)
- -X:清空自定义链的规则
匹配条件:
- -p:匹配数据包的协议
- -s:匹配数据包的源地址
- -d:匹配数据包的目的地址
- -i:指定数据包进入本机的网络接口
- -o:数据包离开本机使用的网络接口
- --sport:指定源端口
- --dport:指定目的端口
控制类型:
- ACCEPT:允许数据包通过
- DROP:直接丢弃数据包。没有任何回显信息。
- REJECT:拒绝数据包通过,但是会有一个回显信息。
- SNAT:修改数据包的源地址
- DNAT:修改数据包的目的地址
案例
查看规则-vnL
以上可以看出我们还未有新加入的规则
以上可以看出我们加入了一条新的规则,编号为1。
添加规则-A
拒绝其他主机ping本机-p
如我们在filter表中插入一个规则到INPUT链,匹配的协议是icmp。拒绝其他主机ping本机。
根据序号插入规则-I
如果我们想解除拒绝其他主机ping本机这条规则,使用iptables -A INPUT -p icmp -j ACCEPT命令,虽然能添加成功,但是依然没有效果,必须要将ACCEPT规则插入到上一条REJECT规则之前,才能生效。
拒绝指定主机ping本机-s
-s可以指定IP地址,REJECT和DROP都是表示拒绝的意思,但是DROP没有任何回显信息,如下
拒绝指定主机访问本机指定端口
如我们指定192.168.254.3这个主机访问本机指定端口80(nginx)
由上可以看出,加入这个规则后,192.168.254.3这个主机无法访问我们本机的nginx服务。
如我们拒绝自己主机对22(ssh)发出数据
这时候可以看出我们的ssh已经断开了
删除规则-D
删除规则-D要配合指定的序号,如我们删除序号2对应的规则
修改规则-R
修改链的默认策略-P
禁止数据访问设备-i
如禁止254这个网段从ens33设备进入本机
拒绝多个端口-m multiport
-m:扩展模块
-m multiport --dport 目的端口列表
-m multiport --sport 源端口列表
禁止20这个ip禁止访问本机的端口80和22
方法1:这个方法必须是端口数小的在前面,大的在后面。
方法2:使用 -m multiport 的形式,没有这个端口放前放后之说。
拒绝范围性ip地址-m iprange
-m iprange --src-range 源ip地址的范围
-m iprange --dst-range 目的ip地址的范围
禁止 ip地址192.168.254.3-8 的主机访问本机的80端口
拒绝范围性mac地址-m mac
-m mac --mac-source 源mac地址
策略的保存
策略添加完之后,只是暂时保存,并不是永久保存,需要添加到指定配置文件才能永久保存。
Ubuntu的保存
1、永久保存
先安装软件:apt -y install iptables-persistent
永久保存策略的配置文件在 /etc/iptables/ 目录下,分别是ipv4和ipv6配置文件。
iptables-save >> /etc/iptables/rules.v4 #策略永久保存到ipv4配置文件当中
这时候查看ipv4配置文件,以生产我们需要保存的策略
2、先将策略保存到指定文件,再直接导入到配置当中,这种方式虽然不是保存到配置文件中,但也算永久保存。
centos7的保存
先安装软件:yum -y install iptables-services
永久保存策略的配置文件是 /etc/sysconfig/iptables
iptables-save >> /etc/sysconfig/iptables #永久保存
通信的要素
三大要素:协议、ip、端口
四大要素:源ip、目的ip、源端口、目的端口
五大要素:协议、源ip、目的ip、源端口、目的端口
端口,就是对应的应用在主机上的唯一标识。