VPS 安装系统后立即更换OpenSSH服务器端证书

OpenSSH 通信过程中有两类证书会被使用,一是服务器端证书,共四个文件,两种加密类型 rsa 和 dsa。

/etc/ssh/ssh_host_rsa_key       # RSA 密钥
/etc/ssh/ssh_host_rsa_key.pub # RSA 公钥
/etc/ssh/ssh_host_dsa_key      # DSA 密钥
/etc/ssh/ssh_host_dsa_key.pub # DSA 公钥

二是当用户使用证书认证时,上传到 ~/.ssh/ 目录的证书公钥,和保存在客户端主机上的证书密钥。

服务器端证书的用途是加密传输数据,当客户端连接服务器端时,服务器端会选择一种加密协议,如 rsa ,并将服务器端的 RSA 公钥(/etc/ssh/ssh_host_rsa_key.pub)发送给客户端,客户端使用这个公钥将要发送给服务器端的数据(例如认证密码)加密,再通过网络传输给服务器端。服务器端再使用服务器端 RSA 密钥解开被加密的数据,得到明文。只有拥有这个 RSA 密钥的用户可以解开这个加密数据。

客户端证书的用途是鉴定用户身份。

现在的问题是 VPS 服务商的系统都是预安装了 openssh 服务器程序的,而服务器端证书是一般是安装包里的脚本在安装时生成的。换句话说就是相同类型的VPS用户的系统 OpenSSH 的服务器端证书都一样!每个VPS用户都有能力拿到密钥!

更换服务器端证书

sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
sudo service ssh restart

Over!

SCGI – Simple Common Gateway Interface

升级 Nginx 时发现新版的 Nginx 有一个 SCGI 模块,试用了一下,感觉不错。

SCGI 协议是古老的 CGI 协议的替代方案,它是一个应用程序和 HTTP 服务器通信的接口协议。据说比 FastCGI 简单,效率相当,更容易实现。SCGI是C/S模型的,客户端在 HTTP 服务器一侧,基本C语言实现,服务器在应用程序一侧,目前有一个 Python 的服务器实现。

目前 Nginx, Apache, Lighttpd 都支持 SCGI 协议,在 Nginx 0.8.54 里试用操作。

虚拟主机配置文件
/etc/nginx/sites-enable/default

...
location /scgi {
        include scgi_params;
        scgi_pass localhost:4000;
}
...

SCGI 应用程序(服务器端)

#!/usr/bin/env python
# Heiher <admin@hiher.info>
 
import scgi;
import scgi.scgi_server;
 
class TestHandler(scgi.scgi_server.SCGIHandler):
	def produce(self, env, bodysize, input, output):
		output.write("Content-Type: text/plain\r\n\r\n");
		output.write("Test\r\n");
 
if __name__ == "__main__":
	server = scgi.scgi_server.SCGIServer(
			handler_class=TestHandler,
			port=4000);
	server.serve();

访问 SCGI 应用
浏览器中访问 http://localhost/scgi, 输出

Test

目前 PHP 还不支持这个协议,另外发现这个服务器端并不支持 UNIX Socket, 这样多用户虚拟主机的权限怎么控制呢?

Over!

64位 Linux 系统安装 Flash 插件

目前 Adobe Flash Player 的 Linux 64 位版本还没有正式发布,不过在 Adobe Labs 里已经提供预览版 Square 的下载了。

下载地址
http://labs.adobe.com/downloads/flashplayer10_square.html
点击 ”Download plug-in for 64-bit Linux“ 下载压缩包。

安装插件
从上面下载在压缩包解压出 libflashplayer.so

mkdir ~/.mozilla/plugins
cp libflashplayer.so ~/.mozilla/plugins/

Over!

Ubuntu 10.04 LTS 驱动 AR8152 v2.0

Ubuntu 10.04 LTS 操作系统的内核并不支持 AR8152 v2.0 以太网卡,需要编译安装最新的驱动模式。

下载最新驱动源代码
http://wireless.kernel.org/download/compat-wireless-2.6/ 下载最新源代码压缩包。

编译驱动模块

tar xjf compat-wireless-2010-12-12.tar.bz2
cd compat-wireless-2010-12-12
scripts/driver-select atl1c
make

安装驱动模块

sudo make install

装载模块或重启

sudo modprobe atl1c

Over!

使用 Ubuntu 的 DELL Inspiron n4030 禁用触摸板

不知为何系统不能正确处理禁用触摸板功能键的消息,直接移除 psmouse 模块达到禁用目的。

临时禁用触摸板

sudo modprobe -r psmouse

永远禁用触摸板

sudo vi /etc/modprobe.d/blacklist.conf
blacklist psmouse

Over!

FreeBSD 创建无线AP

检查网卡是否兼容

ifconfig wlan0 create wlandev ath0   # 以 ath0 为例
ifconfig wlan0 list caps
drivercaps=6f85ed01<STA,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRAG>
cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>

包含 HOSTAP 则表示兼容

创建无线网络接口

ifconfig wlan0 destroy
ifconfig wlan0 create wlandev ath0 wlanmode hostap

写人 hostapd 配置文件
/etc/hostapd.conf

interface=wlan0
debug=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
ssid=heiher.info  # 以 heiher.info 为例
wpa=1
wpa_passphrase=passwd # 此处填写密码
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP TKIP

启动无线AP

/etc/rc.d/hostapd forcestart

Over!