linux防火墙
防火墙
1、keepalived的作用是什么?
在集群中生成VIP,主要用于高可用。
2、keepalived脑裂怎么解决?
通过keepalived自带的脚本执行功能,不停的检测代理的服务,如果不正常做对应的处理。
3、keepalived抢占式与非抢占式之间的区别
抢占式是按照优先级分配VIP,非抢占式一旦得到VIP,就在改变了。非抢占式不会造成延时或者错误。
4、Nginx重定向的关键字
rewrite [匹配内容] [从定向到的内容] [重定向规则];
return [状态码] [重定向到的URL]
5、重定向的四种模式
last 本条规则匹配完成后,停止匹配,不再匹配后面的规则
break 本条规则匹配完成后,停止匹配,不再匹配后面的规则
redirect 返回302临时重定向,地址栏会显示跳转后的地址
permanent 返回301永久重定向,地址栏会显示跳转后的地址
1、什么是防火墙
1、什么是防火墙
防止恶意流量访问的软件就叫做防火墙。
2、防火墙的种类
软件防火墙
firewalld、iptables
硬件防火墙
F5
firewalld和iptables的区别?
firewalld更简单
firewalld底层操作的还是iptables。
iptables更底层
iptables底层操作是系统内核流量的走向。
四表五链
3、什么是iptables
防火墙软件。
#iptables注意事项
1.匹配规则是从上往下一次执行的
2.只要匹配上规则,就不会在往下执行
3.如果都没有匹配到规则,就执行默认规则
4.默认规则最后执行,默认允许所有
5.经常使用的规则往前放
# 4、什么是包过滤防火墙
数据包。
过滤数据包的防火墙就是包过滤防火墙
#四表:
filter表——过滤数据包
Nat表——用于网络地址转换(IP、端口)
Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOS
Raw表——决定数据包是否被状态跟踪机制处理
#五链
1) PREROUTING: 主机外报文进入位置,允许的表mangle, nat(目标地址转换,把本机地址转换为真正的目标机地址,通常指响应报文)#对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
2) INPUT:报文进入本机用户空间位置,允许的表filter, mangle #进来的数据包应用此规则链中的策略
3) OUTPUT:报文从本机用户空间出去的位置,允许filter, mangle, nat #外出的数据包应用此规则链中的策略
4) FORWARD:报文经过路由并且发觉不是本机决定转发但还不知道从哪个网卡出去,允许filter, mangle#转发数据包时应用此规则链中的策略
5) POSTROUTING:报文经过路由被转发出去,允许mangle,nat(源地址转换,把原始地址转换为转发主
机出口网卡地址)#对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)
4、什么是规则
防火墙规则右称之为防火墙策略,主要是描述执行什么防火墙功能的记录。
防火墙底层操作原理
网络流入流出转发流程图
总结:表的作用各有不同,链的位置各有不同。表中的链就是将表的功能放到链的具体位置去执行。
2、防火墙的增删改查
# 安装iptables服务端
[root@web01 ~]# yum install iptables-services -y
# 启动iptables
[root@web01 ~]# systemctl start iptables
# 防火墙表与链之间的关系
filter: 负责做过滤功能:INPUT、OUTPUT、FORWARD
nat: 负责网络地址转换:PREROUTING、INPUT、OUTPUT、POSTROUTING
mangle: 负责修改数据包内容:PREROUTING、INPUT、OUTPUT、POSTROUTING、FORWARD
raw: 负责数据包跟踪:PREROUTING、OUTPUT
filter: INPUT ------------------> FORWARD ---------------> OUTPUT
nat: PREROUTING ----------> INPUT ----------> OUTPUT -----------> POSTROUTING
mangle: PREROUTING ---------> INPUT --------> FORWARD -------> OUTPUT --------> POSTROUTING
raw : PREROUTING ---------> OUTPUT
--------------------------------------------------------------------------- input等
#格式 :iptables -t 表名 选项 链名称 条件 动作
# 查
[root@web01 ~]# iptables -L
[root@web01 ~]# iptables -vnL
[root@web01 ~]# iptables -vnL -t nat
#.查看防火墙规则序号 删除修改用得到
[root@lb01 ~]# iptables -nL --line-numbers
---------------------------------------------------------------------------
# 增加 :"链"的匹配规则是从上到下的,一旦匹配上了就无法在往下进行匹配了。
# 追加 -A, --append 追加一条规则到链中
# 插入 -I, --insert 插入一条规则,插入到顶部
案例1:不允许访问本机
iptables -t filter -A INPUT -p ALL -j DROP
案例2:要求172.16.1.0可以访问web01,其他的请求全部拒绝
#先让172.16.1.0这个网段可以访问
iptables -t filter -A INPUT -p ALL -s 172.16.1.0/20 -j ACCEPT
#在禁掉所有
iptables -t filter -A INPUT -p ALL -j DROP
案例3:要求在案例2的基础上,允许192.168.15.1可以访问?
iptables -t filter -I INPUT -p ALL -s 192.168.15.1 -j ACCEPT
案例4:只允许其他网络ping web01
iptables -t filter -I INPUT -p ICMP -j ACCEPT
案例5:只允许自己ping web01
iptables -t filter -I INPUT -p ICMP -s 192.168.15.7 -j ACCEPT
#修改 案例修改 修改需要指定表名称 链名称 序列号 后面改内容
iptables -t filter -R INPUT 1 -p icmp -j DROP # 修改 规则
---------------------------------------------------------------------------
# 删
-F, --flush 清空
iptables -F : 清除所有的防火墙规则
iptables -t filter -D INPUT 1 删除需要指定表名称 链名称 序列号
---------------------------------------------------------------------------
#格式 :iptables -t 表名 (选项) 链名称 条件 动作
#####(选项) 增删改查
-t: 指定操作的表
-n, 禁止反向解析
-v, 显示数据包详情
-A, --append 追加一条规则到链中
-D, --delete 删除链中的规则
-I, --insert 插入一条规则,插入到顶部
-R, --replace 修改
-L, --list 列出当前的规则
-S, --list-rules 列出所有的规则
-F, --flush 清空
-Z, --zero 清空计数器( 包数量 、包大小)
-N, --new-chain 创建一个自定义 链
-X, --delete-chain 删除一个自定义链
-P, --policy 指定链的默认策略
#链名称 INPUT OUTPUT FORWARD 等
---------------------------------------------------------------------------
##条件匹配
-p : 指定对应的管理流量类型
TCP :tcp协议
UDP :udp协议
ICMP : ping
ALL : 所有协议
-s 源地址 #谁访问
-d 目标地址 #访问谁
--sport 源端口
--dport 目标端口
---------------------------------------------------------------------------
##动作匹配
-i : 进来的网卡
-o : 出去的网卡
-m : 指定模块
-j : 转发模式
ACCEPT 将数据包放行,进行完此处理动作后,将不再比对其它规则,直接跳往下一个规则链。(允许通过)
REJECT 拦阻该数据包,并传送数据包通知对方。
DROP 丢弃包不予处理,进行完此处理动作后,将不再比对其它规则,直接中断过滤程序。(不允许通过)
REDIRECT 将包重新导向到另一个端口,进行完此处理动作后,将会继续比对其它规则。
1、要求只有172.16.0.0网段的能够登录web01
#设置开启172.16.0.0这个网段
iptables -t filter -A INPUT -p ALL -s 172.16.0.0/20 -j ACCEPT
#在设置所有禁用
iptables -t filter -A INPUT -p ALL -j DROP
2、访问web01的8080端口转发至80端口
iptables -t nat -A PREROUTING -p ALL --dport 8080 -j REDIRECT --to-ports 80