防火墙:
载体区分:
- 硬件防火墙
- 软件防火墙:应用层防火墙、网络层防火墙(Linux包过滤防火墙)
保护对象区分:
- 主机防火墙
- 网络防火墙
Linux包过滤防火墙:
Netfilter:位于linux内核的包过滤功能体系(内核态)
Iptables:位于/sbin/iptables,管理规则的工具(用户态)
Iptables管理结构:
Iptables的表、链结构:
1. raw表:确定是否对数据包进行状态跟踪
2. mangle表:为数据包设置标记
3. nat表:修改数据包的源/目标地址或端口
4. filter表:确定是否放行该数据包(过滤表)
规则链解析:
-INPUT:处理入站数据包
-OUTPUT:处理出站数据包
-FORWARD:处理转发数据包
-PREROUTING:路由选择之前处理
-POSTROUTING:路由选择之后处理
顺序比对,匹配即停止(LOG除外),若无任何匹配,则按默认策略处理。
Iptables基本应用:
管理程序位置:/sbin/iptables
指令组成:iptables [-t 表名] 选项 [链名] [-j 目标操作]
例如:iptables –t filter –I INPUT –p icmp –j REJECT
注意事项/整体规律:
-可以不指定表,默认为filter
-可以不指定链,默认为对应表的所有链
-除非设置默认策略,否则必须指定匹配条件
-选项/链名/目标操作,用大写字母,其余都小写
基本的目标操作:
ACCEPT:允许通行/放行
REJECT:拒绝访问,必要时会给出提示
DROP:直接丢弃,不给任何回应
LOG:记录日志,然后传给下一条规则
Iptables的管理选项:
-I:添加策略(开头或指定位置)
-A: 添加策略(末尾)
-L:查询策略(列出所有)
-n:列出地址和端口等信息
-D:删除链内指定的一条规则
-F:清空所有规则
-P:为指定的链设置默认规则
基本的匹配条件(取反用!)
通用匹配:
-可直接使用,不依赖于其他条件或扩展
-包括网络协议(-p)、IP地址(源-s、目标-d)、网络接口(网卡收-i、网卡发-o)等条件
隐含匹配:
-要求以特定的协议匹配作为前提
-包括端口(源–sport、目标–dport)、TCP标记(–tcp-flags)、ICMP(–icmp-type)类型等条件
扩展匹配:
Iptables … … -m 模块名
状态匹配:-m start –
状态跟踪机制:
-NEW:请求建立连接的包、完全陌生的包
-ESTABLISHED:将要或已经建立的连接的包
-RELATED:与已知某个连接相关联的包
-INVALID:无对应连接,以及连接无效的包
-UNTRACKED:未跟踪状态的包