防火墙 :
linux 内核自带 iptables
iptables/netfilter
netfilter 是防火墙 工作在内核空间 让规则生效
iptables 写规则工具 工作在用户 写完规则送到netfilter生效
网络层防火墙 3层
还有7层的防火墙 安全点 效率低
常用的 两者合用
它本身并不是防火墙
需要管理员写规则
本身并不工作
防火墙要想生效需放在内核中.
数据包要想出去或进来要经过这5个链
5个 内置的规则链
1. PREROUTING 路由前
2. INPUT 数据包 流入接口
3.FORWARD 转发关卡
4.OUTPUT 从本机出来的管卡
5.POSTROUTING 离开本机 路由后
"通" 默认门是关着的 , 全通
"堵" 门是开着的 但需要证
堵是 单堵
3个表:
1,过滤 filter
2,地址转换 nat
3,mangle 修改报文原数据
3表5链的关系
1,filter
INPUT,FORWARD,OUTPUT
2,nat
PREROUTING,OUTPUT,POSTROUTING
3,mangle
PREROUTING, INPUT,FORWARD,OUTPUT
POSTROUTING
iptables 写规则 放在netfilter 立即生效的
一旦匹配到第二条报文,就不在往下匹配
写规则很重要顺序 ,匹配范围越小就放在上面
删除链 只能删除自己定义的链,内置删不掉的
指定表 链 匹配标准 处理规则
iptables [-t filter] COMMAND chain CRETIRIA -j ACTION
对这条命令剖析:
command:
1, 链管理命令
-P 设定门是开着还是关着 默认策略
格式 # iptables -P INPUT {DROP|ACCEPT} 立即生效的
设定默认 要注意 ,一旦执行 远程就无法连接了
-F 清空表
格式 # iptable -t nat -F PREROUTING
如果不加上 单词 就是清空所有表的链
-N 新建用户自定义链
# iptables -N inbound_tcp_web 检查tcp 的web链
-X 删除用户自定义空链 删除之前把里边规则清空
-E 用重命名 用户自定义链
-Z 清空链 链规则计数器
2 , 规则管理命令
-A 追加 到
-I 3 插入到第3条
-R num 替换规则
-D num 删除第几条
3, 查看命令
-L -n 加n解析非常快
-v 显示详细信息
-vv
-x 精确值 不做单位换算
--line-numbers 显示行号
匹配标准:
1,通用匹配
-s 指定做原地址匹配
IP,NETWORK/NETMASK,0.0.0.0/0.0.0.0
-d 匹配目标主机地址
-p 匹配协议的
)tcp|udp|icmp
-i eth0 数据流入接口
-o 流出接口
2,扩展匹配
)隐含扩展 对协议扩展
-p tcp
--dport 目标端口
--sport 源端口
--tcp-flags 检查的标志位,为1标志位 tcp表示位
tcp 6个表标志位 SYN,ACK,FIN,PSH,PST,URG
--tcp-fiags sys,ack,fin,rst,syn syn为1 其余都为0
-p udp
--dport
--sport
-p icmp
--icmp-type 类型
ech0-request 8
ech0-reply 0
)显"式"扩展
各扩展模块
-p tcp -m multiport --dports 21,23,80
-j ACTION
DROP 悄悄丢弃
REJECT 明确拒绝
ACCEPT 接受
custom_chain 转向一个自定义的链
DNAT 目标地址转换
SNAT 源地址转换
MASQUEPADE 源地址伪装
REDI |