iptable防火墙
防火墙概述
什么是防火墙?
一道保护性的安全屏障
-保护、隔离
Linux包过滤防火墙
RHEL7默认使用firewall作为防火墙
但firewalld底层还是调用包过滤防火墙iptables
iptables的表、链结构
iptables的组成 (4张表 5条链)
表: 是iptables服务的功能分类
iptables默认有4个表,nat表(地址转换表)
filter表(数据过滤表)
raw表(状态跟踪表)
mangle表(包标记表)。
链: 匹配ip数据库包的传输方向
INPUT链(入站规则)
OUTPUT链(出站规则)
FORWARD链(转发规则)
PREROUTING链(路由前规则)
POSTROUTING链(路由后规则)
包过滤匹配流程
规则链内的匹配顺序
-顺序比对,匹配即停止(LOG除外)
-若无任何匹配,则按该链的默认策略处理
iptables用法解析
iptables基本用法
管理程序位置
-/sbin/iptables
指令组成
-iptables [-t 表名] 选项 [链名] [条件] [-j 目标操作]
注意事项、整体规律
-可以不指定表,默认为filter表
-可以不指定链、默认为对应表的所有链
-如果没有匹配规则,则使用防火墙默认规则
-选项、链名、目标操作用大写字母,其余用小写
基本的目标操作
ACCEPT:允许通过、放行
DROP:直接丢弃,不给出任何回应
REJECT:拒绝通过,必要时会给出提示
LOG:记录日志,然后传给下一条规则(匹配即停止,规则中唯一的例外)
常用的管理选项
规则管理示例
添加新的规则
-A追加、-I插入
查看规则列表
-L查看
删除、清空规则
-D删除、-F清空
设置默认规则
所有链的初始默认规则均为ACCEPT
通过-P选项可重置默认规则
-ACCEPT或者DROP
案例
filter表控制
防护类型及条件
主机、网络型防护
根据保护对象(本机、其他主机)区分
开启内核的IP转发
作为网关、路由的必要条件
基本的匹配条件
通用匹配
-可直接使用,不依赖于其他条件或扩展
-包括网络协议、IP地址、网络接口等条件
隐含匹配
-要求以特定的协议匹配作为前提
-包括端口、TCP标记、ICMP类型等条件
过滤规则示例
封禁IP地址、网段
主机防护,针对入站访问的原地址
网络防护,针对转发访问的原地址
保护特定网络服务
限制对指定服务端口的访问
禁ping相关策略处理
允许本机ping其他主机
但是,禁止其他主机ping本机
案例
扩展匹配
扩展条件的方法
前提条件
-有对应的防火墙模块支持
基本用法
-m 扩展模块 --扩展条件 条件值
常见的扩展条件类型
扩展案例
根据MAC地质封锁主机
适用于交换网络,针对源MAC地址
-不管其IP地址变成多少
多端口案例
一条规则开放多个端口
比如Web、FTP、Mail、SSH等等
根据IP范围封锁主机
SSH登录的IP范围控制
-允许从192.168.4.10-192.168.4.20登录
-禁止从192.168.4.0/24 网段其他的主机登录
案例
nat表经典应用
NAT转换原理
私有地址的局限性
从局域网访问互联网的时候
-比如看网页、收邮件
-源地址为私有地址,服务器如何正确给出回应?
SNAT源地址转换
Source Network Address Translation
-修改数据包的源地址
-仅用于nat表的POSTROUTING链
不修改源地址的情况
修改源地址的情况
SNAT策略应用
案例环境
局域网共享公网IP上网
前期准备
-局域网PC机正确设置IP地址/子网掩码
-局域网PC机正确设置默认网关
-Linux网关服务器开启IP路由转发
-本实验中,不要为WEB服务器设置默认网关
配置SNAT共享上网
配置的关键策略
-选择路由之后,针对来自局域网,即将从外网接口发出去的包,将源IP地址修改为网关的公网IP地址
验证SNAT访问结果
地址伪装策略