iptables防火墙

iptables防火墙

rawmanglefilternat
PREROUTINGOUTPUTINPUTPOSTROUTING
OUTPUTINPUTOUTPUTPREROUTING
FORWARDFORWARDOUTPUT
POSTROUTING
PREROUTING

iptables命令

  1. -t <表名>,不加该参数默认filter表

  2. -A <链名>,向该链中追加
    -I <链名>,向该链中某一位置插入规则,不加数字默认插入成第一条
    -P <链名>,设置某个链的默认规则 (如:iptables -t filter -P INPUT DROP filter表中INPUT链默认规则为拒绝)
    -R <链名>,替换一条规则
    -D <链名>,删除某一条规则(1.按号码:iptables -t filter -D INPUT 3 删除第三条 ;2.按规则:iptables -t filter -D INPUT -s 192.168.1.0/24 -j DROP 删除这条规则)
    -F <链名>,清空某一链的规则
    -L <链名>,列出某一链的规则(v:显示详细信息,包括每条规则的匹配包数量和匹配字节数;x:在 v 的基础上,禁止自动单位换算(K、M);n:只显示 IP 地址和端口号码,不显示域名和服务名称)

  3. -i 流量进入网口名称
    -o 流量出去网口名称

  4. -s 源地址 (主机:-s 192.168.10.10 或者 网段 :-s 192.168.10.0/24 )
    -d 目的地址 (主机:-s 192.168.16.10;网段:-s192.168.16.0/24;域名:www.baidu.com)

  5. -p 协议类型

    • tcp
    • udp
    • icmp
      –icmp-type 0 或 8 (0:代表回来的icmp;8:代表出去的icmp)(用来设置自己ping通别人,别人ping不通自己)
  6. –sport 源端口

    • –sport 3000 匹配3000端口
    • –sport 3000:4000 匹配3000-4000端口(包含3000和4000)
    • –sport 3000: 匹配大于3000的端口(包含3000)
    • –sport :3000 匹配小于3000的端口(包含3000)
      –dport 目的端口(同上)
      –sport、–dport 必须联合 -p 使用,必须指明协议类型是什么
  7. -j

    • ACCEPT 允许通过
    • DROP 拒绝通过
    • SNAT 源地址转换;nat表中POSTROUTING链;后面加–to 主机或地址池(–to 1.1.1.1 或 --to 1.1.1.1-1.1.1.6)
    • DNAT 目的地址转换;nat 表的 PREROUTING 链;–to 主机/地址池/某一端口(–to 1.1.1.1 或 --to 1.1.1.1-1.1.1.6 或–to 1.1.1.1:80)
    • MASQUERADE 地址伪装;一般出口网卡的ip是动态获取的,无法静态获取,所以用动态获取;( iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE)

iptables模块

  1. 按包状态匹配(stat)
    在这里插入图片描述

    • NEW 表示新连接状态的第一个包(如上图)
    • ESTABLISHED 状态已经连接(ack=1如上图)
    • RELATED (ftp服务器)
      ftp正常使用防火墙设置:
        iptables -t filter -I FORWARD -s 192.168.2.0/24 -p tcp --dport 21 -o ens33 -j ACCEPT
        iptables -t filter -A FORWARD -m --state ESTABLISHED,RELATED -j ACCEPT
        modprobe ip_nat_ftp    #ftp的内核模块
    
    • INVALID 如果一个包没有办法被识别 这个包没有任何状态这个包就是INVALID
    • UNTRACKED 报文状态未untracked时,表示报文未被追踪,当报文的状态为Untracked时通常无法找到相关连接证明当前报文是否是回应之前发出的报文----只要报文是RELATED 和 ESTABLISHED 都算当前的
  2. 按来源MAC匹配(Mac):报文经过路由后,数据包中原有的 mac 信息会被替换,所以在路由后的 iptables 中使用 mac 模块是没有意义的

    iptables -A FORWARD -m --mac-source xx:xx:xx:xx:xx:xx -j DROP
    
  3. 按包速率匹配(limit):limit 英语上看是限制的意思,但实际上只是按一定速率去匹配而已,要想限制的话后面要再跟一条DROP

     iptables -A FORWARD -d 192.168.0.1 -m limit --limit 50/s   -j ACCEPT
     iptables -A FORWARD -d 192.168.0.1 -j DROP
    
  4. 多端口匹配(multiport):一次性匹配多个端口,可以区分源端口,目的端口或不指定端口

     iptables -A INPUT -p tcp -m multiport --dports 21,22,25,80,110 -j ACCEPT
     //必须与 -p 参数一起使用
    

iptables保存和开启

Debian/Ubuntu: iptables-save > /etc/iptables/rules.v4

iptables保存和开启

Debian/Ubuntu: iptables-save > /etc/iptables/rules.v4
RHEL/CentOS: iptables-save > /etc/sysconfig/iptables

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页