iptables - 马哥linux视频讲解随堂笔记

防火墙

/etc下面的文件

hosts.allow文件 :记录允许访问的用户

host.deny文件: 记录不允许访问的用户

用户访问时首先会查询hosts.allow文件,如果查询成功则不再查询hosts.deny文件

如果访问的用户在hosts.allow和hosts.deny两个文件里面都没有匹配成功则仍然访问

iptables -L -n

查看当前防火墙信息

iptables -F

清空防火墙(此时只是清空内存中的防火墙信息,重启服务将会回复配置文件中的防火墙信息)

iptables -save > xx

将防火墙备份到xx文件中

恢复防火墙,将xx文件内容重新导入防火墙

iptables -restore < xx

service iptables save

将当前防火墙信息保存到配置文件

/etc/sysconfig/iptables

防火墙信息文件

linux :网络防火墙

netfilter 真正起到防火墙作用的

是一个内核框架

网络过滤器

iptables :生成防火墙规则附加在netfilterde、实现数据报文过滤、net、mangle、的一种工具

-网络防火墙的主要功能根据报文首部来实现的

防火墙:工作在主机或者网路的边缘,对进出的报文进行检查、监控、并且能够对于事先定义好的规则标准进行相应处理、一旦符合标准就采取由这个规则所定义的处理动作进行处理的一套组建

真正起到防火功能的时规则,防火墙是一个指定规则的框架

默认规则:开放、关闭

规则:匹配标准

IP:源IP、目标IP

TCP:SPORT、DPORT(端口号) SYN,FIN,RST,ACK (ESTABLISHED-已建立的链接)

UDP: SPORT、DPORT(端口号)

ICMP: icmp-type(报文类型)

数据报文过滤

内核当中实现的网络功能、要让防火墙发挥作用必须把规则放到内核之中、但是用户无法直接与内核交互、因此在内核中TCP/IP协议栈上开放位置,通过命令来实现交互

linux2.0: ipfw/firewall

linux2.2: ipchain/firwall

linux2.4: iptables/netfilter

netfilter就是放在内核中的位置(三个位置,进、出、转、发),iptables相当于外部命令(规则指挥器)

netfilter放的位置必须经过数据包,TCP/IP协议栈->路由决策

经由路由表判断三种数据包的流向

-数据包进来的

-数据包出去的

-数据包转发的

0.0.0.0表示任何主机

hook function:钩子函数

任何一个报文走到TCP/IP协议栈都会被其中一个钩子检验,看是否满足规则

检查规则的方式为自上而下逐个检查若第一条规则匹配成功之后就不会再检查第二条规则,因此规则的顺序很重要

在经过路由表之前,在路由决策之前,修改报文,NAT技术,

五个钩子函数

prerouting    进入路由之前

input  

ouput  

forward    

postrouting    离开之前

四表:

filter

nat

mangle

raw

五链:

PREROUTING

INPUT 

OUPUT  

FORWARD

POSTROUTING

filter(过滤):表

INPUT

OUTPUT

FORWARD  

nat(地址转换):表

PREROUTING

OUTPUT

POSTROUTING  

mangle(拆开、修改、封装、主要是修改报文首部的其他字段、不做地址转换):表

INPUT

OUTPUT

FORWARD  

PREROUTING

POSTROUTING  

raw(还原数据包为原始模式 ):表

PREROUTING

OUTPUT

数据包过滤匹配流程

:iptables 在这些表的链上生成规则并使其完成相应功能
每个退则都有两个内置的计数器
  • 一个用来记录被匹配到的报文个数

  • 一个用来记录别匹配的报文大小之和

能否使用自定义链

可以使用自定义链,但是只能由主链调用时才能发挥作用,也就是说自定义链是嵌在主链之中的,如果自定义链中的规则都没有匹配,同时还应该有返回机制,用户可以删除自定义的空链,默认主链不能被删除

如下图

规则:匹配标准,处理动作
    iptables [-t TABLE]      COMMAND      CHAIN         [num]                  匹配标准         -j 处理办法

              -t指定表名字,    命令,     操作的链,  操作链的第几条规则,         指定匹配标准,    -j指定处理办法  
  • 通用匹配

      -s --src 指定源地址
    
      -d --dst 指定目标地址
    
      -p --{tcp|udp|icmp} 指定协议
      	--sport	 	源端口
      	--dport		目标端口
      	--tcp-flags mask comp 
      		只检查mask指定的标志位,是逗号分隔的标志位列表;comp:此列表中对的标志位必须为1,
      		但是对于comp中没出现而mask中出现的,则必须为0
      		eg:--tcp-flags SYN,FIN,ACK,RST     SYN,ACK
      		这里面SYN,ACK为1 而FIN,RST为0
      	--syn		
      		三次握手中对的第一次
      	
      -i  INTERFACE 指定数据报文流入接口 一般用在PREROUTING,INPUT,FORWARD
    
      -o  INTERFACE 指定数据报文流出接口,一般用在OUTPUT,POSTROUTING,FORWARD
    
  • 扩展匹配

    • 需要依赖扩展模块来完成,包括以下两种:

    • 隐含扩展:

            不用特别指明由哪儿个模块进行扩展,入tcp,udp,icmp
      
    • 显示扩展

            必须指明有哪儿个模块进行扩展,在iptables中使用-m选项可完成此功能
      

-J 指定处理动作

    - ACCEPT             接受

    - DROP                不声明直接丢弃

    - REJECT            明确告诉对方不让通过

    - DNAT                目的地址转换

    - SNAT                源地址转换

    - REDIRECT            端口重定向

    - MASQUERADE        地址伪装

    - LOG                日志

    - MARK                标记

eg:

iptables -t filter -A INPUT -s 172.16.0.0/16 -d 172.16.100.7 -j DROP

指明来自172.16.0.0/16这个网段的访问本机的报文我们一律丢弃

命令

  • 管理规则

      -A: 默认在链的尾部的添加一条规则
    
      -I CHAIN [num]:表示插入一条规则,插入到对应CHAIN链上的第num条 若省略num则默认插入尾部
    
      -D CHAIN [num]:删除指定链中的第num条规则
    
      -R CHAIN [num] 替换指定规则:
    
  • 管理链

      -F [CHAIN] :清空指定规则链条,如果省略CHAIN,则可以实现删除对应表中的所有链,f指flush
    
      -P CHAIN:设定指定链的默认策略;
    
      -N:自定义一条新的空连
    
      -X:删除一个自定一的空链
    
      -Z:置零指定链中所有规则的计数器
    
      -E:重命名自定义的链
    
  • 查看

      -L:显示指定表中的规则
    
      -n:禁止反向解析,
    
      -v:显示链及详细信息
    
      -x:明确显示精确值信息
    
      --line-numbers:显示规则号码
    
      iptables -L -n默认查看filter这张表,若要知名查看则使用-t 指定表名
    
放行本机ssh服务对于172.16.0.0网段对的访问

172.16.100.7 sshd:22/tcp

  • 开放172.16.0.0对自己的访问

      开放由外到内
      iptables -t filter - A INPUT -s 172.16.0.0/16 -d 172.16.100.7    -p tcp --dport 22 -j ACCEPT
      开放由内到外
      iptables -t filter - A INPUT -s 172.16.100.7  -d 172.16.0.0/16   -p tcp --sport 22 -j ACCEPT
    
lsmod | grep ip 可以用来查看iptables启用的模块

iptables 本质:装载及一处iptables//netfilter相关的内核模块:

iptables_nat
iptables_filter
iptables_mangle
iptables_raw
iptables_conntrack
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值