Linux 防火墙知识

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(直播课堂扩展知识)


 

 

 

 

 

     


 

 

 

 
 

 



 



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值