110.12 firewalld和netfilter
10.13 netfilter5表5链介绍
10.14 iptables语法
10.15 iptables filter表案例
10.16/10.17/10.18 iptables nat表应用
1.firewalld 和netfilter
动态防火墙后台程序 firewalld 提供了一个 动态管理的防火墙,用以支持网络 “zones” ,以分配对一个网络及其相关链接和界面一定程度的信任。它具备对 IPv4 和 IPv6 防火墙设置的支持。它支持以太网桥,并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。
Linux 防火墙-netfilter
selinux 临时关闭setenforce0
selinux永久关闭 vi /etc/selinux/config
centos7之前使用 netfilter防火墙
centos7开始使用firewalld 防火墙
关闭firewalld 开启 netfilter方法
systemctl stop firewalld
systemctl disable firewalled
yum install -y iptables -services
systemctl enable iptables
systemctl start iptables
netfilter/iptables 简介:
(1)IP数据包过滤系统由 netfilter 和 iptables 两个组件构成。
(2)netfilter是集成在内核中的一部分,其作用是定义、保存相应的规则,
(3)iptables是一种工具,用来修改信息的过滤规则及其他配置,而这些规则会保存在内核空间之中。
(4)netfilter是Linux核心中的一个通用架构,其提供了一系列的表(tables)每个表由若干个链(chains)组成,而每条链可以由一条或若干条规则(rules)组成。
1.1 安装配置netfilter
1.1.1关闭selinux
#setenforce o
#vi /etc/slinux/config
SELINUX=disabled//配置selinux为禁止开机启动
1.1.2 关闭firewalld 开启netfilter
#systemctl stop firewalld //关闭firewalld服务
#systemctl disable firewalld //禁止firewalld为开机启动
#yum -y install iptables -services //安装iptables
#systemctl enable iptables //设置开机启动
#systemctl start iptables.service
10.13 netfilter 5 表5链介绍
netfilter的5个表
filter 表用于过滤包,最常用的表,有INPUT, FORWARD,OUTPUT三个链
nat表示用于网络地址转换,有PREROUTING ,OUTPUT , POSTROUTING三个链。
managle表示用于给数据包做标记。
raw表示可以实现不追踪某些数据包。
netfilter的5个表filter:表主要用于过滤包,是系统预设的表,该表内建3个链:INPUT、OUTPUT以及FORWARD。INPUT链作用于进入本机的包,OUTPUT链作用于本机送出的包,FORWARD链作用于那些跟本机无关的包。
nat:表主要用于网络地址转换,同样也有3个链,PREROUTING链的作用是在包刚刚到达防火墙时改变它的目的地址,OUTPUT链的作用是改变本地产生的包的目的地址,POSTROUTING链的作用是在包即将离开防火墙时改变其源地址。
mangle:表主要用于给数据包做标记,然后根据标记去操作相应的包。这个表几乎不怎么用raw:表可以实现不追踪数据包做标记,默认系统的数据包都会被追踪,但追踪势必消耗一定的资源,所以可以用raw表来指定某些端口的包不被追踪。
security:表在Centos6里是没有的,它用于强制访问控制(MAC)的网络规则。
netfilter的5个链
5个链分别为PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTINGPREROUTING:数据包进入路由表之前INPUT:通过路由表后目的地为本机FORWARD:通过路由表后,目的地不为本机OUTPUT:由本机产生,向外转发POSTROUTING:发送到网卡接口之前。
10.14 iptables 语法:
一、iptables规则的匹配条件类型有三类 1、通用匹配:可直接使用,不依赖于其他条件或扩展,包括网络协议、IP地址、网络接口等条件 2、隐含匹配:要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类型等条件 3、显式匹配:要求以“-m 扩展模块”的形式明确指出类型,包括多端口、MAC地址、IP范围、数据包状态等条件。
二 ,iptables [-t 表名] 选项 [链名] [匹配条件] [-j 控制类型]
未指定表名时,默认用filter表;链名,控制类型要大写;除非设置默认策略,否则必须指定匹配条件;不指定链名时,默认表内所有链。
Linux防火墙-netfilter
查看iptables规则:iptables -nvl
iptables -F清空规则
service iptables save保存规则
iptables -t nat // -t指定表
iptables -Z可以把计算器清零
iptables -A INPUT -s 192.168.188.1 -p tcp -- sport1234 -d192.168.188.128 --dport 80 -j DROP
iptables -I/ -A/-D INPUT -s 1.1.1.1.1 -j DROP
iptables -I INPUT -s 192.168.1.0/24 -i etho -j ACCEPT
iptables -nvl --line -numbers
iptables -D INPUT 1
iptables -p INPUT DROP
1)查看规则 iptables -nvl
2)iptables 控制类型
b、常用的控制类型
ACCEPT:允许数据包通过
DROP:直接丢弃数据包,不给出回应
REJECT:拒绝包通过,必要时会给数据包发送端一个响应信息
LOG:在/var/log/messages文件中记录日志信息,然后将包传给下一条规则,防火墙规则的"匹配即停止"对于log操作来说是一个特例,因为log只是一种辅助动作,并没有真正处理包。
c、常用的选项
-A 在链末尾添加一条新规则
-I 插入一条新规则,未指定序号时默认为第一条规则
-D 删除链中的某条规则,可指定规则序号或具体内容
-L 列出链中的规则
-F 清空链中规则
-n 使用数字形式显示结果,如显示IP地址,而不是主机名
-P 为指定链设置默认规则
-v 显示详细信息
--line-numbers 查看规则表时,同时显示规则在链中的序列号
-p :指定协议,可以是tcp,udp或者icmp;
--dport :跟-p一起使用,指定目标端口;
--sport :跟-p一起使用,指定源端口;
-s :指定源IP(可以是一个ip段);
-d :指定目的IP(可以是一个ip段);
-j :后跟动作,其中ACCEPT表示允许包,DROP表示丢掉包,REJECT表示拒绝包;
-i :指定网卡(不常用,但有时候能用到)。
3)iptables 增加删除规则
1、增加规则
#iptables -t filter -A INPUT -p tcp -j ACCEPT(在filter表的INPUT链中最后一个规则后面添加一个新的规则)
#iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT (在filter表INPUT链第二行插入规则,允许tcp的80端口通过)
2、删除规则
#iptables -D INPUT 3(删除filter表中INPUT链的第三条规则)
#iptables -t raw -F(清空raw表中所有链内的规则)
#iptables -F OUTPUT(清空filter表output链内所有规则)
[root@aweilinux ~]# iptables -A INPUT -s 192.168.139.10 -p tcp --sport 1234 -d 192.168.139.22 --dport 80 -j DROP
-A 表示增加一条规则,另外还有-I 表示插入一条规则,-D删除一条规则;后面的INPUT即链名称,还可以是OUTPUT或者FORWORD;-s 后跟源地址;-p 协议(tcp, udp, icmp); --sport/--dport 后跟源端口/目标端口;-d 后跟目的IP(主要针对内网或者外网);-j 后跟动作(DROP即把包丢掉,REJECT即包拒绝;ACCEPT即允许包)
[root@aweilinux ~]#iptables -I OUTPUT -p tcp --dport 22 -d 10.0.2.34 -j DROP
把发送到10.0.2.34的22端口的数据包丢掉.
4)iptables传输数据包的过程:
① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
② 如果数据包就是进入本机的,它就会沿着向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
③ 如果数据包是要转发出去的,且内核允许转发,数据包就会b向右移动,经过FORWARD链,然后到达POSTROUTING链输出。
10.16-10.18iptables表应用
直播课堂笔记:
ptables限制syn速度
原理,每5s内tcp三次握手大于20次的属于不正常访问。
#iptables -A INPUT -s ! 192.168.0.0/255.255.255.0 -d 192.168.0.101 -p tcp -m tcp --dport 80 -m state --state NEW -m recent --set --name httpuser --rsource
#iptables -A INPUT -m recent --update --seconds 5 --hitcount 20 --name httpuser --rsource -j DROP
其中192.168.0.0/255.255.255.0 为不受限制的网段, 192.168.0.101 为本机IP。
该iptables策略,可有效预防syn攻击,也可以有效防止机器人发垃圾帖。
https://docs.qq.com/doc/DR3FmdFdLZmRZb25D(直播课堂扩展知识)