防火墙的种类:
1 包过滤技术
静态包过滤:预先设立规则进行过滤
动态包过滤 :跟踪报文,实时观察数据是否有危险,这种技术占用更多资源
2 应用代理技术
有些包过滤不能防止,代理机制,代理必须审核,审核通过才能连接,更加完善,工作效率比较低,消耗时间多。
3 状态检测技术
上述两个技术后发展起来的,保留对包分析后,对连接构建一个状态结构,对数据包内容进行监控,监控每个对话内容。
Linux内核中,有一个Netfilter 来处理各种数据包
真正提供包过滤的是Netfilter,iptables就像一个车的方向盘,控制了数据包的走向,和具体规则的过滤。
Netfilter存在三张表。
filter,net,mangle
net 做网络地址转换用的,可以改变数据包的源地址或目的地址
filter表结构
--------------------------->FORWARD------------------------------------------>
- -
- -
- -
- -
------->INPUT----->本地应用程序------>OUTPUT--->---
当有数据发往本地是,数据要经过INPUT 链,可以在这里加入一些规则,
OUTPUT是要过滤要经本地出去的数据包,
FORWARD是要过滤经过本地路由去其他地方的数据。
这三个链上可以指定不同的规则,规则都是由自己定义的。
(1)Iptables
语法结构:
iptables [-t 表名] -命令 -匹配 -j 动作/目标
例如:iptables -A INPUT -p icmp -j DROP
-A 表示添加
-D 表示删除
-p 表示协议
注意iptables 命令对大小写敏感
DROP 丢弃、ACCEPT 允许通过、
表名: filter nat mangle
[] 表示可以不加,没有指定表的话,默认 filter
注意:
iptables 命令执行完不需要重启
查看当前表中所指定的规则
iptables -L
修改表中链的默认规则
例子:iptables -P FORWARD DROP
清除链的规则
iptables -t filter -F INPUT
其中-t filter可以省略,如果不加INPUT,表示对所有的链进行清除
防止内部网络访问外部的网络
iptables -A FORWARD -d www.sex.org -j DROP
iptables -A FORWARD -d 202.103.1.6 -j DROP
防止外网访问内网
iptables -P FORWORD DROP
只能访问固定端口,安全。
网络地址转换等。