博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iptables 实战演练
阅读量:6883 次
发布时间:2019-06-27

本文共 4773 字,大约阅读时间需要 15 分钟。

案例
公司有三个部门
工程部 2.10-2.20
软件部 2.21-2.30
经理办 2.31-2.40
上班时间 (周一___周五 08:20:00)
     工程部 ftp 下班后无限制
     软件部 http    不允许非法站点sina ,不允许使用迅雷,连接数最多3个,不允许qq,不允许下载电影,不允许浏览图片,下班后无限制 
     经理办公室    http qq 都可以,下班后无限制
dmz区域www服务器进行发布
使用iptable+l7 +squid+透明代理实现
 

   分析:

     对于本实验可在上班时使用squid透明代理以方便设置用户上网行为控制,同时使用iptables辅助限制用户上网行为. 下班时候采用NAT转换实现无限制.    Squid使用透明代理并设置监听地址和端口,各种上网规则. Iptables 使用较为严格的控制默认设置为DROP
 
实验拓补图如下:
 

 

 

基本设置
设置
SSHD
loopback
接口的通过
[root@localhost ~]# iptables -t filter -A INPUT -s 192.168.101.130 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
[root@localhost ~]# iptables -t filter -A OUTPUT -d 192.168.101.130 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
[root@localhost ~]# iptables -t filter -A INPUT -i lo -j ACCEPT
[root@localhost ~]# iptables -t filter -A OUTPUT -o lo -j ACCEPT
[root@localhost ~]# iptables -P INPUT DROP
[root@localhost ~]# iptables -P OUTPUT DROP
[root@localhost ~]# iptables -P FORWARD DROP
[root@localhost ~]# ping 127.0.0.1
测试 ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.436 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.045 ms
 
工程部配置如下
:
 
配置NAT eth0
出口的NAT
转换
[root@localhost ~]# iptables –t nat –A POSTROUTING -m iprange --src-range 192.168.2.10-192.168.2.20 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00 --timestop 20:00 -p tcp --dport 21 -o eth0 -j MASQUERADE
设置FORWARD
为ACCEPT
[root@localhost ~]# iptables -t filter -A FORWARD -m iprange --src-range 192.168.2.10-192.168.2.20 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00 --timestop 20:00 -p tcp --dport 21 -j ACCEPT
[root@localhost ~]# iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
载入模块
[root@localhost ~]# modprobe ip_nat_ftp
 
 
软件部配置如下
:  
配置80
端口的重定向为3128
[root@localhost ~]# iptables -t nat -A PREROUTING -m iprange --src-range 192.168.2.21-192.168.2.40 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00 --timestop 20:00 -p tcp --dport 80 -j REDIRECT --to-ports 3128
设置3128 INPUT
为ACCEPT
[root@localhost ~]# iptables -t filter -A INPUT -p tcp --dport 3128 -j ACCEPT
[root@localhost ~]# iptables -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
允许HTTP
和DNS
出去
[root@localhost ~]# iptables -t filter -I OUTPUT 3 -p tcp --dport 80 -j ACCEPT
[root@localhost ~]# iptables -t filter -I OUTPUT 3 -p udp --dport 53 -j ACCEPT
[root@localhost ~]# iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
设置客户机DNS
的NAT
转换
[root@localhost ~]# iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.2.21-192.168.2.40 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00 --timestop 20:00 -p udp --dport 53 -o eth0 -j MASQUERADE
设置客户机的DNS
查询可通过
[root@localhost ~]# iptables -t filter -I FORWARD 2 -m iprange --src-range 192.168.2.21-192.168.2.40 -p udp --dport 53 -j ACCEPT
限制迅雷和QQ
聊天
[root@localhost ~]# iptables -t filter -I FORWARD 3 -m iprange --src-range 192.168.2.21-192.168.2.30 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00 --timestop 20:00 -m layer7 --l7proto xunlei -j DROP
[root@localhost ~]# iptables -t filter -I FORWARD 3 -m iprange --src-range 192.168.2.21-192.168.2.30 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00 --timestop 20:00 -m layer7 --l7proto qq -j DROP
设置
squid
代理
修改 squid
的配置文档 
设置监听地址和端口并添加如下规则
927 http_port 192.168.2.1:3128 transparent
 
591 acl badip src 192.168.2.21-192.168.2.30/255.255.255.255
 592 acl worktime time 08:00-20:00
 593 acl badsite url_regex -i sina
 594 acl badcont urlpath_regex -i \.jpg$
 595 acl conn3 maxconn 3
 596 http_access deny badip worktime badsite
 597 http_access deny badip worktime badcont
 598 http_access deny badip conn3
设置下班无限制
使用NAT
并允许iptables
规则为通过
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -m time --weekdays Mon,Tue,Wek,Thu,Fri --timestart 20:01 --timestop 23:59 -o eth0 -j MASQUERADE
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -m time --weekdays Mon,Tue,Wek,Thu,Fri --timestart 00:00 --timestop 07:59 -o eth0 -j MASQUERADE
[root@localhost ~]# iptables -t filter -I FORWARD 5 -s 192.168.2.0/24 -m time --weekdays Mon,Tue,Wek,Thu,Fri --timestart 00:00 --timestop 07:59 -j ACCEPT
[root@localhost ~]# iptables -t filter -I FORWARD 5 -s 192.168.2.0/24 -m time --weekdays Mon,Tue,Wek,Thu,Fri --timestart 20:01 --timestop 23:59 -j ACCEPT
 
服务器设置
使用DNAT
并设置iptables
规则为通过防火墙
[root@localhost ~]# iptables -t nat –A PREROUTING -d 192.168.101.25 -p tcp --dport 80 -j DNAT --to 192.168.3.100
[root@localhost ~]# iptables -t filter -I FORWARD 8 -d 192.168.3.100 -p tcp --dport 80 -j ACCEPT
配置 192.68.3.100
的客户机的Apache
[root@localhost ~]# yum -y install httpd
 [root@localhost ~]# vim /var/www/html/index.html
     Hi ~~   This is my web!
[root@localhost ~]# service httpd start
 
配置截图
:

 

 

 

本文出自 “” 博客,请务必保留此出处

转载地址:http://cxjbl.baihongyu.com/

你可能感兴趣的文章
JavaScript随机数
查看>>
ASP.NET验证控件——RequiredFieldValidator
查看>>
strstr
查看>>
MySQL 条件 select case 的实现(解决 零 做分母的问题 )
查看>>
openNebula rgister img instance vms error collections
查看>>
error Infos
查看>>
PL/sql配置相关
查看>>
接着浅析table-cell的简单应用
查看>>
Project 10:简单图像的绘制
查看>>
(第五条)避免创建不必要的对象
查看>>
MongoDB的快速手动安装
查看>>
面试常见问题(转载)
查看>>
洛谷P3306 随机数生成器
查看>>
《平凡的世界》中田晓霞和孙少平的爱情
查看>>
【资源共享】《DDR常见问题简单排查》
查看>>
Spot 安装和使用
查看>>
第1件事 产品经理工作的8个核心步骤
查看>>
Http协议的post和get提交方式。
查看>>
JSP、Java和Servlet获取当前工程的路径
查看>>
数据归一化
查看>>