iptable防火墙

防火墙概述

什么是防火墙?

一道保护性的安全屏障

-保护、隔离

Linux包过滤防火墙

RHEL7默认使用firewall作为防火墙

但firewalld底层还是调用包过滤防火墙iptables

Linux iptables 删除MASQUERADE_源地址

 

iptables的表、链结构

Linux iptables 删除MASQUERADE_IP_02

 

iptables的组成 (4张表  5条链)
表: 是iptables服务的功能分类
iptables默认有4个表,nat表(地址转换表)

filter表(数据过滤表)

raw表(状态跟踪表)

mangle表(包标记表)。

链: 匹配ip数据库包的传输方向

INPUT链(入站规则)

OUTPUT链(出站规则)

FORWARD链(转发规则)

PREROUTING链(路由前规则)

POSTROUTING链(路由后规则)

 

包过滤匹配流程

规则链内的匹配顺序

-顺序比对,匹配即停止(LOG除外)

-若无任何匹配,则按该链的默认策略处理

 

iptables用法解析

iptables基本用法

管理程序位置

-/sbin/iptables

指令组成

-iptables [-t 表名] 选项 [链名] [条件] [-j 目标操作]

Linux iptables 删除MASQUERADE_源地址_03

 

注意事项、整体规律

-可以不指定表,默认为filter表

-可以不指定链、默认为对应表的所有链

-如果没有匹配规则,则使用防火墙默认规则

-选项、链名、目标操作用大写字母,其余用小写

 

 

 

基本的目标操作

ACCEPT:允许通过、放行

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

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

LOG:记录日志,然后传给下一条规则(匹配即停止,规则中唯一的例外)

 

常用的管理选项

Linux iptables 删除MASQUERADE_上传_04

 

规则管理示例

添加新的规则

-A追加、-I插入

Linux iptables 删除MASQUERADE_IP_05

 

查看规则列表

-L查看

Linux iptables 删除MASQUERADE_上传_06

 

删除、清空规则

-D删除、-F清空

Linux iptables 删除MASQUERADE_源地址_07

 

 

设置默认规则

所有链的初始默认规则均为ACCEPT

通过-P选项可重置默认规则

-ACCEPT或者DROP

Linux iptables 删除MASQUERADE_上传_08

 

案例

Linux iptables 删除MASQUERADE_上传_09

 

filter表控制

防护类型及条件

主机、网络型防护

根据保护对象(本机、其他主机)区分

Linux iptables 删除MASQUERADE_源地址_10

 

开启内核的IP转发

作为网关、路由的必要条件

Linux iptables 删除MASQUERADE_IP_11

 

基本的匹配条件

通用匹配

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

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

隐含匹配

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

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

 

Linux iptables 删除MASQUERADE_IP_12

 

过滤规则示例

封禁IP地址、网段

主机防护,针对入站访问的原地址

网络防护,针对转发访问的原地址

Linux iptables 删除MASQUERADE_源地址_13

 

保护特定网络服务

限制对指定服务端口的访问

Linux iptables 删除MASQUERADE_源地址_14

 

禁ping相关策略处理

允许本机ping其他主机

但是,禁止其他主机ping本机

Linux iptables 删除MASQUERADE_IP_15

 

案例

Linux iptables 删除MASQUERADE_源地址_16

 

扩展匹配

扩展条件的方法

前提条件

-有对应的防火墙模块支持

基本用法

-m 扩展模块 --扩展条件 条件值

Linux iptables 删除MASQUERADE_上传_17

 

常见的扩展条件类型

Linux iptables 删除MASQUERADE_IP_18

 

扩展案例

根据MAC地质封锁主机

适用于交换网络,针对源MAC地址

-不管其IP地址变成多少

Linux iptables 删除MASQUERADE_IP_19

 

多端口案例

一条规则开放多个端口

比如Web、FTP、Mail、SSH等等

Linux iptables 删除MASQUERADE_源地址_20

 

根据IP范围封锁主机

SSH登录的IP范围控制

-允许从192.168.4.10-192.168.4.20登录

-禁止从192.168.4.0/24 网段其他的主机登录

Linux iptables 删除MASQUERADE_IP_21

 

案例

Linux iptables 删除MASQUERADE_IP_22

 

nat表经典应用

NAT转换原理

私有地址的局限性

从局域网访问互联网的时候

-比如看网页、收邮件

-源地址为私有地址,服务器如何正确给出回应?

Linux iptables 删除MASQUERADE_IP_23

 

SNAT源地址转换

Source Network Address Translation

-修改数据包的源地址

-仅用于nat表的POSTROUTING链

 

不修改源地址的情况

Linux iptables 删除MASQUERADE_IP_24

 

修改源地址的情况

Linux iptables 删除MASQUERADE_IP_25

 

SNAT策略应用

案例环境

局域网共享公网IP上网

Linux iptables 删除MASQUERADE_上传_26

 

前期准备

-局域网PC机正确设置IP地址/子网掩码

-局域网PC机正确设置默认网关

-Linux网关服务器开启IP路由转发

-本实验中,不要为WEB服务器设置默认网关

 

配置SNAT共享上网

配置的关键策略

-选择路由之后,针对来自局域网,即将从外网接口发出去的包,将源IP地址修改为网关的公网IP地址

Linux iptables 删除MASQUERADE_上传_27

 

验证SNAT访问结果

Linux iptables 删除MASQUERADE_源地址_28

 

地址伪装策略 

Linux iptables 删除MASQUERADE_IP_29

 

Linux iptables 删除MASQUERADE_IP_30

Linux iptables 删除MASQUERADE_源地址_31

Linux iptables 删除MASQUERADE_上传_32

正在上传…重新上传取消

Linux iptables 删除MASQUERADE_源地址_33

Linux iptables 删除MASQUERADE_源地址_34

Linux iptables 删除MASQUERADE_上传_32

正在上传…重新上传取消

Linux iptables 删除MASQUERADE_源地址_36

Linux iptables 删除MASQUERADE_上传_37

Linux iptables 删除MASQUERADE_上传_32

正在上传…重新上传取消

Linux iptables 删除MASQUERADE_源地址_39

Linux iptables 删除MASQUERADE_IP_40

Linux iptables 删除MASQUERADE_上传_32

正在上传…重新上传取消

Linux iptables 删除MASQUERADE_上传_42

Linux iptables 删除MASQUERADE_源地址_43

Linux iptables 删除MASQUERADE_上传_32

正在上传…重新上传取消

Linux iptables 删除MASQUERADE_源地址_45

Linux iptables 删除MASQUERADE_源地址_46

Linux iptables 删除MASQUERADE_上传_32

正在上传…重新上传取消

Linux iptables 删除MASQUERADE_源地址_48