iptables--知识总结1
2017-06-27 15:41
120 查看
iptables:包过滤型防火墙
iptables/netfilter
framework: netfilter hooks function 网络过滤器的框架rule utils:iptables 规则管理工具
四表五链
四表
filter:过滤,防火墙nat:地址转换
mangle:拆解报文,作出修改,封装报文
raw:关闭nat表上启用的链接追踪标志
五链
PREROUTINGINPUT
FORWARD
OUTPUT
POSTROUTING
各功能的分别实现
filter:INPUT,FORWARD,OUTPUTnat: PREROUTING(DNAT),OUTPUT,POSTROUTING(SNAT)
mangle:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
raw:PREROUTING,OUTPUT
添加规则时的考量点:
(1) 要实现哪种功能:判断添加在哪张表上;(2) 报文流经的路径:判断添加在哪个链上;
链:链上规则的次序,即为检查的次序;因此隐含一定的法则
(1) 同类规则(访问同一应用),匹配范围小的放上面; (2) 不同类规则(访问不同应用),匹配到报文频率较大的放上面; (3) 将那些可由一条规则描述的多个规则合并为一个; (4) 设置默认策略; 功能的优先级次序:raw --> mangle --> nat --> filter
规则:
组成部分:报文的匹配条件,匹配到之后处理动作 匹配条件:根据协议报文特征指定 基本匹配条件 扩展匹配条件 处理动作: 内建处理机制 自定义处理机制 注意:报文不会经过自定义链,只能在内置链上通过规则进行引用后生效;
iptables命令:
iptables [-t table] {-A|-D} chain rule-specification iptables [-t table] -I chain [rulenum] rule-specification iptables [-t table] -R chain rulenum rule-specification iptables [-t table] -D chain rulenum iptables [-t table] -S [chain [rulenum]] iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...] iptables [-t table] -N chain iptables [-t table] -X [chain] iptables [-t table] -P chain target iptables [-t table] -E old-chain-name new-chain-name -t table: filter, nat, mangle, raw
链管理:
-F:flush,清空规则链;省略链,表示清空指定表上的所有的链; -N:new, 创建新的自定义规则链; -X:drop, 删除用户自定义的空的规则链; -Z:zero,清零,置零规则计数器; -P:Policy,为指定链设置默认策略;对filter表中的链而言,默认策略通常有ACCEPT, DROP, REJECT; -E: rEname,重命令自定义链;引用计数不为0的自定义链,无法改名,也无法删除;
规则管理:
-A:append,将新规则追加于指定链的尾部; -I:insert,将新规则插入至指定链的指定位置; -D:delete,删除指定链上的指定规则; 有两种指定方式: (1) 指定匹配条件; (2) 指定规则编号; -R:replace,替换指定链上的指定规则;
查看:
-L:list,列出指定链上的所有规则; -n: numberic,以数字格式显示地址和端口号; -v: verbose,显示详细信息; -vv, -vvv --line-numbers:显示规则编号; -x: exactly, 显示计数器计数结果的精确值;
匹配条件:
基本匹配:
[!] -s, --src, --source IP|Netaddr:检查报文中源IP地址是否符合此处指定的地址范围; [!] -d, --dst, --destination IP|Netaddr:检查报文中源IP地址是否符合此处指定的地址范围; -p, --protocol {tcp|udp|icmp}:检查报文中的协议,即ip首部中的protocols所标识的协议; -i, --in-interface IFACE:数据报文的流入接口;仅能用于PREROUTING, INPUT及FORWARD链上; -o, --out-interface IFACE:数据报文的流出接口;仅能用于FORWARD, OUTPUT及POSTROUTING链上;
扩展匹配:-m macth_name –spec_options
例如:-m tcp --dport 22 隐式扩展: 对-p protocol指明的协议进行的扩展,可省略-m选项; -p tcp --dport PORT[-PORT]:目标端口,可以是单个端口或连续多个端口; --sport PORT[-PORT] --tcp-flags LIST1 LIST2:检查LIST1所指明的所有标志位,且这其中,LIST2所表示出的所有标记位必须为1,而余下的必须为0;没有LIST1中指明的,不作检查; SYN, ACK, FIN, RST, PSH, URG --tcp-flags SYN,ACK,FIN,RST SYN --syn: -p udp --dport --sport -p icmp --icmp-type 可用数字表示其类型: 0:echo-reply 8: echo-request 例子iptables -t filter -A OUTPUT -s 172.16.100.21 -p tcp -j ACCEPT iptables -t filter -A INPUT -d 172.16.100.21 -o eth0 -j ACCEPT iptables -t filter -A OUTPUT -s 172.16.100.21 -o eth0 -j ACCEPT iptables-I INPUT -d 172.16.100.21 -p tcp --dport 22 -j ACCEPT iptables -I OUTPUT -s 172.16.100.9 -p tcp -sport 22 -j ACCEPT
显式扩展: 必须使用-m选项指定使用的扩展;
目标:
-j TARGET:jump至指定的TARGET ACCEPT: 接受 DROP: 丢弃 REJECT: 拒绝 RETURN: 返回调用链 REDIRECT:端口重定向 LOG: 记录日志 MARK:做防火墙标记 DNAT:目标地址转换 SNAT:源地址转换 MASQUERADE:地址伪装 ... 自定义链:由自定义链上的规则进行匹配检查
使用iptables的一些技巧
不加表的话默认为filter-A,-I,-D,-R后面是更改那条链的规则INPUT,FORWARD,OUTPUT
*
相关文章推荐
- iptables--知识总结2
- Linux运维学习笔记-iptables知识总结
- iptables知识总结
- iptables--知识总结3(NAT)
- Iptables防火墙知识总结
- [分享]总结:VC小知识! 选择自 SEUU 的 Blog
- XSLT知识总结
- VC实用小知识总结(转载)
- C语言基础知识总结(1)-基本数据类型
- DataGrid相关知识总结(收集自各位老大处)
- JAVA基础知识精华总结
- 最近对网络很感兴趣,也总结了一些网络上的知识
- 在MDI主框架窗口中添加位图(转载自CSDN VC编程知识总结)
- XSLT知识总结(转)
- DataGrid相关知识总结(转的)
- VC小知识总结
- DataGrid相关知识总结(收集自各位老大处)
- 总结:VC小知识
- VC小知识总结!(精品收集)
- 【总结】HTTP协议基础知识