zoukankan      html  css  js  c++  java
  • iptables控制较复杂案例

    场景设定:

    管理员:192.168.101.80

    公司有三个部门:

    工程部:192.168.2.21-192.168.2.20

    软件部门:192.168.2.21-192.168.2.30

    经理办公室:192.168.2.31-192.168.2.40

    上班时间:周一到周五 8点-20点

    工程部门:ftp  下班后无限制

    软件部门:http  不允许浏览sina,不允许使用迅雷,最大连接数3,不准聊天,不准看图片,不准下载电影,下班后无限制。

    经理办公室:http和qq都可以,下班无限制

    开始设置iptables表:

    环境变量:

        

    adminip=192.168.1.1.80
    
    timerange="--timestart 08:00 --timestop 20:00"

     

    //下班后的时间范围,因iptables只在00:00-23:59有效,故要分成2段。

        

    timerange1="--timestart 08:01 --timestop 23:59"
    
    imerange2="--timestart 00:00 --timestop 07:59"

     

    //工程部门ip范围

       

    iprange1="192.168.2.21-192.168.2.30"

     

    //软件部门ip范围

      

    iprange2="192.168.2.21-192.168.2.30"

     

    //经理办公室ip范围

       

    iprange3="192.168.2.31-192.168.2.40"

     

     

    1、首先在设置全部禁止之前,要上ssh可以登录,同时设置local回路通过。

        

    iptables -A INPUT -s $adminip -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -d $adminip -p tcp -sport 22 -m state --state ESTABLISHED -j ACCEPT
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT

     

    2、把进,出,转发三链策略设为DROP

       

    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP

     

    3、软件部门策略:

      1)、首先让软件部门可以上网(通过透明代理服务器),然后再进行限制

        

    iptables -A PREROUTING -m iprange --src-range $iprange2 -m time $timerange -p tcp --dport 80 –j REDIRECT –-to-ports 3128    //3128为本防火墙的squid服务端口
    iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -p tcp --dport 80 -j ACCEPT       //可以上网
    iptables -p udp --dport 53 -j ACCEPT      //可以访问域名服务器
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE

     

      2)、对迅雷和qq进行控制

       

    iptables -A FORWARD -m iprange $iprange2 -m time $timerange -m layer7 --17proto qq -j DROP
    iptables -A FORWARD -m iprange $iprange2 -m time $timerange -m layer7 --17proto xunlei -j DROP

     

    4、经理办公室

        

    iptables -t nat -A PREROUTING -m iprange $iprange3 -p tcp --dport 80 -j REDIRECT --to-ports 3128
    iptables -A FORWARD -m iprange --src-range $iprange3 -p udp --dport 53  -o eth0 -j ACCEPT
    iptables -A FORWARD -m iprange --src-range $iprange3 -m time $timerange -m layer7 --17proto qq -j ACCEPT

     

    5、最后是工程部

        

    iptables -t nat -A POSTROUTING -m iprange $iprange1 -m time $timerange -p tcp --dport 21 -j MASQUERADE
    iptables -A FORWARD -m iprange --src-range iprange1 -m time $timerange -p tcp --dport 21 -j ACCEPT

     

    6、下班后控制

        

    iptables -A FORWARD -s 192.168.2.0/24 -m time $timerange1 -j ACCEPT
    iptables -A FORWARD -s 192.168.2.0/24 -m time $timerange2 -j ACCEPT
    iptables -t nat -A PREROUTING -m time $timerange1 -p tcp --dport 80 -j REDIRECT --to-ports 3128
    iptables -t nat -A PREROUTING -m time $timerange2 -p tcp --dport 80 -j REDIRECT --to-ports 3128
    iptables -t nat -A POSTROUTING -m time $timerange1 -o eth0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -m time $timerange2 -o eth0 -j MASQUERADE

     

    7、写DMZ区域的(用远程登陆模拟)
        

    iptables -t nat -A PREROUTING -d 192.168.101.40 -p tcp --dport 3389 -j DNAT --to 192.168.3.100
    iptables -t filter -A FORWARD -d 192.168.3.100 -p tcp --dport 3389 -j ACCEPT

     

  • 相关阅读:
    如何把List 里的数据读出来 赋值给String?
    javascript打印、设置、预览
    SQL通配符
    C# GUID的使用
    Winform 多国语言窗体的设计以及.NET中资源文件的使用
    Winfrom 重新登录
    C# string.Format()
    聚合函数的应用(转)
    C# out和ref关键字
    性能测试工具Gprof
  • 原文地址:https://www.cnblogs.com/litifeng/p/5615995.html
Copyright © 2011-2022 走看看