包过滤机制:netfilter
管理工具:iptables
:查看内核版本
uname -r
用户启动的进程的状态变成内核态:
1.系统调用
2.中断(运行时被打断)
硬件出现问题
IO的时候
top:
us是用户进程消耗的cpu,sy是系统进程消耗的cpu
5中规则链:
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING:进行路由选择后处理数据包
PREROUTING:进行路由选择前处理数据包
规则表(不同的规则链会被归置到相应的表中):
以下为优先级
raw表:确定是否对该数据包进行状态跟踪
mangle表:为数据包设置标记
nat表:修改数据包中的源、目的ip地址或端口
filter表:确定是否放行该数据包
如果两个规则是同一个协议的,那么只执行前面的规则
–line显示行号
–dport:目的端口(单个端口(-m multiport)可以用‘,’隔开,多个连续端口使用’:'.)
-t:表名
-v:查看截获了多少数据(数据包个数)
-i:接口名
-o:网络接口名
-n:以数字形式显示端口、ip地址等
-s:源地址
–sport:源端口
-d:目的地址
–dport:目的端口
–icmp-type:icmp类型
–src-range:源地址范围
–dst-range:目的地址范围
-m:1.mac(搭配–mac-source使用)
2.multiport(搭配–sport或–dport)
3.iprange(搭配–src-range和–dst-range)
iptables -A FORWARD -m mac --mac-source 00:0C:29:27:55:3F -j DROP
iptables -I INPUT -p tcp -m multiport --dport 4586,5865,4466 -j ACCEPT
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP
1)echo-request
2)echo-reply
iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type Echo-Request -j DROP
REJECT:拒绝但会给回复
数据包过滤匹配流程
新建规则链:-N
删除自定义规则链:-X
删除指定规则:
iptables -D INPUT 1
新链怎样被使用:
1.创建新链
iptables -t filter -N sanchuang
2.其他链调用该链
iptables -t filter -I INPUT -p icmp -j sanchuang
删除链必须把调用的规则和自己的规则先删掉
iptables -X sanchuang
打开路由器功能: /proc/sys/net/ipv4/ip_forward
打开路由功能后forward链才会起作用
开机自动运行
/etc/rc.local脚本
1.添加命令到文件末尾
2.chmod +x /etc/rc.d/rc.local
如何知道ip地址是否有冲突
在另外一台机器上执行arping
arping 192.168.0.204
如果一个ip地址有2个或者多个不同的mac地址,就说明ip地址出现冲突。