2014年1月9日星期四

安全网关之三:IPTables

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
安全网关之三:IPTables  阅读原文»

每日博报 精彩不止一点关闭

用户名:xudatie
文章数:3
评论数:0
访问量:513
无忧币:130
博客积分:90
博客等级:1
注册日期:2010-04-30

安全网关之三:IPTables

IPtables是基于包过滤的防火墙软件,可以在低配置的服务器上面运行良好,所有的Linux发行版都包含它。

在网络设备上的安全规则,通常是顺序匹配,例如Cisco设备的ACL。而IPTables的核心是Table Chain和Rules,数据包除了顺序匹配之外,还可以通过设定目标Chain来自由跳转。下图描述了数据包经过Table和Chain时的顺序。

wKiom1LM7XjTXm6rAAHJVCI5mNk932.jpg

  • Table的优先级是:RAW>MANGLE>NAT>FILTER。

  • 数据包的Chain流向是:PREROUTING->INPUT->FORWARD->OUT->POSTROUTING。

  • 每个Chain包含若干规则。这些规则将会被从上到下顺序匹配。

  • 规则一旦被匹配,数据包将会流向下一个Table和Chain。

用户访问线上环境的基本流程如下:

  • 用户登录OpenVPN系统,系统验证通过后,用户获取一个私有IP地址,同时系统记录其账号名。

  • 连接建立后,OpenVPN系统调用Connect脚本。

  • IPtables将用户所属IP加入到对应的规则组Chain中。

  • 用户获取到相应的访问权限。

  • 用户完成访问,断开连接,IPTables将用户占用IP地址从规则组Chain中去除。

由于安全网关主要是要在公司内网和线上环境的内网之间进行网络的转发和限制,本文主要使用了Table FILTER和Chain FORWARD。Filter是默认的Table。

通常的一条规则如下:

iptables -A FORWARD -s 1.1.1.1 -d 2.2.2.2 -p tcp --dport 80 -j DROP

在这个解决方案最初的时候,我尝试一条一条写规则,但是当我开始导入规则时,我碰到了大麻烦。

当我导入了100个用户,目标网段有50个,每个网段需要访问10个端口。我发现我一下得到了100*50*10条,即50000条规则, FORWARD链的长度变得非常长。极端情况,用户的数据包会经过50000条规则才被匹配到。

为了解决上面这个问题,我在系统中引入了组的概念,同时使用了自定义Chain进行规则的跳转:

  • 所有对象都被配置成组,例如:用户组,网络地址组,端口组。IPTables本身是没有区分数据包的用户或者用户组机制的。想要实现用户和用户组的判定,需要额外的脚本程序和配置数据库配合,这个解决方案建立了一个额外的配置数据库,利用OpenVPN用户帐号和用户IP地址的映射关系,来实现用户的权限设置。

  • FORWARD Chain中的规则为:iptables -A FORWARD -s 1.1.1.1 -j USERGROUP_1,假设每个用户都同时属于20个组,FORWARD规则数为:2000条规则。

  • USERGROUP_1 Chain中的规则为: iptables -A USERGROUP_1 -j RULE_1, 假设每个组同时有20个规则,USERGROUP_1中的规则数为:20条

  • RULE_1 Chain中的规则为:iptables -A RULE_1 -d 1.0.0.0/8 -j PORT_1,假设每个网段开放了10种不同组合的端口,SG_1规则数为:50*10=500条规则。

  • PORT_1 Chain中的规则为:iptables -A PORT_1 -p tcp --dport 80 -j ACCEPT,PORT_1规则数为10条。

这样,源地址为1.1.1.1的用户访问线上系统,最多会经过2000+20+500+10=2530条规则,这个长度已经比之前有了很大的改善。

本文出自 "计算机艺术" 博客,谢绝转载!

分享至 一键收藏,随时查看,分享好友!
昵称:
登录快速注册
内容:
返回顶部

Win8.1 “运行”在Ipad Mini上  阅读原文»

用户名:jackasd 文章数:29 评论数:10
访问量:11118:132:352:3 注册日期:2010-05-31

Win8.1 "运行"在Ipad Mini上

首先需要在本地建立Win8.1的虚拟机,开启远程桌面,关闭防火墙,具体在hypre-V中如何建立Win8虚拟机这里就不在多说了,网上有很多资料,注意硬盘配置为VHD格式,因为Azure只识别这个,如果你建立了VHDX的格式的话,可以用Convert-VHD的命令转换一下

http://technet.microsoft.com/zh-cn/library/hh848454(v=wps.620).aspx

clip_image002

无需做Sysprep,目前测试下来做完sysprep后,Azure虚拟机无法通过镜像的方式开启,个人猜测可能是由于Win8系统封装后,开机会有个配置界面,而在Azure上无法跳过这个界面,又没有管理口可以配置,远程桌面无法启动。

其次我们需要在Azure

接着在Azure上新建一个存储(当然用之前创建的也行),好将 vhd 磁盘上传上去,

clip_image003

建立好存储后,我们在存储中建立容器

clip_image004

准备就绪后,在本地安装Windows Azure PowerShell,并启动

clip_image005

启动后需要连接到Windows Azure,我们这里选择以证书的方式连接

=============================================================================

Windows Azure PowerShell 连接自己的的 Azure 有几种方式,详细见:https://www.windowsazure.com/en-us/manage/install-and-configure-windows-powershell/?fb=zh-cn

=============================================================================

这里我们用证书的方式登陆吧,首先获取证书

clip_image006

下载证书

clip_image007

导入证书

clip_image009

然后使用命令来上传我们的VHD

Add-AzureVhd -Destination http://[StorageAccout].blob.core.windows.net/[Container]/win81.vhd -LocalFilePath d:\win8.1.vhd

中括号中的内容替换为Azure中实际的存储账号和容器名称

随后VHD开始上传至Azure,需要多少时间呢?视VHD大小和网络上传带宽而定

clip_image010

clip_image011

上传完毕后在Azure上我们就可以看到自己的VHD了

clip_image013

VHD上传完毕后,我们开始建立自己的虚拟机了,由于我们没做过系统 ,所以直接做成Disk,在虚拟机界面,点击Disk,选择新建

clip_image015

clip_image016

建立虚机时选择从库中建立

clip_image018

选择我的磁盘,并选中我们之前建立的Disk

clip_image020

配置虚拟机相关属性

clip_image022

clip_image024

clip_image026

之后虚拟机便会建立,建立成功后采用传统的远程桌面即可连接,那么在此传统方式不做过多介绍,我们来看看在云时代下我们将如何移动办公、云办公

首先有一个平板电脑,在此我们为了测试微软跨平台的统一性,我们特地选择了Ipad Mini

在App Store中安装Microsoft Remote Desktop(此软件需要美国账号可下载,如何申请美国免费账号?Google、Bing、Baidu)

clip_image028

在Ipad上安装,并启动

没有评论:

发表评论