雲伺服器安全設計
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 產品定位
透過以上國內外雲安全公司產品分析,我認為雲主機安全平臺需要具備以下四個大功能模組。
開發的優先順序如下:
- 基於日誌大資料收集分析平臺(P1)
- 基於基於Agent收集雲主機相關精確的安全資訊 (P2) 本模組需要大量的開發人員完成,如果獲得天使輪融資後可以開發。
- 威脅情報模組(P2) 威脅情報這部分可以對接國內的威脅情報系統 例如:微步等。
- SDN網路安全防火牆模組(P2)防火牆模組目前還需要做更多的研究才能整合,建議使用linux主機上自帶iptable實現。
4.2、產品功能詳細設計
針對P1需要完成的功能,建立基於大資料分析平臺,防範APT攻擊。產品概念設計可以 為:基於日誌的態勢感知功能。
處理Web日誌資料結構如下:
所選擇的實現技術手段:
由於前期資料量沒有到達一定的數量級,可以使用傳統的關係型資料實現。當然如果本系統應用到大公司的時候可以迭代技術架構、hadoop或者storm來解決問題。
業務流程圖:
核心介面設計:透過visio原型圖表現。
核心介面首先,要畫出原型圖,那麼,和使用者接觸最多的是web前端,所以,設計要精緻。
(1)Web前端
Web前端分為四大功能模組
- Dashboard:顯示攻擊型別和攻擊源
- Analysis:圖形化分析詳細的攻擊方式
- Reporting: 以資料形式展示攻擊型別、攻擊源和詳細攻擊方式
- 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部署過程:
rpm -ivh
http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum -y install nginx
service nginx restart
chkconfig nginx on
配置nginx
在/etc/nginx/conf.d/中增加MyPythonServer.conf,內容如下:
#!bash
http {
#負載均衡
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
[[email protected] venv]# pip install Django
安裝uWSGI
[[email protected] venv]# pip install uwsgi
[uwsgi]
home=/data/Mydata/env
chdir=/data/Mydata/
uid=root
gid=root
wsgi-file=/data/Mydata/wsgi.py
socket=127.0.0.1:8001
master=true
workers=8
pidfile=/data/Mydata/uwsgi.pid
vacuum=true
thunder-lock=true
enable-threads=true
harakiri=30
post-buffering=4096
daemonize=/data/Mydata/uwsgi.log
logger=file:/data/Mydata/uwsgi.log
6.2 Web後端
6.2.1 Php-fpm安裝
nginx 安裝忽略
#!bash
cd /usr/local/src/
wget http://php.net/distributions/php-5.6.8.tar.gz
tar --zxvf php-5.6.8.tar.gz
yum 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-zip
make
make install
cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf
cp /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
#!bash
cd /etc/nginx/
vi nginx.conf
#開啟gzip
gzip on;
配置vhost,假設域名為www.xxx.com
#!bash
cd /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 configtest
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
新建info.php測試檔案,內容為
#!php
<?php
phpinfo();
?>
然後:
#!bash
vim /etc/hosts
127.0.0.1 www.xxx.com
cd /usr/local/src/php-5.6.8
cp php.ini-production /usr/local/php5/etc/php.ini
至此nginx+pho-fpm設定完成。
6.2.2 Mysql擴充套件安裝
#!bash
yum install mysql-devel
由於之前沒有安裝mysql服務,也沒有安裝php的mysql擴充套件,用是PDO方式,為適應老版本的joomla程式,再新增mysql.so擴充套件
方法如下:
1、進入php原始碼目錄:
#!bash
cd /usr/local/src/php-5.6.8/ext
cd mysql
yum 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擴充套件安裝
#!bash
wget https://github.com/laruence/yaf/archive/master.zip
unzip master.zip
./configure --with-php-config=/usr/local/php5/bin/php-config
make && make install
vim /usr/local/php5/etc/php.ini
extension=yaf.so
相關文章
- 雲伺服器簡單基礎的DEDECMS安全設定2021-01-27伺服器
- 雲伺服器安全嗎?雲伺服器有哪些優勢?2021-03-27伺服器
- 雲伺服器ECS安全:ECS安全組實踐(一)2017-08-10伺服器
- 雲伺服器ECS安全>ECS資料安全最佳實踐2017-08-11伺服器
- windowsserver2008阿里雲ECS伺服器安全設定2018-06-19WindowsServer阿里伺服器
- 為什麼程式設計師老愛買雲伺服器?2024-06-15程式設計師伺服器
- CentOS 伺服器安全設定2022-08-10CentOS伺服器
- 雲伺服器的貼身安全管家-企業主機安全2019-03-27伺服器
- 伺服器安全必備:設定VPS安全2019-01-18伺服器
- ECS彈性雲伺服器常用埠、安全組2019-07-10伺服器
- 伺服器的安全設定方法2022-10-12伺服器
- 指南 | 傳統企業如何設計“上雲”安全解決方案2019-04-03
- 阿里雲安全組設定FTP2018-03-30阿里FTP
- 雲伺服器的安全性遭到了質疑2019-11-15伺服器
- 有哪些確保雲伺服器安全的小技巧?2019-10-08伺服器
- Linux伺服器登入安全配置-億聯雲2021-03-09Linux伺服器
- “私有云”安全的“過渡”時期-“雲朵”方案的設計思路2017-11-09
- windows伺服器詳細安全設定2018-07-20Windows伺服器
- 安全設計原則2024-03-17
- 華納雲:如何保證海外伺服器的安全和速度?2022-11-24伺服器
- 雲伺服器:Apache快取策略設定2021-03-27伺服器Apache快取
- RESTFUL API 安全設計指南2020-08-19RESTAPI
- 域伺服器基礎設施設定與安全加固2022-03-06伺服器
- 雲設計模式介紹2024-09-23設計模式
- acl 伺服器程式設計框架設計要點2016-08-29伺服器程式設計框架
- 基於容器特點和傳統網路安全能力進行容器雲安全規劃設計2022-09-05
- 華納雲:網路安全和伺服器安全有什麼區別?如何保護您的網路伺服器2022-08-05伺服器
- Web伺服器程式設計2024-06-13Web伺服器程式設計
- 讀軟體開發安全之道:概念、設計與實施09安全設計2024-08-26
- 雲伺服器如何通過本地安全策略阻止特定IP訪問伺服器?2021-11-10伺服器
- websocket的埠,阿里雲伺服器安全組開放埠2022-04-24Web阿里伺服器
- 基於滴滴雲搭建安全穩定的 Memcached 伺服器2019-01-08伺服器
- 恆訊科技分析:保護雲伺服器安全有哪些措施?2022-05-31伺服器
- 周鴻禕:沒有一千臺伺服器別談雲安全2017-09-07伺服器
- 可信伺服器從基礎保障雲資料中心安全2017-09-04伺服器
- Java++:安全|API介面安全性設計2020-06-16JavaAPI
- 讓雲上使用者擁有安全感 可信或成雲伺服器標配安全能力之一!2021-07-28伺服器
- windows伺服器安全設定之提權篇2019-05-22Windows伺服器