Netfilter概述
。在和心中过滤:没有进程
。在OSI参考模型中2,3和4层评估策略
。仅仅监控数据包头
。由内核中netfilter模块,和iptables用户使用软件组成
默认针对第2(mac,src,dst),3(ip),4(tcp,udp)层进行控制,还有协议,总共7种进行设置。
ratelimit网速;time时间设置
#/etc/init.d/iptables restart //刷新iptables规则
采用linux内核linux-2.6.30.5
#make menuconfig打开内核配置界面
匹配规则
。规则按次序列出
。包按照每个规则顺序测试
。当首先匹配,将评估目的地:通常退出检测链
。规则可以指定用啦匹配的多个文件
。在一条规则中每个条件都必须满足才认定为匹配(逻辑和关系)
。如果没有相匹配的将应用规则链的策略
Netfilter表和链
filtering point | Table | ||
filter | nat | mangle | |
INPUT | X | X | |
FORWARD | X | X | |
OUTPUT | X | X | X |
PREROUTING | X | X | |
POSTROUTING | X | X |
从一个网段发往另一个网段,一般走的是forward(抓发)并没有input和output
简单例子:
链基本操作
。列出链或表中的规则(-L或者-vL)(list)
。追加一条规则到链中(-A)(append)
。插入规则到链中(-I)(insert)
。-I CHAIN(作为第一条规则插入)
。-I CHAIN3(插入作为第三条规则)
。删除单独一条规则(-D)
。-D CHAIN3(删除链中第三条规则)
。-D CHAIN RULE(显式的删除规则)
#iptables -L -n //查看防火墙规则,L是列出 ,-n是以数字显示出端口,不然会以字母形式显示端口,加上n直接解析成数字,--line-number会显示规则编号,-F(flush)清空规则
#system-config-securitylevel //将红帽默认规则添加起来。
删除规则第三条规则:
常见匹配条件
。IP地址或网络
。-s 192.168.0.0/24 //s是源头发送
。-d 192.168.0.1 //目标地址
。网络接口
。-i lo //inbound
。-o eth1 //outbound
。条件可以使用“!”取反
。-i eth0 -s "!" 192.168.0.0/24
规则的目的地
。内置目的地:DROP,ACCEPT
。扩展的目的地:LOG,REJECT,自定义链
。REJECT 发送通告返回给发送者
。LOG 连接到系统日志Kernel设备
。 LOG匹配不会退出检测链
。目的地是可选的,但每条规则不能多于一个,如果缺少的话,采用此链的缺省策略
通用匹配条件 续
。传输协议和端口
。-p tcp --dport 80 //p代表协议类型,dport目的端口
。-p udp --sport 53 //sport源地址端口
。指定一段端口可以使用start:end //连续端口
。ICMP类型
。-p icmp --icmp-type host-unreachable
规则的永久生效
。iptables不是一个进程,仅用来转载 规则的
。规则在重启后不会生效
。service iptables save将保存规则到/etc/sysconfig/iptables中(确保这个文件有着正确的SELinux上下文属性!)
。可以使用SysV方式管理,它在配置网络之前运行
#iptables-restore /root/iptables.orginal //将规则写入文件,使用iptable-restore直接读取
# tcpdump表达式匹配,可以捕捉很多种类型
#tcpdump -i eth0 -n tcp port 80 //抓取tcp协议80端口信息
#tcpdump -i eth0 -n tcp port 80 -w test.dump //抓取tcp协议80端口信息保存到test.dump文件中
利用tcpdump抓包,画图,使用iptables写入规则,之后测试规则是否生效。
跟踪连接
。提供了监控包的“状态”
。可以测试包的特定上下文信息
。简化了规则
。不适用跟踪连接,规则通常成对定义(入方向&出方向)
。实现“状态”扩展匹配方式
。识别的状态:NEW,established,related,invalid
。需要更多的内存
#modprobe -l //打印所有内核信息
#modprobe -l | grep conntr
vsftpd被动模式防火墙设置前分析
跟踪连接 续
。跟踪连接模块
。ip_conntrack_ftp
。ip_conntrack_tftp
。ip_nat_ftp
。ip_nat_tftp(和其他)
。/etc/sysconfig/iptables-config