DoH draft - DNS Queries over HTTPS
本文是 DNS Queries over HTTPS (DoH) 的 ietf 草案,希望实现的东西是整个 DNS 协议 overlay 在 HTTP 协议上,能扛 amplification 攻击了有木有(当然,除非世界上的 DNS 服务器都升级了)。它不仅仅把 HTPT 当作一个隧道,还想使用更多时髦的特性,例如 caching, redirection, proxying, authentication, and compression。具体草案如下:
- 通过 HTTP/2, HTTPS, URIs 请求,例如
GET https://example.org/dns-query?dns=<base64 …
Python 应用程序的目录结构
Python 语言灵活,所以目录结构也可以很多样,不像别的应用程序一般就推荐一套写法。但是一般大家还是遵循几套固定的写法,毕竟程序类型还是有限的那么几种:命令行工具,一次性脚本,Web 应用,package。
- CLI - 一次性脚本
helloworld/
│
├── .gitignore
├── helloworld.py
├── LICENSE
├── README.md
├── requirements.txt
├── setup.py
└── tests.py
- CLI - 一个 package
helloworld/
│
├── helloworld/
│ ├── __init__.py
│ ├── helloworld.py
│ └── helpers.py
│
├── tests/
│ ├── helloworld_tests.py
│ └── helpers_tests.py
│
├── .gitignore
├── LICENSE
├── README.md
├── requirements.txt
└── setup …
SELinux 介绍
Security-Enhanced Linux (SELinux) 是在 Linux 内核中设计的一套 Access Control 机制,即便你可以通过 user, group, rwx 这些权限检查,你还得通过 SELinux 定制的 policies 的检查才能执行命令成功。
大部分操作系统一般使用 Discretionary Access Control (DAC). 它把目录设备和 objects 挂钩,进程 和 subjects 挂钩,DAC 就是控制 subjects 和 objects 二者怎么互相交互。
SELinux 觉得还不够,要引入更多,所以使用了 Mandatory Access Contro (MAC)。因为只基于用户 id 和所有权,还有很多安全隐患没有考虑到 …
read moreAstrality - 一款管理 dotfiles 的工具
Astrality 这个工具可以根据 YAML 模板文件自动生成和应用配置文件,应用后可以使用钩子执行一些 shell 命令。可以做到的事情很多,例如示例中的修改配置后自动刷新桌面的背景等等。使用的模板格式是 Jinja2。可以在 readthedocs 查看教程。
read moreChaostoolkit - Python Chaos Engineering Toolkit
本文介绍了一个使用 Python 编写的通用 Chaos Engineering 框架,它的设计目标是简单快速地在运行着的系统上做 chaos 实验, 整个 toolkit 使用很普通的 pip 安装,不需要向 ChaosMonkey 那样有很多 Java 系的依赖,居家测试推荐。
它基于的原理是 principle of chaos, 它的使用颇为简单:编写 json/yaml 配置文件,编写插件,然后运行 chaos run experiment.json
. 它默认提供了不少插件,例如 kubernetes,prometheus 等等。
举个例子, 👇 这段 JSON 配置说我们要杀掉一个 k8s pod,pause 5 秒 …
read moreDocker images 不要随便拉下来运行
本文介绍了下载运行不明来源的 docker 镜像是多么要不得的事情。有五百万个 docker image pull 发生在 Docker Hub 账号 docker123321 下,这批镜像拉下来后会尝试运行挖矿,或者尝试向 kubelet HTTP API 发送指令注入挖矿的脚本。文章列了很多证据,最后要树立一个观念:拉镜像下来运行意味着你正在把可执行的二进制数据下载下来运行,如果是从来没有用过的镜像,看看它的 FROM,ENTRYPOINT,看看它做了什么,另外它还得是自动构建出来的(而不是某个开发者在本机用别的 Dockerfile 构建推上去的)。每个 build 你都可以查 digest 和 command 看看和 Dockerfile 是否相符。如果用 Kubernetes 最要担心的事情是 kill chain,一系列事件发生时才会攻击生效,这要求安全要监控到这些特定的事情,一旦发现马上解决。
read morePerl 可以称为 grep sed awk find 的替代品
本文介绍了 Perl 作为一门编程语言不如别的,但是作为模式匹配这个领域,还是可以成为一方霸主。整个 Perl 很难学,但是学会 Minimal Perl 就可以很大提到生产力。
例如寻找特定的正则表达式可以用以下命令
$ perl -wln -e "/REPLACE-RE-HERE/ and print;" foo.txt
匹配的都不打印:
$ perl -wln -e "/REPLACE-RE-HERE/ or print;" foo.txt
打印匹配部分:
$ perl -wln -e "/RE/ and print $&;" foo.txt
文中推荐了 Minimal Perl: For Unix and Linux People 可以阅读。
read more