场景设定:

管理员: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.

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  -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d $adminip -p tcp -sport -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  –j REDIRECT –-to-ports     //3128为本防火墙的squid服务端口
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -p tcp --dport -j ACCEPT //可以上网
iptables -p udp --dport -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/ -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  -j REDIRECT --to-ports
iptables -A FORWARD -m iprange --src-range $iprange3 -p udp --dport -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  -j MASQUERADE
iptables -A FORWARD -m iprange --src-range iprange1 -m time $timerange -p tcp --dport -j ACCEPT

6、下班后控制

    

iptables -A FORWARD -s 192.168.2.0/ -m time $timerange1 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/ -m time $timerange2 -j ACCEPT
iptables -t nat -A PREROUTING -m time $timerange1 -p tcp --dport -j REDIRECT --to-ports
iptables -t nat -A PREROUTING -m time $timerange2 -p tcp --dport -j REDIRECT --to-ports
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  -j DNAT --to 192.168.3.100
iptables -t filter -A FORWARD -d 192.168.3.100 -p tcp --dport -j ACCEPT

iptables控制较复杂案例的更多相关文章

  1. iptables filter表小案例

    案例1:把80端口,22端口,21端口放行 22端口指定IP访问,其它IP拒绝. shell脚本实现: [root@centos7 ~]# vim /usr/local/sbin/iptables.s ...

  2. iptables常用语法与案例

    常用命令语法: [root@www ~]# iptables [-t tables] [-L] [-nv] 选项与参数: -t :后面接 table ,例如 nat 或 filter ,若省略此项目, ...

  3. iNeuOS工业互联平台,PLC监测与控制应用过程案例。新闻:.NET 6 RC1 正式发布

    目       录 1.      概述... 1 2.      平台演示... 2 3.      应用过程... 2 1.   概述 iNeuOS工业互联网操作系统主要使用.netcore 3. ...

  4. OAF_开发系列21_实现OAF事物控制TransactionUnitHelper(案例)

    20150716 Created By BaoXinjian

  5. html的textarea控制字数小案例

    <h3>设计理念说明(200字以内)</h3> <textarea onkeyup="checkLen(this)"></textarea ...

  6. 四十七.iptables防火墙 filter表控制 扩展匹配 nat表典型应用

    1.iptables基本管理 关闭firewalld,开启iptables服务 查看防火墙规则 追加.插入防火墙规则 删除.清空防火墙规则   1.1 关闭firewalld,启动iptables服务 ...

  7. Linux iptables 应用控制访问SSH服务

    Title:Linux iptables 应用控制访问SSH服务  --2012-02-23 17:51 今天用到了以前从来没有用到过的,iptables控制访问,只允许外部访问SSH服务(22号端口 ...

  8. iptables技术入门

    1- 概述 ___ netfilter/iptables: IP 信息包过滤系统,实际由两个组件netfilter和iptable组成.可以对流入和流出服务器的数据包进行很惊喜的控制.主要工作在OSI ...

  9. iptables防火墙说明即使用

    防火墙是架设在公网和私网之间的服务器,隔离公网和私网,保护私网. RHEL7默认使用firewalld作为防火墙. 但firewalld底层还是调用包过滤防火墙iptables #systemctl ...

随机推荐

  1. 【Android 百度地图实战】1.构建一个基础的地图页面

    虽然很简单,但是还是有些细节要注意的,小错误搞死人啊,具体步骤官网API已提供,地址在这. 效果图如下: 主要代码: package yc.example.yc_ebaidumap; import a ...

  2. [置顶] Zend Optimizer 和 Zend Debugger 同时安装

    下载地址: Zend Optimizer:  http://download.csdn.net/detail/wf120355/6479947 Zend Debugger: http://downlo ...

  3. Nginx负载均衡简易方法

    做个简单的测试,一个Nginx, 通过FastCGI协议和另外两台服务器上的基于CppCMS开发的web server通信.配置方法很简单: 首先,必须在nginx.conf文件开头,server 配 ...

  4. 【Linux】别名

    别名就是一种快捷方式,以省去用户输入一长串命令的麻烦. 别名有多种实现方式,可以使用函数,也可以使用alias命令 注意:alias命令的作用只是短暂的.一旦终端关闭,别名则失效,如果要让别名永久生效 ...

  5. Oracle执行SQL报错ORA-00922

    问题描述: 对Oracle数据库执行序列化脚本出错,ora-00922 missing or invalid option  #无效的选项 问题解决: 对于set define off --这个是sq ...

  6. oracle默认连接数150

    当oracle连接数超过最大的150登录不上 sqlplus / as sysdba   ###报错,提示连接数未释放! ---释放网络连接数 ps -ef |grep ora |grep " ...

  7. Java中entity(实体类)的写法规范

    在日常的Java项目开发中,entity(实体类)是必不可少的,它们一般都有很多的属性,并有相应的setter和getter方法.entity(实体类)的作用一般是和数据表做映射.所以快速写出规范的e ...

  8. tomcat占用cpu过高解决办法

    在工作中经常遇到tomcat占用cpu居高不下,针对这种情况有以下处理办法进行排查. jps --> 查看java的进程 top -Hp pid --> 根据jps得到的进程号(pid), ...

  9. JDK 生成数字证书

    JDK(keytool.exe)生成数字证书 2010-11-21 15:52 QUOTE: keytool JAVA是个密钥和证书管理工具.它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数 ...

  10. springmvc注解和参数传递

    一.SpringMVC注解入门 1. 创建web项目2. 在springmvc的配置文件中指定注解驱动,配置扫描器 <!-- mvc的注解驱动 --> <mvc:annotation ...