Linux网络防火墙
netfilter :frame 过滤,内核中的过滤框架,规则生效的位置框架
iptables:附加在netfilter上,生成防火墙规则,真正实现数据报文过滤,NAT,mangle等规则生成的工具
防火墙:工作在主机或者网络的边缘,对于进出的报文进行检查监控,并根据事先定义好的规则(其中有匹配标准和处理办法),一旦符合标准,对这个报文进行相应的处理规则的组件称为防火墙
iptables的实现实际上是基于报文的过滤,实例如下:
1.IP:源地址,目标地址
TCP:源端口,目标端口
UDP:源端口,目标端口
ICMP:icmp报文类型
发展历程:
linux2.0
ipfw/firewall
linux2.2
ipchain/firewall
linux2.4
iptables/netfilter
netfilter的过滤有下面五个规则链
PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING
四种表
filter,过滤表
INPUT,OUTPUT,FORWARD
nat,地址转换表
prerouting,output,postrouting
mangle(拆分,修改,封装) 表
prerouting,forwarding,output,postrouting
raw表
prerouting,output
iptables:
500条规则
能否使用自定义链?
可以使用自定义链,但是只在被调用的时候才能发挥作用,而且如果没有自定义链中的任何规则匹配,还应该有返回机制
*用户可以删除自定义空链
*默认链无法删除
每个规则都有两个内置的计数器
被匹配的报文个数
被匹配的报文大之和
规则内包含:匹配标准,处理动作
匹配标准:
1.通用匹配
-s,--src 源地址
-d,--dst 目标地址
-p(tcp,udp,icmp)指定协议
-i INTERFACE指定数据报文流入的接口(ethX)
可用于定义标准的链,PREROUTING ,INPUT,FORWARD
-o INTERFACE 指定数据报文流出的接口
可用于标准定义的链,OUTPUT,POSTROUTING,FORWARD,
2.扩展匹配
a.隐含扩展:不用特别指明哪个模块进行的扩展,因为此时使用-p(tcp/udp/icmp)
-p tcp 指定目标端口,源端口
--tcp-flags mask comp :只检查mask 指定的标志位,是逗号分隔的标志位列表;comp:此列表中出现的标记位必须为1,comp中没出现,而mask中出现的,必须为0
可根据ACK,FIN,RST,SYN等标志位的值来盘端报文的类型,例如当SYN=1,其余为0,则这个报文时TCP/IP的第一次握手
-p-icmp
--icmp-type -8 被ping通
--icmp-type -1能够发出ping 报文
-p-udp
指定目标端口以及源端口
b. 显示扩展:必须指明由哪个模块进行的扩展,在iptables会用-m选项即可完成功能
使用额外的匹配机制
-m EXTENSTION --spe-opt
state:状态扩展 -m state --state NEW -ij ACCEPT
结合ip_constrack追踪会话的状态
NEW:新连接请求
ESTABLISHED:已建立的连接
INVALID:非法连接
RELATED:相关联的
-m multiport :离散的多端口匹配扩展
--source-ports
--destination-ports
--ports
-m iprange 指定一段地址
--src-range
--dst-range
-m connlimit 连接数限制
! --connlimit-above n
-m limit
--limit RATE速率限定
#iptables-save> /etc/sysconfig/iptables.2021
#iptables-restore < /etc/sysconfig/iptables.2021
命令
管理规则
-A:附加一条规则,添加在链的尾部
-I CHAIN [num]:插入一条规则,插入为对应CHAIN上的第num条
-D CHAIN [num]:删除指定链中的第Num条规则
-R CHAIN [num]:替换指定的规则
管理链
-F [CHAIN]:flush用于清空指定规则链,如果省略CHAIN ,则可以删除对应表中的所有链
-P CHAIN :设定指定链的默认策略
-N :自定义一个新的空链
-X:删除一个自定义的空链
-Z:置零指定链中所有规则的计数器
-E:重命名自定义的链
查看类
-L:显示指定表中的规则
-n:以数字形式显示主机地址和端口号
-x:显示计数器的精确值
-v:显示链和规则的详细信息 -vv:
--line-numbers:显示规则号码
执行的动作(target)
-j指定
ACCEPT放行,允许通过
DROP丢弃
REJECT拒绝
DNAT目标地址转换
SNAT源地址转换
REDIRECT(端口重定向)
MASQUERADE:地址伪装 MAC表的PREROUTING链实现
MARK打标记
LOG 日志
iptables不是服务,但有服务脚本:脚本服务的主要作用在于管理保存的规则
装载或移除iptable/netfilter相关的内核模块
iptables_nat,iptales_filter,iptable_mangle,iptables_raw,ip_nat,
保存规则:
#service iptables save
/etc/sysconfig/iptables
#iptables-save> /etc/sysconfig/iptables.2021
#iptables-restore < /etc/sysconfig/iptables.2021
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。