软件防火墙之iptables基础

本文介绍了Linux软件防火墙iptables的基础知识,包括netfilter的五个勾子函数和报文流向,iptables的五表五链及其优先级。详细阐述了iptables的规则管理,如查看、添加、删除和优化规则,并提供了多个实际操作示例。最后,讨论了iptables规则的持久保存方法。
摘要由CSDN通过智能技术生成

netfilter 中五个勾子函数和报文流向

Netfilter在内核中选取五个位置放了五个hook(勾子) function(INPUT、OUTPUT、FORWARD、
PREROUTING、POSTROUTING),而这五个hook function向用户开放,用户可以通过一个命令工具
(iptables)向其写入规则
由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放在链(chain)上

三种报文流向

1)流入本机:PREROUTING--> INPUT --> 用户空间进程
2)流出本机:用户空间进程--> OUTPUT --> POSTROUTING
3)转发:PREROUTING -->FORWARD -->POSTROUTING

iptables组成

五表五链以及一些规则组成

链chain:
1)内置链:每个内置链对应于一个钩子函数
2)自定义链:用于对内置链进行扩展或补充,可实现更灵活的规则组织管理机制;只有HOOK钩子调用自定义链时,才生效

五个内置链chain
INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING

五个表 table:filter,nat,mangle,raw,security
1)filter:过滤规则表,根据预定义的规则过滤符号条件的数据包,默认表
2)nat:network address translation地址转换规则表
3)mangle:修改数据标记位规则表
4)raw:关闭启用的连接跟踪机制,加快封包穿越防火墙速度
5)security:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELINUX)实现

它们的优先级由高到低的顺序为:

security---> raw---> mangle---> nat---> filter

内核中数据包的传输过程

1)当一个数据包进入网卡时,数据包首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去
2)如果数据包是进入本机的,数据包就会沿着图向下移动,到达INPUT链。数据包到达INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包经过OUTPUT链,然后到达POSTROUTING链输出
3)如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动,经过FORWARD链,然后到达POSTROUTING链输出

范例,查看默认的表

[root@localhost ~]# iptables -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
[root@localhost ~]# iptables -vnL -t filter
Chain INPUT (policy ACCEPT 24 packets, 1600 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 14 packets, 1784 bytes)
 pkts bytes target     prot opt in     out     source               destination

iptables规则添加时考量点

1)要实现哪种功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值