zoukankan      html  css  js  c++  java
  • Docker容器必备技能 -- iptables

    Iptables

    介绍

    linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成。
    netfilter 组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
    iptables 组件是一种工具,也称为用户空间,它使插入、修改和除去信息包过滤表中的规则变得容易(服务于四层或四层以下)。

    四表五链(只介绍常用的filter和nat)

    filter表

    filter表主要是过滤数据包的,IPTABLES几乎所有的数据包过滤都在此表中实现的,filter表也是IPTABLES中默认的表,此表中还包含三个链如下:

    1 INPUT链
    2   过滤所有的目标地址是本机的数据包
    3 FORWORD链
    4   过滤所有从本机路过的数据包
    5 OUTPUT链
    6   过滤所有从本机出去的数据包

     nat表

    nat表主要是用于做网络地址转换的(NAT),在iptables中可以做SNAT(源地址转换),DNAT(目标地址转换),PANT(即跟SNAT差不多,不一样的是SNAT的源地址是固定的,而PNAT的源地址是不固定的,当使用ppp或pppoe的方式连接互联网的时候一般适应这个) nat表中包含两个链如下:

    1 PREROUTING链
    2   在数据包到达防火墙的时候改变目标地址 DNAT应用于此链.
    3 OUTPUT链
    4   可以改变本地产生的数据包的目标地址
    5 POSTROUTING链
    6    在数据包离开防火墙的时候改变源地址,SNAT应用于次链

     注意:防火墙的默认规则是最后匹配

    iptables工作流程图

    常用命令

    查看

    iptables -L -n # 查看默认filter表规则详情

    iptables -t filter -L -n --line-number| grep -C 10 INPUT

    添加(所有操作目前只在内存里面,重启就丢失)

    # -A 规则添加到末尾
    iptables -t filter -A INPUT -p tcp --dprot 180 -j DROP

    # -I 默认每次插到首行
    iptables -t filter -I INPUT -p tcp --dport 800 -j DROP
    # -I INPUT 8 也可以指定插到第几行
    iptables -t filter -I INPUT -p tcp --dport 800 -j DROP

    # -i 流量的入口 -s 源地址
    iptables -t filter -A INPUT -i eth0 -s 10.0.0.104 -j DROP

    # ! -s 排除某ip
    iptables -t filter -A INPUT -p tcp -i eth0 ! -s 10.0.0.1 -j DROP

    # 排除指定网段
    iptables -t filter -A INPUT -i eth0 -p tcp ! -s 10.0.0.0/24 -j DROP

    删除

    iptables -F # 清空所有规则,但不包括默认规则

    iptables -t filter -D INPUT -p tcp --dport 180 -j DROP

    iptables -t filter -D INPUT

     默认规则的配置(最后匹配)

    iptables -P INPUT DROP
    加油,你们是最棒的!
  • 相关阅读:
    About Inside the Azure Storage Outage of November 18th
    Microsoft Azure 的一些限制 Global
    js递归遍历树形json数据,根据关键字查找节点
    如何修改 WordPress 的默认 Gravatar 头像
    flatpickr功能强大的日期时间选择器插件
    express框架,使用 static 访问 public 内静态文件
    nodejs实时的检测系统文件的变化(无需重启服务)
    redis的常用命令
    NPM install -save 和 -save-dev 傻傻分不清
    Git的使用--如何将本地项目上传到Github
  • 原文地址:https://www.cnblogs.com/Wshile/p/12524525.html
Copyright © 2011-2022 走看看