iptables防火墙设置-语法

作者: _narcissus | 来源:发表于2019-03-24 11:00 被阅读6次

今天心情不好,果然,放个歌的链接都有问题

相信看了前面的还是不懂怎么写,其实前面的只是以讲故事的方式了解了一下表和链,以及简单的添加和删除


man page中规则的写法已经写的很详细了

这里总结一下:

iptables -t 使用什么表 -增加/删除/修改 那条链 (数字) -p 协议 -s 目标地址 -j 丢弃/接收

当然了,也不是每条规则都需要写这么多参数的.只要能达到目标即可,比如说:我想阻止所有的tcp请求(默认是filter表可以不写,-I默认写入到规则列表最上面,后面数字也不必写,已经阻止所有tcp请求了,ip地址也不需要写)

  sudo iptables -I INPUT -p tcp -j DROP

上面这条规则写完后,你会惊喜的发现你已经打不开百度网页了.为什么呢?我只阻止了tcp请求啊,跟服务器给我发消息有什么关系呢?tcp协议是有三次握手的,网页传输正好使用了tcp协议,我们给服务器发送一个请求后,服务器会给我们回一个请求,可是我们阻止了所有的tcp请求,自然无法完成握手,也就无法打开网页了.打不开网页多可怕,所以把上面的规则删掉

  sudo iptables -D INPUT 1

下面正式写语法:

  • 新增规则

    iptables [-t table] -A chain rule-specification 
    iptables [-t table] -I chain rulenum rule-specification
    iptables [-t table] -N chain
    
    • rule-specification表示指定规则,比如说指定ip,指定协议,指定动作这些
      rule-specification =[matches...] [target]
      • match = -m matchname [per-match-options]
        举个例子:match为-p tcp 或者 -s 192.168.0.12
      • target = -j targetname [per-target-options]
        举个例子:target为-j DROP 或者 -j ACCEPT
    • [-t table]表示可选,可以写,可以不写(如果是filter表就不需要写,其它表是必须写的)
    • -A参数与-I参数区别:A表示append/add,新增或在已有规则后面添加.I表示insert,插入到指定位置,可以将规则写入到表中的任意位置,这个位置就是后面的rulenum决定的.
    • -N表示添加用户自定义的链
    • targetname表示对规则的处理,有accept接收/drop丢弃/return暂存
  • 删除规则

    iptables [-t table] -D chain rulenum
    iptables [-t table] -F
    iptables [-t table] -X
    
    • -D删除rulenum所指的规则
    • -F删除指定的整个表的规则
    • -X删除用户自定义的表
  • 查看规则

    iptables [-t table] -C chain rule-specification
    iptables [-t table] -L [chain [rulenum]]
    iptables [-t table] -S [chain [rulenum]]
    

    -Ccheck检查是否存在规则,存在不给提示,不存在给出提示
    -L-S区别:L显示的信息全面,S显示简略信息
    常用的查看规则(显示排序数字): sudo iptables -nvL --line-numbers

  • 修改规则

    iptables [-t table] -R chain rulenum rule-specification
    iptables [-t table] -E old-chain-name new-chain-name
    iptables [-t table] -P chain target
    
    • -Rreplace替代rulenum指定的规则

    • -Erename修改用户自定义链的名字

    • -Ppolicy修改iptables默认链的规则,target只有drop和accept这两种情况
      举个例子:
      我们的个人电脑一般是不会用来做路由的吧,路由转发这种事是服务器和路由器做的,所以forward这条链对我们的作用几乎为零,那我们就可以将链的规则修改为丢弃

      sudo iptables -P FORWARD -j DROP
      
  • 清除所有链/指定链/指定规则的数据包统计

    iptables [-t table] -Z [chain [rulenum]]
    
清除数据之前 清除数据之后

over over语法已经完了
想想和mysql的增删改查好像没多大区别吧,其实语法写起来简单,难的是rule-specification的写法,就比如说可以ping别的主机且不允许被ping,就需要了解icmp-type的相关知识了.

相关文章

  • 29-Linux防火墙

    本章内容 ◆ 防火墙的概念◆ iptables的基本认识◆ iptables的组成◆ iptables的基本语法◆...

  • iptables防火墙设置-语法

    今天心情不好,果然,放个歌的链接都有问题 相信看了前面的还是不懂怎么写,其实前面的只是以讲故事的方式了解了一下表和...

  • Linux防火墙换成iptables

    1、关闭firewall防火墙 2、安装iptables防火墙 3、设置iptables开机启动 4、开放端口 e...

  • iptables的简单使用总结

    iptables使用 使用iptables命令设置防火墙规则时,其基本的命令格式如下: iptables [ -t...

  • linux开放端口--防火墙iptables

    阿里云服务器,设置防火墙linux开放端口--防火墙iptables

  • Iptables AND Firewalld

    iptables与firewalld都是防火墙规则生成工具。iptables设置好策略后交由内核层面的netfil...

  • Nexus搭建私服

    防火墙设置 关闭firewalld 安装iptables 编辑防火墙文件,注意不要写错,否则后续启动失败 重启防火...

  • (初级)hadoop的伪分布笔记

    1.设置ip service network restart 2.关闭防火墙 service iptables...

  • Linux防火墙iptables的策略

    iptables策略 iptables -L #查看现有防火墙所有策略 iptables -F #清除现有防火墙策...

  • Linux工具命令

    Redis 防火墙 CentOS 7.0默认使用的是firewall作为防火墙,使用iptables须重新设置一下...

网友评论

    本文标题:iptables防火墙设置-语法

    本文链接:https://www.haomeiwen.com/subject/fepevqtx.html