Linux iptables

iptables

1.iptables
Linux的数据包过滤软件)基础概念:
    会根据数据包的分析资料“比对”预先定义的规则内容,若数据包与规则内容相同则进行动作,否则就继续下一条规则的比对。
    当一个网络数据包要进入主机之前,会先经过Netfilter进行检查,那就是iptables的规则。检查通过则接受(ACCEPT)进入本机获取资源,如果检查不通过,则可能予以丢弃(DROP),而且规则是有顺序的,如果比对结果符合Rule1,此时这个网络数据包就会进行Action1的 动作,而不会理会后续的Rule2,rule3等规则了。
    默认情况下,iptables至少有三个表格,五条链:
        Filter(过滤器):管理本机进出
            INPUT:与想要进入linux的数据包有关
            OUTPUT:与linux本机所要送出的数据包有关
            FORWARD:与linux本机无关,它可以传递数据包到后端的计算机中,与NAT的table相关性较高
        NAT(地址转换):管理后端主机,防火墙内部的其他计算机
            PREROUTING:再进行路由判断之前所要进行的规则(DNAT)
            POSTROUTING:再进行路由判断之后所要进行的规则(SNAT)
            OUTPUT:与发出去的数据包有关
        Mangle(破坏者):管理特殊标志
           
2.
基本参数
   iptables
    -n  ##
不做解析
    -t  ##指定表名称
    -L  ##列出指定表中的策略
    -A  ##增加策略
    -p  ##网络协议
    -dport  ##端口
    -s  ##数据来源
    -j  ##动作
    ACCEPT  ##允许状态
    REJECT  ##拒绝状态
    DROP    ##丢弃状态
    -N  ##增加链
    -E  ##修改链名称
    -F  ##清除所有已经定制的规则
    -X  ##删除用户自定义的链
    -D  ##删除指定策略 
    -l  ##插入策略

    -R  ##修改策略
    -P  ##修改默认策略

3.iptables
的一些基本操作:
创建实验环境:
    systemctl stop firewalld
    systemctl start iptables
    systemctl enable iptables


基本操作:
    iptables -t  table名称  -nL ##列出表格中的规则,当没有t时默认为filter表


    格式:iptables[-A 链名]  [-io 网络接口] [-p 协议] [-s 来源ip/网络] [-d 目标ip/网络] [-jACCEPT|REJECT|DROP]
        -A:新增一条链

        -I:插入一条链
        -i:数据包进入的那个网络接口
        -o:数据包传出的那个网络接口
        -p:设置此规则适用于哪种数据包格式。主要数据包格式有:tcp,udp,icmp,及all
        -s:设置此规则之数据包的来源地

        -d:设置目标的ip/网络
        -j:后面接操作,主要有ACCEPT、REJECT、DROP
    iptables -A INPUT -i lo -j ACCEPT           ##允许
lo
    iptables -A INPUT -p tcp --dport 22 -iACCEPT       ##允许访问22端口

    iptables -A INPUT -s 172.25.254.61 -jACCEPT        ##允许61主机访问本机所有端口
    iptables -A INPUT -i REJECT             ##拒绝所有主机的数据来源

  iptables -N redhat      ##增加redhat链

iptables -E redhat linux    ##更改链名称

    iptables -X linux       ##删除linux链

   iptables -D INPUT 2     ##删除INPUT链中的第二条策略


  iptables -I INPUT -p  tcp --dport 80 -j REJECT  ##插入策略到INPUT中的第一条



iptables -R INPUT -p  tcp --dport 25 -j ACCEPT  ##修改为第一条策略

    iptables -P INPUT DROP              ##把input链的默认策略改为
DROP

   
     格式:
iptables  -A INPUT [-m state]
        -m:一些iptables的外挂模块,主要常见的有:state和
mac
            state:状态模块

            mac:网卡硬件地址
        --state:一些数据包的状态
            INVALID :无效数据包,例如数据破损的数据包状态
            ESTABLISHED :已经连接成功的连接状态
            NEW :想要新建立连接的数据包状态
            RELATED :最常用,表示这个数据包是与主机发送出去的数据包有关
    iptables -A INPUT -m stat --statRELATED,ESTABLISHED -j ACCEPT
    iptables -A INPUT -i lo -m state--state NEW -j ACCEPT         
    iptables -A INPUT -p tcp --dport 22 -mstate --state NEW -i ACCEPT
    iptables -A INPUT -p tcp --dport 80 -mstate --state NEW -i ACCEPT
    iptables -A INPUT -p tcp --dport 53 -mstate --state NEW -i ACCEPT
    iptables -A INPUT -p tcp --dport 443-m state --state NEW -i ACCEPT            
    iptables -A INPUT -j REJECT


SNAT:修改数据包报头的来源项目
    DNAT:修改数据包报头的目标项目
    sysctl -a | grep forward
    vim /etc/sysctl.conf

  iptables -t nat -A PREROUTING -i eth0-j DNAT --to-dest 172.25.22.11        ##修改目标ip
    iptables -t nat -A POSTROUTING -o eth0-j SNAT --to-source 172.25.254.122   ##修改来源的
ip






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值