skill——iptables

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了skill——iptables相关的知识,希望对你有一定的参考价值。

黑白名单

黑名单:即默认策略为 ACCEPT,链中规则对应的动作应该为 DROP 或 REJECT ,表示只有匹配到规则的报文才会被拒绝,没有匹配到规则的报文默认被放行
白名单:即默认策略为 DROP 或 REJECT,链中规则对应的动作应该为 ACCEPT ,表示只有匹配到规则的报文才会被放行,没有匹配到规则的报文默认被拒绝
也就是说:
白名单时,默认所有人是坏人,只放行好人
黑名单时,默认所有人是好人,只拒绝坏人
案例一:
简单的黑名单(默认策略为 ACCEPT,链中规则对应的动作为 DROP 或 REJECT)
技术分享图片
案例二:
简单的白名单(默认策略为 DROP 或 REJECT,链中规则对应的动作为 ACCEPT )
先添加规则动作为 ACCEPT 的链使端口 22 可以被访问,然后使用 -P 把默认策略改为 DROP
如下图:
技术分享图片
注意:但是上图的设置有个问题,就是如果误操作把这这条规则删掉了或执行了 iptables -F INOUT 清空了链,正在连接的 ssh 就会 的断开,这个显然不是我们想要的
可以做以下修改:
让默认策略继续为:ACCEPT,在需要放行的规则后面添加一条拒绝所有请求的规则
意思是:如果报文符合放行规则,则会被放行规则匹配到,得以通过,如果没有,则会被最后一条拒绝规则禁止通行
技术分享图片
这样做的目的是在误操作的情况下(iptables -F INOUT 清空了链),也可以保证连接是畅通的

自定义链

用于解决默认链中规则非常多时,方便我们分类管理,比如定义一条链,只存放针对 80 端口的入站规则
案例三

  1. 创建一条自定义链
    注意:前面说过,-t filter 可以省略,为默认值
    技术分享图片
    技术分享图片
  2. 向 IN_WEB 中添加并查看规则
    注意:操作自定义链与默认链没什么不同
    技术分享图片
  3. 使用默认链来引用自定义链
    注意:没有默认链引用时,之前定义的规则是无法被正常使用的,被哪条默认链引用取决于实际工作场景(自定义链也可以引用其他自定义链)
    注意:此时的 “-j 动作” 表示访问本机的 80 端口的 tcp 报文将由自定义链来处理,我们也可以发现 IN_WEB 中的 references 数值变为了 1,表示该自定义链被引用了一次
    技术分享图片
    技术分享图片
  4. 重命名自定义链
    技术分享图片
    技术分享图片
  5. 删除自定义链
    注意:删除自定义链需满足两个条件
    1)自定义链中没有任何规则,即自定义链为空
    2)自定义链没有被任何默认链引用,即自定义链的引用计数为 0
    技术分享图片

以上是关于skill——iptables的主要内容,如果未能解决你的问题,请参考以下文章

skill——iptables

skill——iptables

skill——iptables

skill——iptables

类的综合性代码例子

Kotlin 和 Jetpack 视频合集 | MAD Skills