防火墙

一、防火墙一

(一)概述

1.介绍

(1)netfilter

位于Linux内核中的包过滤功能体系

称为Linux防火墙的“内核态”

Netfilter是Linux操作系统核心层内部的一个数据包处理模块。

(2)iptables

位于/sbin/iptables,用来管理防火墙规则的工具

称为Linux防火墙的“用户态”

(3)注意

netfilter和iptables都可以表示Linux防火墙。

iptables是应用层的,其实质是一个定义规则的配置工具,而核心的数据包拦截和转发是Netfiler。

人们通过操作iptables来控制netfilter。

2.包过滤的工作层次

(1)主要是网络层,针对IP数据包

(2)体现在对包内的IP地址、端口等信息的处理上。

3.规则表

(1)表的作用

容纳各种规则链

(2)表的划分依据

防火墙规则的作用相似

4.默认包括4规则表

一般在filter表上做策略!

(1)raw表

确定是否对该数据包进行状态跟踪

(2)mangle表

为数据包设置标记

(3)nat表

修改数据包中的源、目标IP地址或端口

(4)filter表

确定是否放行该数据包(过滤)。

5.规则链

(1)规则的作用

对数据包进行过滤或处理

(2)链的作用

容纳各种防火墙规则

(3)链的分类依据

处理数据包的不同时机

6.默认包括5种规则链

(1)INPUT

处理入站数据包

(2)OUTPUT

处理出站数据包

(3)FORWARD

处理转发数据包

(4)POSTROUTING

在进行路由选择后处理数据包

(5)PREROUTING

在进行路由选择前处理数据包

7.默认的表、链结构示意图

8.规则表之间的顺序

raw→mangle→nat→filter

9.规则链之间的顺序

(1)入站

PREROUTING→INPUT

(2)出站

OUTPUT→POSTROUTING

(3)转发

PREROUTING→FORWARD→POSTROUTING

10.规则链内的匹配顺序

(1)按从上到下的顺序依次检查,匹配即停止(LOG策略例外)

(2)若找不到相匹配的规则,则按该链的默认策略处理。

11.匹配流程示意图

(二)防火墙基本语法

1.格式

iptables   [-t  表名] 选项 [链名] [条件] [-j  控制类型]

例子:iptables -t filter -I INPUT -p icmp -j REJECT

2.注意

(1)不指定表名时,默认指filter表

(2)不指定链名时,默认指表内的所有链

(3)除非设置链的默认策略,否则必须指定匹配条件

(4)链名、控制类型使用大写字母,多数选项为大写,其余均小写

3.数据包的常见控制类型

(1)ACCEPT

允许通过

(2)DROP

直接丢弃,不给出任何回应

(3)REJECT

拒绝通过,必要时会给出提示

(4)LOG

记录日志信息,不做过滤,然后传给下一条规则继续匹配

4.查看规则列表

(1)-L

列出所有的规则条目

(2)-n

以数字形式显示地址、端口等信息

(3)-v

以更详细的方式显示规则信息

(4)--line-numbers

查看规则时,显示规则的序号

(5)注意

-n  -L可合写成-nL,不能写成-Ln

其他随意。

5.添加新的规则

(1)-A

在链的末尾追加一条规则

(2)-I(大写的i)

在链的开头(或指定序号)插入一条规则

(3)例子

iptables  -t  filter  -A  INPUT  -p  tcp  -j  ACCEPT

iptables  -I  INPUT  -p  udp  -j ACCEPT

iptables  -I  INPUT  2  -p  icmp  -j  ACCEPT

(4)注意

如果要添加规则的话,请结合“规则的匹配条件”小节。

6.删除、清空规则

(1)-D

删除链内指定序号(或内容)的一条规则

(2)-F

清空所有的规则

(3)例子

iptables  -D  INPUT  3

iptables  -F 

iptables  -t  nat  -F

7.设置默认策略

-P 为指定的链设置默认规则

iptables -t filter -P INPUT DROP

-P 默认策略仅两种: ACCEPT,DROP

注意:默认策略一般最后敲入。如果在你未写关于ssh的策略时敲入,你也会连接中断。

8.常用管理选项汇总

类别

选项

用途

添加新的规则

-A

在链的末尾追加一条规则

-I(i大写)

在链的开头(或指定序号)插入一条规则

查看规则列表

-L

列出所有的规则条目

-n

以数字形式显示地址、端口等信息

-v

以更详细的方式显示规则信息

--line-numbers

查看规则时,显示规则的序号

删除、清空规则

-D

删除链内指定序号(或内容)的一条规则

-F

清空所有的规则

设置默认策略

-P

为指定的链设置默认规则

9.规则的匹配条件

(1)通用匹配

1)可直接使用,不依赖于其他条件或扩展

2)包括网络协议、IP地址、网络接口等条件

(2)常用的通用匹配条件

1)

协议匹配:    -p 协议名

地址匹配:    -s  源地址、-d   目的地址

接口匹配:    -i  入站网卡、-o    出站网卡

2)例子

iptables  -I  INPUT  -p  icmp  -j  DROP

iptables  -A   FORWARD !  -p  icmp  -j  ACCEPT   (!表示条件取反)

(3)隐含匹配

1)要求以特定的协议匹配作为前提

2)包括端口、TCP标记、ICMP类型等条件

(4)常用的隐含匹配条件

1)

端口匹配: --sport 源端口、 --dport 目的端口

TCP标记匹配:--tcp-flags检查范围  被设置的标记

ICMP类型匹配:--icmp-type ICMP类型

2)例子

iptables  -A  FORWARD  -s 192.168.4.0/24 -p udp  -dport 53  -j  ACCEPT

iptables  -A  INPUT  -p  tcp  --dport  20:21  -j   ACCEPT

iptables  -A  INPUT  -p  icmp  --icmp-type 8  -j           DROP

iptables  -A  INPUT  -p  icmp  --icmp-type 0  -j   ACCEPT

iptables  -A  INPUT  -p  icmp  --icmp-type 3  -j   ACCEPT

iptables  -A  INPUT  -p  icmp  -j  DROP

icmp类型报文分两类:差错报告报文、询问报文

差错报告报文:3(端口不可达)、4(源点抑制)、5(改变路由)、11(超时)、12(参数问题)

询问报文:0(回显应答,ping应答)8(请求报文,ping请求)

(5)显式匹配

1)要求以“-m 扩展模块”的形式明确指出类型

2)包括多端口、MAC地址、IP范围、数据包状态等条件

(6)常用的显示匹配条件

1)

多端口匹配: -m  multiport  --sports 源端口列表

                             -m  multiport  --dports 目的端口列表

IP范围匹配: -m  iprange   --src-range  IP范围

MAC地址匹配: -m mac  --mac-source MAC地址

状态匹配:   -m  state   --state   连接状态

2)例子

iptables  -A  INPUT  -p  tcp  -m  multiport  --dports  25,80,110,143  -j  ACCEPT

iptables  -A  FORWARD  -p  tcp  -m  iprange   --src-range 192.168.4.21-192.168.4.28  -j  ACCEPT

iptables  -A INPUT  -m  mac  --mac-source  00:0c:29:c0:55:3f   -j  DROP

(7)常见匹配条件汇总

类别

条件类型

用法

通用匹配

协议匹配

-p 协议名

地址匹配

-s 源地址、-d  目的地址

接口匹配

-i 入站网卡、-o出站网卡

隐含匹配

端口匹配

--sport源端口、--dport目的端口

TCP标记匹配

--tcp-flags检查范围 被设置的标记

ICMP类型匹配

--icmp-type ICMP类型

显示匹配

多端口匹配

-m multiport --sports | --dports  端口列表

IP范围匹配

-m  iprange  --src-range   IP范围

MAC地址匹配

-m  mac  --mac-source  MAC地址

状态匹配

-m  state  --state 连接状态

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值