2006年7月26日

在 Redhat 上安全使用 Tor

Author: Hagen.GoO 转载请注明作者出处
MSN contact:
wantm009@hotmail.com
Keyword: Tor,Proxy,GFW
Tor 是基于分布式 Onion Routers 模型的英特网匿名通讯工具。国内的网民可以用此来绕过 GFW 的独裁专制。
本文简单叙述,如何在 Redhat 9.0 上安装和配置 Tor。
1 所需要软件:
2 安装 Libevent 1.1
# tar -zxvf libevent-1.1a.tar.gz //* 解压下载来得的tar包
# cd libevent-1.1a //* 进入源码目录
# ./configure --prefix=/usr/local/libevent //* 执行配置脚本,我们把 libevent 指定安装到 /usr/local/libevent
# make && make install //* 编译安装
3 为 Tor 和 Privoxy 添加 nobody 的系统帐户,如果系统已经存在此用户,可以跳过这步
# useradd -d /dev/null -s /sbin/nologin nobody
4 安装 Tor 0.1.1.22
4.1 安装 Tor
# tar -zxvf tor-0.1.1.22.tar.gz //* 解压下载来得的tar包
# cd tor-0.1.1.22 //* 进入源码目录
# ./configure --prefix=/usr/local/tor --with-libevent-dir=/usr/local/libevent //* 执行配置脚本,我们把 tor 指定安装到 /usr/local/tor,并且告知刚才libevent 的安装位置
# make && make install //* 编译安装
4.2 配置 Tor
# mkdir /var/tor //* 为 Tor 新建数据存储目录
# chown nobody:nobody /var/tor //* 修改所属用户和组
# chmod 700 /var/tor //* 修改用户权限
# cp /usr/local/tor/etc/tor/torrc.sample /usr/local/tor/etc/tor/torrc //* 从例本中复制一个 Tor 的配置文件 torrc
# vi /usr/local/tor/etc/tor/torrc //* 编辑 torrc
修改内容如下:
RunAsDaemon 1 //* 以守护方式运行 Tor
User nobody //* 运行 Tor 的用户帐号
Group nobody //* 用户组
DataDirectory /var/tor //* 重定向 Tor 的数据文件到刚才新建的目录
Log notice file /var/tor/notices.log //* 重定向 Tor 的 log 文件
4.3 运行 Tor
# /usr/local/tor/bin/tor //* 手动开启 Tor 的命令
# /usr/local/tor/bin/tor-resolve google.com 127.0.0.1:9050 //* 这是校验 Tor 时候成功运行的命令
4.4 配置 Tor 自动运行
# echo "/usr/local/tor/bin/tor" >> /etc/rc.d/rc.local //* 追加到 rc.local 即可实现。
5 安装 Privoxy 3.0.3-2
5.1 安装 Privoxy
# tar -zxvf privoxy-3.0.3-2-stable.src.tar.gz //* 解压下载来得的tar包
# cd privoxy-3.0.3-stable //* 进入源码目录
# autoheader && autoconf && ./configure --prefix=/usr/local/privoxy --with-user=nobody --with-group=nobody //* 执行配置脚本,我们把 privoxy 指定安装到 /usr/local/privoxy,并指定运行 Privoxy 服务的用户帐号。
# make && make install //* 编译安装
5.2 调整 Privoxy 的配置文件
# vi /usr/local/privoxy/etc/config //* 编辑 Privoxy config
追加如下一条内容:
forward-socks4a / 127.0.0.1:9050 . //* 指定 Privoxy 得到的 HTTP 请求转发给 Tor
5.3 配置 Privoxy 为自启动服务
# cp privoxy.init /etc/rc.d/init.d/privoxy //* 把源码目录中的 privoxy.init 复制到 init.d/privoxy
# chmod 755 /etc/rc.d/init.d/privoxy //* 修改 privoxy 的文件权限
# vi /etc/rc.d/init.d/privoxy //* 编辑 privoxy
做如下修改:
PRIVOXY_BIN="/usr/local/privoxy/sbin/$PRIVOXY_PRG" //* 191行,指定可执行文件位置
PRIVOXY_CONF="/usr/local/privoxy/etc/config" //* 192行,指定配置文件位置
PRIVOXY_USER="nobody" //* 193行,指定用户
# chkconfig --add privoxy //* 使用 chkconfig 命令,把 privoxy 加为服务
# chkconfig --list privoxy //* 如果服务添加成功,可以列出 privoxy 服务在各运行层的开关状态
5.4 运行 Privoxy
# service privoxy start //* privoxy 服务默认在 Level3 Level5 都能自运行,手动启动可以使用这条命令
6 在浏览器中使用 Tor
Linux 常用的浏览器 Opera Firefox Mozilla 等,需要配置代理服务器为 127.0.0.1:8118 即可轻松使用。简单路由过程是:
  • 浏览器得到HTTP请求,转发到代理服务器,即 Privoxy 开启的127.0.0.1:8118 ,
  • Privoxy 把请求再转发给 Tor 的 127.0.0.1:9050 SOCKS端口。
  • Tor 得到请求后,继而通过已知的匿名节点加密后转发出去。

安装配置 vsftpd PAM+SSL

Author: Hagen.GoO 转载请注明作者出处
MSN contact:
wantm009@hotmail.com
Keyword: vsftpd,PAM,SSL
Quote:


01 官方下载
最新 2.0.5 ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.5.tar.gz

02 解压
# tar -zxvf vsftpd-2.0.5.tar.gz

03 进入 vsftpd-2.0.5 目录
# cd vsftpd-2.0.5

04 编辑 builddefs.h (可选)
#undef VSF_BUILD_TCPWRAPPERS 修改成 #define VSF_BUILD_TCPWRAPPERS
#undef VSF_BUILD_SSL 修改成 #define VSF_BUILD_SSL

05 编译安装
# make
# make install
# cp vsftpd.conf /etc

06 给 vsftpd 添加运行帐号 nobody,也可以使用配置文件中 nopriv_user 项指定其他用户名
# mkdir /usr/share/empty/
# useradd -s /sbin/nologin nobody

07 添加处理虚拟用户或匿名用户的系统帐号 ftp
# mkdir /var/ftp
# useradd -d /var/ftp -s /sbin/nologin ftp
此帐号需匹配配置文件中的 ftp_username(匿名用户) 或 guest_username (虚拟用户)。

08 编辑 PAM 配置文件
# echo "auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login" >> /etc/pam.d/ftp
# echo "account required /lib/security/pam_userdb.so db=/etc/vsftpd_login" >> /etc/pam.d/ftp

09 生成 PAM 的用户数据库
先建立一个文本文件,奇数行为用户名,偶数行为用户密码。可以参看安装目录中 EXAMPLE\VIRTUAL_USERS\logins.txt。
# db_load -nT -t hash -f vsftpd_login.txt /etc/vsftpd_login.db

10 用 OpenSSL 生成自签名证书。
# openssl req -x509 -newkey rsa:1024 -keyout /etc/vsftpd.key -out /etc/vsftpd.pem -nodes (注意加上 -nodes 参数。)

11 编辑 vsftpd.conf 文件
# vi vsftpd.conf
修改成:
listen=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
write_enable=YES
chroot_local_user=YES
ssl_enable=YES
rsa_cert_file=/etc/vsftpd.pem
rsa_private_key_file= /etc/vsftpd.key
virtual_use_local_privs=YES


listen=YES
anonymous_enable=NO
local_enable=YES
guest_enable=YES
write_enable=YES
chroot_local_user=YES
ssl_enable=YES
rsa_cert_file=/etc/vsftpd.pem
rsa_private_key_file= /etc/vsftpd.key
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES

12 自启动 vsftpd 服务
方法1: 编辑 rc.local 文件
echo "/usr/local/sbin/vsftpd" >> /etc/rc.d/rc.local
方法2: 使用 xinetd.d ,把安装目录中 xinetd.c/vsftpd 文件复制到系统 xinetd.d
cp /xinetd.d/vsftpd /etc/xinetd.d/
使用此方法,需注解掉 vsftpd.conf 中的 listen=YES

vsftpd 在 Redhat 9.0 上无法找到 krb5.h

在 Redhat 9.0 上编译 vsftpd with SSL 时报错,提示无法找到 krb5.h,
下面是CU上一位大侠的解决方法:
ln -s /usr/kerberos/include/com_err.h /usr/include/com_err.h
ln -s /usr/kerberos/include/profile.h /usr/include/profile.h
ln -s /usr/kerberos/include/krb5.h /usr/include/krb5.h

OpenSSH 与 SecureCRT 公钥认证登陆

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: OpenSSH,Public Key
Quote:

1 在Windows客户机的SecureCRT程序的Tools菜单中,调出"Create Publib Key"向导,依提示产生一密钥对。默认产生的密钥对会存放在 "C:\Documents and Settings\%USERNAME%\Application Data\VanDyke\",其中 Identity 就是私钥文件,Identity.pub 这是公钥文件。

2 在Linux服务器上编辑 sshd.config 文件
#vi /usr/local/etc/sshd_config
做如下修改:
PasswordAuthentication no (关闭口令认证)
PubkeyAuthentication yes (开启公钥认证)
AuthorizedKeysFile .ssh/authorized_keys (认证公钥文件位置)

3 依旧在Linux服务器上
#mkdir /root/.ssh (新建/root目录下的.ssh文件夹)
#chmod 700 /root/.ssh (修改.ssh文件夹的用户权限)


4 上传Windows客户机SecureCRT生成的公钥 Identity.pub,
OpenSSH公钥没有使用采用 IETF SECSH 标准,所以和SecureCRT的公钥格式不兼容,需要使用OpenSSH自带的 ssh-keygen 命令转换以后才能被OpenSSH识别。authorized_keys 可以保存多个公钥,所以公钥格式转换导入的时候,应该使用追加符 >> ,而不是 >。
#ssh-keygen -i -f Identity.pub >> /root/.ssh/authorized_keys

常见数字证书格式和文件扩展名

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: PKCS,X.509,OpenSSL
Quote:

PKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过 15 个标准。常用的有:
PKCS#7 Cryptographic Message Syntax Standard
PKCS#10 Certification Request Standard
PKCS#12 Personal Information Exchange Syntax Standard
X.509是常见通用的证书格式。所有的证书都符合为Public Key Infrastructure (PKI) 制定的 ITU-T X509 国际标准。
PKCS#7 常用的后缀是: .P7B .P7C .SPC
PKCS#12 常用的后缀有: .P12 .PFX
X.509 DER 编码(ASCII)的后缀是: .DER .CER .CRT
X.509 PAM 编码(Base64)的后缀是: .PEM .CER .CRT

在OpenSSL的工具集中,一般可以使用 -outform -inform 指定 DER 还是 PAM 格式。例如:
openssl x509 -in Cert.pem -inform PEM -out cert.der -outform DER
OpenSSL 中 PEM 到 PKCS#12 的转换,参考命令:
openssl pkcs12 -export -in Cert.pem -out Cert.p12 -inkey key.pem
OpenSSL 中 PKCS#12 到 PEM 的转换,可参考:
openssl pkcs12 -in Cert.p12 -out Key.pem
openssl x509 -in Key.pem -text -out Cert.pem

Redhat 9.0 上升级安装 OpenSSL

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: OpenSSL,Redhat Linux
Quote:


在原先的Redhat 9.0中,已经RPM方式安装了旧版的OpenSSL,一下找不到合适的0.9.8a的RPM升级包,所以试着用源码安装升级,摘要如下:

01 从官方 WWW.OPENSSL.ORG 下载最新 0.9.8a 版的OpenSSL,文件名是 openssl-0.9.8a.tar.gz

02 查找 libcrypto.so* 和 libssl.so* 这两个链接文件的位置,一般有

/lib/libcrypto.so.4
/lib/libssl.so.4
/usr/lib/libcrypto.so
/usr/lib/libssl.so

03 卸载原 OpenSSL 的RPM安装包
$ rpm -qa grep openssl
$ rpm -e --nodeps openssl-XXXXX

04 解压
$ tar zxvf openssl-0.9.8a.tar.gz

05 进入解压目录
$ cd openssl-0.9.8a

06 配置,添加到动态链接库
$ ./config shared
注意一定有 shared 的参数,否则不会编译出 .so 的动态链接库,那样也就意味着不能被OpenSSH等应用程序正常调用~

07 安装
$ make && make install

08 更新 Run-time Linker
ld.so.cache 需要从新位置重新加载新的OpenSSL共享库: libcrypto.so.0.9.8 和 libssl.so.0.9.8

$ cd /usr/local/ssl/lib
$ ln -s libcrypto.so.0.9.8 libcrypto.so.4
$ ln -s libcrypto.so.0.9.8 libcrypto.so
$ ln -s libssl.so.0.9.8 libssl.so.4
$ ln -s libssl.so.0.9.8 libssl.so
$ vi /etc/ld.so.conf
在文末插入一行 /usr/local/ssl/lib
$ ldconfig -v

09 测试
$ /usr/local/ssl/bin/openssl version
$ openssl version
如果可以看到正确版本,表示安装成功。

病毒定义码的几种常见英文说法

收集了几大杀毒软件厂商对病毒定义码的英文说法:
Virus Definitions (病毒定义码)
Virus Signature (病毒特征码)
Virus Database (病毒数据库)
Virus Identity Files (病毒身份码)
Virus Pattern File (病毒样码)
好像翻译得有点生涩了……

你还在用盗版杀毒软件吗?(Linux/UNIX)

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: 杀毒软件,盗版软件,免费软件,Free Antivirus
Quote:



介绍几款 Linux/UNIX 平台下免费的杀毒软件:免去你升级病毒定义码的不便,免去你使用盗版的不安。


1 AVG Anti-Virus Free
官方网站:http://www.grisoft.com/
最新版本:7.1.0028
下载地址:http://free.grisoft.com/doc/5390/lng/us/tpl/v5#avg-free

2 AntiVir PersonalEdition Classic
官方网站:http://www.free-av.com/
最新版本:2.1.7-26,Engine 7.01.00.21
下载地址:http://free-av.com/personal/en/unix/antivir-workstation-pers.tar.gz

3 Clam AntiVirus
官方网站:http://www.clamav.net/
最新版本:0.88.3
下载地址:http://prdownloads.sourceforge.net/clamav/clamav-0.88.3.tar.gz?download

4 BitDefender Linux Edition
官方网站:http://www.bitdefender.com/
最新版本:7.1-3
下载地址:http://download.bitdefender.com/linux/free/bitdefender-console/en/

5 F-Prot Antivirus for Linux Workstations
官方网站:http://www.f-prot.com/
最新版本:4.6.6
下载地址:http://www.f-prot.com/download/home_user/download_fplinux.html

6 Panda Antivirus for Linux (但,官方网站好像没有提供免费的病毒定义码下载)
官方网站:http://www.pandasoftware.com/
最新版本:7.01.00-1
下载地址:http://www.pandasoftware.com/download/linux/descarga.asp

7 avast! Linux Home Edition
官方网站:http://www.avast.com/
最新版本:1.0.6
下载地址:http://www.avast.com/eng/download-avast-for-linux-edition.html

你还在用盗版杀毒软件吗?(Windows)

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: 杀毒软件,盗版软件,免费软件,Free Antivirus
Quote:



介绍几款 Windows 平台下免费的杀毒软件:免去你升级病毒定义码的不便,免去你使用盗版的不安。


1 AVG Anti-Virus Free
官方网站:http://www.grisoft.com/
最新版本:7.1.394
下载地址:http://free.grisoft.com/doc/5390/lng/us/tpl/v5#avg-free

2 AntiVir PersonalEdition Classic
官方网站:http://www.free-av.com/
最新版本:7
下载地址:http://www.free-av.com/down/windows/antivir_workstation_win7u_en_h.exe

3 ClamWin Free Antivirus
官方网站:http://www.clamwin.com/
最新版本:0.88.2.3
下载地址:http://prdownloads.sourceforge.net/clamwin/clamwin-0.88.2.3-setup.exe?download

4 BitDefender 8 Free Edition
官方网站:http://www.bitdefender.com/
最新版本:8
下载地址:http://www.bitdefender.com/site/Download/downloadFile/340/EN/

5 avast! 4 Home Edition
官方网站:http://www.avast.com/
最新版本:4.6
下载地址:http://www.avast.com/i_kat_207.php?lang=ENG (注册以后才能下载)

6 Active Virus Shield
官方网站:http://www.activevirusshield.com/
最新版本:Kaspersky OEM 6.0.0.303
下载地址:http://www.activevirusshield.com/antivirus/freeav/get_started.adp (需要填写邮件地址获取注册码)

7 Comodo Antivirus
官方网站:http://antivirus.comodo.com/
最新版本:1.1 beta
下载地址:http://www.antivirus.comodo.com/download/setup.exe

ISC DHCP Server 3.0.4 Tips

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword: ISC DHCP SERVER,dhcpd.conf
Quote:

01、ISC DHCP Server 的配置文件中可分配IP是如何声明的?
答:
对拥有多个IP网段的DHCP服务器,可以用 shared-network 声明;

shared-network shared-network-name1 {
subnet 10.17.224.0 netmask 255.255.255.0 {
}
subnet 10.0.29.0 netmask 255.255.255.0 {
}
pool {
allow members of "CLASSNAME1";
range 10.17.224.10 10.17.224.250;
}
pool {
deny members of "CLASSNAME2";
range 10.0.29.10 10.0.29.230;
}
}

对于只有单个网段,又不需要特别管理的 DHCP Server,可以使用 subnet + range 声明;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.20 192.168.0.99;
range 192.168.0.200 192.168.0.250;
}

对于只有单个网段,但需要进行IP分配管理的 DHCP Server,可以使用 subnet + pool + range 声明;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.20 192.168.0.99;
range 192.168.0.200 192.168.0.250;
pool {
allow members of "CLASSNAME3";
range 192.168.0.100 192.168.0.149;
}
}

对单个MAC和IP绑定的单个主机,可以使用 Host 声明;
host YOUR-HOSTNAME {
hardware ethernet 00:22:D6:6B:EA:11;
fixed-address 192.168.0.11;
}


02、上述几种可用IP的声明,哪种优先级最高?
答:
优先级最高的是 Host 声明;
接下来是 带有 allow deny 关键字的 Pool (subnet + pool + range)声明,
如果 allow deny 许可冲突,DHCP Server 只执行 allow 操作;
再是不带allow deny关键字的普通 Pool;
最次是 Subnet 或 Shared-network声明。

03、group 标签有什么用途?
答:
group可以包含Shared-network,Subnet,Pools,Hosts的声明,可以分组管理,简化配置文件。比如:
host host-name2 {
hardware ethernet 01:02:DD:7B:E3:53;
option routers 192.168.0.1;
fixed-address 192.168.0.12;
}
host host-name3 {
hardware ethernet 00:12:DC:0B:E3:A3;
option routers 192.168.0.1;
fixed-address 192.168.0.13;
}

可以简化为

group {
option routers 192.168.0.253;
host host-name2 {
hardware ethernet 01:02:DD:7B:E3:53;
fixed-address 192.168.0.12;
}
host host-name3 {
hardware ethernet 00:12:DC:0B:E3:A3;
fixed-address 192.168.0.13;
}
}


04、什么时候需要使用 class 标签?
答:
对DHCP客户端进行分组,在IP Pools中,利用 Allow Deny 关键词进行不同地址池的分配,例如:
class "class-name1" {
match if option user-class = "用户自定义ClassID";
}
class "class-name2" {
match if option user-class = "用户自定义ClassID2";
}

pool {
allow members of "class-name1";
range 192.168.0.100 192.168.0.149;
}
pool {
allow members of "class-name2";
range 192.168.0.150 192.168.0.199;
}


05、if条件语句的使用方法?
答:
ISC DHCP Server 的配置文件,支持 if…… elsif……的条件转向语句,比如针对 UserClassID 的信息,配置不同的生存时间和域名后缀:
if option dhcp-user-class = "accounting" {
max-lease-time 36000;
option domain-name "accounting.example.org";
} elsif option dhcp-user-class = "sales" {
max-lease-time 17600;
option domain-name "sales.example.org";
}

更多DHCP选项,请参考 man dhcp-options 。

06、如何配置Windows系统的 UserClassID?
答:
使用 ipconfig /setclassid adapter-NAME [classid];(启动了Windows的DHCP Client服务以后,才能执行)
也可以修改注册表 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\YOUR-NIC\ 下的 DhcpClassId (REG_SZ)。

Windows Live Messenger 8.0 支持离线留言

Author: Hagen.GoO 转载请联系作者
MSN_contact:
wantm009@hotmail.com
Keyword:WLM,IM,Windows Live Messenger
Quote:
微软终于推出了 Windows Live Messenger 的正式版。
趁闲暇,赶紧下载安装试用一番。
WLM 8.0 除了界面更友好一点,最有用的就是开始支持离线留言功能。但和 Yahoo Messenger (雅虎通)相兼容,好像还有点遥遥无期!
官方简体中文版 8.0.0787 下载:
Mess Patch For 8.0.0787 (多 MSN 运行补丁)官方下载:
给还没有 MSN/WLM 帐号的朋友,附上申请 @msn.com 信箱的直接连接:

WinXP 下开机自动拨号的实现

Author: Hagen.GoO 转载请联系作者
MSN_contact: wantm009@hotmail.com
Keyword:自动拨号,宽带,aDSL
Quote:



实现 Windows XP 的开机自动拨号,需要做2个预先设置:
1,保存拨号的帐号和密码
2,在“控制面板”-“网络连接”-你的“目标连接”上右键属性-“选项”标签卡,取消如下4个的选择:
“连接时显示连接进度”、
“提示名称、密码和证书等”、
“包含Windows登陆域”、
“提示电话号码”。


具体实现方法1,使用命令 “rasphone.exe -d 连接名”:
如果你的拨号连接叫 HZCNC。那么完整命令就是 rasphone.exe -d HZCNC
你可以把这个命令写入“任务计划”,让它开机时执行,也可以写到注册表 HKLM 或 HKCU 的 RUN 键项下。

方法2,使用“启动”项:
你可以把拨号连接的快捷方式拖入到“开始菜单”的“启动”项目中,这样开机也会自动拨号。