• 启用cgroups v2

    Azure 笔记

    支持cgroup v2的内核环境,如Ubuntu 20.04LTS

    判断系统是否启用了cgroups v2

    cat /sys/fs/cgroup/cgroup.controllers

    如果提示not found,说明是v1

    若已启用v2则会打印出生效中的控制器,例如:

    调整grub linux内核引导参数:

    sudo vim /etc/default/grub

    在GRUB_CMDLINE_LINUX一行添加:

    systemd.unified_cgroup_hierarchy=1

    更新grub配置,并重启系统

    sudo update-grub

    sudo reboot

    重启后系统将使用cgroups v2作为默认控制器

    使用以下命令确认是否开启

    mount | grep cgroup2

  • 开启 BBR

    开启 BBR

    开机后 uname -r 看看是不是内核 >= 4.9。
    执行 lsmod | grep bbr,如果结果中没有 tcp_bbr 的话就先执行:

    sudo modprobe tcp_bbr
    echo "tcp_bbr" | sudo tee --append /etc/modules-load.d/modules.conf
    

    执行

    echo "net.core.default_qdisc=fq" | sudo tee --append /etc/sysctl.conf
    echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee --append /etc/sysctl.conf
    

    保存生效
    sudo sysctl -p
    执行

    sysctl net.ipv4.tcp_available_congestion_control
    sysctl net.ipv4.tcp_congestion_control
    

    如果结果都有 bbr,则证明你的内核已开启 BBR。
    执行 lsmod | grep bbr,看到有 tcp_bbr 模块即说明 BBR 已启动。

  • CentOS 7 TCP BBR

    CentOS 7

    • 下载更换内核,最新内核查看这里
    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

    To install ELRepo for RHEL-8 or CentOS-8:
    yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

    To install ELRepo for RHEL-7, SL-7 or CentOS-7:
    yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

    To install ELRepo for RHEL-6, SL-6 or CentOS-6:
    yum install https://www.elrepo.org/elrepo-release-6.el6.elrepo.noarch.rpm

    
    yum --enablerepo=elrepo-kernel install kernel-ml -y
    
    • 查看内核是否安装成功
    rpm -qa | grep kernel
    
    • 删除旧内核(可选)
    rpm -ev 旧内核
    
    • 更新 grub 系统引导文件并重启
    egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
    grub2-set-default 0  # default 0 表示第一个内核设置为默认运行, 选择最新内核就对了
    reboot
  • Azure上Linux虚拟机加载磁盘

    1,首先在Azure的Portal上挂载新的硬盘
    Azure磁盘
    2,以新加的磁盘为SDC为例。
    fdisk  /dev/sdc      进入到新添加的硬盘中
    Command (m for help): n     创建新分区
    Command action
    e   extended
    p   primary partition (1-4)
    p                          创建主分区
    Partition number (1-4): 1          新建的主分区序号
    First cylinder (1-10402, default 1):
    Using default value 1
    Last cylinder or +size or +sizeM or +sizeK (1-10402, default 10402) 按照默认选择会占满整个分区
    Command (m for help): w       保存创建的主分区
    3,使新创建的分区在系统中立即生效
    partprobe
    4,格式化新创建的分区
    mkfs.ext3 /dev/sdc1
    5,自动挂载
    使用blkid命令查看磁盘UUID
    显示类似如下
    /dev/sdb1: UUID=”74e83ff5-5424-4691-af3e-8d3338af63e2″ TYPE=”ext4″ PARTUUID=”b57 48cc3-01″
    /dev/sda1: UUID=”55d984c8-7c8a-4dbe-bde6-a7bb5b9a24fc” TYPE=”ext4″
    /dev/sdc1: UUID=”bdd05fda-f411-40d4-8ff0-dca82bb17e1a” TYPE=”ext3″ PARTUUID=”383 cb8a4-01″
    编辑/etc/fstab
    # /etc/fstab: static file system information.
    UUID=55d984c8-7c8a-4dbe-bde6-a7bb5b9a24fc / ext4 errors=remount-ro 0 1
    UUID=bdd05fda-f411-40d4-8ff0-dca82bb17e1a /mnt/data ext3 defaults 0 0

  • Azure上Linux虚拟机原生挂载Swap分区的办法

    编辑/etc/waagent.conf文件。
    找到已下两行修改。其中SwapSize用MB计量51200=50GB
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=51200

  • 转:SQL Server 2012 各版本功能比较

    SQL Server 2012 各版本功能比较 – zock – 博客园

    有关不同版本的 SQL Server 2012 所支持的功能的详细信息。

    功能名称 Enterprise 商业智能 Standard Web Express with Advanced Services Express with Tools Express
    单个实例使用的最大计算能力(SQL Server 数据库引擎)1 操作系统最大值 限制为 4 个插槽或 16 核,取二者中的较小值 限制为 4 个插槽或 16 核,取二者中的较小值 限制为 4 个插槽或 16 核,取二者中的较小值 限制为 1 个插槽或 4 核,取二者中的较小值 限制为 1 个插槽或 4 核,取二者中的较小值 限制为 1 个插槽或 4 核,取二者中的较小值
    单个实例使用的最大计算能力(Analysis Services、Reporting Services)1 操作系统支持的最大值 操作系统支持的最大值 限制为 4 个插槽或 16 核,取二者中的较小值 限制为 4 个插槽或 16 核,取二者中的较小值 限制为 1 个插槽或 4 核,取二者中的较小值 限制为 1 个插槽或 4 核,取二者中的较小值 限制为 1 个插槽或 4 核,取二者中的较小值
    利用的最大内存(SQL Server 数据库引擎) 操作系统支持的最大值 64 GB 64 GB 64 GB 1 GB 1 GB 1 GB
    利用的最大内存 (Analysis Services) 操作系统支持的最大值 操作系统支持的最大值 64 GB 不适用 不适用 不适用 不适用
    利用的最大内存 (Reporting Services) 操作系统支持的最大值 操作系统支持的最大值 64 GB 64 GB 4 GB 不适用 不适用
    最大关系数据库大小 524 PB 524 PB 524 PB 524 PB 10 GB 10 GB 10 GB

    高可用性(始终启用)

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    服务器内核支持1

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    日志传送

    支持

    支持

    支持

    支持

    数据库镜像

    支持

    支持(仅支持“完全”安全级别)

    支持(仅支持“完全”安全级别)

    仅见证服务器

    仅见证服务器

    仅见证服务器

    仅见证服务器

    故障转移群集

    支持(节点支持:操作系统最大值)

    支持(节点支持:2)

    支持(节点支持:2)

    备份压缩

    支持

    支持

    支持

    数据库快照

    支持

    AlwaysOn 可用性组

    支持

    SQL Server 多子网群集

    支持

    连接控制器 (Connection Director)

    支持

    联机页面和文件还原

    支持

    联机索引

    支持

    联机架构更改

    支持

    快速恢复

    支持

    镜像备份

    支持

    热添加内存和 CPU2

    支持

     

    伸缩性和性能

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    多实例支持

    50

    50

    50

    50

    50

    50

    50

    表和索引分区

    支持

    数据压缩

    支持

    资源调控器

    支持

    分区表并行度

    支持

    多个 Filestream 容器

     

    安全性

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    基本审核

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    精细审核

    支持

    透明数据库加密

    支持

    可扩展的密钥管理

    支持

     

    复制

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    SQL Server 更改跟踪

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    合并复制

    支持

    支持

    支持

    支持(仅订阅服务器)

    支持(仅订阅服务器)

    支持(仅订阅服务器)

    支持(仅订阅服务器)

    事务复制

    支持

    支持

    支持

    支持(仅订阅服务器)

    支持(仅订阅服务器)

    支持(仅订阅服务器)

    支持(仅订阅服务器)

    快照复制

    支持

    支持

    支持

    支持(仅订阅服务器)

    支持(仅订阅服务器)

    支持(仅订阅服务器)

    支持(仅订阅服务器)

    异类订阅服务器

    支持

    支持

    支持

    Oracle 发布

    支持

    对等事务复制

    支持

     

    管理工具

    能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    SQL 管理对象 (SMO)

    支持

    支持

    支持1

    支持

    支持

    支持

    支持

    SQL 配置管理器

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    SQL CMD(命令提示工具)

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    SQL Server Management Studio

    支持

    支持

    支持

    支持

    支持

    支持

    分布式重播 – 管理工具

    支持

    支持

    支持

    支持

    支持

    支持

    分布式重播 – 客户端

    支持

    支持

    支持

    支持

    分布式重播 – 控制器

    支持(Enterprise 版支持最多 16 个客户端、Developer 版仅支持 1 个客户端)

    支持(仅支持 1 个客户端)

    支持(仅支持 1 个客户端)

    支持(仅支持 1 个客户端)

    SQL Profiler

    支持

    支持

    支持

    不支持2

    不支持2

    不支持2

    不支持2

    SQL Server 代理

    支持

    支持

    支持

    支持

    Microsoft System Center Operations Manager 管理包

    支持

    支持

    支持

    支持

    数据库优化顾问 (DTA)

    支持

    支持

    支持3

    支持3

     

    RDBMS 可管理性

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    用户实例

    支持

    支持

    支持

    专用管理连接

    支持

    支持

    支持

    支持

    支持(受跟踪标志控制)

    支持(受跟踪标志控制)

    支持(受跟踪标志控制)

    PowerShell 脚本支持

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    SysPrep 支持1

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    支持数据层应用程序组件操作 – 提取、部署、升级、删除

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    策略自动执行(检查计划和更改)

    支持

    支持

    支持

    支持

    性能数据收集器

    支持

    支持

    支持

    支持

    能够作为多实例管理中的托管实例注册

    支持

    支持

    支持

    支持

    标准性能报表

    支持

    支持

    支持

    支持

    计划指南和计划指南的计划冻结

    支持

    支持

    支持

    支持

    使用 NOEXPAND 提示的索引视图的直接查询

    支持

    支持

    支持

    支持

    自动的索引视图维护

    支持

    支持

    支持

    支持

    分布式分区视图

    支持

    部分支持。 不能更新分布式分区视图

    部分支持。 不能更新分布式分区视图

    部分支持。 不能更新分布式分区视图

    部分支持。 不能更新分布式分区视图

    部分支持。 不能更新分布式分区视图

    部分支持。 不能更新分布式分区视图

    并行索引操作

    支持

    查询优化器自动使用索引视图

    支持

    并行一致性检查

    支持

    SQL Server 实用工具控制点

    支持

    开发工具

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    Microsoft Visual Studio 集成

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    SQL Server Developer Studio

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    Intellisense(Transact-SQL 和 MDX)1

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    SQL Server 数据工具 (SSDT)

    支持

    支持

    支持

    支持

    支持

    SQL 查询编辑和设计工具1

    支持

    支持

    支持

    版本控制支持1

    支持

    支持

    支持

    MDX 编辑、调试和设计工具1

    支持

    支持

    支持

    可编程性

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    公共语言运行时 (CLR) 集成

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    本机 XML 支持

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    XML 索引

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    MERGE 和 UPSERT 功能

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    FILESTREAM 支持

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    FileTable

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    日期和时间数据类型

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    国际化支持

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    全文和语义搜索

    支持

    支持

    支持

    支持

    支持

    查询中的语言规范

    支持

    支持

    支持

    支持

    支持

    Service Broker(消息传递)

    支持

    支持

    支持

    不支持(仅客户端)

    不支持(仅客户端)

    不支持(仅客户端)

    不支持(仅客户端)

    Web 服务(HTTP/SOAP 端点)

    支持

    支持

    支持

    支持

    T-SQL 端点

    支持

    支持

    支持

    支持

     

    Integration Services

    功能

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    SQL Server 导入和导出向导

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    内置数据源连接器

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    SSIS 设计器和运行时

    支持

    支持

    支持

    基本转换

    支持

    支持

    支持

    基本数据探查工具

    支持

     

    Integration Services – 高级适配器

    能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    高性能 Oracle 目标

    支持

    高性能 Teradata 目标

    支持

    SAP BW 源和目标

    支持

    数据挖掘模型定型目标适配器

    支持

    维度处理目标适配器

    支持

    分区处理目标适配器

    支持

     

    Integration Services – 高级转换

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    持久性(高性能)查找

    支持

    数据挖掘查询转换

    支持

    模糊分组和查找转换

    支持

    术语提取和查找转换

    支持

     

    Master Data Services

    注意

    • Master Data Services 仅适用于 Business Intelligence 版和 Enterprise 版的 64 位版本。
    • 只有从 SQL Server 2008 R2 Enterprise 升级时 SQL Server 2012 Enterprise 才可用。

     

    功能

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    Master Data Services 数据库

    支持

    支持

    主数据管理器 Web 应用程序

    支持

    支持

     

    数据仓库

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    在无需数据库的情况下创建多维数据集

    支持

    支持

    支持

    自动生成临时和数据仓库架构

    支持

    支持

    支持

    变更数据捕获

    支持

    星型联接查询优化

    支持

    可扩展的只读 Analysis Services 配置

    支持

    主动缓存

    支持

    针对已分区表和索引的并行查询处理

    支持

    列存储索引

    支持

     

    Analysis Services

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    可扩展的共享数据库(附加/分离,只读数据库)

    支持

    支持

    高可用性

    支持

    支持

    支持

    可编程性(AMO、ADOMD.Net、OLEDB、XML/A、ASSL)

    支持

    支持

    支持

     

    BI 语义模型(多维)

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    半累加性度量值

    支持

    支持

    层次结构

    支持

    支持

    支持

    KPI

    支持

    支持

    支持

    透视

    支持

    支持

    操作

    支持

    支持

    支持

    帐户智能

    支持

    支持

    支持

    时间智能

    支持

    支持

    支持

    自定义汇总

    支持

    支持

    支持

    写回多维数据集

    支持

    支持

    支持

    写回维度

    支持

    支持

    写回单元

    支持

    支持

    支持

    钻取

    支持

    支持

    支持

    高级层次结构类型(父子、不规则层次结构)

    支持

    支持

    支持

    高级维度(引用维度、多对多维度)

    支持

    支持

    支持

    链接度量值和维度

    支持

    支持

    转换

    支持

    支持

    聚合

    支持

    支持

    支持

    多个分区

    支持

    支持

    支持,最多 3 个

    主动缓存

    支持

    支持

    自定义程序集(存储过程)

    支持

    支持

    支持

    MDX 查询和脚本

    支持

    支持

    支持

    基于角色的安全模型

    支持

    支持

    支持

    维度和单元级别的安全性

    支持

    支持

    支持

    可扩展字符串存储

    支持

    支持

    支持

    MOLAP、ROLAP、HOLAP 存储模式

    支持

    支持

    支持

    二进制和压缩的 XML 传输

    支持

    支持

    支持

    推送模式处理

    支持

    支持

    直接写回

    支持

    支持

    度量值表达式

    支持

    支持

     

    BI 语义模型(表格)

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    层次结构

    支持

    支持

    KPI

    支持

    支持

    半累加性度量值

    支持

    支持

    透视

    支持

    支持

    翻译

    支持

    支持

    DAX 计算、DAX 查询、MDX 查询

    支持

    支持

    行级安全性

    支持

    支持

    分区

    支持

    支持

    VertiPaq 和 DirectQuery 存储模式(仅限表格)

    支持

    支持

     

    PowerPivot for SharePoint

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    基于共享服务体系结构的 SharePoint 场集成

    支持

    支持

    用量报告

    支持

    支持

    运行状况监视规则

    支持

    支持

    PowerPivot 库

    支持

    支持

    PowerPivot 数据刷新

    支持

    支持

    PowerPivot 数据馈送

    支持

    支持

     

    数据挖掘

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    标准算法

    支持

    支持

    支持

    数据挖掘工具(向导、编辑器、查询生成器)

    支持

    支持

    支持

    交叉验证

    支持

    支持

    挖掘结构数据的筛选子集的模型

    支持

    支持

    时序:ARTXP 和 ARIMA 方法之间的自定义混和

    支持

    支持

    时序:使用新数据的预测

    支持

    支持

    无限制并发数据挖掘查询

    支持

    支持

    数据挖掘算法的高级配置和优化选项

    支持

    支持

    支持插件算法

    支持

    支持

    并行模型处理

    支持

    支持

    时序:跨序列预测

    支持

    支持

    关联规则的无限制属性

    支持

    支持

    序列预测

    支持

    支持

    Naïve Bayes、神经网络和逻辑回归的多个预测目标

    支持

    支持

     

    Reporting Services

    Reporting Services 的功能

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    支持的目录 DB SQL Server 版本

    Standard 或更高版本

    Standard 或更高版本

    Standard 或更高版本

    Web

    Express

    支持的数据源 SQL Server 版本

    所有 SQL Server 版本

    所有 SQL Server 版本

    所有 SQL Server 版本

    Web

    Express

    报表服务器

    支持

    支持

    支持

    支持

    支持

    报表设计器

    支持

    支持

    支持

    支持

    支持

    报表管理器

    支持

    支持

    支持

    支持

    支持

    基于角色的安全性

    支持

    支持

    支持

    支持

    Word 导出和 RTF 格式支持

    支持

    支持

    支持

    支持

    支持

    增强的仪表和图表

    支持

    支持

    支持

    支持

    支持

    导出到 Excel、PDF 和图像

    支持

    支持

    支持

    支持

    支持

    自定义身份验证

    支持

    支持

    支持

    支持

    支持

    作为数据馈送的报表

    支持

    支持

    支持

    支持

    支持

    模型支持

    支持

    支持

    支持

    支持

    为基于角色的安全性创建自定义角色

    支持

    支持

    支持

    模型项安全性

    支持

    支持

    支持

    无限制链接点击

    支持

    支持

    支持

    共享组件库

    支持

    支持

    支持

    电子邮件和文件共享订阅和计划

    支持

    支持

    支持

    报表历史记录、执行快照和缓存

    支持

    支持

    支持

    SharePoint 集成

    支持

    支持

    支持

    远程和非 SQL 数据源支持1

    支持

    支持

    支持

    数据源、传递和呈现、RDCE 可扩展性

    支持

    支持

    支持

    数据驱动报表订阅

    支持

    支持

    扩展部署(Web 场)

    支持

    支持

    警报2

    支持

    支持

    Power View2

    支持

    支持

     

    报表服务器数据库的服务器版本要求

    创建报表服务器数据库时,并非所有版本的 SQL Server 均可用来承载数据库。 下表显示了可用于特定 Reporting Services 版本的数据库引擎版本。

    对于此 SQL Server Reporting Services 版本

    使用此版本的数据库引擎实例来承载数据库

    Enterprise

    Standard Edition、Business Intelligence Enterprise Edition(本地或远程)

    商业智能

    Standard Edition、Business Intelligence Enterprise Edition(本地或远程)

    Standard

    Standard Edition、Enterprise Edition(本地或远程)

    Web

    Web Edition(仅用于本地)

    Express with Advanced Services

    Express with Advanced Services(仅用于本地)。

    Evaluation

    Evaluation

     

    商业智能客户端

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    报表生成器

    支持

    支持

    支持

    用于 Excel 和 Visio 2010 的数据挖掘外接程序

    支持

    支持

    支持

    PowerPivot for Excel 2010

    支持

    支持

    Master Data Services 用于 Excel 的外接程序

    支持

    支持

     

    空间和位置服务

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    空间索引

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    平面和大地测量数据类型

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    高级空间库

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    导入/导出业界标准的空间数据格式

    支持

    支持

    支持

    支持

    支持

    支持

    支持

     

    其他数据库服务

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    SQL Server Migration Assistant

    支持

    支持

    支持

    支持

    支持

    支持

    支持

    数据库邮件1

    支持

    支持

    支持

    支持

     
     

     

    其他组件

    功能名称

    Enterprise

    商业智能

    Standard

    Web

    Express with Advanced Services

    Express with Tools

    Express

    Data Quality Services

    支持

    支持

    StreamInsight

    StreamInsight Premium Edition

    StreamInsight Standard Edition

    StreamInsight Standard Edition

    StreamInsight Standard Edition

    StreamInsight HA

    StreamInsight Premium Edition

  • 转:使用Json Template在Azure China创建ARM类型的虚拟机

    前面几篇文章介绍过Azure的两种VM的模式,包括ASM和ARM。并且介绍了如何用Azure CLI和PowerShell创建虚拟机。本文将介绍如何采用Json的Template来创建基于ARM的VM。
    当然采用Json Template的方式创建虚拟机是几种方式中最好的,这样可以便于批量部署、Json文件可以重用。
    ARM的Template的格式采用的是Json的格式。其需要的几个部分如下:

    需要定义的有:parameters,variables,resources和outputs。但只有resources是必须的。
    由于Template的内容比较复杂,一般都采用复制已有的Template Jason文件修改的方式。
    目前,在Github上有大量的Azure ARM Jason Template,可以下载修改使用。
    具体的网址在:
    https://github.com/Azure/azure-quickstart-templates
    比如我们要创建一台CentOS 6.5的Linux虚拟机。在上面的链接中,没有相应的template。我们通过一台Ubuntu的Template进行修改。
    首先下载两个Jason文件:
    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-linux/azuredeploy.json
    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-linux/azuredeploy.parameters.json
    第一个文件是部署文件,第二个文件是参数文件。
    我们首先看部署文件:
    一、修改parameter中的内容
    1 把Ubuntu版本改成CentOS版本:

    复制代码
        "ubuntuOSVersion": {
          "type": "string",
          "defaultValue": "14.04.2-LTS",
          "allowedValues": [
            "12.04.5-LTS",
            "14.04.2-LTS",
            "15.10"
          ],
    复制代码

     
    改成

    复制代码
        "CentOSVersion": {
          "type": "string",
          "defaultValue": "6.5",
          "allowedValues": [
            "6.5",
            "6.6",
            "7.0",
            "7.1"
          ],
    复制代码

     
    2 把metadata的描述更改

    "metadata": {
        "description": "The Ubuntu version for the VM. This will pick a fully patched image of this given Ubuntu version. Allowed values: 12.04.5-LTS, 14.04.2-LTS, 15.10."
    }

     
    改为:

    "metadata": {
        "description": "The CentOS version for the VM. This will pick a fully patched image of this given CentOS version. Allowed values: 6.5, 6.6, 7.0, 7.1."
    }

     
    二、修改variables中的内容
    原始的变量定义如下:

    复制代码
      "variables": {
        "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'salinuxvm')]",
        "dataDisk1VhdName": "datadisk1",
        "imagePublisher": "Canonical",
        "imageOffer": "UbuntuServer",
        "OSDiskName": "osdiskforlinuxsimple",
        "nicName": "myVMNic",
        "addressPrefix": "10.0.0.0/16",
        "subnetName": "Subnet",
        "subnetPrefix": "10.0.0.0/24",
        "storageAccountType": "Standard_LRS",
        "publicIPAddressName": "myPublicIP",
        "publicIPAddressType": "Dynamic",
        "vmStorageAccountContainerName": "vhds",
        "vmName": "MyUbuntuVM",
        "vmSize": "Standard_D1",
        "virtualNetworkName": "MyVNET",
        "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]",
        "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
        "apiVersion": "2015-06-15"
      },
    复制代码

     
    更改为:

    复制代码
      "variables": {
        "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'salinuxvm')]",
        "dataDisk1VhdName": "datadisk1",
        "imagePublisher": "OpenLogic",
        "imageOffer": "CentOS",
        "OSDiskName": "osdiskforlinuxsimple",
        "nicName": "myVMNic",
        "addressPrefix": "10.0.0.0/16",
        "subnetName": "Subnet",
        "subnetPrefix": "10.0.0.0/24",
        "storageAccountType": "Standard_LRS",
        "publicIPAddressName": "myPublicIP",
        "publicIPAddressType": "Dynamic",
        "vmStorageAccountContainerName": "vhds",
        "vmName": "MyCentOSVM",
        "vmSize": "Standard_A1",
        "virtualNetworkName": "MyVNET",
        "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]",
        "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
        "apiVersion": "2015-06-15"
      },
    复制代码

     
    修改完部署文件后,修改参数文件:
    参数文件如下:

    复制代码
    {
      "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "adminUsername": {
          "value": "azureUser"
        },
        "adminPassword": {
          "value": "GEN-PASSWORD"
        },
        "dnsLabelPrefix": {
          "value": "GEN-UNIQUE"
        },
        "ubuntuOSVersion": {
          "value": "14.04.2-LTS"
        }
      }
    }
    复制代码

     
    更改为:

    复制代码
    {
      "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "adminUsername": {
          "value": "hengwei"
        },
        "adminPassword": {
          "value": "abc@123456"
        },
        "dnsLabelPrefix": {
          "value": "hwvm"
        },
        "CentOSVersion": {
          "value": "6.5"
        }
      }
    }
    复制代码

     
     
    并把两个文件上传到Github上,链接如下:
    https://raw.githubusercontent.com/hengv/Hengwei/Azure/101-simple-linux/azuredeploy.json
    https://raw.githubusercontent.com/hengv/Hengwei/Azure/101-simple-linux/azuredeploy.parameters.json
    下面可以通过PowerShell命令通过Jason Template创建VM了:

    复制代码
    New-AzureRmResourceGroup -Name hw01 -Location chinaeast
    ResourceGroupName : hw01
    Location          : chinaeast
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/xxxxxxxx/resourceGroups/hw01
    复制代码
    复制代码
    New-AzureRmResourceGroupDeployment -Name hwvm01 -ResourceGroupName hw01 -TemplateUri https://raw.githubusercontent.com/hengv/Hengwei/Azure/101-simple-linux/azuredeploy.json -TemplateParameterUri https://raw.githubusercontent.com/hengv/Hengwei/Azure/101-simple-linux/azuredeploy.parameters.json -Mode Incremental
    DeploymentName          : hwvm01
    ResourceGroupName       : hw01
    ProvisioningState       : Succeeded
    Timestamp               : 2016/7/1 14:09:58
    Mode                    : Incremental
    TemplateLink            :
                              Uri            : https://raw.githubusercontent.com/hengv/Hengwei/Azure/101-simple-linux/azuredeploy.json
                              ContentVersion : 1.0.0.0
    Parameters              :
                              Name             Type                       Value
                              ===============  =========================  ==========
                              adminUsername    String                     hengwei
                              adminPassword    SecureString
                              dnsLabelPrefix   String                     hwvm
                              centOSVersion    String                     6.5
    Outputs                 :
                              Name             Type                       Value
                              ===============  =========================  ==========
                              hostname         String                     hwvm.chinaeast.cloudapp.azure.com
                              sshCommand       String                     ssh hengwei@hwvm.chinaeast.cloudapp.azure.com
    DeploymentDebugLogLevel :
    复制代码

     
    创建成功。
    再通过下面的命令查看:

    复制代码
    get-azurermvm
    RequestId                         : afe8fb47-4e2f-434f-aa40-4d230a549598
    StatusCode                        : OK
    ResourceGroupName                 : HW01
    Id                                : /subscriptions/xxxxxxxx/resourceGroups/HW01/providers/Microsoft.Compute/virtualMachines/MyCentOSVM
    Name                              : MyCentOSVM
    Type                              : Microsoft.Rest.Azure.AzureOperationResponse`1[Microsoft.Rest.Azure.IPage`1[Microsoft.Azure.Management.Compute.Models.VirtualMachine]]
    Location                          : chinaeast
    Tags                              : {}
    DiagnosticsProfile                :
      BootDiagnostics                 :
        Enabled                       : True
        StorageUri                    : https://eyyvnizdwsddusalinuxvm.blob.core.chinacloudapi.cn/
    HardwareProfile                   :
      VmSize                          : Standard_A1
    NetworkProfile                    :
      NetworkInterfaces[0]            :
        Id                            : /subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Network/networkInterfaces/myVMNic
    OSProfile                         :
      ComputerName                    : MyCentOSVM
      AdminUsername                   : hengwei
      LinuxConfiguration              :
        DisablePasswordAuthentication : False
    ProvisioningState                 : Succeeded
    StorageProfile                    :
      ImageReference                  :
        Publisher                     : OpenLogic
        Offer                         : CentOS
        Sku                           : 6.5
        Version                       : latest
      OsDisk                          :
        OsType                        : Linux
        Name                          : osdisk
        Vhd                           :
          Uri                         : https://eyyvnizdwsddusalinuxvm.blob.core.chinacloudapi.cn/vhds/osdiskforlinuxsimple.vhd
        Caching                       : ReadWrite
        CreateOption                  : FromImage
      DataDisks[0]                    :
        Lun                           : 0
        Name                          : datadisk1
        Vhd                           :
          Uri                         : https://eyyvnizdwsddusalinuxvm.blob.core.chinacloudapi.cn/vhds/datadisk1.vhd
        Caching                       : None
        CreateOption                  : Empty
        DiskSizeGB                    : 100
    DataDiskNames[0]                  : datadisk1
    NetworkInterfaceIDs[0]            : /subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Network/networkInterfaces/myVMNic
    复制代码
    复制代码
    Get-AzureRmNetworkInterface
    Name                 : myVMNic
    ResourceGroupName    : hw01
    Location             : chinaeast
    Id                   : /subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Network/networkInterfaces/myVMNic
    Etag                 : W/"1e379401-4980-42c6-ba83-9e26f19133bd"
    ResourceGuid         : c4e50ac6-fdb1-416c-a5b2-d71baace6b55
    ProvisioningState    : Succeeded
    Tags                 :
    VirtualMachine       : {
                             "Id": "/subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Compute/virtualMachines/MyCentOSVM"
                           }
    IpConfigurations     : [
                             {
                               "Name": "ipconfig1",
                               "Etag": "W/\"1e379401-4980-42c6-ba83-9e26f19133bd\"",
                               "Id": "/subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Network/networkInterfaces/myVMNic/ipConfigurations/ipconfig1",
                               "PrivateIpAddress": "10.0.0.4",
                               "PrivateIpAllocationMethod": "Dynamic",
                               "Subnet": {
                                 "Id": "/subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Network/virtualNetworks/MyVNET/subnets/Subnet"
                               },
                               "PublicIpAddress": {
                                 "Id": "/subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Network/publicIPAddresses/myPublicIP"
                               },
                               "ProvisioningState": "Succeeded",
                               "LoadBalancerBackendAddressPools": [],
                               "LoadBalancerInboundNatRules": [],
                               "ApplicationGatewayBackendAddressPools": []
                             }
                           ]
    DnsSettings          : {
                             "DnsServers": [],
                             "AppliedDnsServers": []
                           }
    EnableIPForwarding   : False
    NetworkSecurityGroup : null
    Primary              : True
    复制代码
    复制代码
    Get-AzureRmPublicIpAddress
    Name                     : myPublicIP
    ResourceGroupName        : hw01
    Location                 : chinaeast
    Id                       : /subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Network/publicIPAddresses/myPublicIP
    Etag                     : W/"0d4e57f8-25a1-4bf7-bec9-e98785ed8179"
    ResourceGuid             : f8216ff0-06a6-478b-8270-f18fc717c0f7
    ProvisioningState        : Succeeded
    Tags                     :
    PublicIpAllocationMethod : Dynamic
    IpAddress                : 42.159.235.75
    IdleTimeoutInMinutes     : 4
    IpConfiguration          : {
                                 "Id": "/subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Network/networkInterfaces/myVMNic/ipConfigurations/ipconfig1"
                               }
    DnsSettings              : {
                                 "DomainNameLabel": "hwvm",
                                 "Fqdn": "hwvm.chinaeast.cloudapp.chinacloudapi.cn"
    复制代码

     

    复制代码
    Get-AzureRmVirtualNetwork
    Name              : MyVNET
    ResourceGroupName : hw01
    Location          : chinaeast
    Id                : /subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Network/virtualNetworks/MyVNET
    Etag              : W/"888d8b21-091b-4f40-b2ba-284f16c0f641"
    ResourceGuid      : a69ef02a-728e-4212-8c2a-7a7c0f4bb881
    ProvisioningState : Succeeded
    Tags              :
    AddressSpace      : {
                          "AddressPrefixes": [
                            "10.0.0.0/16"
                          ]
                        }
    DhcpOptions       : null
    Subnets           : [
                          {
                            "Name": "Subnet",
                            "Etag": "W/\"888d8b21-091b-4f40-b2ba-284f16c0f641\"",
                            "Id": "/subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Network/virtualNetworks/MyVNET/subnets/Subnet",
                            "AddressPrefix": "10.0.0.0/24",
                            "IpConfigurations": [
                              {
                                "Id": "/subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Network/networkInterfaces/myVMNic/ipConfigurations/ipconfig1"
                              }
                            ],
                            "ProvisioningState": "Succeeded"
                          }
                        ]
    复制代码
    复制代码
    Get-AzureRmStorageAccount
    ResourceGroupName   : hw01
    StorageAccountName  : eyyvnizdwsddusalinuxvm
    Id                  : /subscriptions/xxxxxxxx/resourceGroups/hw01/providers/Microsoft.Storage/storageAccounts/eyyvnizdwsddusalinuxvm
    Location            : chinaeast
    Sku                 : Microsoft.Azure.Management.Storage.Models.Sku
    Kind                : Storage
    Encryption          :
    AccessTier          :
    CreationTime        : 2016/7/1 14:07:14
    CustomDomain        :
    LastGeoFailoverTime :
    PrimaryEndpoints    : Microsoft.Azure.Management.Storage.Models.Endpoints
    PrimaryLocation     : chinaeast
    ProvisioningState   : Succeeded
    SecondaryEndpoints  :
    SecondaryLocation   :
    StatusOfPrimary     : Available
    StatusOfSecondary   :
    Tags                : {}
    Context             : Microsoft.WindowsAzure.Commands.Common.Storage.AzureStorageContext
    复制代码

     

  • 转:ARM模式下从已有的VHD文件创建新的虚拟机

    Azure在ASM模式下可以通过Portal界面的Caputure或Save-AzureVMImage等方式创建VM的Image模板,实现对已有VM的快速重新部署。
    在Azure的ARM下,要实现类似的功能,可以通过采用JSON的Template部署的方式实现。本文将介绍这一方法。
    1 通过PowerShell列出需要复制的虚拟机,并记录其OSDisk的链接:

    复制代码
    get-azurermvm
    RequestId                         : 984a6daa-c8cf-4f4f-8edc-d9cceabf3d95
    StatusCode                        : OK
    ResourceGroupName                 : HWNOSQL
    Id                                : /subscriptions/xxxx/resourceGroups/HWNOSQL/providers/Microsoft.Compute/virtualMachines/hwnosql
    Name                              : hwnosql
    Type                              : Microsoft.Rest.Azure.AzureOperationResponse`1[Microsoft.Rest.Azure.IPage`1[Microsoft.Azure.Management.Compute.Models.VirtualMa
    chine]]
    Location                          : chinaeast
    Tags                              : {}
    DiagnosticsProfile                :
      BootDiagnostics                 :
        Enabled                       : True
        StorageUri                    : https://hwnosql969.blob.core.chinacloudapi.cn/
    Extensions[0]                     :
      Id                              : /subscriptions/xxxx/resourceGroups/HWNOSQL/providers/Microsoft.Compute/virtualMachines/hwnosql
    /extensions/Microsoft.Insights.VMDiagnosticsSettings
    HardwareProfile                   :
      VmSize                          : Standard_A1
    NetworkProfile                    :
      NetworkInterfaces[0]            :
        Id                            : /subscriptions/xxxx/resourceGroups/hwnosql/providers/Microsoft.Network/networkInterfaces/hwnos
    ql966
    OSProfile                         :
      ComputerName                    : hwnosql
      AdminUsername                   : hengwei
      LinuxConfiguration              :
        DisablePasswordAuthentication : False
    ProvisioningState                 : Succeeded
    StorageProfile                    :
      ImageReference                  :
        Publisher                     : OpenLogic
        Offer                         : CentOS
        Sku                           : 7.2
        Version                       : latest
      OsDisk                          :
        OsType                        : Linux
        Name                          : hwnosql
        Vhd                           :
          Uri                         : https://hw01sa01.blob.core.chinacloudapi.cn/vhds/hwnosql2016722122351.vhd
        Caching                       : ReadWrite
        CreateOption                  : FromImage
    NetworkInterfaceIDs[0]            : /subscriptions/xxxx/resourceGroups/hwnosql/providers/Microsoft.Network/networkInterfaces/hwnos
    ql966
    复制代码

     
    其中https://hw01sa01.blob.core.chinacloudapi.cn/vhds/hwnosql2016722122351.vhd 是其OSDisk的链接。
    2 用AzCopy复制此vhd文件到另外一个Container:

    复制代码
    C:\Users\hengz>set key="xxxxxxxxxxxx=="
    C:\Users\hengz>azcopy /source:https://hw01sa01.blob.core.chinacloudapi.cn/vhds /dest:https://hw01sa01.blob.core.chinacloudapi.cn/vhd /destkey:%key% /sourcekey:%key% /pattern:hwnosql2016722122351.vhd
    Finished 1 of total 1 file(s).
    [2016/08/25 16:55:00] Transfer summary:
    -----------------
    Total files transferred: 1
    Transfer successfully:   1
    Transfer skipped:        0
    Transfer failed:         0
    Elapsed time:            00.00:00:03
    复制代码

     
    3 在GitHub上的quickstart template找到相应的脚本:
    https://github.com/Azure/azure-quickstart-templates/tree/master/101-vm-from-user-image
    其中有两个文件是我们需要的,一个是azuredeploy.json, 另外一个是azuredeploy.parameters.json。
    浏览azuredeploy.json,没有什么需要我们更改的。
    浏览azuredeploy.parameters.json,更改所需内容:

    复制代码
    {
      "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "customVmName": {
          "value": "hwcopyimageVM"
        },
        "userImageStorageAccountName": {
          "value": "hw01sa01"
        },
        "adminUsername": {
          "value": "hengwei"
        },
        "adminPassword": {
          "value": "xxxxxxxx"
        },
        "osDiskVhdUri": {
          "value": "https://hw01sa01.blob.core.chinacloudapi.cn/vhd/hwnosql2016722122351.vhd"
        },
        "dnsLabelPrefix": {
          "value": "hwcopyimagevm"
        },
        "osType": {
          "value": "Linux"
        },
        "vmSize": {
          "value": "Standard_A1"
        },
        "newOrExistingVnet": {
          "value": "existing"
        },
        "newOrExistingVnetName": {
          "value": "hw01vnet"
        },
        "newOrExistingSubnetName": {
          "value": "Subnet-1"
        }
      }
    }
    复制代码

     
    4 通过PowerShell命令部署新的虚拟机:

    复制代码
    New-AzureRmResourceGroupDeployment -Name hwdpmt01 -ResourceGroupName hw01 -Mode Incremental -TemplateFile D:\Hengwei\Documents\GitHub\azure-quickstart-templates\101-vm-from-user-image\azuredeploy.json -TemplateParameterFile D:\Hengwei\Documents\GitHub\azure-quickstart-templates\101-vm-from-user-image\azuredeploy.parameters.json
    DeploymentName          : hwdpmt01
    ResourceGroupName       : hw01
    ProvisioningState       : Succeeded
    Timestamp               : 2016/8/25 9:10:23
    Mode                    : Incremental
    TemplateLink            :
    Parameters              :
                              Name             Type                       Value
                              ===============  =========================  ==========
                              customVmName     String                     hwcopyimageVM
                              userImageStorageAccountName  String                     hw01sa01
                              osDiskVhdUri     String                     https://hw01sa01.blob.core.chinacloudapi.cn/vhd/hwnosql2016722122351.vhd
                              dnsLabelPrefix   String                     hwcopyimagevm
                              adminUserName    String                     hengwei
                              adminPassword    SecureString
                              osType           String                     Linux
                              vmSize           String                     Standard_A1
                              newOrExistingVnet  String                     existing
                              newOrExistingVnetName  String                     hw01vnet
                              newOrExistingSubnetName  String                     Subnet-1
    Outputs                 :
    DeploymentDebugLogLevel :
    复制代码

     
    至此,部署完成。

  • 转:超详细的三部曲:搭建Nessus漏洞检测系统

    Nessus 被认为是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件。自从1998年开发至今已谕十年, 故为一架构成熟的软件
    需要的软件包如下:
    Nessus-3.2.0-es5.i386
    NessusClient-3.2.1-es5.i386
     
    安装软件包
    1 安装服务器端、客户端rpm包(安装过程中会初始化服务器端插件)
    wps_clip_image-8972

    2 添加执行程序路径、帮助文件路径。
    Nessus的相关执行程序默认位于/opt/nessus/sbin 和/opt/nessus/bin/目录,帮组文件默认位于/opt/nessus/man/目录。
    可分别调整环境变量PATH和MANPATH,以方便执行Nessus相关程序及查看帮助。
    这种是一次性的,也就是说重启后将不再生效
    wps_clip_image-28503
    下面这种是永久生效的:
     

    
    
    1. #vi ~/.bash_profile
    2. export PATH=/opt/nessus/sbin:/opt/nessus/bin:$PATH
    3. export MANPATH=/opt/nessus/man:’manpath’
    4. :wq!

     
    wps_clip_image-30806

    添加完以后,wq!强制保存退出

    配置服务端

    安装好nessus后,系统中将增加一个名为nessusd的服务。只需要添加一个用于扫描的用户,并启动nessusd服务,服务端就基本配置完成。
    Ps:Nessus还提供了一系列的脚本程序用于简化操作呢
    1启动Nessusd服务
    wps_clip_image-15080
    2 添加扫描用户
    执行nessus-adduser脚本,将会进入添加用户的交互式界面,需要依次指定用户名、认证方式、扫面规则等。主要步骤:
    a.输入新添加的用户名,该用户不需要是本地系统用户 (例如scaner1)
    b.选择认证方式(证书或密码),默认使用密码认证。
    c.如果选择使用密码认证,则重复输入两次密码确认 (例如pwd123)
    d.设置扫描权限规则(可以为空),即允许该用户扫描哪些网段或主机。每行设置一条扫描规则,一般使用”accept|deny IP/mask”的形式,“default deny|accept”的形式用于定义默认规则。规则设置完毕后,按ctrl+D 组合键提交。
    f.再次确认以上信息无误后,直接回车完成用户的添加。
    wps_clip_image-9457

    3管理扫描用户
    Nessus-rmuser脚本可用于删除用户,而nessus-chpasswd用于修改用户密码。
    —————–至此,Nessus已经配置完毕,可以使用了——————————

    使用Nessus用户端

    1运行客户端
    用户端需要在x-window图形环境中运行。
    确认当前在图形界面,执行命令:NessusClient& ,(注意大小写)即可打开用户端。
    wps_clip_image-12871
    wps_clip_image-17896

    2连接服务端
    单机左下方的“connect”,在弹出的对话框中点击左下方的“+”号按钮,设置好连接名称、需要登陆的NessusD服务器地址,以及使用的扫描用户名、密码。单击”save”保存。如下图所示:
    wps_clip_image-159453添加扫描目标
    选择“connection Manger”对话框中,选择刚刚创建的New connection进行连接。连接成功后,在scan选项卡中,单击“network(s) to scan”栏下方的“+”号按钮,设置需要扫描的主机或网络地址,如单个主机192.168.1.10,单击save保存。
    wps_clip_image-18634
    4执行漏洞扫描
    返回到scan选项卡,从左侧列表中选择刚设置的扫描用户,在右侧列表中选择Default scan policy 默认扫描策略,单机下方的scan now 按钮。如下图
    wps_clip_image-26127
    wps_clip_image-20690
    5获取及分析漏洞检测报告
    扫描完成后,可以通过“report”选项卡查看检测结果。针对目标主机的灭一个的每一项扫描内容,都可以获取摘要信息、具体描述、风险、建议解决方法等。如下图
    wps_clip_image-7679
    对于风险程度较高的安全隐患,会以高亮的颜色标出(橙色、红色)。Nessus会根据已知的风险评估给出相应的解决办法。
    例如主机开启了pop3服务,会建议关闭服务。
    单击右侧的“export”按钮可以将检测的结果到导出为html文件保存,方便在浏览器中查看

  • 转:Windows Azure Application Gateway 应用程序网关

    原文:http://winhe.blog.51cto.com/7547741/1742487

     本文主要介绍Windows Azure 应用程序网关三种主要功能介绍:Http负载平衡基于cookie会话连接SSL卸载

    技术分享
    Azure应用程序网关(Azure Application Gateway
    基础环境准备,在虚拟网络中为应用程序网关创建一个子网,在本文中使用AppGateway-1子网。
    技术分享

    New-AzureApplicationGateway -Name WinAppGW -VnetName AppGatewayVnet -Subnets AppGateway-1

    #新建应用程序网关,命名为WinAppGW ,放置在虚拟网络AppGatewayVnet 子网AppGateway-1
    #此时不会开始计收网关的费用。计费将在后面已成功启动网关时开始
    技术分享

    Get-AzureApplicationGateway

    #获取网关的详细信息
    技术分享

    Start-AzureApplicationGateway -Name WinAppGW

    #尝试启动网关,提示“由于没有进行任何配置,无法启动”
    技术分享
    既然这样,我们先配置“Http负载平衡”的功能。
    Part.1HTTP load balancingHttp负载平衡)

    1.  对比Azure负载平衡器 VS Azure应用程序网关
    Azure Load Balancer,工作在传输层工作,TCP/UDP,提供4负载均衡
    Azure Application Gateway 提供Http流量的路由规则,进一步对7http流量进行负载均衡
    技术分享
    2.Application Gateway 通过配置,可以将Http流量路由至虚拟机、云服务、web app外部IP
    3.实验过程:
     
    使用两台虚拟机作为后端web服务器集群:winappgatevm-1(10.0.0.4)winappgatevm-2(10.0.1.4)
     
    技术分享
    管理配置应用程序网关需要使用xml文件,使用如下xml文件,配置80端口的负载平衡:

    <?xml version=”1.0″ encoding=”utf-8″?>

    <ApplicationGatewayConfiguration xmlns:i=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://schemas.microsoft.com/windowsazure”>

    <!–FrontendPorts用来定义应用程序网关上的公网端口,我们要测试http负载均衡,所以定义FrontendPort180端口–>

    <FrontendPorts>

            <FrontendPort>

                <Name>FrontendPort1</Name>

                <Port>80</Port>

            </FrontendPort>

        </FrontendPorts>

    <!–BackendAddressPools用来定义后端web服务器集群的地址群,我们定义了BackendPool1,它包含10.0.0.410.0.1.4两个AzureVM–>

        <BackendAddressPools>

            <BackendAddressPool>

                <Name>BackendPool1</Name>

                <IPAddresses>

                    <IPAddress>10.0.0.4</IPAddress>

                    <IPAddress>10.0.1.4</IPAddress>

                </IPAddresses>

            </BackendAddressPool>

        </BackendAddressPools>

    <!–BackendHttpSettingsList用来定义端口、协议、cookie-based affinity,此处我们定义了BackendSetting1,它包含了web服务器80端口、使用http协议、禁用cookie-based affinity(如果启用Cookie Based Session Affinity,我的PC将会连续访问同一台后端的web服务器,将无法看出负载平衡的效果,所以暂时禁用)–>

        <BackendHttpSettingsList>

            <BackendHttpSettings>

                <Name>BackendSetting1</Name>

                <Port>80</Port>

                <Protocol>Http</Protocol>

                <CookieBasedAffinity>Disabled</CookieBasedAffinity>

            </BackendHttpSettings>

        </BackendHttpSettingsList>

        <!–HttpListeners用来定义监听器,它起到监听应用程序网关公网端口的作用,用来响应公网用户的请求,此处我们定义了HTTPListener1,监听FrontendPort180),使用Http协议–>

        <HttpListeners>

            <HttpListener>

                <Name>HTTPListener1</Name>

                <FrontendPort>FrontendPort1</FrontendPort>

                <Protocol>Http</Protocol>

            </HttpListener>

        </HttpListeners>

            <!–HttpLoadBalancingRules用来定义负载均衡规则,此处我们定义一个规则名为HttpLBRule1,它使用basic规则(轮询的负载分配机制),绑定BackendSetting1web服务器80端口、使用http协议、禁用cookie-based affinity),绑定HTTPListener1(监听FrontendPort180),使用Http协议),绑定BackendPool1(包含10.0.0.410.0.1.4两个AzureVM),所以HttpLoadBalancingRules可以说是所有信息的汇总->

        <HttpLoadBalancingRules>

            <HttpLoadBalancingRule>

                <Name>HttpLBRule1</Name>

                <Type>basic</Type>

                <BackendHttpSettings>BackendSetting1</BackendHttpSettings>

                <Listener>HTTPListener1</Listener>

                <BackendAddressPool>BackendPool1</BackendAddressPool>

            </HttpLoadBalancingRule>

        </HttpLoadBalancingRules>

    </ApplicationGatewayConfiguration>

    #通过Azure Powershell,使用如下命令上传xml文件到应用程序网关完成配置

    Set-AzureApplicationGatewayConfig -Name WinAppGW -ConfigFile D:\web-80app.xml

    #对应参数是应用程序网关的名字、xml文件的路径
    技术分享
    #网关设置好了之后,通过以下命令启动网关
    Start-AzureApplicationGateway -Name WinAppGW
    技术分享
     
    #获取网关详细信息,网关的公网IP已经生成:139.217.27.22
    Get-AzureApplicationGateway -Name WinAppGW
    技术分享
     
    我之前在winappgatevm-110.0.0.4)和winappgatevm-210.0.1.4)上分别配置了两个简单的网站,随着刷新页面,我们发现轮询的负载均衡已经生效。
     
    技术分享
    技术分享
    Part.2Cookie Based Session Affinity 基于cookie会话连接
    1.应用场景:某些应用需要相同用户需要连接到不变的后台虚拟机,例如购物车应用、网页邮件服务器,基于cookie会话连接功能,可以使同一个的客户端session请求route 到相同的后端服务器,实现此类需求。
    2.实验过程:
    为了测试基于cookie会话连接,我们使用如下xml文件:
    xml文件参考如下

    <?xml version=”1.0″ encoding=”utf-8″?>

    <ApplicationGatewayConfiguration xmlns:i=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://schemas.microsoft.com/windowsazure”>

    <!–FrontendPorts用来定义应用程序网关上的公网端口,我们要测试http负载均衡+Cookie Based Session Affinity ,所以定义FrontendPort180端口–>

    <FrontendPorts>

            <FrontendPort>

                <Name>FrontendPort1</Name>

                <Port>80</Port>

            </FrontendPort>

        </FrontendPorts>

    <!–BackendAddressPools用来定义后端web服务器集群的地址群,我们定义了BackendPool1,它包含10.0.0.410.0.1.4两个AzureVM–>

        <BackendAddressPools>

            <BackendAddressPool>

                <Name>BackendPool1</Name>

                <IPAddresses>

                    <IPAddress>10.0.0.4</IPAddress>

                    <IPAddress>10.0.1.4</IPAddress>

                </IPAddresses>

            </BackendAddressPool>

        </BackendAddressPools>

    <!–BackendHttpSettingsList用来定义端口、协议、cookie-based affinity,此处我们定义了BackendSetting1,它包含了web服务器80端口、使用http协议、禁用cookie-based affinity(如果启用Cookie Based Session Affinity,我的PC将会连续访问同一台后端的web服务器,将无法看出负载平衡的效果,所以暂时禁用)–>

        <BackendHttpSettingsList>

            <BackendHttpSettings>

                <Name>BackendSetting1</Name>

                <Port>80</Port>

                <Protocol>Http</Protocol>

                <CookieBasedAffinity>Enabled</CookieBasedAffinity>

            </BackendHttpSettings>

        </BackendHttpSettingsList>

        <!–HttpListeners用来定义监听器,它起到监听应用程序网关公网端口的作用,用来响应公网用户的请求,此处我们定义了HTTPListener1,监听FrontendPort180),使用Http协议–>

        <HttpListeners>

            <HttpListener>

                <Name>HTTPListener1</Name>

                <FrontendPort>FrontendPort1</FrontendPort>

                <Protocol>Http</Protocol>

            </HttpListener>

        </HttpListeners>

            <!–HttpLoadBalancingRules用来定义负载均衡规则,此处我们定义一个规则名为HttpLBRule1,它使用basic规则(轮询的负载分配机制),绑定BackendSetting1web服务器80端口、使用http协议、禁用cookie-based affinity),绑定HTTPListener1(监听FrontendPort180),使用Http协议),绑定BackendPool1(包含10.0.0.410.0.1.4两个AzureVM),所以HttpLoadBalancingRules可以说是所有信息的汇总->

        <HttpLoadBalancingRules>

            <HttpLoadBalancingRule>

                <Name>HttpLBRule1</Name>

                <Type>basic</Type>

                <BackendHttpSettings>BackendSetting1</BackendHttpSettings>

                <Listener>HTTPListener1</Listener>

                <BackendAddressPool>BackendPool1</BackendAddressPool>

            </HttpLoadBalancingRule>

        </HttpLoadBalancingRules>

    </ApplicationGatewayConfiguration>

    按照Part.1Azure Powershell命令上传配置,我们发现我的PC可以访问139.217.27.22
    抓取访问139.217.27.22的数据包,返现服务器在三次握手后首次返回的http报文中带有Set-cookie的内容如下ARRAffinity=b2b030bd049b3ae07c0c65419246492734f60ad3ec994bb9cb6414062dc14199\r\n
    技术分享
    紧接着我再次访问139.217.27.22时,我的http请求中带着之前服务器给我返回的cookie,致使我不断的刷新也只会访问首次访问的服务器。Cookie依旧是 ARRAffinity=b2b030bd049b3ae07c0c65419246492734f60ad3ec994bb9cb6414062dc14199\r\n
    技术分享
    Part.3SSL OffloadSSL卸载)
    Application Gateway起到了SSL加解密的作用,客户端跟App Gateway之间SSL Session 交互,不需要跟后台的所有的web 服务器分别建立SSL session,所有的SSL行为和SSL证书统一在App Gateway 设备上统一管理维护,相当于为后端VM卸载掉SSL加密的任务量,释放了后端VM的消耗在SSL加密上的资源。
    首先你需要有一张CA颁发的服务器端的*.pfx证书,关于制作证书,不在此赘述。

    #上传证书到应用程序网关

    Add-AzureApplicationGatewaySslCertificate  -Name WinAppGW -CertificateName GWCert -Password qwer1234! -CertificateFile D:\httpscert.pfx

    #需要分别指定网关名称、证书名称、密码、证书路径
    技术分享
    接下来我们需要配置xml文件,参考如下:

    <?xml version=”1.0″ encoding=”utf-8″?>

    <ApplicationGatewayConfiguration xmlns:i=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://schemas.microsoft.com/windowsazure”>

       <FrontendIPConfigurations />

    <!–FrontendPorts用来定义应用程序网关上的公网端口,我们要测试SSL Offload,所以定义FrontendPort1443端口–>

        <FrontendPorts>

            <FrontendPort>

                <Name>FrontendPort1</Name>

                <Port>443</Port>

            </FrontendPort>

        </FrontendPorts>

    <!–BackendAddressPools用来定义后端web服务器集群的地址群,我们定义了BackendPool1,它包含10.0.0.410.0.1.4两个AzureVM–>

        <BackendAddressPools>

            <BackendAddressPool>

                <Name>BackendPool1</Name>

                <IPAddresses>

                    <IPAddress>10.0.0.4</IPAddress>

                    <IPAddress>10.0.1.4</IPAddress>

                </IPAddresses>

            </BackendAddressPool>

        </BackendAddressPools>

    <!–BackendHttpSettingsList用来定义端口、协议、cookie-based affinity,此处我们定义了BackendSetting1,它包含了web服务器80端口、使用http协议、禁用cookie-based affinity–>

        <BackendHttpSettingsList>

            <BackendHttpSettings>

                <Name>BackendSetting1</Name>

                <Port>80</Port>

                <Protocol>Http</Protocol>

                <CookieBasedAffinity>Disabled</CookieBasedAffinity>

            </BackendHttpSettings>

        </BackendHttpSettingsList>

    <!–HttpListeners用来定义监听器,它起到监听应用程序网关公网端口的作用,用来响应公网用户的请求,此处我们定义了HTTPListener1,监听FrontendPort1443),使用Https协议、证书名字是GWCert–>

        <HttpListeners>

            <HttpListener>

                <Name>HTTPListener1</Name>

                <FrontendPort>FrontendPort1</FrontendPort>

                <Protocol>Https</Protocol>

                <SslCert>GWCert</SslCert>

            </HttpListener>

        </HttpListeners>

    <!–HttpLoadBalancingRules用来定义负载均衡规则,此处我们定义一个规则名为HttpLBRule1,它使用basic规则(轮询的负载分配机制),绑定BackendSetting1web服务器80端口、使用http协议、禁用cookie-based affinity),绑定HTTPListener1(监听FrontendPort1443),使用Https协议、证书名字是GWCert),绑定BackendPool1(包含10.0.0.410.0.1.4两个AzureVM),所以HttpLoadBalancingRules可以说是所有信息的汇总,让我们完成SSL Offload+负载均衡–>

        <HttpLoadBalancingRules>

            <HttpLoadBalancingRule>

                <Name>HttpLBRule1</Name>

                <Type>basic</Type>

                <BackendHttpSettings>BackendSetting1</BackendHttpSettings>

                <Listener>HTTPListener1</Listener>

                <BackendAddressPool>BackendPool1</BackendAddressPool>

            </HttpLoadBalancingRule>

        </HttpLoadBalancingRules>

    </ApplicationGatewayConfiguration>

    #通过修改好的xml配置应用程序网关,使我们的证书生效

    Set-AzureApplicationGatewayConfig -Name WinAppGW -ConfigFile D:\ssloffloadhttplb.xml

    技术分享
    访问 https://139.217.27.22/ ,已经可以访问,并且可以负载均衡。证书为自己手工制作的自签名证书,此处不受信可以也不影响https的测试访问。
    技术分享
    技术分享
    Part.4】细节强化
    1. 网关大小:Small, Medium and Large
    其中Small仅仅用于测试。
    2.限制
    Global:一个订阅50个应用程序网关,每个应用程序网关最多10个实例(此处实例是指后端的虚拟机个数)。
    China:一个订阅10个应用程序网关

    修改网关大小和后端实例实数参考:

    Update-AzureApplicationGateway -Name “WinAppGW” -InstanceCount 5 -GatewaySize “Large” -Description “Updated application gateway”

    技术分享
    3.监测
    应用程序网关每隔30秒发出probe报文来监视监控后端服务器的健康情况,返回code200-399确认http服务正常。如果发现某个后台服务器不能及时响应导致probe失败之后,此台后台的VM会从健康实例池中移除,直到其能及时响应probe探测为止。
    4.同时使 http 80负载平衡、https 443负载平衡生效的xml参考配置:

    <?xml version=”1.0″ encoding=”utf-8″?>

    <ApplicationGatewayConfiguration xmlns:i=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://schemas.microsoft.com/windowsazure”>

    <!–FrontendPorts用来定义应用程序网关上的公网端口,我们定义了http80端口、https443端口–>

        <FrontendPorts>

            <FrontendPort>

                <Name>FrontendPort1</Name>

                <Port>80</Port>

            </FrontendPort>

            <FrontendPort>

                <Name>FrontendPort2</Name>

                <Port>443</Port>

            </FrontendPort>

        </FrontendPorts>

    <!–BackendAddressPools用来定义后端web服务器集群的地址群,我们定义了BackendPool1,它包含10.0.0.410.0.1.4两个AzureVM–>

        <BackendAddressPools>

            <BackendAddressPool>

                <Name>BackendPool1</Name>

                <IPAddresses>

                    <IPAddress>10.0.0.4</IPAddress>

                    <IPAddress>10.0.1.4</IPAddress>

                </IPAddresses>

            </BackendAddressPool>

        </BackendAddressPools>

    <!–BackendHttpSettingsList用来定义端口、协议、cookie-based affinity,此处我们定义了BackendSetting1,它包含了web服务器80端口、使用http协议、禁用cookie-based affinity–>

        <BackendHttpSettingsList>

            <BackendHttpSettings>

                <Name>BackendSetting1</Name>

                <Port>80</Port>

                <Protocol>Http</Protocol>

                <CookieBasedAffinity>Disabled</CookieBasedAffinity>

            </BackendHttpSettings>

        </BackendHttpSettingsList>

    <!–HttpListeners用来定义监听器,它起到监听应用程序网关公网端口的作用,用来响应公网用户的请求,此处我们定义了HTTPListener1,监听FrontendPort180),使用Http协议;HTTPListener1、监听FrontendPort2443),使用Https协议,证书名字是GWCert–>

        <HttpListeners>

            <HttpListener>

                <Name>HTTPListener1</Name>

                <FrontendPort>FrontendPort1</FrontendPort>

                <Protocol>Http</Protocol>

            </HttpListener>

            <HttpListener>

                <Name>HTTPListener2</Name>

                <FrontendPort>FrontendPort2</FrontendPort>

                <Protocol>Https</Protocol>

                <SslCert>GWCert</SslCert>

            </HttpListener>

        </HttpListeners>

    <!–HttpLoadBalancingRules用来定义负载均衡规则,此处我们定义一个规则名为HttpLBRule1,它使用basic规则(轮询的负载分配机制),绑定BackendSetting1web服务器80端口、使用http协议、禁用cookie-based affinity),绑定HTTPListener1(监听FrontendPort180),使用Http协议),绑定BackendPool1(包含10.0.0.410.0.1.4两个AzureVM;定义一个规则名为HttpLBRule2,它使用basic规则(轮询的负载分配机制),绑定BackendSetting1web服务器80端口、使用http协议、禁用cookie-based affinity),绑定HTTPListener2(监听FrontendPort1443),使用Https协议、证书名字是GWCert),绑定BackendPool1(包含10.0.0.410.0.1.4两个AzureVM. 所以HttpLoadBalancingRules可以说是所有信息的汇总,这两个规则可以完成 http 80网站负载均衡+SSL Offload负载均衡–>

        <HttpLoadBalancingRules>

           <HttpLoadBalancingRule>

                <Name>HttpLBRule1</Name>

                <Type>basic</Type>

                <BackendHttpSettings>BackendSetting1</BackendHttpSettings>

                <Listener>HTTPListener1</Listener>

                <BackendAddressPool>BackendPool1</BackendAddressPool>

            </HttpLoadBalancingRule>

            <HttpLoadBalancingRule>

                <Name>HttpLBRule2</Name>

                <Type>basic</Type>

                <BackendHttpSettings>BackendSetting1</BackendHttpSettings>

                <Listener>HTTPListener2</Listener>

                <BackendAddressPool>BackendPool1</BackendAddressPool>

            </HttpLoadBalancingRule>

        </HttpLoadBalancingRules>

    </ApplicationGatewayConfiguration>