所有由SK发布的文章

服务器维护 服务器配置 服务器 维护 运维 网管 系统调优 网络调优 数据库优化

Chrome 将警告用户不再支持 Flash Player

Adobe 计划在 2020 年淘汰 Flash Player,这将是万维网历史上的一个关键点。全世界都在为这个关键时刻做准备,其中就包括浏览器开发公司。谷歌正在尽可能顺利地完成 Flash Player 的过渡,即将推出的 Chrome 76 也将在这方面迈出这关键的一步

新版本浏览器将完全禁用 Flash Player,但谷歌希望启用此功能的用户亲自在设置中完成所有操作。浏览器明显的变化是启动时显示的警告,不过谷歌可能在未来的几周对这个显示做进一步的调整。

据 9to5google 报告,最近 Chromium 的开发人员在讨论中提供了显示警告的早期视图,该警告将在浏览器顶部作为信息栏显示。“2020年12月之后 Flash Player 将不再受支持”,通知中写道,并在末尾附上了链接,方便用户了解通知详情。

目前,Canary 版 Google Chrome 尚未加入此警告。据 Chromium 的代码提交,警告的显示已在进行中,晚些将与功能标志一起添加到新版浏览器。

Chrome 即将加入的这个警告显示,可以让用户提前得知 Flash Player 支持的即将结束,使得浏览器取消支持 Flash Player 的整个转换过程更加顺畅。

apollo配置中心新增自定义环境

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。   默认阿波罗环境设定了

LOCAL, DEV, FWS, FAT, UAT, LPT, PRO, TOOLS, UNKNOWN;这样的环境命名空间。
增加sklinux环境示范:
1.假设增加sklinux
在com.ctrip.framework.apollo.core.enums.Env类中有定义。比如增加sklinux环境L
public enum Env{
  LOCAL, DEV, SKLINUX, FWS, FAT, UAT, LPT, PRO, TOOLS, UNKNOWN;
  ...
}
apollo/apollo-core/src/main/java/com/ctrip/framework/apollo/core/enums/Env.java 文件路径

2.修改com.ctrip.framework.apollo.core.enums.EnvUtils类,在其中加入BETA枚举的转换逻辑
case "SKLINUX":
        return Env.SKLINUX;

文件路径:
apollo/apollo-core/src/main/java/com/ctrip/framework/apollo/core/enums/EnvUtils.java
3.修改apollo-env.properties,增加beta.meta占位符:
local.meta=http://localhost:8080
dev.meta=${dev_meta}
fat.meta=${fat_meta}
sklinux.meta=${sklinux_meta}
uat.meta=${uat_meta}
lpt.meta=${lpt_meta}
pro.meta=${pro_meta}
文件路径:
apollo/apollo-portal/src/main/resources/apollo-env.properties
4.修改com.ctrip.framework.apollo.core.internals.LegacyMetaServerProvider类,增加读取SKLINUX环境的meta server地址逻辑:

增加

env.getProperty("sklinux_meta", prop.getProperty("sklinux.meta")));

未增加前:
 domains.put(Env.LOCAL, getMetaServerAddress(prop, "local_meta", "local.meta"));
 domains.put(Env.DEV, getMetaServerAddress(prop, "dev_meta", "dev.meta"));
 domains.put(Env.FAT, getMetaServerAddress(prop, "fat_meta", "fat.meta"));
 domains.put(Env.UAT, getMetaServerAddress(prop, "uat_meta", "uat.meta"));
 domains.put(Env.LPT, getMetaServerAddress(prop, "lpt_meta", "lpt.meta"));
 domains.put(Env.PRO, getMetaServerAddress(prop, "pro_meta", "pro.meta"));
文件路径:
./apollo/apollo-core/src/main/java/com/ctrip/framework/apollo/core/internals/LegacyMetaServerProvider.java
cd apollo/scripts/ && ./build.sh 即可

[INFO] Reactor Summary for Apollo 1.4.0-SNAPSHOT:
[INFO]
[INFO] Apollo ……………………………………… SUCCESS [ 0.667 s]
[INFO] Apollo Core …………………………………. SUCCESS [ 3.964 s]
[INFO] Apollo Common ……………………………….. SUCCESS [ 1.377 s]
[INFO] Apollo Open Api ……………………………… SUCCESS [ 0.875 s]
[INFO] Apollo Portal ……………………………….. SUCCESS [ 6.668 s]
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
[INFO] ————————————————————————
[INFO] Total time: 14.254 s
[INFO] Finished at: 2019-05-06T10:50:55+08:00
[INFO] ————————————————————————
==== building portal finished ====

5.protaldb增加SKLINUX环境配置。portaldb.serverconfig 表中的apollo.portal.envs字段 dev,uat,fat,pro,sklinux

6.为apollo-portal添加新增环境对应的meta server地址。apollo-env.properties中增加:dev.meta=http://x.x.x.x:8080
7.准备sklinux环境的adminservice和configservice 以及db,然后启动
8.重启portal服务就新增成功了。

HTTPS连接过程以及中间人攻击劫持

一 、HTTPS连接过程及中间人攻击原理

https协议就是http+ssl协议,如下图所示为其连接过程:
这里写图片描述
1.https请求
客户端向服务端发送https请求;
2.生成公钥和私钥
服务端收到请求之后,生成公钥和私钥。公钥相当于是锁,私钥相当于是钥匙,只有私钥才能够打开公钥锁住的内容;
3.返回公钥
服务端将公钥(证书)返回给客户端,公钥里面包含有很多信息,比如证书的颁发机构、过期时间等等;
4.客户端验证公钥
客户端收到公钥之后,首先会验证其是否有效,如颁发机构或者过期时间等,如果发现有问题就会抛出异常,提示证书存在问题。如果没有问题,那么就生成一个随机值,作为客户端的密钥,然后用服务端的公钥加密;
5.发送客户端密钥
客户端用服务端的公钥加密密钥,然后发送给服务端。
6.服务端收取密钥,对称加密内容
服务端收到经过加密的密钥,然后用私钥将其解密,得到客户端的密钥,然后服务端把要传输的内容和客户端的密钥进行对称加密,这样除非知道密钥,否则无法知道传输的内容。
7.加密传输
服务端将经过加密的内容传输给客户端。
8.获取加密内容,解密
客户端获取加密内容后,用之前生成的密钥对其进行解密,获取到内容。 继续阅读HTTPS连接过程以及中间人攻击劫持

普罗米修斯监控

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。

2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。Prometheus目前在开源社区相当活跃。

Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。Prometheus性能也足够支撑上万台规模的集群。

Prometheus的特点

多维度数据模型。
灵活的查询语言。
不依赖分布式存储,单个服务器节点是自主的。
通过基于HTTP的pull方式采集时序数据。
可以通过中间网关进行时序列数据推送。
通过服务发现或者静态配置来发现目标服务对象。
支持多种多样的图表和界面展示,比如Grafana等。 继续阅读普罗米修斯监控

开源APM业务性能剖析系统架构

开源APM业务性能剖析系统架构

 

以前用过不少apm产品,最近我们开始使用elastic出品的免费开源APM。架构比较简单,由elasticsearch+kibana+APM-server+apm_agent构成
APM它是应用程序性能监控系统,主要是监控软件服务和应用程序实时性能、访问参数、接口响应时间、数据库查询请求、调用缓存以及内外部api接口性能、采集性能信息并存储到es集群。然后通过kibana进行展示或者做可视化分析。这样可以轻松快速的跟踪到问题点,并修复性能相关问题。
主要组件是:
APM agents
APM Server
Elasticsearch
Kibana APM UI

目前支持Nodejs,Python,Ruby,js,Go,java的性能追踪。暂时还没有php的探针支持。

 

架构如下:

elk

动态ARP检测原理及应用

在一个局域网中,网络安全可以通过多种方式来实现,而采取DHCP snooping(DHCP 防护)及DAI 检测(ARP 防护)这种技术,保护接入交换机的每个端口,可以让网络更加安全,更加稳定,尽可能的减小中毒范围,不因病毒或木马导致全网的瘫痪。 下面将详细的对这种技术的原理和应用做出解释。 继续阅读动态ARP检测原理及应用

Gradle 5.0 正式版发布!史上最快、最安全和最强大的版本

Gradle 5.0 正式版发布了!官方表示这是史上最快、最安全,最强大的版本。

改进的增量编译和增量注释处理构建在已经具有构建缓存和最新检查功能的可靠性能基础之上。

依赖约束 —— 依赖对齐和版本锁定提供了可扩展且灵活的依赖管理模型。

通过新的性能和依赖关系管理、日志记录和弃用的 API 使用检查,构建扫描得到了显著的改进。

静态类型的 Kotlin DSL 可在创建构建逻辑时提供代码完成、重构和其他的 IDE 辅助。

主要改进可分为以下几类:

最后,可以了解如何进一步升级到 Gradle 5.0

值得关注的新特性:

企业私有Harbor仓库

我们在研发、测试、生产环境使用Harbo已经1年多了,现在推荐给大家使用。

一、Harbor介绍
     Harbor是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的原理。所以,Harbor正是一个用于存储Docker镜像的企业级Registry服务。
Registry是Dcoker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到以Registry起的容器的私有仓库中。企业可以根据自己的需求,使用Dokcerfile生成自己的镜像,并推到私有仓库中,这样可以大大提高拉取镜像的效率。
二、Harbor核心组件解释
 Proxy:他是一个nginx的前端代理,代理Harbor的registry,UI, token等服务。
 db:负责储存用户权限、审计日志、Dockerimage分组信息等数据。
 UI:提供图形化界面,帮助用户管理registry上的镜像, 并对用户进行授权。
 jobsevice:jobsevice是负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log。
 Adminserver:是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候回需要加载adminserver的配置。
 Registry:镜像仓库,负责存储镜像文件。
 Log:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。
三、Harbor获取版本和安装文档
  https://github.com/goharbor/harbor

Mikrotik路由安全防范设置

  1. 将默认用户名admin更改为其他名称
    /user set 0 name=superrootman
  2. 设置高强度的密码
    /user set 0 password=”zhegemimahenchanghenchang!@#”
  3. 通过IP地址访问
    /user set 0 allowed-address=xxxx/yy
  4. 只保留安全的服务
    /ip service disable telnet,f​​tp,www,api,api-ssl
    注意:该操作会禁用Telnet,FTP,WWW,API,API-SSL
  5. 更改默认端口,这将立即停止大多数随机SSH暴力登录尝试
    /ip service set ssh port=220
  6. 设置Winbox允许登陆的网段
    /ip service set winbox address=192.168.0.0/16
  7. 禁用mac-telnet服务
    /tool mac-server set allowed-interface-list=none
  8. 禁用mac-winbox服务
    /tool mac-server mac-winbox set allowed-interface-list=none
  9. 禁用mac-ping服务
    /tool mac-server ping set enabled=no
  10. 邻居发现
    MikroTik邻居发现协议用于显示和识别网络中的其他MikroTik设备,禁用所有接口上的邻居发现
    禁用IPv4 的邻居发现协议
    /ip neighbor discovery-settings set discover-interface-list=none
    禁用IPv6 的邻居发现协议
    /ipv6 nd set [find] disabled=yes
  11. 带宽服务器用于测试两个MikroTik路由器之间的吞吐量,请在测试后禁用它。
    /tool bandwidth-server set enabled=no
  12. DNS缓存
    /ip dns set allow-remote-requests=no
  13. 设置更安全的SSH访问,打开SSH强加密
    /ip ssh set strong-crypto=yes
  14. 关闭 Proxy,Socks代理
    /ip proxy set enabled=no
    /ip socks set enabled=no
  15. MikroTik UPnP服务(通用即插即用协议)
    /ip upnp set enabled=no
  16. MikroTik自带的DDNS服务器(动态域名解析)
    如果不是使用的话请用以下命令禁用
    /ip cloud set ddns-enabled=no update-time=no
  17. 某些型号的RouterBOARD有LCD模块用于信息显示。
    /lcd set enabled=no
  18. 如果你的路由器不提供VPN服务,请用以下命令关闭VPN
    /interface l2tp-server server set enabled=no
    /interface pptp-server server set enabled=no
    /interface sstp-server server set enabled=no
    /interface ovpn-server server set enabled=no
  19. 禁用在设备上使用Radius进行授权
    /user aaa set use-radius=no
  20. 禁ping

MikroTik路由器升级以及安全加固

最近<<20万台MikroTik路由器沦为挖矿帮凶>>,近日安全研究人员再次发现有20万台未更新固件的MikroTik路由器遭到挖矿恶意软件攻击。其中主要是CVE-2018-7445 MikroTik路由器系统缓冲区溢出漏洞。

漏洞概述

CVE-2018-7445 MikroTik RouterOS SMB 缓冲区溢出

参考信息:https://www.coresecurity.com/advisories/mikrotik-routeros-smb-buffer-overflow

路由器漏洞分析

http://www.freebuf.com/articles/wireless/168063.html

oday 工具地址

https://github.com/mrmtwoj/0day-mikrotik

Name Project :0day Mikrotik

Last version :1.0.0

Last updated : 25/07/2018

Programming language : Python

youtube : https://youtu.be/h6JSNFhQUN8

Company name : acyber (IT Security Lab Iran)

ros1

ros2
.我们今天来进行ros的升级和一些安全加固设置。

继续阅读MikroTik路由器升级以及安全加固