iptables

Iptables

  1.防火墙

    为了防止他人恶意访问

  2.防火墙的种类

    硬件防火墙:FS

    软件防火墙:iptables  、firewalld

    安全组

Iptables基本介绍

  用户  --->  调用iptables  --->  ip_tables内核模块  --->  Netfilter(系统安全框架) --->  过滤请求

 

包过滤防火墙

 包:
       在传输过程中,并不是一次性传输完成的;而是将数据分成若干分后,依次传输
 
  包过滤防火墙:
       过滤数据包的防火墙
如何实现过滤:     通过系统安全框架,过滤数据包

Iptables链的概念

四表五链

1.四表,作用
    具备某种功能的集合叫表
    
    filter : 负责过滤       (INPUT;OUTPUT;FORWARD)
    nat    : 网络地址转换    (PREROUTING;INPUT;OUTPUT;POSTROUTING)
    mangle : 更改数据包内容  (PERTOUTING;INPUT;OUTPUT;POSTROUTING;FORWARD)
    raw    : 数据包跟踪      (PREROUTING;OUTROT)
    
2.五链,运行
    PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING
    [1]PREROUTING: 主机外报文进入,允许mangle,nat 
   (目标地址转换,将本机地址转换为真正的目标地址转换为真正的目标地址,响应报文) [2]INPUT: 报文进入本机用户空间位置,允许fileter,mangle [3]OUTPUT: 报文从本机用户空间出去的位置,允许filter,mangle,nat [4]FORWARD: 报文进过路由并且发觉不是本机决定转发还不知道从哪个网卡出去,允许filter,mangle [5]POSTROUTING: 报文进过又有被转发出去,允许mangle,nat
     (源地址转换,把原始地址转换为转发主机出口网址地址) 流入本机:PREROUTING --> INPUT --> PROCESS(进程) 经过本机:PREOUTING --> FORWARD --> POSTROUTING 从本机流出:PROCESS(进程) --> OUTPUT --> POSTPOUTING

Iptables流程图

流入本机: A  --->  PREROUTING  --->  INPUT ---> B
流出本机:OUTPUT ---> POSTROUTING ---> B
经过本机: A ---> OUTPUT ---> POSTROUTING
      ---> PREROUTING ---> FORWARD ---> POSTROUTING ---> C
      ---> PREROUTING ---> INPUT ---> B
filter :  INPUT 、OUTPUT 、FORWARD
nat : PREROUTING 、 OUTPUT、 POSTROUTING
raw : PREROUTING、 OUTPUT
mangle : PREROUTING INPUT FORWARD OUTPUT POSTROUTING

 

 

 

iptables 使用

1.下载安装iptables
yum install iptables

2.iptables命令格式
iptables [参数]
通常为某个表添加规则的格式为:
iptables -t 表名 选项 链名称 条件 动作

3.iptables参数
-t:指定要操作的表
-L(--list):显示链的已有规则(默认为filter表的规则)
-v:显示数据包和数据草包
-n:不将地址反解
-A(--append):向指定的链中追加规则(加在底部)。
-I(--insert):向指定的链的顶部插入规则
-F(--fiush):清空链的现有规则
-Z(--zero):清空链中的数据包计数器和字节计数器
-D(--delete):删除链中的规则
-R(--replace):替换链中的相应规则
-S(--list--rules):列出所有的规则
-N(--new--chain):创建用户自定义的链
-X(-delete--chain):删除用户自定义的链
-P(--policy):指定链的默认策略

4.iptables的规则参数
 -s:指定源地址(发送请求的地址)
 -d:指定目标地址(要访问的地址)
  --sport:指定源端口(发送请求的端口)
 --dport:指定目标端口(访问的端口)
 -i:指定进来的网卡
 -o:指定出去的网卡
 -p:指定网络协议(TCP、UDP、ICMP等或用ALL表示全部)
 -m:指定模块
  -j:执行动作

5.iptables动作
  ACCEPT:将数据包放行,处理完此动作后将不再向下比对直接前往下一个规则链
 REJECT:阻拦该数据包并通知对方
  DROP:丢弃数据包不处理,之后将不再向下比对直接中断过滤程序
 REDIRECT:将包重新导向另一个端口,处理完此动作后将继续比对其他规则

6.iptables模块
    模块的作用是拓展iptables的功能
       1.multiport模块 
      multiport模块的作用是能够连续匹配多个端口
      参数:
        --dports:指定多个端口(不同端口之间用逗号分隔,连续的端口号使用冒号分隔)

    2.iprange模块
      iprange模块的作用是能够指定一段连续的IP地址范围。
      参数:
        --src-range from [-to] :指定源地址范围
        --dst-range from [-to] :指定目标地址范围

    3.string模块
      string模块的作用是指定匹配的字符串
      参数:
        --string [匹配内容] :指定要匹配的字符
        --algo [bm/kmp] :匹配的查询算法
    4.time模块       time模块的作用是根据时间段来匹配报文       参数:         --timestart hh:mm[:ss]:指定开始时间         --timestop hh:mm[:ss]:指定结束时间         --monthdays day[,day...]:指定一个月的某一天         --weekday day[,day...]:指定周还是周天     5.icmp模块       icmp模块的作用是禁止ping命令,默认本机无法ping别人,别人无法ping本机       参数:         --icmp-type {type[/code] | typename}           echo-request (8) 请求           echo-reply (0)回应     6.connlimt模块       connlimt模块的作用是限制并发的链接数       参数:         --connlimit-upto n :指定当链接数小于等于n时匹配         --connlimit-above n:指定当连接数大于n时匹配     7.limit模块       limit模块的作用是将报文的速率进行限制。单位为每秒、分、时、天       参数:         --limit rate [/second|/minute|/hour/day]:指定报文的速率         --limit-burst n :指定报文数量(默认为5)
 

 

posted @ 2021-12-24 16:06  代小白菜  阅读(582)  评论(0)    收藏  举报