Browsed by
分类:学习

学海无涯

Debian 9中安装VirtualBox增强工具

Debian 9中安装VirtualBox增强工具

以前的Debian版本中自带有virtualbox-guest-dkms包,直接安装即可。然而Debian8(?9)后,不知道什么原因这个包不再包含在Debian的库中,因此需要手工编译安装。理论上来说,Debian团队没有必要移除这个包,估计可能是Oracle的政策变化导致的。

步骤稍微有些繁琐,主要参考网上一篇文档进行操作,请猛击此处阅读原文档。

首先是将Debian更新到最新的版本:

apt update
apt upgrade

然后安装编译dkms需要的若干工具和库:

apt install build-essential module-assistant dkms

开始准备编译内核模块:

m-a prepare

点击Vbox的菜单“设备 – 安装增强工具”,会在桌面上生成一个类似cdrom的图标,打开ta并进入terminal窗体,运行以下命令即可:

sh ./VBoxLinuxAdditions.run
如何迁移系统?

如何迁移系统?

其实一直被这个问题困扰。家里有台旧笔记本,想换SSD硬盘,可是一想到要重装系统,再加上一堆的软件、配置等,实在是耗时耗力,就这么拖着。今天在知乎上看到一篇大牛的文章《如何安全快速的迁移你的系统到固态硬盘》,实在是太棒了!

粗略地阅读了这篇文章,写得非常详细清晰,更主要的是,推荐使用的工具软件也完全可以免费获得,而且还非常好用。以前也看到过类似的文章,不过为了一次迁移专门去购买一套ghost软件,似乎又下不了决心。这下好了,在忙完这段后,就可以再仔细考虑这件事了。

升级树莓派系统至 Stretch 版本

升级树莓派系统至 Stretch 版本

Pi 官方的Raspbian版本已经正式升级到 Stretch,即 Debian 9 系统。目前使用的还是 Jessie 版本, 根据官方的指导文档,进行升级,总体是比较平顺的,当然也有一些需要总结和修订。

在升级之前,首先要把源系统更新(update)、升级(upgrade)。

然后修改软件源文件,将 jessie 修改为 stretch,共有两个文件需要修改:

/etc/apt/sources.list
/etc/apt/sources.list.d/raspi.list

修改完成后,直接更新版本即可:

sudo apt-get update
sudo apt-get -y dist-upgrade

更新过程耗时比较长,耐心等待即可。需要注意的是,Stretch 版本中将 MySQL 替换为 MariaDB 了,因此如果是安装了MySQL, 需要重新安装 MariaDB。 好在替换过程似乎也很顺利,如果是深度使用MySQL,建议仔细检查这个替换。

升级完成后,音频库没有必要,可以删掉;另外有个字体库则需要单独安装以支持中文:

sudo apt-get -y purge "pulseaudio*"
sudo apt-get install fonts-droid-fallback

在体验最新版本的过程中,发现 xrdp 无法使用。需要卸载以前的版本,同时重新安装 VNC 软件。

sudo apt-get remove xrdp vnc4server tightvncserver
sudo apt-get purge tightvncserver xrdp
sudo apt-get install -y xrdp vnc4server tightvncserver

在用 Windows 的远程桌面登录时, 也要明确指示采用 Xvnc 而不是 Xorg 。以前的版本倒是没有这么麻烦,不知道是升级导致的问题,还是新版本就有这个问题。

升级后感觉明显快了很多,这有点意外,毕竟硬件没有改变,基础 Debian 系统在效率方面改变似乎也并不很大。

清除Putty主机指纹

清除Putty主机指纹

最近修改了主机上的公钥,结果导致Putty无法登录到主机,仔细检查后发现Putty还在使用原有的主机指纹,因此删除原有的记录即可(Putty似乎可以改进一下,重新提示用户是否保存或者修改,不是更合理吗?)。

删除方法比较简单,直接打开注册表,找到以下目录:

HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

然后删除对应的主机记录即可。

企业VPN设置的注意事项

企业VPN设置的注意事项

公司建立了自己的VPN网络用于内部系统接入和管理,出于成本和部署简化的考虑,采用了相对比较简单的PPTP-VPN方案。服务端采用Debian 8系统,客户端就直接是windows和Linux自带的PPTP拨号软件。由于是私有的网络,因此在配置上可以尽量简化、统一,去掉一些没有必要的协商环节。

Debian服务端配置

服务端只保留一种协议(即MS-CHAP v2),同时强制要求MPPE-128bit加密(Microsoft Point-to-Point Encryption-微软点对点加密术)。在“/etc/ppp/pptpd-options”文件中,设置以下值即可:

refuse-pap
refuse-chap
refuse-mschap

require-mschap-v2
require-mppe-128

Windows客户端配置

以Windows自带的拨号网络配置为例。直接指定为“PPTP”的VPN类型,要求数据必须加密,同时协议部分只保留MS-CHAP v2即可。如下图所示。

Windows VPN拨号设置
Windows VPN 拨号设置

Linux客户端配置

与Windows客户端的配置基本一致,只是需要单独指示出MPPE-128bit加密方式,如下图所示。

Linux VPN 客户端配置
Linux VPN 客户端配置
设置SPF记录

设置SPF记录

最近发现的一个问题,如果邮件没有 SPF 记录,某些邮件服务器可能会过滤为垃圾邮件甚至直接拉入黑名单,比如 outlook 的服务器。相对而言,gmail 服务器要聪明很多,似乎在没有 SPF 记录的情况下,会反查MX记录及IP地址并进行匹配检验。

SPF的全称是:Sender Policy Framework, 由RFC7208文档定义详细规格。具体细节就不介绍了,基本意思就是让接收方的邮件服务器对发送者的域名和IP地址等进行检查。

在Linode的DNS管理中,仅仅添加MX记录是不够的,需要单独添加一条TXT记录,如图所示:

添加SPF的DNS记录
添加SPF的DNS记录

根据RFC7208的定义,可以进行很细致的控制。如果想省事,就如上图一样,设置一条”-all”的记录即可:

v=spf1 mx -all
Bootstrap 4!

Bootstrap 4!

最近真是好消息不断,经过多年的开发,bootstrap v4终于发布了,可喜可贺!

我们一直在关注这个版本,其中一些特性非常有吸引力,值得为此升级。我们的产品管理系统、网站等各方面都应用了bootstrap。悲剧性的事情是bootstrap当年推出v3后,过早地放弃了对v2的支持,同时变动实在太大,导致我们目前同时使用了v2和v3两个版本,一直困扰我们的维护工作。

而随着v4版本的推出,我们有机会统一内部的使用情况,将网站、软件产品管理系统的bootstrap都升级到v4的版本。当然,工作量估计非常巨大。

关于V4版本发布的细节,请参考以下文章:

http://blog.getbootstrap.com/2018/01/18/bootstrap-4/

DigitalOcean 免费升级

DigitalOcean 免费升级

早上开始工作时,收到了DO的邮件,非常惊喜。DO更新了各项套餐,增加了一些新套餐,也对老套餐进行了免费升级,真是良心企业。比如原有的“$10/mo”套餐,内存从1G升级到2G,存储从30G SSD升级为50G SSD。

不过默认情况下不会自动升级,需要手工对droplet进行resize。另外需要注意的是,可以只升级CPU和Memory,如果disk也同时升级到更高容量的话,则不支持降级回原有容量。

resize操作非常简单,请参考官方文档:

https://www.digitalocean.com/community/tutorials/how-to-resize-your-droplets-on-digitalocean

网站启用IPv6应注意的事项

网站启用IPv6应注意的事项

网站支持IPv6的步骤比较简单,基本上目前常用的软件,例如Apache、Postfix、dovecot等,都已经支持IPv4和IPv6双栈,只要服务商的设备提供IPv4和IPv6连接,这些软件本身无需为IPv6做特别配置。

需要注意的是服务商处的DNS配置。如果DNS配置不全面,某些服务器在鉴权时会拒绝接受来自IPv6地址的消息。例如gmail服务器在收到 email 消息时,会鉴定DNS和IPv6地址是否匹配,如果不匹配,则视为垃圾邮件直接拒绝,可以看到如下错误警示:

Our system has detected that this 550-5.7.1 message does not meet IPv6 sending guidelines regarding PTR records 550-5.7.1 and authentication.

下面以Linode中的配置做简单介绍(对DO而言也基本如此)。假设IPv4地址是“1.2.3.4”,IPv6地址是“1:2:3:4::5:6”,域名是“demo.com”。

Reverse DNS

Linode 为每个节点分配的DNS名默认是类似的成员名,例如“1234.members.linode.com”。在 Linux 系统 ping 域名”demo.com”时,首先显示的是”1234.members.linode.com”,然后才是跳转到”demo.com”。某些服务应用会认为是PTR错误。在linode中需要设置“ reverse DNS”记录,将节点的DNS名直接指定为“demo.com”。

具体措施请参考linode的在线文档

如果同时支持IPv4和IPv6,上述文档里指导的操作需要单独操作两次,分别指定IPv4地址和IPv6地址。

MX 记录

另外一个需要注意的是 MX 记录,即邮件服务器记录。如果我们将 MX 记录设置为“mail.demo.com”,那么在DNS的A和AAAA记录中,要分别对“mail.demo.com”设置IPv4和IPv6地址,例如以下DNS记录结果:

mail.demo.com. 300 IN AAAA 1:2:3:4::5:6
mail.demo.com. 300 IN A 1.2.3.4

仅仅指定一个地址,对端有可能以域名和地址不匹配为由拒绝消息请求。

TTL

Linode 默认的TTL是3600秒,建议修改为300秒。TTL 太长太短都不好,要根据自己的实际情况调整,以方便自己网络部署、同时又不增加太多网络负担为准则。

Debian testing

Debian testing

Debian 9的KDE实在太丑,“微风”变成浓郁的乡村风,一股掩盖不住的土气扑面而来。相比之下,“Debian 8 + KDE”完全是珍品。

我觉得自己要被Debian 9的乡村风给窒息了,难道以后都会是这样? 赶紧装上testing版本,滚动到最新的KDE看看……无语了,真丑!丑出天际!

似乎大量的部件都用QML重写了,又耗资源又慢,这是要作死啊,一脸油腻的样子。

Debian testing KDE
Debian testing KDE

2018-01-08 更新:实在忍不住,下载了Neon(user edition)看看最新的KDE5究竟是什么样的。好吧,就是下面这个样子。看来冤枉了Debian,KDE5现在就是这种奔放的乡村风。

KDE5 in Neon
KDE5 in Neon