1.防火墙分类:
从逻辑上分类:
主机防火墙: | 针对单个主机进行防护 |
---|---|
网络防火墙: | 处于网络入口或边缘,针对网络入口进行防护,服务于防火墙背后的本地局域网 |
从物理上分类:
硬件防火墙: | 在硬件部分实现,另一部分功能是基于软件实现;性能高,成本高 |
---|---|
软件防火墙: | 应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低 |
2.iptables介绍
iptables:iptables并不是真正意义的防火墙,可以理解为一个客户端工具,用户通过iptables这个客户端,将用户的安全设定执行到对应的“安全框架”中,这个“安全框架”才是真正的防火墙,这个框架的名字叫netfilter,它位于内核中。netfilter/iptables组成Linux平台下的包过滤防火墙
3.iptables四表五链
链和表的关系:
表和链的关系(常用):
iptables处于同一链时:
执行的优先级(由高到低):raw→mangle→nat→filter
4.iptables用法:
**规则:**根据指定的匹配条件来尝试匹配每个流经此处的报文,一旦匹配成功,则由规则后面指定的处理动作进行处理。
基本匹配条件 | 扩展匹配条件 |
---|---|
源地址 Source IP | 源端口 Source Port |
目标地址Destintion IP | 目标端口Destinqtion Port |
处理动作
常用操作命令 | 说明 |
---|---|
-A | 在指定链尾部添加规则 |
-D | 删除匹配的规则 |
-R | 替换匹配的规则 |
-I | 在指定位置插入规则(例:iptables -I INPUT 1 -p tcp --drop 80-j ACCEPT(将规则插入到filter表INPUT链中的第一位)) |
-L/S | 列出指定链或所有链的规则 |
-F | 删除指定链或所有链的规则 |
-N | 创建用户自定义链(例:iptables -N allowed ) |
-X | 删除指定的用户自定义链 |
-P | 为指定链设置默认规则策略,对自定义链不起作用。 |
-Z | 将指定链或所有链的计数器清零 |
-E | 更改自定义链的名称(例:iptables -E allowed disallowed) |
-n | ip地址和端口号以数字方式显示(例:iptables -nL) |
-t | 后跟表名;iptables -t nat -L列出所有nat表中规则 |
-v | 列出详细信息 |
–line-numbers | 显示规则序号 |
常用规则匹配器 | 说明 |
---|---|
-p tcp/udp/icmp/all | 匹配协议,all会匹配所有协议 |
-s addr[/mask] | 匹配源地址 |
-d addr[/mask] | 匹配目标地址 |
-sport port1[:port2] | 匹配源端口(可指定连续的端口 例-sport 80) |
-dport port1[:port2] | 匹配目的端口(可指定连续的端口 例-dport 80) |
-o interface | 匹配出口网卡,只适用于FORWARD,POSTROUTING,OUTPUT(例:iptables -A FORWARD -o eth0) |
-i interface | 匹配出口网卡,只使用PREROUTING,INPUT,FORWARD. |
–icmp-type | 匹配icmp类型(使用iptables -p icmp -h可查看可用的ICMP类型) |
–tcp-flags mask comp | 匹配TCP标记,mask表示检查范围,comp表示匹配mask中的哪些标识(例:iptables -A FORWARD -p tcp --tcp-flags ALL SYN,ACK -j ACCEPT表示匹配SYN和ACK标记的数据包 ) |
操作实例:
(1)iptables -t filter -nL 以IP地址和端口号形式查看filter表所有规则(-t选项指定操作的表,默认不指定-t选项时默认就是filter表;此处可以看到有三条链:INPUT,OUTPUT,FORWARD每条链都有自己规则)
target:表示规则对应的“动作”,规则匹配成功后需要采取的措施。
prot:表示规则对应的协议,是否只针对某些协议应用此规则。
opt:表示规则对应的选项。
source:表示规则对应的源头地址,可以是IP或网段。
destination:表示规则对应的目标地址,可以是IP或网段。
(2)清理规则:
**iptables -F:**当清理之后,可以看到INPUT,FORWARD,OUTPUT默认策略都是ACCEPT,也就是默认当前所有发往本机策略都放行。
(3.增加规则)
拒绝来自192.168.19.152的所有报文:iptables -I INPUT -s 192.168.19.152 -j DROP
(4.删除规则)
iptables -t filter -D INPUT 1删除INPUT链中第一条规则
(5.修改规则)
iptables -I INPUT 1 -s 192.168.19.150 -j ACCEPT
iptables -R INPUT 1 -s 192.168.1.150 -j DROP
保存规则:service iptables save