2016年1月

著名的黑客专用 Linux 发行版 Kali Linux 公开发布了其第一个滚动更新版 2016.1。Kali Linux 在 2.0 版本时改为了滚动更新模式,不过仅有部分尝鲜的人可以从 2.0 升级为滚动更新版。经过五个月的测试后,Kali Linux 给黑客们送上了这份最好的礼物 —— 继承了 Debian 的稳定性,集成了各种渗透测试工具,滚动更新的 Kali-Rolling (2016.1)。

Kali 滚动更新版与标准版本的比较

Kali 滚动更新版是基于 Kali 标准版的,而不是基于标准的 Debian 发行版(比如说 Debian 7、8、9等),也不用经历“新版本、维护、过期”的阶段。Kali 滚动版会不断从 Debian testing 进行更新,确保源源不断的得到软件的新版本。

持续更新的渗透测试工具

在测试滚动更新版的这五个月里,渗透测试工具的更新自动提示系统工作得很好,总是可以及时得到这些关注的工具的及时更新。一般来说,从得到这些新工具的更新提示,然后经过打包、测试和发布到仓库的过程,要经过24-48小时的时间差。我们的新的 Kali Linux Package Tracker 可以让你通过邮件和更全面的 Web 界面了解到 Kali Linux 的变化过程。这个跟踪器可以让你了解到各个工具和软件包的什么版本是什么时候进入到仓库中的。举个例子,下面的截屏显示了 nmap 软件包在 Kali 中的版本变化:

pkg-kali

VMware Tools 与 Open-VM-Tools 的对比

这个版本也有一个 VMware 客户端工具方面的戏剧性变化。在 2015年9月, VMware 推荐 使用发行版特定的 open-vm-tools,而不是使用原来的针对客户机的 VMware Tools 软件包。最新的 Kali Linux 滚动更新版包含了一个可以完美工作的 open-vm-tools 软件包,实现了所有需要的功能,比如文件复制、剪贴板复制/粘贴和自动屏幕缩放等。要安装你的 Kali Linux 滚动更新版中的 open-vm-tools 软件包,使用如下命令:

apt-get update
apt-get install open-vm-tools-desktop fuse
reboot

从 Kali 2.0 升级到 Kali 滚动更新版

要从已经安装好的 Kali 2.0(sana)升级到 Kali 滚动更新版很简单,以 root 身份,运行如下命令:

cat << EOF > /etc/apt/sources.list
deb http://http.kali.org/kali kali-rolling main non-free contrib
EOF

apt-get update
apt-get dist-upgrade # 喝杯咖啡,可能需要10分钟
reboot

请注意,Kali 2.0(sana)的仓库不再更新了,并将于2016年4月15日结束产品周期。

下载 Kali Linux 滚动更新版

Kali Linux 2.0 包括两种 ISO 镜像,一个使用 Gnome 的完整的 ISO 镜像,以及一个“轻量级” ISO 镜像——只包括 top 10 的元包和 XFCE。

下载地址: https://www.kali.org/downloads/

镜像名类型Torrent大小版本SHA1Sum
Kali Linux 64 bitISOTorrent2.6G2016.1deaa41c5c8f26b7854cafb34b6f1b567871c4875
Kali Linux 32 bitISOTorrent2.6G2016.123dadf9c6d3fcd190e345ee070aa57155e93b745
Kali Linux 64 bit LightISOTorrent0.8G2016.14132238042deba9e3bc1702afbdb1b4672b64bcb
Kali Linux 32 bit LightISOTorrent0.8G2016.1addd89b750e31030e96c6cbd5a3da4f0f17287a8
Kali Linux 64 bit miniISOTorrent30M2016.10b37df151ba4a78c940d19af8beafd380326f196
Kali Linux 32 bit miniISOTorrent30M2016.1bb5bb9cf94ef626aac420de019669862861c013d
Kali Linux armelImageTorrent0.7G2016.1b40781f0427924256ce8c7d1c3cbbb5cc824b5fa
Kali Linux armhfImageTorrent0.7G2016.1cd750dde538eaed9f8e4efea011a9b9dc1e75143

大多数的Linux和类Unix系统的配置文件中都有许多的注释行,但是有时候我只想看其中的有效配置行。那我怎么才能只看到quid.conf或httpd.conf这样的配置文件中的非注释命令行呢?怎么去掉这些注释或者空行呢?

我们可以使用 UNIX/BSD/OS X/Linux 这些操作系统自身提供的 grep,sed,awk,perl或者其他文本处理工具来查看配置文件中的有效配置命令行。

grep 命令示例——去掉注释

可以按照如下示例使用grep命令:

$ grep -v "^#" /path/to/config/file
$ grep -v "^#" /etc/apache2/apache2.conf

示例输出:

ServerRoot "/etc/apache2"

LockFile /var/lock/apache2/accept.lock

PidFile ${APACHE_PID_FILE}

Timeout 300

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 15


<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_event_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}


AccessFileName .htaccess

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>

DefaultType text/plain


HostnameLookups Off

ErrorLog /var/log/apache2/error.log

LogLevel warn

Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

Include /etc/apache2/httpd.conf

Include /etc/apache2/ports.conf

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined



Include /etc/apache2/conf.d/

Include /etc/apache2/sites-enabled/

想要跳过其中的空行,可以使用 egrep 命令, 示例:

egrep -v "^#|^$" /etc/apache2/apache2.conf
## or pass it to the page such as more or less ##
egrep -v "^#|^$" /etc/apache2/apache2.conf | less

## Bash function ######################################
## or create function or alias and use it as follows ##
## viewconfig /etc/squid/squid.conf                  ##
#######################################################
viewconfig(){
   local f="$1"
   [ -f "$1" ] && command egrep -v "^#|^$" "$f" || echo "Error $1 file not found."
}

示例输出:

Fig.01: Unix/Linux Egrep Strip Out Comments Blank Lines

图 01: Unix/Linux Egrep 除去注释行和空行

理解 grep/egrep 命令行选项

-v 选项,选择出不匹配的命令行。该选项适用于所有基于posix的系统。正则表达式 ^$ 匹配出所有的非空行, ^# 匹配出所有的不以“#”开头的非注释行。

sed 命令示例

可以按照如下示例使用 GNU 上的 sed 命令:

$ sed '/ *#/d; /^ *$/d' /path/to/file
$ sed '/ *#/d; /^ *$/d' /etc/apache2/apache2.conf

GNU 或 BSD 上的 sed 也可以修改配置文件。下面的命令的作用是原地编辑文件,并以特定(比如 .bak)备份文件:

sed -i'.bak.2015.12.27' '/ *#/d; /^ *$/d' /etc/apache2/apache2.conf

更多信息见参考手册 - grep(1), sed(1)


via: http://www.cyberciti.biz/faq/shell-display-uncommented-lines-only/

作者:Vivek Gite 译者:sonofelice 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

英伟达、Valve 及来自 Khronos Group 的 Vulkan 开发者们正在准备召开首次 Vulkan 开发者日。

显然, Vulkan 应该就是图形化标准的未来,至少在 开放标准图形化 open-standard graphics 方面是这样的,而且毫无疑问 Valve 将在里面扮演重要角色。Khronos Group 同样也是 OpenGL 的推动者,而且一直有些进展,但是事实上 OpenGL 有点跟不上发展了,进度远远落后于 Direct X。

Khronos Group 是一个行业联盟,它得到了很多公司的支持,包括 AMD、 Intel、 Apple、 Qualcomm、 Sony、 Google、 Adobe、 Amazon、 Pixar、 Valve,甚至还包括竞争对手微软。有趣的是如果拿 Vulkan 与 OpenGL 进行比较,即将出现的 Vulkan 来自和 OpenGL 同样的开发者,但是进展似乎更快。

英伟达和 Valve 正在推动 Vulkan

Vulkan 本来是一个新的跨平台、开放标准的图形与计算应用编程接口,但是多数人似乎希望它能够最终取代旧的 OpenGL。更重要的是,它集合了各个公司,甚至是竞争对手的力量,而最终的目标是形成一个可以被任何人使用的开放标准。

“Vulkan 超越 OpenGL 的一个关键优势是它能生成横跨多个 CPU 线程的 GPU 任务,这对于处理 计算密集型 CPU-bound 任务的开发者特别有用,可以用于很多应用领域,包括游戏、计算机辅助设计和移动应用等”,英伟达的 Neil Trevett 写到,他是 Khronos 主席。

新召开的 Vulkan 开发者日将在英伟达的园区召开,Valve 的 John McDonald 将会发表高性能 Vulkan 编程的演讲。看起来2016年会发生一些有趣的大事,这些 Khronos Group 背后的公司实际上掌握着整个行业发展,而 Valve 也做的不错。

前一篇文章中,我们了解了微软在开源了 .NET 框架中最大一部分一年以来社区的参与情况。

接下来,我们将继续重复这个分析,但是这次我们将针对 ASP.NET 系列项目进行分析:

  • MVC - 通过分成“模型-视图-控制器(MVC)”等不同的概念部分来构建动态网站的框架,包括合并的 MVC、 Web API、 和 Web Pages w/ Razor。
  • DNX - DNX(一个 .NET 扩展环境)包含了用于启动和运行应用的代码,包括编译系统、SDK 工具和原生 CLR 宿主。
  • EntityFramework - 微软推荐用于新的 .NET 应用的数据访问技术。
  • KestrelHttpServer - 一个基于 libuv 的 ASP.NET 5 的 Web 服务器。

方法

上一篇中,我们首先把 问题 issue / 拉取请求 PR 分成 拥有者 Owner 协作者 Collaborator 社区 Community 三类。然而这有一些问题,正如在评论中指出的那样,有几个人并非微软雇员,但是由于其在某个项目上的积极贡献也被列为了协作者,比如 @kangaroo@benpye

为了解决这个问题,我决定分成两类:

  • 微软
  • 社区

这是可行的,因为(基本上)所有的微软雇员都会在其 GitHub 个人页面上标记其为微软雇员,比如:

David Fowler Profile

这种情况有一些例外,比如 @shanselman 显然是在微软工作,不过这种情况很好解决。

结果

在结束了所有分析之后,我得到了结果。总的来说,超过 60% 的“ 发现的问题 Issues Created ”和 33% 的“ 合并的 PR Merged Pull Requests ”来自社区。然而,PR 的占比受到了 Entity Framework 项目中微软雇员超高的 PR 数量的影响,从而有些不能准确反映情况。如果忽略这个项目,社区贡献的 PR 将占到 44%。

发现的问题(2013/11 - 2015/12)

项目微软社区合计
aspnet/MVC71613802096
aspnet/dnx89712062103
aspnet/EntityFramework106614272493
aspnet/KestrelHttpServer89176265
合计276841896957

合并的 PR(2013/11 - 2015/12)

项目微软社区合计
aspnet/MVC385228613
aspnet/dnx406368774
aspnet/EntityFramework9372251162
aspnet/KestrelHttpServer6988157
合计17989092706

备注:我包括了 Kestrel Http Server 项目,因为它是一个有趣的例子。当前它的第一号贡献者 Ben Adams 并非微软雇员,他为改善其内存使用做出了很大的贡献,让 Kestrel 可以每秒钟接受更多的请求。

通过观察随时间推移的变化,可以很清楚的看到社区(浅色条)在过去两年(2013/11 - 2015/12)来的参与情况,看起来并不像是趋于停止。

每月发现的问题数 - 按提交者

每月问题数 - 按提交者(微软或社区)

此外,虽然社区参与情况可以很容易地从每月发现的问题数上看出来,不过从合并的 PR 数上也可以再次印证这两年来的趋势。

每月合并的 PR 数 - 按提交者

每月合并 PR 数 - 按提交者(微软或社区)

贡献总数

每个项目的贡献人数也很有意思。通过这个你可以看到社区贡献者的实际规模,并不是少量的人做了大量的工作,而是这些工作由大量的人分散完成的。

这个表格展示了每个项目中发现问题和提交了被合并的 PR 的人数:

项目微软社区合计
aspnet/MVC39395434
aspnet/dnx46421467
aspnet/EntityFramework31570601
aspnet/KestrelHttpServer2295117
合计13814811619

FSharp

在我的第一篇文章的评论中,Isaac Abraham 指正说:

.NET 的一部分已经开源一年多了,F# 编译器和 FSharp.Core 已经开源一段时间了。

所以,为了解决这个问题,我去了解了一下主要的 FSharp 仓库:

按 Isaac 的解释,他们之间的关系是:

... visualfsharp 是微软自己的 Visual F# 版本仓库。而另外一个是社区管理的一个。前一个是直接作为 Visual Studio 其中的 Visual F# 工具;而后一个则是类似 Xamarin 的东西。这里有个(稍微过时的)解析它们关系的图表,以及另外一个有用的资源:http://fsharp.github.io/

FSharp - 发现的问题(2010/12 - 2015/12)

项目微软社区合计
fsharp/fsharp9312321
microsoft/visualfsharp161367528
合计170679849

FSharp - 合并的 PR(2011/5 - 2015/12)

项目微软社区合计
fsharp/fsharp27134161
microsoft/visualfsharp363369
合计63167230

结论

我认为,公平地说社区已经对微软越来越多地开源其代码的动作做出了回应。在几个项目上社区花费了大量时间,做出了显著的贡献。虽然你可以说微软也花费了大量的时间来开源,但是看起来 .NET 开发人员很喜欢他们做的事情,体现了可观的社区响应。

Munin 是一款类似 RRD tool 的非常棒的系统监控工具,它能提供给你多方面的系统性能信息,例如 磁盘、网络、进程、系统和用户。这些是 Munin 默认监控的内容。

Munin 如何工作?

Munin 以客户端-服务器模式运行。主服务器上运行的 Munin 服务器进程会从本地运行的客户端守护进程(Munin 可以监控它自己的资源)或者远程客户端(Munin 可以监控上百台机器)收集数据,然后在它的 web 界面上以图形的方式显示出来。

在服务器中配置 Munin

要配置服务器端和客户端,我们需要完成以下两步。

  1. 安装 Munin 服务器软件包并配置,使得它能从客户端收集数据。
  2. 安装 Munin 客户端,使得服务器能连接到客户端守护进程进行数据收集。

在 Linux 上安装 munin 服务器端

在基于 Ubuntu/Debian 的机器上安装 Munin 服务器:

apt-get install munin apache2

在基于 Redhat/CentOS 的机器上安装 Munin 服务器:

在基于 Redhat 的机器上安装 Munin 之前,你需要确保 启用 EPEL 软件仓库,因为基于 Redhat 的机器的软件仓库默认没有 Munin。

yum install munin httpd

在 Linux 上配置 Munin 服务器端

下面是我们要在服务器上启动 Munini 所进行的步骤:

  1. 在 /etc/munin/munin.conf 中添加需要监控的主机详情。
  2. 配置 apache web 服务器使其包括 munin 配置。
  3. 为 web 界面创建用户名和密码
  4. 重启 apache 服务器

步骤 1

/etc/munin/munin.conf 文件中添加主机条目。调到文件末尾添加要监控的客户端。在这个例子中,我添加了要监控的数据库服务器和它的 IP 地址。

示例:

[db.linuxnix.com]
 address 192.168.1.25
 use_node_name yes

保存文件并退出。

步骤 2

在 /etc/apache2/conf.d 目录中编辑或创建文件 munin.conf 用于包括 Munin 和 Apache 相关的配置。另外注意一点,默认其它和 web 相关的 Munin 配置保存在 /var/www/munin 目录。

vi /etc/apache2/conf.d/munin.conf

内容:

Alias /munin /var/www/munin
<Directory /var/www/munin>
 Order allow,deny
 Allow from localhost 127.0.0.0/8 ::1
 AllowOverride None
 Options ExecCGI FollowSymlinks
 AddHandler cgi-script .cgi
 DirectoryIndex index.cgi
 AuthUserFile /etc/munin/munin.passwd
 AuthType basic
 AuthName "Munin stats"
 require valid-user
 <IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault M310
 </IfModule>
</Directory>

保存文件并退出。

步骤 3

现在为查看 munin 的图示而创建用户名和密码:

htpasswd -c /etc/munin/munin-htpasswd munin

注意:对于 Redhat/Centos 机器,要访问你的配置文件,需要在每个路径中用 “httpd” 替换 “apache2”。

步骤 4

重启 Apache 服务器,使得 Munin 配置生效。

基于 Ubuntu/Debian :

service apache2 restart

基于 Centos/Redhat :

service httpd restart

在 Linux 上安装和配置 Munin 客户端

步骤 1

在 Linux 上安装 Munin 客户端

apt-get install munin-node

注意:如果你想监控你的 Munin 服务器端,你也需要在服务器端安装 munin-node。

步骤 2

编辑 munin-node.conf 文件配置客户端。

vi /etc/munin/munin-node.conf

示例:

allow ^127\.0\.0\.1$
allow ^10\.10\.20\.20$

# 监听到哪个地址上
host *

# 以及哪个端口
port 4949

注意: 10.10.20.20 是我的 Munin 服务器,它连接到客户端的 4949 端口获取数据。

步骤 3

在客户端机器中重启 munin-node:

service munin-node restart

测试连接

检查你是否能从服务器的连接到客户端的 4949 端口,如果不行,你需要在客户端机器中的防火墙打开该端口。

telnet db.linuxnix.com 4949

访问 Munin web 页面

http://munin.linuxnix.com/munin/index.html

希望这些能对你配置基本的 Munin 服务器有所帮助。


via: http://www.linuxnix.com/install-and-configure-munin-monitoring-server-in-linux/

作者:Surendra Anne 译者:ictlyh 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

一家以色列安全公司在 Linux 内核中发现了一个重大的安全漏洞(CVE-2016-0728),它已经存在了将近三年。影响到了成千上万的 Linux 服务器和 Linux 桌面计算机;此外,近 70% 的 Android 手机和平板也受此漏洞影响。

漏洞情况

在 Perception Point 发表的一篇文章中说,该漏洞出现在 Linux 钥匙环 keyring 中,钥匙环用于存储认证信息、加密密钥、安全数据和其它敏感信息。简单来说,该漏洞允许攻击者提升普通本地用户的权限,获得设备的 root 权限。关于该漏洞的深入的描述,可以见此文章

这很可怕,获得了 root 权限的攻击者可以在设备上做任何事情,包括安装恶意软件、删除文件、读取敏感信息等等。而在有该漏洞的 Android 设备上得到 root 权限很简单,只需要用户点击某个恶意链接或扫描二维码,下载并打开来路不明的恶意应用就会受到攻击。

谁会受到影响?

据 Perception Point 掌握的数据,目前还没有人受到该漏洞的攻击。这让人稍有安慰,但是有大量的设备都暴露在该安全漏洞之下,存在潜在的被攻击风险。

“虽然我们和内核安全团队没有观察到对此安全漏洞的攻击,但是这个安全漏洞暴露在外,随时有可能被利用”, Perception Point 的文章说,“我们建议安全团队检查受影响的设备,并尽快实施补丁”。

成千上万的运行 Linux 内核 3.8 及其以上版本的 Linux 桌面计算机和服务器会受此漏洞影响,而由于 Android 继承了部分 Linux 内核的代码,所以该漏洞也影响到了 Android 4.4 及其以上版本的设备。截止到目前,估计有超过 69.4%的 Android 设备受此影响,这已经远超安全研究人员的预计。简单的来说,如果你是两年内购买或升级的 Android 设备,那么你的设备是肯定受影响的。

Google 回应了 Perception Point 的发现,并已经发布安全补丁交付给了合作厂商,称其实受到影响的设备“明显少于最初报道的”数量。

“我们确信 Nexus 设备不会因这个漏洞而受到第三方应用的影响”,Google 的 Adrian Ludwig 写到,“此外,Android 5.0 及其以上版本是受保护的,因为其上的 SELinux 策略会防止第三方应用访问到这些有问题的代码。还有,运行 Android 4.4 及更旧版本的设备也不包含这些有问题的代码,它们是在 Linux 内核 3.8 版本引入的,这些新的内核版本并不能用在旧的 Android 设备上。”

有多严重?

这个已经潜伏了近三年的安全漏洞非常严重,特别是 Perception Point 已经提出了验证该漏洞概念的代码。

好消息是,在 Linux 公司方面,Red Hat 和 Ubuntu 已经发布了更新,现在管理员们可以更新补丁了。

而 Android 方面有些复杂。虽然 Google 已经启动了按月发布安全更新的计划,但是该公司并没有说这次的补丁是否会出现在2月份的更新中。即便发布,这个补丁也需要通过复杂的过程才能更新到那些 Android 定制厂商的设备中。换句话说,没有人能告诉你什么时候所有受影响的 Android 设备才会更新完成。

不过,好在你只要不点击可疑链接或扫描来路不明的二维码去下载安全性未知的应用,就可以免受该漏洞的影响。而一旦有了相关的安全更新,尽快更新就好。