一、概述
防火墙,主要作用是对数据包的过滤,由内核态与用户态组成。
内核态:属于内核的一部分,由数据包过滤表组成,是控制防火墙的内核程序
用户态:用户能操作的程序,通过编写四表五链的规则传递给内核态,依次实现自定义过滤功能
二、iptables(Centos5/6防火墙)
2.1 内核态
2.1.1 规则匹配顺序
- 主机型防火墙
- 入站数据:PREROUTING --> INGPUT --> 应用程序
- 出站数据:应用程序 --> OUTPUT --> POSTROUTING
- 网络型防火墙
- 转发数据:PREROUTING --> FORWARD --> POSTROUTING
- 示意图(待更新)
2.2 用户态
2.2.1 五链
| 链名 | 作用范围 |
| INPUT | 入站数据包 |
| OUTPUT | 出站数据包 |
| FORWARD | 转发数据包 |
| PREROUTING | 路由前目的IP地址转换 |
| POSTROUTING | 路由后源IP地址转换 |
2.2.2 四表
| 表名 | 作用 | 包含链 |
| raw | 对数据状态进行跟踪 | OUTPUT ; PREROUTING |
| mangle | 修改数据包内容 | INPUT ; OUTPUT ; FORWARD ; PREROUTING ; POSTROUTING |
| nat | 对IP地址进行转换 | OUTPUT ; PREROUTING ; POSTROUTING |
| filter | 对数据内容进行过滤 | INPUT ; OUTPUT ; FORWARD |
三、命令
3.1 修改链规则(语法)
- iptables -t 表名 选项 链名 匹配 [-j 控制类型]
3.1.1 选项
| 选项 | 含义 |
| -A | 指定连的下方追加规则 |
| -I | 指定链的上方插入规则 |
| -R | 修改、替换指定链中的某一条规则 |
| -P | 设置指定链的默认规则 |
| -D | 删除指定连,可指定规则号或者具体内容 |
| -F | 清空指定链中的所有规则 |
| -L | 列出指定链中的所有规则,一般与-n搭配 |
| -n | 使用数字形式显示结果,例如IP地址 |
| -v | 显示链的详细信息 |
| –line-numbers | 查看规则时显示序号 |
3.1.2 匹配
- 条件匹配
| 条件匹配 | 作用 |
| -p | 指定协议 |
| -s | 指定源IP地址 |
| -d | 指定目标IP地址 |
| -i | 指定入站网卡 |
| -o | 指定出站网卡 |
| ! 条件 | 条件取反 |
| –sport | 指定源端口 |
| –dport | 指定目的端口 |
- 类型匹配
| 协议类型 | 可限制类型 |
| –icmp-type | 8(请求) | 0(回显) | 3(不可达) |
| –tcp-flags | SYN | FIN | RST | PSH | URG |
- 状态匹配:-m --state --状态
| 状态 | 含义 |
| NEW | 第一个建立链接的包 |
| ESTABLISHED | 已连接状态的包 |
| RELATED | 已建立链接的状态下发起新的链接 |
| INVALID | 无效封包 |
3.1.3 控制类型
| 类型 | 作用 |
| ACCEPT | 允许数据通过 |
| DRPO | 直接丢弃数据包,不予回应 |
| REJECT | 拒绝数据包通过,给予回应 |
| SANT | 修改源IP地址 |
| DNAT | 修改目的IP地址 |
| MASQUERADE | 伪装公网IP地址 |
| LOG | 记录日志信息 |
3.2 修改链规则(示例)(待更新)
四、端口
4.1 端口范围
| 范围 | 含义 |
| 1000 | 匹配端口为1000的数据包 |
| 1000:3000 | 匹配端口在1000-3000区间的数据包 |
| 1000: | 匹配端口在1000及以上的数据包 |
| :3000 | 匹配端口在3000及以下的数据包 |
4.2 常用端口
4.2.1 硬件端口
- 路由器端口
- 交换机端口
4.2.2 协议端口
| 端口号 | 端口协议 | 作用 |
| 21 | FTP | 上传下载文件 |
| 22 | SSH | 远程连接 |
| 23 | Telent | 远程登录 |
| 25 | SMTP | 发送邮件 |
| 80 | HTTP | 网页浏览 |
| 443 | HTTPS | 加密的网页浏览 |
| 1024 | Reserved | 动态端口的开始,为程序分配闲置端口 |
| 1080 | SOCKS | 允许内部数据通过防火墙访问外部 |
| 2049 | NFS | NFS服务 |
| 4000 | QQ客户端 | 腾讯QQ端口 |
| 8080 | 代理端口 | WWW代理开放端口 |
五、思维导图
