目录
0x00 产品定位
0x01 国外竞争产品分析
0x02 产品目标
0x03 市场机会
3.1 我们的机会在哪里
3.2 如何成功?
3.3 项目里程碑
0x04 产品功能详细架构设计(Product Proposal)
4.1 产品定位
4.2、产品功能详细设计
0x05 产品技术架构设计
0x06 Demo搭建
6.1 服务器端
6.1.1 Nginx安装部署
6.1.2 Django&uwsgi安装配置
6.2 Web后端
6.2.1 Php-fpm安装
6.2.2 Mysql扩展安装
6.2.3 Yaf扩展安装
首页 后端开发 php教程 云服务器安全设计

云服务器安全设计

Jun 23, 2016 pm 01:16 PM

0x00 产品定位

目前越来越多的初创企业把自己的业务系统架设在公有云上,包含:阿里云、Ucloud、青云、华为云和AWS。在云上的安全怎么保证,是目前摆在我们面前的最大问题,因为,互联网公司业务系统在不断迭代,迭代周期最少的有3天,而且架构也不断在改变。在这种频繁改变的过程中,云安全应该怎么保证?,云主机安全服务平台(Cloud security as a service),为多租户提供云主机安全服务的产品,减少用户业务系统攻击面,防止恶意的定向攻击(APT)。造成企业敏感信息泄露等,避免影响企业业务的安全事件的发生。

0x01 国外竞争产品分析

目前在云主机安全ToB的国外厂商归纳总结有以下几家:

技术方向 厂商
云安全信息和事件管理产品 Splunk、AlienVault
云主机安全产品 CloudPassage、Illumio、vArmour、FortyCloud
私有云服务器安全 TrendMicro、Symantec、McAfee
厂家 描述
Illumio 自适应安全
FortyCloud Cloud Network Firewall as a Service
vArmour 利用大数据分析技术,通过扫描进入网络的每一块数据来筛查疑似非法数据并对其进行标记,跟踪。
CloudPassage 服务器的安全配置管理、托管防火墙管理、入侵检测、服务器账号审计、事件报告与告警
Splunk 从海量机器数据中提取有价值的信息,并进行实时分析和展现
AlienVault 为客户提供SIEM解决方案。同时,AlienVault结合众包威胁情报平台提供了一个混合威胁管理解决方案。
TrendMicro,McAfee,Symantec VMware、Hyper-v、Linux KVM私有云虚拟机安全解决方案

0x02 产品目标

针对互联网金融中小企业用户。获取用户改进产品,互联网金融目标用户行业分析如下:

业务模式名称 业务模式详细描述 代表企业:安全业务需求
第三方支付企业模式 第三方支付企业指在收付款人之间作为中介机构提供网络支付、预付卡发行预受理、银行卡收单以及其他支付服务的非金融机构 支付宝、易宝支付、拉卡拉、财付通为代表的互联网支付企业,快钱、汇付天下为代表的金融型支付企业。
P2P网络小额信贷模式 通过P2P网络融资平台,借款人直接发布借款信息,出借人了解对方的身份信息、信用信息后,可以直接与借款人签署借贷合同,提供小额贷款,并能及时获知借款人的还款进度,获得投资回报。 代表企业:美国的prosper和lendingclubP2P公司,国内的人人贷、拍拍贷、红岭创投等 陆金所
众筹融资模式 所谓众筹平台,是指创意人向公众募集小额资金或其他支持,再将创意实施结果反馈给出资人的平台。网站为网友提供发起筹资创意,整理出资人信息,公开创意实施结果的平台,以与筹资人分成为主要赢利模式 代表企业:国外最早和最知名的平台是kickstarter,国内有点名时间、众筹网、淘梦网等 京东众筹、人人投、追梦网、大家投
虚拟电子货币模式 虚拟货币是一种计算机运算产生或者网络社区发行管理的网络虚拟货币,可以用来购买一些虚拟的物品,比如网络游戏当中的衣服、帽子、装备等,只要有人接受,也可以使用像比特币这样的虚拟货币购买现实生活当中的物品。 代表企业:国外的比特币、亚马逊币、Facebook币,国内的Q币等。
基于大数据的金融服务平台模式 通过打造类似去哪儿这样的金融产品垂直搜索引擎的方式,把有借款需求的个人和有放款需要的中小银行和小贷机构在一个平台上进行对接;然后通过广告费或者交易佣金的方式获得收入。 代表企业:国外的Bankrate(银率网),国内的融360、好贷网、金融界理财等
互联网银行模式(Internet bank or E-bank) 借助现代数字通信、互联网、移动通信及物联网技术,通过云计算、大数据等方式在线实现为客户提供存款、贷款、支付、结算、汇转、电子票证、电子信用、账户管理、货币互换、P2P金融、投资理财、金融信息等全方位无缝、快捷、安全和高效的互联网金融服务机构。互联网银行的便利性、高效性将给传统银行带来较大的挑战
互联网理财 通过互联网进行更高效的更便捷的钱生钱的事业 铜板街、格上理财、招财宝 - 蚂蚁金服、积木盒子、火球

0x03 市场机会

3.1 我们的机会在哪里

国内云主机安全服务平台有以下几家:

厂商名称 产品介绍
乌云唐朝巡航 借助众测试等社区运营模式产生的云主机安全解决方案,主要是及时响应服务器安全漏洞。
阿里云盾 DDoS防护,主机入侵防护,以及漏洞检测、木马检测等一整套安全服务
安全狗 基于主机WAF 和anti-DDoS功能
知道创宇 加速乐、云安全监控平台、ZoomEye大数据安全扫描平台
百度安全宝 云WAF企业版、DDoS云防护、应急响应
青藤云安全 自适应安全理念的产品化的国内第一家厂商

面对这些公司的竞争,我们的竞争力在于获得种子用户,完全开源的策略。提供安全运维服务。二次开发等服务。

3.2 如何成功?

支持云方式部署方式,快速获取用户。免费安装模式。

如果用户打算使用我们的解决方案,可以独立部署或者开放源代码。

KPI考核

统计安装用户数量、留存率,月付费用户转化率。免费用户

3.3 项目里程碑

0x04 产品功能详细架构设计(Product Proposal)

4.1 产品定位

通过以上国内外云安全公司产品分析,我认为云主机安全平台需要具备以下四个大功能模块。

开发的优先级如下:

  1. 基于日志大数据收集分析平台(P1)
  2. 基于基于Agent收集云主机相关精确的安全信息 (P2) 本模块需要大量的开发人员完成,如果获得天使轮融资后可以开发。
  3. 威胁情报模块(P2) 威胁情报这部分可以对接国内的威胁情报系统 例如:微步等。
  4. SDN网络安全防火墙模块(P2)防火墙模块目前还需要做更多的研究才能集成,建议使用linux主机上自带iptable实现。

4.2、产品功能详细设计

针对P1需要完成的功能,建立基于大数据分析平台,防范APT攻击。产品概念设计可以 为:基于日志的态势感知功能。

处理Web日志数据结构如下:

所选择的实现技术手段:

由于前期数据量没有到达一定的数量级,可以使用传统的关系型数据实现。当然如果本系统应用到大公司的时候可以迭代技术架构、hadoop或者storm来解决问题。

业务流程图:

核心界面设计:通过visio原型图表现。

核心界面首先,要画出原型图,那么,和用户接触最多的是web前端,所以,设计要精致。

(1)Web前端

Web前端分为四大功能模块

  1. Dashboard:显示攻击类型和攻击源
  2. Analysis:图形化分析详细的攻击方式
  3. Reporting: 以数据形式展示攻击类型、攻击源和详细攻击方式
  4. Configuration:参数配置(非核心模块就不展示了)

(2)Web管理后台

交互流程设计:正常应该通过Axure动画表现,由于本次设计不是特别复杂,只是几个功能模块的切换就不画交换流程图了。

0x05 产品技术架构设计

由于目前产品设计需要考虑高扩展性,所以技术选型大致如下:

0x06 Demo搭建

根据技术选型后,需要建立Demo 环境技术难点集中在服务器端和Web后端。那么下面说明一下这两部分搭建:

6.1 服务器端

组件名称 详细描述
操作系统 Centos 6.7 Final
Web前端服务器 Nginx/1.8.1
Web服务器 Django/1.7
Python解析器 uwsgi
Python语言 Python 2.7.10
Restful API架构 Tastypie

看到这个架构其实很多小朋友会问为啥要这么设计,太繁琐了?其实设计原则主要是为了将来的扩展性。Web前端服务器:本系统是一个公有云安全平台,用户量将来要不断的增加,使用Nginx可以做到横向扩展。

6.1.1 Nginx安装部署

Nginx部署过程:

  1. rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
  2. yum -y install nginx
  3. service nginx restart
  4. chkconfig nginx on

配置nginx在/etc/nginx/conf.d/中增加MyPythonServer.conf,内容如下:

#!bashhttp {    #负载均衡    upstream production_site{        server web1.xxx.com:8080 weight=6 max_fails=3 fail_timeout=20s;        server web2.xxx.com:8080 weight=3 max_fails=3 fail_timeout=20s;        server web3.xxx.com:8080 weight=7 max_fails=3 fail_timeout=20s;        server web4.xxx.com:8080 weight=8 max_fails=3 fail_timeout=20s;    }    server {    listen      8090;    server_name web1.xxx.com,web2.xxx.com,web3.xxx.com,web4.xxx.com;    charset     utf-8;    client_max_body_size 75M;    location / {        uwsgi_pass  django;        include     uwsgi_params;    }}
登录后复制

6.1.2 Django&uwsgi安装配置

#!bash[root@localhost venv]# pip install Django安装uWSGI[root@localhost venv]# pip install uwsgi[uwsgi]home=/data/Mydata/envchdir=/data/Mydata/uid=rootgid=rootwsgi-file=/data/Mydata/wsgi.pysocket=127.0.0.1:8001master=trueworkers=8pidfile=/data/Mydata/uwsgi.pidvacuum=truethunder-lock=trueenable-threads=trueharakiri=30post-buffering=4096daemonize=/data/Mydata/uwsgi.loglogger=file:/data/Mydata/uwsgi.log
登录后复制

6.2 Web后端

6.2.1 Php-fpm安装

nginx 安装忽略

#!bashcd /usr/local/src/ wget http://php.net/distributions/php-5.6.8.tar.gztar --zxvf  php-5.6.8.tar.gzyum install -y libxml2 libxml2-devel openssl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libmcrypt libmcrypt-devel mcrypt mhash./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --enable-fpm --disable-ipv6 --enable-pdo --with-pdo-mysql --with-openssl --with-mcrypt --with-mhash --enable-json --enable-mbstring --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --enable-zipmake make installcp /usr/local/php5/etc/php-fpm.conf.default   /usr/local/php5/etc/php-fpm.confcp /usr/local/src/php-5.6.8/sapi/fpm/init.d.php-fpm /usr/local/php5/sbin/ cd /usr/local/php5/sbin/ chmod 755 init.d.php-fpm ./init.d.php-fpm start Starting php-fpm done
登录后复制

配置Nginx来支持PHP

#!bashcd /etc/nginx/vi nginx.conf#打开gzipgzip    on;
登录后复制

配置vhost,假设域名为www.xxx.com

#!bashcd /etc/nginx/conf.d/vi www.xxx.com.conf#内容如下server {        listen 80;        server_name www.xxx.com xxx.com;        location / {                #开启ssi支持shtml                ssi on;                ssi_silent_errors on;                ssi_types text/shtml;                index index.shtml index.php index.htm index.html;                root /data/www/www.xxx.com;                #框架路由设置                if ( !-e $request_filename ) {                        rewrite ^(.*)$ /index.php?url=$1 last;                }        }        location ~.php$ {                root /data/www/www.xxx.com;                fastcgi_pass 127.0.0.1:9000;                fastcgi_index index.php;                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;                include fastcgi_params;        }        location ~.(jpg|jpeg|png|js|css) {                root /data/www/www.xxx.com;                expires 30d;        }}
登录后复制

测试一下 配置文件是否有错误

#!bash/etc/init.d/nginx configtestnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
登录后复制

新建info.php测试文件,内容为

#!php<?phpphpinfo();?>
登录后复制

然后:

#!bashvim /etc/hosts127.0.0.1  www.xxx.comcd /usr/local/src/php-5.6.8cp php.ini-production /usr/local/php5/etc/php.ini
登录后复制

至此nginx+php-fpm设置完成。

6.2.2 Mysql扩展安装

#!bashyum install mysql-devel
登录后复制

由于之前没有安装mysql服务,也没有安装php的mysql扩展,用是PDO方式,为适应老版本的joomla程序,再添加mysql.so扩展

方法如下:

1、进入php源代码目录:

#!bashcd /usr/local/src/php-5.6.8/extcd mysqlyum install autoconf
登录后复制

调用已经编译好的php可执行程序phpize,phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块

phpize的规则:去哪个目录下运行phpize文件,那么就会在该目录下生成一个configure文件。

#!bash/usr/local/php5/bin/phpize./configure --with-php-config=/usr/local/php5/bin/php-config --with-mysql --with-zlib-dir=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226/make && make install
登录后复制

完成后,可以看到no-debug-non-zts-20131226目录下生成了mysql.so文件

修改php.ini,去掉 ;extension=php_mysql.so 前面的分号。将 php_mysql.so 改成我们生成的 mysql.so 。

重启 php-fpm 后可以从phpinfo看到mysql扩展已经生效。

6.2.3 Yaf扩展安装

#!bashwget https://github.com/laruence/yaf/archive/master.zipunzip master.zip./configure --with-php-config=/usr/local/php5/bin/php-configmake && make installvim /usr/local/php5/etc/php.iniextension=yaf.so
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
说明PHP中的不同错误类型(注意,警告,致命错误,解析错误)。 说明PHP中的不同错误类型(注意,警告,致命错误,解析错误)。 Apr 08, 2025 am 12:03 AM

PHP中有四种主要错误类型:1.Notice:最轻微,不会中断程序,如访问未定义变量;2.Warning:比Notice严重,不会终止程序,如包含不存在文件;3.FatalError:最严重,会终止程序,如调用不存在函数;4.ParseError:语法错误,会阻止程序执行,如忘记添加结束标签。

PHP和Python:比较两种流行的编程语言 PHP和Python:比较两种流行的编程语言 Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

说明PHP中的安全密码散列(例如,password_hash,password_verify)。为什么不使用MD5或SHA1? 说明PHP中的安全密码散列(例如,password_hash,password_verify)。为什么不使用MD5或SHA1? Apr 17, 2025 am 12:06 AM

在PHP中,应使用password_hash和password_verify函数实现安全的密码哈希处理,不应使用MD5或SHA1。1)password_hash生成包含盐值的哈希,增强安全性。2)password_verify验证密码,通过比较哈希值确保安全。3)MD5和SHA1易受攻击且缺乏盐值,不适合现代密码安全。

PHP行动:现实世界中的示例和应用程序 PHP行动:现实世界中的示例和应用程序 Apr 14, 2025 am 12:19 AM

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

什么是HTTP请求方法(获取,发布,放置,删除等),何时应该使用? 什么是HTTP请求方法(获取,发布,放置,删除等),何时应该使用? Apr 09, 2025 am 12:09 AM

HTTP请求方法包括GET、POST、PUT和DELETE,分别用于获取、提交、更新和删除资源。1.GET方法用于获取资源,适用于读取操作。2.POST方法用于提交数据,常用于创建新资源。3.PUT方法用于更新资源,适用于完整更新。4.DELETE方法用于删除资源,适用于删除操作。

PHP:网络开发的关键语言 PHP:网络开发的关键语言 Apr 13, 2025 am 12:08 AM

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP如何安全地上载文件? PHP如何安全地上载文件? Apr 10, 2025 am 09:37 AM

PHP通过$\_FILES变量处理文件上传,确保安全性的方法包括:1.检查上传错误,2.验证文件类型和大小,3.防止文件覆盖,4.移动文件到永久存储位置。

解释self ::,parent ::和static :: in php oop中的区别。 解释self ::,parent ::和static :: in php oop中的区别。 Apr 09, 2025 am 12:04 AM

在PHPOOP中,self::引用当前类,parent::引用父类,static::用于晚静态绑定。1.self::用于静态方法和常量调用,但不支持晚静态绑定。2.parent::用于子类调用父类方法,无法访问私有方法。3.static::支持晚静态绑定,适用于继承和多态,但可能影响代码可读性。

See all articles