Linux 安全 01—iptables 防火墙(一)

一、防火墙概述

1.概念与作用

网络中的防火墙,是一种将内部网络与外部网络分开的方法,是一种隔离技术。防火墙在内网与外网通信时进行访问控制,依据所设置的规则对数据包做出判断,最大限度地组织网络中的黑客破坏企业网络,从而加强企业网络安全。

2.防火墙分类

(1)硬件防火墙:如思科的 ASA 防火墙,H3C 的 Sepath 防火墙等。

(2)软件防火墙:如 iptables 等

按架设的位置,可以分为主机防火墙、网关防火墙

3.iptables 防火墙

Linux 操作系统中默认内置一个软件防火墙,即 iptables 防火墙

(1)netfilter

位于 Linux 内核中的包过滤功能体系,称为 Linux 防火墙的 “内核态”

(2)iptables

位于 /sbin/iptables,用来管理防火墙规则的工具,称为 Linux 防火墙的 “用户态”

4.包过滤的工作层次

主要是网络层,针对 IP 数据包,体现在对包内的 IP 地址、端口等信息的处理上。

二、iptables 规则链

1.规则链

规则的作用: 对数据包进行过滤或处理

链的作用: 容纳各种防火墙规则 链的分类依据:处理数据包的不同时机

2.默认包括 5 种规则链

INPUT:处理入站数据包

OUTPUT:处理出站数据包

FORWARD:处理转发数据包

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

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

三、iptables 规则表

1.规则表

表的作用: 容纳各种规则链

表的划分依据: 防火墙规则的动作相似

2.默认包括 4 各规则表

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

mangle 表:为数据包设置标记

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

filter 表:确定是否被放行该数据包(过滤)

3.链表结构关系图

四、iptables 匹配流程

1.规则表之间的顺序:

raw->mangle->nat->filter

2.规则链之间的顺序

入站:PREROUTING -> INPUT

出站:OUTPUT -> POSTROUTING

转发:PREROUTING -> FORWARD -> POSTROUTING

3.规则链内的匹配顺序

  • 按顺序依次检查,匹配即停止(LOG 策略例外)
  • 若找不到匹配规则,按该链的默认策略处理

五、iptables 命令

1.语法构成

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

注意事项:

不指定表名时,默认指 filter 表

不指定链名时,默认指表内所有链

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

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

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

ACCEPT:允许通过

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

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

LOG:记录日志信息,然后传给下一条规则继续匹配

由此可看出 DROP 与 REJECT 的区别,DROP 无回复,REJECT 拒绝,但有回复

由此可见,LOG 会在/var/log/messages 内记录信息,然后交给下一条规则

3.常用选项

(1)增加新的规则

-A:在链的末尾追加一条规则

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

(2)查看规则列表

-L:列出所有的规则条目

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

-v:以更详细的方式显示出规则信息

–line-numbers:查看规则时,显示规则的序号。与–line 与之同效

(3)删除、清空规则

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

-F:清空所有的规则

(4)修改、替换规则

-R:修改替换规则

(5)设置默认规则

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

需要注意的是,若要设置 filter 表中 INPUT 链或者 OUTPUT 链的默认规则为 DROP 时,要先设置 tcp 协议 22 端口(ssh 远程连接)为 ACCEPT,否则通过远程操控的主机将断开连接,若在真实环境中,需要到服务器所在机房重新设置才可以,造成不必要的麻烦。

六、规则的匹配类型

1.通用匹配

可直接使用,不依赖于其他条件或扩展,包括网络协议、IP 地址、网络接口等条件。

2.隐含匹配

要求以特定的协议匹配作为前提,包含端口、TCP 标记、ICMP 类型等条件。

3.显示匹配

要求以 “-m 扩展模块” 的形式明确指出类型 包括多端口、MAC 地址、IP 范围、数据包状态等条件

常用管理选项汇总表:

七、通用匹配

常见的通用匹配条件:

1.协议匹配:-p 协议名

上图为,除了 icmp 协议,其他都丢弃。

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

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

丢弃从 eth0 入站的三个知名私有网段的包,但要保证可以通过 ssh 远程连接

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦