02iptables语法

本文介绍了iptables的基本语法,包括添加、查看和删除规则,以及常见的控制类型如ACCEPT、DROP和REJECT。示例展示了如何管理进站和出站的网络流量,如允许或拒绝特定协议、端口和IP地址的通信。此外,还提到了如何永久保存规则并设置链的默认策略。
摘要由CSDN通过智能技术生成

iptables语法

一、iptables语法
1、语法构成
iptables  [-t 表名]  选项  [链名]  [条件]  [-j 控制类型]
举例:
#进站的ICMP包都丢掉
[root@CentOS7-4 ~]# iptables -t filter -I INPUT -p icmp -j REJECT
  • 注意事项
  • 不指定表名时,默认指filter表
  • 不指定链名时,默认指表内的所有链
  • 除非设置链的默认策略,否则必须指定匹配条件
  • 选项、链名、控制类型使用大写字母,其余均为小写
2、常见控制类型
ACCEPT:允许通过
DROP:直接丢弃,不给出任何回应
REJECT:拒绝通过,必要时会给出提示
LOG:记录日志信息,然后传给下一条规则继续匹配
3、常见选项
  • 管理选项

    类别选项用途
    添加新的规则-A在链的末尾追加一条规则
    -I在链的开头(或指定序号)插入一条规则
    查看规则列表-L列出所有的规则条目
    -n以数字形式显示地址、端口等信息
    -v以更详细的方式显示规则信息
    --line-numbers查看规则时,显示规则的序号
    删除、清空规则-D删除链内指定序号(或内容)的一条规则
    -F清空所有的规则
    设置默认策略-P为指定的链设置默认规则
    #添加新规则
    #在链的末尾添加进站所有的TCP协议包都放通
    [root@CentOS7-4 ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT
    #在链的最前面添加进站所有的UDP协议包都放通
    [root@CentOS7-4 ~]# iptables -I INPUT -p udp -j ACCEPT
    #在链的最前面添加进站所有的ICMP协议包都放通
    [root@CentOS7-4 ~]# iptables -I INPUT 2 -p icmp -j ACCEPT
    
    #查看规则
    #带序号查询
    [root@CentOS7-4 ~]# iptables -nL --line-numbers
    Chain INPUT (policy ACCEPT)
    num  target     prot opt source               destination         
    1    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           
    2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    3    REJECT     icmp --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
    4    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    5    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    6    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    8    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           
    
    Chain FORWARD (policy ACCEPT)
    num  target     prot opt source               destination         
    1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain OUTPUT (policy ACCEPT)
    num  target     prot opt source               destination         
    #不带序号查询
    [root@CentOS7-4 ~]# iptables -nL
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    REJECT     icmp --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination  
    
    #指定序号删除规则
    [root@CentOS7-4 ~]# iptables -D INPUT 3
    #查看规则
    [root@CentOS7-4 ~]# iptables -nL
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination   
    
    #删除所有规则
    [root@CentOS7-4 ~]# iptables -F
    [root@CentOS7-4 ~]# iptables -nL
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination  
    #删除nat表种的所有规则
    [root@CentOS7-4 ~]# iptables -t nat -F
    #删除mangle表种的所有规则
    [root@CentOS7-4 ~]# iptables -t mangle -F
    #删除raw表种的所有规则
    [root@CentOS7-4 ~]# iptables -t raw -F
    
    #为指定的链设置默认规则(要么是允许,要么是丢弃)
    #进入forward链包都直接丢弃
    [root@CentOS7-4 ~]# iptables -t filter -A FORWARD -j DROP
    #放通所有出战流量
    [root@CentOS7-4 ~]# iptables -A OUTPUT -j ACCEPT
    
  • 匹配条件

    类别条件类型用法
    通用匹配协议匹配-p 协议名
    地址匹配-s 源地址、-d 目的地址
    接口匹配-i 入站网卡、-o 出站网卡
    隐含匹配端口匹配—sport 源端口、—dport 目的端口
    TCP标记匹配—tcp-flags 检查范围 被设置的标记
    ICMP类型匹配—icmp-type ICMP类型
    显式匹配多端口匹配-m multiport —sports \—dports 端口列表
    IP范围匹配-m iprange —src-range IP范围
    MAC地址匹配-m mac —mac-source MAC地址
    状态匹配-m state —state 连接状态 (NEW新连接、ESTABLISHED双向传输、RELATED新连接但前提是有链接、INVAILD未知链接,一般DROP)
    # “ ! ” 表示取反
    #进站的所有icmp包丢弃
    [root@CentOS7-4 ~]# iptables -I INPUT -p icmp -j DROP
    #不是icmp协议包的允许通行
    [root@CentOS7-4 ~]# iptables -A FORWARD ! -p icmp -j ACCEPT
    # -s 指定源地址
    #拒绝源地址为1.11的包进行转发
    [root@CentOS7-4 ~]# iptables -A FORWARD -s 192.168.1.11 -j REJECT
    #进站源地址为20.30网段丢弃
    [root@CentOS7-4 ~]# iptables -I INPUT -s 10.20.30.0/24 -j DROP 
    # -i ens37    指定入站网卡
    [root@CentOS7-4 ~]# iptables -A INPUT -i ens33 -s 192.168.0.0/16 -j DROP 
    [root@CentOS7-4 ~]# iptables -A INPUT -i ens33 -s 10.0.0.0/8 -j DROP
    [root@CentOS7-4 ~]# iptables -A INPUT -i ens33 -s 172.16.0.0/12 -j DROP
    

    在这里插入图片描述

    这是网卡名称!!!!

    # --dport 20:21 指定目标端口20和21
    #指定源地址为4.0网段的UDP协议的目标端口为53放通
    [root@CentOS7-4 ~]# iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT
    #进站放通TCP协议端口为20和21放通
    [root@CentOS7-4 ~]# iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
    
    # 指定ICMP类型
    [root@CentOS7-4 ~]# iptables -A INPUT -p icmp --icmp-type 8 -j DROP
    [root@CentOS7-4 ~]# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
    [root@CentOS7-4 ~]# iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
    #所有进站的icmp协议包都丢弃
    [root@CentOS7-4 ~]# iptables -A INPUT -p icmp -j DROP
    

    如果不知道ICMP的类型可以百度一手!!!!

    #指定目的范围端口
    #把所有进站包都丢弃
    [root@CentOS7-4 ~]# iptables -A INPUT -j DROP
    #把进站的TCP端口为1-80的包放通
    [root@CentOS7-4 ~]# iptables -I INPUT -p tcp -m multiport --dport 1:80 -j  ACCEPT
    #把进站的TCP端口为1,80,3389的包放通
    [root@CentOS7-4 ~]# iptables -I INPUT -p tcp -m multiport --dport 1,80,3389 -j  ACCEPT
    [root@CentOS7-4 ~]# iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
    
    #指定范围多端口,指定IP范围,指定源MAC
    #进站协议TCP端口为25,80,110,143都放行
    [root@CentOS7-4~]# iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT
    #4.21到4.28的IP地址进行转发
    [root@CentOS7-4 ~]# iptables -A FORWARD -p tcp -m iprange --src-range 192.168.4.21-192.168.4.28 -j ACCEPT
    #这是基于mac地址然后丢掉
    [root@CentOS7-4 ~]# iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j DROP
    
    4、永久性保存修改的规则
    #如果重启服务器或者重启iptables它自己会找它的配置文件里的配置进行读取,所以配置完之后记得保存
    [root@CentOS7-4 ~]#iptables-save > /etc/sysconfig/iptables
    
    5、提供状态化链接
    [root@CentOS7-4 ~]# iptables -I FORWARD -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值