zoukankan      html  css  js  c++  java
  • 网络防火墙

    网络防火墙

      防火墙简单例子

        *实验环境:192.168.198.6A机器,192.168.198.135B机器

        *A机器操作:检查ip是否干净

             

             若ip不干净,如下

             

             解决方法

    ifconfig    virbro down禁用此网卡
    brctl delbr virbr0删除网桥
    systemctl disable libvirtd.service开机禁用服务
    systemctl mask libvirtd.service注销服务
    reboot重启查看  

              查看是否干净:iptables -vnL

              

    例一:简单ping改变INPUT
      *B机器操作:ping 192.168.198.6[ping成功,等待几秒关闭]
      *A机器操作:iptables -vnL查看发现INPUT数量变多
    例二:禁止某机器访问,无回应
      *A机器操作:iptables -t filter -A INPUT -s 192.168.198.135 -j DROP[禁止ip为192.168.198.135的机器访问]
      *B机器操作:ping 192.168.198.6[ping不同]
      *A机器操作:iptables -vnL查看[DROP是抛弃的意思,对方发送请求我不搭理,不回应]
      
      tcpdump -i eth0 -nn host 192.168.198.135[执行此命令,一见明了]
      

      例三:清空指定的规则链

       *A机器操作:iptables -vnL查看[iptables -vnL=iptables -t filete -vnL]

            

          iptables -F:清除链接

          

       例四:拒绝某机器访问,有来有回,有回应

        *A机器操作:iptables -t filter -A INPUT -s 192.168.198.135 -j REJECT[拒绝ip为192.168.198.135访问]

              iptables -vnL查看

             

       *B机器操作:ping 192.168.198.6      

             

        *A机器操作:tcpdump -i eth0 -nn host 192.168.198.135[有来有回]

            

       例五:拒绝多种机器访问,会影响效率

       例六:拒绝某网段的访问,慎用

      *A机器操作:iptables -t filter -A INPUT -s 192.168.198.0/24 -j REJECT[拒绝网段为192.168.198.0访问]  

             此时发现自己无法操作,因为自己也在这一网段之中,在机房还好可以在本机操作,要是远程操作就出事了,看清楚在操作

            打开主机操作:iptables -F清除

            或者在执行拒绝网段操作前,执行iptables -F | at now+5 minutes操作,意思是五分钟后执行清空操作

      例七:删除某一规则,要指明规则类型和编号

      *A机器操作:iptables -vnL --line-numbers查看

           

            删除1号链接iptables -D INPUT 1

           iptables -vnL --line-numbers查看[删除1之后,2会自动往上走变成1]

           例八:插入,要指明插入至的规则编号,默认为第一条

      *A机器操作:iptables -vnL --line-numbers查看

         

         插入一条新规则:iptables -I INPUT -s 172.16.0.1/16 -j REJECT[默认不写编号,认为为第一条]

         iptables -vnL --line-numbers查看

         

         再次插入一条新规则:iptables -I INPUT 1  -s 192.168.37.7 -j REJECT[指定了编号,该规则就在第一条,若指定为2,规则为2原第二条规则后推为3,以此类推]

         iptables -vnL --line-numbers查看

         

       例九:替换规则

      *A机器操作:iptables -vnL --line-numbers[查看现有规则]

            

            iptables -R INPUT 1 -s 192.168.198.135 -j REJECT[替换该规则,要指明类型和编号]

            再次查看iptables -vnL --line-numbers[替换成功]

            

        例十:清空计时器,iptables的每条规则都有两个计数器[(1) 匹配到的报文的个数(2) 匹配到的所有报文的大小之和]

      *A机器操作:查看iptables -vnL --line-numbers

            

            iptables -Z INPUT[清除]

            查看iptables -vnL --line-numbers

           

       例十一:同时指定多条规则

      *A机器操作:查看iptables -vnL --line-numbers

            

            iptables -I INPUT  -s 192.168.37.7,192.168.37.8 -j ACCEPT[这我默认写法没加编号,也可以加编号]

            查看iptables -vnL --line-numbers

            

       例十二:允许某机器只可访问本机协议,指定协议

      *A机器操作:查看iptables -vnL --line-numbers[干净]

           

             演示为http服务,指定网页 echo welcome to xdk > /var/www/html/index.html,systemctl start httpd[启动服务]

           iptables -A INPUT -s 192.168.198.1,127.0.0.1 -j ACCEPT[设置本机和windows访问]

           iptables -A INPUT  -j REJECT[设置全部不可访问]

           查看iptables -vnL --line-numbers[只允许192.168.198.1,127.0.0.1访问]

           

      *B机器操作:curl 192.168.198.6[不可访问]

           

      *A机器操作:iptables -I INPUT 3 -s 192.168.198.135 -p tcp --dport 80 -j ACCEPT[设置192.168.198.135访问,-p设置协议 --dport端口80,只允许访问http服务,并且放在第三位]

           查看iptables -vnL --line-numbers

           

      *B机器操作:curl 192.168.198.6

            

       例十三:允许某机器访问,但不允许syn访问[syn用于匹配第一次握手]

      *A机器操作:iptables -I INPUT 4 -s 192.168.198.72  -j ACCEPT[允许192.168.198.72访问,并把它放在0.0.0.0/0之前,否则无法生效]

            iptables -I INPUT 5 -s 192.168.198.72 -p tcp  --syn  -j REJECT[添加192.168.198.72机器不允许访问syn]

            查看iptables -vnL --line-numbers

            

       *B机器操作:curl 192.168.198.6[SYN被禁止无法访问]       

            

            ping 192.168.198.6[因为all在tcp上,所以可以ping通]

            

       例十四: icmp命令使用

      *A机器操作:查看iptables -vnL --line-numbers[设置如下]

            

           ping 192.168.198.72[不通]

            

       *B机器操作:tcpdump -i eth0 -nn host 192.168.198.6[查看是ping通的,原因就是A机器第三条规则不让任何机器访问]

            

       *A机器操作:iptables -I INPUT 3 -s 192.168.198.72 -p icmp --icmp-type 0 -j ACCEPT[192.168.198.72设置icmp,0/0:echo-reply:icmp应答,8/0:echo-request:icmp请求]

             ping 192.168.198.72[成功]  

            

             查看iptables -vnL --line-numbers

            

       例十五: 显式扩展:必须使用-m选项指明要调用的扩展模块的扩展机制,要手动加载扩展模块

      *A机器操作:查看iptables -vnL --line-numbers

            

             iptables -I INPUT 3 -m time --timestart 1:00 --timestop 10:00 -j ACCEPT[没写来源默认为任何机器,时间为9-18,为啥写1-10因为差距8个小时要减去]

            查看iptables -vnL --line-numbers

              

       *B机器操作:curl 192.168.198.6[时间不在该阶段就不让访问]

           

       例十六:connlimit扩展, 根据每客户端IP做并发连接数数量匹配

      *A机器操作:iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j REJECT[设置tcp协议端口80服务,链接大于50次的机器禁止访问]

            查看iptables -vnL --line-numbers        

          

       例十七:基于收发报文的速率做匹配

      *A机器操作:iptables -A  INPUT  -p icmp --icmp-type 8 -m limit --limit 20/minute --limit-burst 10 -j ACCEPT[--icmp-type 8请求,20/minute为每分钟20次,--limit-burst 10 极限突发数]

            iptables -A INPUT -j REJECT[设置此命令,不然不会终止会一直访问下去,我们只要测试一分钟]

            查看iptables -vnL --line-numbers

            

       *B机器操作:ping 192.168.198.6

            

       例十八: state扩展  根据”连接追踪机制“去检查连接的状态,较耗资源

      *A机器操作:查看iptables -vnL --line-numbers

            

      *B机器操作:ssh 192.168.198.6

            

       *A机器操作:iptables -A INPUT -j REJECT[禁止任何机器访问,此时B机器已经死掉了,不让操作]

            iptables -I INPUT 3 -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT[允许访问,22端口为ssh服务,state模板,ESTABLISHED:NEW状态之后,连接追踪信息库中为其建立的条目失效之 前期间内所进行的通信状态,RELATED:新发起的但与已有连接相关联的连接]

            查看iptables -vnL --line-numbers

            

       *B机器操作:关闭重新连接ssh 192.168.198.6[成功,换做其他机器是禁止访问的]

       例十九:查询操作

      *A机器操作:已经追踪到的并记录下来的连接信息库  /proc/net/nf_conntrack  

             调整连接追踪功能所能够容纳的最大连接数量  /proc/sys/net/nf_conntrack_max     

            永久生效:vim /etc/sysctl.conf加入参数,生效命令sysctl -p 

      

          

          

  • 相关阅读:
    vue中mixins的使用方法和注意点(详)
    vue中异步组件实现按需加载
    Vue动态组件
    Vue中slot的介绍与使用
    vue面试(二)
    菜单加载学习1
    NPOI,导出Execl,压缩文件zip,发送Email
    使用Microsoft EnterpriseLibrary(微软企业库)日志组件把系统日志写入数据库和xml文件
    框架公用方法
    Model Validation 和测试Post参数
  • 原文地址:https://www.cnblogs.com/dengkui/p/11285190.html
Copyright © 2011-2022 走看看