• iptables详解(2)表中规则管理(增删改查)


    我们定义了四张表:raw表、mangle表、nat表、filter表,不同的表有不同的功能

    filter表用来过滤,允许哪些ip、端口访问,禁止哪些ip、端口访问,表中会有很多链

    ①禁止ip地址访问我们主机------>发往本机的经过PREROUTING,但是PREROUTING不在filter表中,因此PREROUTING没有过滤能力,只能定义在INPUT链

    ②转发到另一个地方 则需要在FORWARD链或者OUTPUT链中定义

     一、基本操作

    1、查看
    iptables -t表名 -nvL –line-number

    iptables --line -t filter -nvxL INPUT
    

    -t 加表名-L加链名

    -L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数 -L加上链名
    -n 不对ip地址进行反查,直接显示ip地址,加上这个参数显示速度会快很多
    -v 输出详细信息,verbose显示详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口
    –line-number 显示规则的序列号,这个参数在删除或修改规则时会用到 

    -x精确计算

    参数解释:

    root@ROUTER:~# iptables --line -nvL INPUT
    Chain INPUT (policy ACCEPT 6177 packets, 579K bytes)
    num pkts bytes target prot opt in out source destination 
    1 14778 1394K wan_input_chain all -- * * 0.0.0.0/0 0.0.0.0/0 
    2 14778 1394K lan_input_chain all -- * * 0.0.0.0/0 0.0.0.0/0 
    

     policy 表示链的默认策略,默认是ACCEPT,该策略收到了6177个包,iptables -nvxL 可以将省略的k信息显示出来

    2、添加
    添加规则有两个参数:-A和-I。其中-A是添加到规则的末尾;-I可以插入到指定位置,没有指定位置的话默认插入到规则的首部。

    1  Append

    在指定表的指定链的指定尾部添加一条规则,-A表示在对应链的末尾添加规则,省略-t选项,表示默认操作filter表

    命令语法:iptables -t 表名 -A 链名 匹配条件 -j 动作
    示例:iptables -t filter -A INPUT -s 192.168.1.146 -j DROP
    

    2 Insert

    在指定链的指定首部添加一条规则,-I默认是表示在对应链的开头添加规则,加上序号后则表示为在当前的序号位置添加一条规则,则底下的规则会往下移一位

    命令语法:iptables -t 表名 -I 链名 规则序号 匹配条件 -j 动作
    示例:iptables -t filter -I INPUT 5 -s 192.168.1.146 -j ACCEPT

    示例操作:

    步骤①加入append

    iptables -A INPUT -s 192.168.23.242 -j DROP

    步骤② 插入insert

     iptables -I INPUT 2 -s 192.168.23.242 -j ACCEPT  

    3、删除

    1 具体匹配规则删除

    命令语法:iptables -t 表名 -D 链名 匹配条件 -j 动作
    示例:iptables -t filter -D INPUT -s 192.168.1.146 -j DROP  

    2 按--line按删除规则,-D表示删除对应链中的规则

    命令语法:iptables -t 表名 -D 链名 规则序号
    示例:iptables -t filter -D INPUT 3
    

      

    3 清空指定表和链中的所有规则

    命令语法:iptables -t 表名 -F 链名
    示例:iptables -t filter -F INPUT  

    4 清空表中的所有规则

    命令语法:iptables -t 表名 -F
    示例:iptables -t filter -F

    或者
    iptables –flush 

      

    示例操作:  

    步骤① 删除匹配条件的规则

    iptables -D INPUT -s 192.168.23.242 -j ACCEPT  

    步骤② 按照 --line 的行号去删除(省去写一大串规则的时间) 

    iptables -D INPUT 3
    

     4、修改

    1 修改指定表中指定链的指定规则,-R要指定对应的链和规则对应的序号和原本匹配的条件

    命令语法:iptables -t 表名 -R 链名 规则序号 规则原本的匹配条件 -j 动作
    示例:iptables -t filter -R INPUT 3 -s 192.168.1.146 -j ACCEPT

    注意:如果省略-s 等条件则当前的规则的源地址会变成0.0.0.0/0

    也可先删掉当前规则,再在同样的位置再 添加同不一样的规则

    2 修改指定表的指定链的默认策略(默认动作),并非修改规则

    命令语法:iptables -t 表名 -P 链名 动作
    示例:iptables -t filter -P FORWARD ACCEPT
    

      

    示例操作  

    步骤① 修改规则

     iptables -R INPUT 3 -j ACCEPT 

    注意 如果要进行更改规则一定要指定-s 源地址 ,如果有多个匹配规则 则都需要指定

    因为在前面的-R 没有指定对应的地址,所以当前的修改地址都变成0.0.0.0/0

    DROP动作直接是卡住没有响应,然后REJECT则会给出Destination Port Unreachable的回应

    ②修改默认规则

    每张表的每条链中都有自己的默认策略,当报文没有被链中任何规则匹配,或者链中没有任何规则,则当前按照默认动作处理报文

    iptables -t filter -P FORWARD DROP  

    -t 加表名 -P加链名

     DROP(丢弃) 和 REJECT(拒绝) 有什么不同的呢?REJECT的时候会显示Destination Port Unreachable 但是DROP则会直接卡在那边不动

     5、保存规则-----永久生效
    在默认的情况下我们对防火墙所做的修改都是临时的,当服务器重启或者iptables服务重启后,所有的规则操作都会消失。

    ① CentOS6, RedHat

    # 保存iptables规则 
    service iptables save

    # 重启iptables服务
    service iptables stop
    service iptables start/restart

    查看当前规则:

    cat  /etc/sysconfig/iptables

    ② Centos7

    不使用init风格的脚本启动服务,使用unit文件,yum源安装iptables和iptables-services

    #配置好yum源以后安装iptables-service
    # yum install -y iptables-services
    #停止firewalld
    # systemctl stop firewalld
    #禁止firewalld自动启动
    # systemctl disable firewalld
    #启动iptables
    # systemctl start iptables
    #将iptables设置为开机自动启动,以后即可通过iptables-service控制iptables服务
    # systemctl enable iptables

    上述配置只需要一次,以后即可在centos7中愉快地使用service iptables save命令保存iptables规则

    ============通用方法=============

    iptables-save 可以把之前修改的命令输出到屏幕但是并不能保存命令

    所以要使用 iptables-save > /etc/sysconfig/iptables 将修改的规则重定向到这个文件中

  • 相关阅读:
    在提交订单时,为了让用户体验更好,一般改成正在提交,后面加三个点,为了让页面更生动,可以把点点改成动态
    js日期格式化
    h5嵌入视频遇到的bug及总结---转载
    字符串中删除多个特定的字符串
    在苹果手机上input有内阴影怎么去除
    把彩色图片置灰色图片
    springmvc入门程序
    Linux常用命令大全
    MyBatis逆向工程详细教程
    MyBatis整合Spring详细教程
  • 原文地址:https://www.cnblogs.com/chenxiaomeng/p/12011093.html
Copyright © 2020-2023  润新知