Linux防火墙iptalbes

1 iptalbes

1.1 概念

防火墙(Firewall)是一种隔离技术,用于安全管理与筛选的软件和硬件设备,使计算机内网和外网分开,可以防止外部网络用户以非法手段通过外部网络进入内部网络,保护内网免受外部非法用户的侵入。

image-20240421221757080

1.2 SELinux

SELinux是Linux系统特有的安全机制。因为这种机制的限制太多,配置也特别烦琐,所以没有人真正应用它。安装完系统,我们一般都要把SELinux关闭,以免引起不必要的麻烦。

临时关闭:

# 临时关闭SELinux的方法为
setenforce 0

# 检查
getenforce   # Permissive

持久化关闭:更改配置文件/etc/selinux/config,需要把SELINUX= enforcing改成SELINUX=disabled

SELINUX=disabled
# 必须重启,才能生效

1.3 netfilter

linux2.4.x系列之后引入的安全子系统。使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪成为了可能,位于Linux内核中的包过滤功能体系,称为Linux防火墙的“内核态”。

1.4 iptables

安全框架:netfilter,因为netfilter处于Linux的内核中,要和它进行交互,需要一个工具,这个工具就是iptables。 所以iptables的作用:帮助用户建立一个免费的防火墙策略,位于/sbin/iptables,用来管理防火墙规则的工具,称为Linux防火墙的用户态。

image-20231018172444975

1.5 五元组

定义:五元组是通信术语,网路访问的五要素。通常是

  • 源IP地址
  • 源端口
  • 目的IP地址
  • 目的端口
  • 传输协议

包过滤原理:

image-20211223061305634

1.6 iptable安装

注意

  1. firewalld一定关闭(关闭服务,关闭开机自启)
  2. systemctl stop firewalld
  3. systemctl disable firewalld
  4. systemctl status firewalld

1)下载

yum search iptables

2)安装

yum install -y iptables-services #自动安装相关依赖
yum install -y  iptables  iptables-services  

3)启动iptables服务

systemctl start iptables   #启动iptables服务
systemctl status iptables  #查看iptables状态
systemctl enable iptables  #设置iptables开机启动

4)测试

# 查看默认filter表以列表和数字形式显示规则信息
iptables -nL

# 查看默认nat表
iptables  -t nat  -nL  

2 四表五链

表:table,表是防火墙中最基本的容器,用于存放链的
链:chain,链是存放规则的容器
规则:policy,规则是防火墙具体行为的实行(允许 拒绝 追踪…)

表 > 链 > 规则

image-20230803104324323

2.1 四表

正常来讲五表五链,通常说的是四表,因为有一张表基本不用。

  • filter:默认表,负责过滤数据包,使用频率最高
  • nat:进行网络地址转换、流量转发,使用频率较低
  • mangle:用于对数据包进行修改、打标识、流量整形
  • raw:很少用到,配置连接跟踪相关的内容
  • security:iptables最近新增的表,用于配置Linux的安全策略,使用频率很低

2.2 五链

定义:控制数据走向

  • INPUT:入站,流入本机的数据,存放入站规则
  • OUTPUT:出站,从本机流向其他设备的数据,存放出站规则
  • FORWARD:转发,数据流向本机,本机需要修改其出站方向,存放转发规则
  • PREROUTING:路由前操作,可以用于修改目的地地址,做DNAT
  • POSTROUTEING:路由后操作,可以用于做源地址转换,做SNAT

2.3 数据流转图

数据流转:

image-20211223062127947

报文:

image-20240314155403326

1)四表访问的顺序

raw–>mangle–>nat–>filter

  • raw:状态跟踪
  • mangle:标记数据包
  • nat:转发
  • filter:过滤

2)入站

prerouting --> input

  1. 出站

output --> postrouting

4)转发执行顺序

  • 外网内网发送:外网 --> 防火墙 --> 内网 下图1-2-3

  • 内网向外网发送: 内网 --> 防火墙 --> 外网 下图4-5-6

  • 外网向外网发送:外网 --> 外网

image-20231102112521307

2.4 匹配方式

  • 链的顺序从上到下执行规则
  • 如果匹配到规则,则按照规则执行,则停止匹配
  • 如果所有的规则都没有匹配上则按照默认规则进行匹配

image-20240510121216466

2.5 策略类型

  • ACCEPT : 接收数据包 放行 同意
  • REJECT : 拒绝数据包 有响应 滚 无法访问
  • DROP : 丢弃数据包 无响应 请求超时
  • REDIRECT : 重定向/映射/透明代理
  • SNAT : 源地址转换 --to-source
  • DNAT : 目标地址转换 --to-destination
  • MASQUERADE : IP地址伪装(NAT) 用于ADSL, MAS QUE RADE
  • SEMARK : 添加SEMARK标记以供內域强制访问控制(MAC) 四阶段会讲
  • LOG : 日志记录,日志记录一般存放在 /var/log/message文件中,流量会继续向下流转

3 使用

3.1 语法

语法:

iptables [-t 表名] <-选项操作 大写> [链名] [条件参数] [-j 策略类型]

# [ ] 表示可选
# <> 表示必选 
# {a | b | c} 从中选一个

参数列表:

image-20230803114258934

选项:

类别 选项 用途 示例
添加新的规则 -A 在链的末尾追加一条规则 iptables -t filter -A INPUT -p tcp -j ACCEPT
添加新的规则 -I 在链的开头(或指定序号)插入一条规则 iptables -I INPUT -p udp -j ACCEPT
查看规则列表 -L 列出所有的规则条目 iptables [-t filter] -L
删除规则 -D 删除链内指定序号(或内容)的一条规则 iptables -D INPUT 2
清空规则 -F 清空所有的规则 iptables [-t filter] -F OUTPUT
设置默认策略 -P 为指定的链设置默认规则 iptables -P OUTPUT DROP
修改默认策略 -R 可以修改目标规则链 iptables -t fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值