海纳百川

登录 | 登录并检查站内短信 | 个人设置 网站首页 |  论坛首页 |  博客 |  搜索 |  收藏夹 |  帮助 |  团队  | 注册  | RSS
主题: LINUX加密代理的制做过程
回复主题   printer-friendly view    海纳百川首页 -> 罕见奇谈
阅读上一个主题 :: 阅读下一个主题  
作者 LINUX加密代理的制做过程   
农工自由党
[博客]
[个人文集]

游客









文章标题: LINUX加密代理的制做过程 (371 reads)      时间: 2006-6-26 周一, 下午11:20

作者:Anonymous罕见奇谈 发贴, 来自 http://www.hjclub.org

首先去http://httpd.apache.org/ 下载Apache2.2.22 网站服务器软件。
下面是我们配置APACHE的程序。
#!/bin/bash
/configure --prefix=/usr/local/apache -with-mpm=prefork -enable-ssl -disable-charset-lite -disable-include -disable-env -enable-setenvif -disable-status -disable-autoindex -disable-asis -disable-cgi -disable-negotiation -disable-imap -disable-actions -disable-userdir -disable-alias -enable-proxy -enable-cache -enable-diskcache -enable-headers -enable-deflate -enable-rewrite -enable-speling

你把这个拷贝下来,存为myconfig.sh 文件,然后输入以下命令:
chmod 700 myconfig.sh
./myconfig.sh; make;make install

网站就建成了,不过代理还不能运行。

你去apache/conf/httpd.conf中,有一行
#ServerName www.example.com:80
你把它改成
ServerName <你申请的域名>:<你设置的端口地址>
如果端口地址不是80,前面还有一行
Listen 80
也要改成
Listen <你的端口号>

另外加入两行:
ProxyRequests on
ProxyVia on

现在,你可以开动APACHE了。
/usr/local/apache/bin/apachectl start 就行了。

这样,你的不加密代理就开始运行了。你只要告诉你的朋友们,在他的流览器内,

把你的域名和端口地址告诉他,让他输进它的流览器内,他就可以突破中共IP封锁

了。例如,要想进入www.google.com,只要在地址一栏中输入:http://64.233.187.99就

行了。

怎么样把这个代理建设成为加密代理呢?
我们是分两步走的,首先建设一个单向授权的加密网站,然后再把加密网站设置为
加密代理。

建设加密网站的第一步:制造一片私人钥匙和申请授权申请文书。
openssl req -new > new.cert.csr.
这条命令将问你以些问题,在回答问题是,CN一项,必须等于域名。

第二步:把私人钥匙中的密码去掉。如果不去掉,每次你开动APACHE的时候它就问
你密码。很烦人。这是防自己,没有什么用。如果劾客已经打到这里来了,再防他
已经没有任何意义了。所以,把密码去掉。
openssl rsa -in privkey.pem -out new.cert.key

第三步:批准钥匙授权申请书。
openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key
-days 365
把当前目录下这两个文件,new.cert.cert 和new.cert.key搬到/usr/local/apache/conf目
录之下,
mv new.cert.cert /usr/local/apache/conf
mv new.cert.key /usr/local/apache/conf
第四步:将加密网站设置为加密代理

在apache/conf文件夹内有一个文件,叫httpd.conf 有一行,
#include conf/extra/httpd-ssl.conf
把前面那个#去掉。
加两行
ProxyRequests on
ProxyVia on

再去extra目录,有一个文件叫httpd-ssl.conf
打开这个文件,加两行:
SSLCertificateFile /usr/local/apache/conf/new.cert.cert
SSLCertificateKeyFile /usr/local/apache/conf/new.cert.key
把Listen 443中的443改成你想要的端口地址,如8443,8888
把 ServerName www.example.com:443改成
ServerName <你的域名>:<你的端口地址>,8443,8888>
加一行:
SSLProxyEngine on

用户流览器的设置:
Microsoft IE:
Tools-->Internet Options-->Connections-->LAN Settings-->Use a proxy server
for your LAN
address: <你的域名>
port: <你的端口地址,8443,8888>

加密性能的测试:
下载libpcap和tcpdump, 解包后,先进libpcap,
./configure;make;make install
再进tcpdump
./configure;make;make install

进入/var/log
/usr/local/sbin/tcpdump -c 10000 -w tcpdump 'dst port <你的端口地址>'
打开文件tcpdump看,全是乱码。
在流览中,多次进入清心论坛。
grep qxbbs tcpdump 没有任何输出。

现在改成不加密代理,进行加密性能测试。

在apache/conf文件夹内有一个文件,叫httpd.conf 有一行,
include conf/extra/httpd-ssl.conf
在前面加#。

用户流览器的设置:
Microsoft IE:
Tools-->Internet Options-->Connections-->LAN Settings-->Use a proxy server
for your LAN
address: <你的域名>
port: <你的不加密端口地址,8080,8800>

/usr/local/sbin/tcpdump -c 10000 -w tcpdump 'dst port <你的端口地址>'
grep qxbbs tcpdump
结果:Binary file tcpdump matches.
打开文件,可以看到有qxbbs一词出现。说明,不加密代理是不可靠的。

新的软件,哪怕是不加密的,加密性能也不错,这个Apache 2.2.22不加密代理,基
本上也是乱码,海外不加密代理,不用GB2312,看上去很乱。

大陆内部的代理,如果不加密,使用GB2312,恐怕过不了中共的过滤器。在大陆内
部,我们不推荐使用不加密代理上禁网。

海外代理,如果用最新软件,不加密应该问题不大吧?不过,为了万无一失,还是
用加密代理。

这种加密代理的缺点是单向授权的,如果公开,安全证书必须不断更新。
我们在世界网上http://breakevilaxis.org/mvnforum/mvnforum/viewthread?thread=3有
介绍。
不过,根据我们的经验,中共跟踪封锁IP地址比过滤安全证书要快。 家用电脑,虽
然是动态IP,可是,国外的公司懒得很,不怎么变IP, 你最好用一个程序每隔1小
时变一次。根据我们测试,中共封一个IP最好成绩是六小时。那是“六四”期间。
平常应该超过六小时。
先编一个野蛮变IP的程序:
#!/bin/bash
pppoe-stop
sleep 1
pppoe-start
这个程序要中断服务1秒钟。
把这个程序存为/sbin/ip.sh
chmod 500 ip.sh
在/etc/cron.hourly内,有一个清理卫生的程序,是每小时运行一次的。它有一行

/sbin/rmmod -as
你加一行在它下面就行了。
/sbin/ip.sh

这每小时一变,把中共甩了,用户怎么办?你每小时告诉它新的IP地址吗?这不把
用户也甩了吗?所以,我看域名不公开的好。既然域名不公开,安全证书就没有必
要不断更新。 当然,有空更新一下也未尝不可。以下是更新安全证书的程序。

#!/bin/bash
MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
LENGTH=$RANDOM
let "LENGTH /= 2000"
let "LENGTH += 2"
while [ "${n:=1}" -le "$LENGTH" ]
do
CN="$CN${MATRIX:$(($RANDOM%${#MATRIX})):1}"
let n+=1
done
echo "$CN"
n="1"
LENGTH=$RANDOM
let "LENGTH /= 2000"
let "LENGTH += 2"
while [ "${n:=1}" -le "$LENGTH" ]
do
OU="$OU${MATRIX:$(($RANDOM%${#MATRIX})):1}"
let n+=1
done
echo "$OU"
n="1"
LENGTH=$RANDOM
let "LENGTH /= 2000"
let "LENGTH += 2"
while [ "${n:=1}" -le "$LENGTH" ]
do
O="$O${MATRIX:$(($RANDOM%${#MATRIX})):1}"
let n+=1
done
echo "$O"
n="1"
LENGTH=$RANDOM
let "LENGTH /= 2000"
let "LENGTH += 2"
while [ "${n:=1}" -le "$LENGTH" ]
do
L="$L${MATRIX:$(($RANDOM%${#MATRIX})):1}"
let n+=1
done
echo "$L"
n="1"
LENGTH=$RANDOM
let "LENGTH /= 2000"
let "LENGTH += 2"
while [ "${n:=1}" -le "$LENGTH" ]
do
S="$S${MATRIX:$(($RANDOM%${#MATRIX})):1}"
let n+=1
done
echo "$S"
rm /usr/local/apache/conf/*.key
rm /usr/local/apache/conf/*.crt
openssl req -newkey rsa:1024 -nodes -subj /CN=www.$CN.com/C=US/ST=$S/L=$L/emailAddress=$
O@$OU.com -out new.cert.csr -keyout new.cert.key -passin yourpassword1 -passout
yourpassword2

openssl rsa -in privkey.pem -passin yourpassword2 -out new.cert.key

exit 0

作者:Anonymous罕见奇谈 发贴, 来自 http://www.hjclub.org
返回顶端
显示文章:     
回复主题   printer-friendly view    海纳百川首页 -> 罕见奇谈 所有的时间均为 北京时间


 
论坛转跳:   
不能在本论坛发表新主题
不能在本论坛回复主题
不能在本论坛编辑自己的文章
不能在本论坛删除自己的文章
不能在本论坛发表投票
不能在这个论坛添加附件
不能在这个论坛下载文件


based on phpbb, All rights reserved.
[ Page generation time: 0.209098 seconds ] :: [ 23 queries excuted ] :: [ GZIP compression enabled ]