最近开始自己动手编译openwrt的固件,因为总有时忘记选择编译出vdi的固件,所以得到的都是img格式的,不能直接用在Virtualbox上。
稍微上网找了一下,资料也算相当多,只不过每次都要搜索的话略麻烦了点,于是在这里做一下记录
VBoxManage.exe convertfromraw -format VDI path\?.img path\?.vdi
就变成vdi格式的硬盘了。
最近开始自己动手编译openwrt的固件,因为总有时忘记选择编译出vdi的固件,所以得到的都是img格式的,不能直接用在Virtualbox上。
稍微上网找了一下,资料也算相当多,只不过每次都要搜索的话略麻烦了点,于是在这里做一下记录
VBoxManage.exe convertfromraw -format VDI path\?.img path\?.vdi
就变成vdi格式的硬盘了。
话说这标题意外的微妙呢……其实相当一段时间之前就已经弄好的,只是最新更新了trunk的固件,决定重新写一次而已。
在部署的过程中经历了不少曲折,可是最后终究还是做好了。还是外国人的东西靠谱,找到的几分中文教程里面的配置文件完全不给力啊,最后还是在官方Wiki里面找到能用的教程。
http://wiki.openwrt.org/doc/howto/vpn.openvpn
真是一份优秀的教程啊,其他平台的部署也可以略作参考。
下面是咱的人手翻译,说是这样说,其实也只是把大部分的命令弄过来而已……
—————————————–首先是服务器的配置————————————–
首先是安装软件包
opkg update opkg install openvpn openvpn-easy-rsa
然后是稍微改一下easy-rsa的配置文件(不过如果你对手动签署证书比较熟悉的话也可以手动)
vi /etc/easy-rsa/vars
在文件底部添加环境变量
export KEY_COUNTRY="US" export KEY_PROVINCE="TX" export KEY_CITY="Houston" export KEY_ORG="My Cool Place"
接着是签署证书,一共3份,根证书,服务器证书,客户证书。签署的过程需要填写一些信息,自己看着填,详细可以参考这个里面的说明
根证书
clean-all build-ca build-dh
服务器证书
build-key-server server
客户证书
build-key Jimmy build-key Sara build-key Soandso ...
将CA证书,服务器证书,dh密钥,服务器私钥拷贝到openvpn文件夹
cd /etc/easy-rsa/keys cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn/
接着,把CA证书,客户端证书,dh密钥,客户端私钥拷贝到客户端。
然后,在luci(还是要有图形界面啊)的网络-接口-LAN里面,把tap0加到桥接里面,然后就不需要考虑转发啊什么的了,方便的很。
下面是server的配置文件,这个写在/etc/config/openvpn
config 'openvpn' 'lan' option 'enable' '1' option 'port' '1194' option 'proto' 'udp' option 'dev' 'tun0' option 'ca' '/etc/openvpn/ca.crt' option 'cert' '/etc/openvpn/server.crt' option 'key' '/etc/openvpn/server.key' option 'dh' '/etc/openvpn/dh1024.pem' option 'ifconfig_pool_persist' '/tmp/ipp.txt' option 'keepalive' '10 120' option 'comp_lzo' '1' option 'persist_key' '1' option 'persist_tun' '1' option 'status' '/tmp/openvpn-status.log' option 'verb' '3' option 'server_bridge' '192.168.1.1 255.255.255.0 192.168.1.200 192.168.1.219'
接着是防火墙啊,dhcp啊之类的,默认就可以了。
再贴一个通用版本的config,这个可以直接用openvpn来运行而不必依靠luci
port 1194 proto tcp dev tun ### Certificate and key files ca /etc/easy-rsa/keys/ca.crt cert /etc/easy-rsa/keys/server.crt key /etc/easy-rsa/keys/server.key dh /etc/easy-rsa/keys/dh1024.pem server 192.168.30.0 255.255.255.0 push "route 0.0.0.0 0.0.0.0" push "dhcp-option DNS 10.1.254.250" # Change this to your router's LAN IP Address client-to-client ### (optional) compression (Can be slow) comp-lzo persist-key persist-tun verb 3 keepalive 10 120
————————————————–接下来是客户端(OpenWrt)—————————————
配置文件:
client
tls-client
dev tun
proto tcp
remote <server address> 1194 # 改成服务器的IP
resolv-retry infinite
nobind
persist-tun
persist-key
ca ca.crt #CA证书,可以改成绝对路径,下同
cert Jimmy.crt
key Jimmy.key
dh dh1024.pem
comp-lzo
verb 3
然后可以用
openvpn --config 配置文件 --daemon
运行客户连接
另外原文还有Windows版的Client配置文件,有兴趣的可以过去看看。
嘛~因为开了vhosts,所以总出点什么问题……
刚刚把自己签署的证书都换了一遍,因为Google Chrome告诉我说,证书的签署算法太旧了,要被淘汰。于是又重新做了新的CA证书,然后把全部证书都重新做了一遍。中间发生了很多很多事情。
因为是签署算法的问题,所以一直在openssl里面看那些命令,不停地做,不停地做。结果最后签出来的证书都是MD5的。又尝试用DSA来做。可是用DSA做出来的根证书全部都是损坏了,不完整的,上Google搜,也没有相关的信息,结果放弃用DSA了。,老老实实用RSA。
然后又考虑是不是私钥的问题。用openssl genrsa 做了好多次,结果一旦加上什么参数就要我加上密码。我擦嘞,能不能不用密码啊,重启服务器都要输密码的话很麻烦啊。
后来翻来翻去,发现签署证书的时候,算法都是在openssl ca -md 命令里面设置的,终于找到了问题所在。 因为我是用着那个很久以前的sign.sh脚本来签署的,估计参数都在里面。然后打开一看,果真如此。改过之后再一sign,出来的就是sha1的算法,Chrome也没有报错了。于是马上动手全部换了一遍。
换了之后,问题又来了。wordpress的博客进不去了……访问的结果都是“No input file specified.”怎么改都不行,偏偏另外一个vhosts的php脚本没问题,跑phpmyadmin也没问题。php.ini的doc_root已经包括了wordpress的文件夹,可是还是不行。最后一怒之下,把doc_root给注释了,结果就好了……
今天意外多折腾啊
[文章作者:张宴 本文版本:v1.0 最后修改:2009.11.14 转载请注明原文链接:http://blog.s135.com/startssl/]
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容请看SSL。
它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
1、自行颁发不受浏览器信任的SSL证书:
HTTPS的SSL证书可以自行颁发,Linux下的颁发步骤如下:
openssl genrsa -des3 -out api.bz.key 1024 openssl req -new -key api.bz.key -out api.bz.csr openssl rsa -in api.bz.key -out api.bz_nopass.key
Nginx.conf的SSL证书配置,使用api.bz_nopass.key,在启动Nginx是无需输入SSL证书密码,而使用api.bz.key则需要输入密码:
server { server_name sms.api.bz; listen 443; index index.html index.htm index.php; root /data0/htdocs/api.bz; ssl on; ssl_certificate api.bz.crt; ssl_certificate_key api.bz_nopass.key; ...... }
自行颁发的SSL证书虽然能够实现加密传输功能,但得不到浏览器的信任,会出现以下提示:
2、受浏览器信任的StartSSL免费SSL证书: 继续阅读
原文地址:Linux强制注销其他在线用户
先用w查看在线用户。
goface ~ # w
11:53:14 up 53 min, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.8 11:11 0.00s 0.51s 0.02s w
goface tty7 :0 11:11 53:25 42.50s 0.23s gnome-session –session=classic-gnome
root pts/1 192.168.1.8 11:38 14:53 0.37s 0.37s -bash
那么如何把别人踢过去呢,呵呵。
#pkill -kill -t tty
#pkill -kill -t pts/1
再w一下,发现另一个连接终端被踢了,呵呵。
另外也可以使用skill命令。如
#skill -KILL -t pts/1 能达到同样的效果。
#skill -STOP -u user1
#skill -KILL -u user1 杀死并注销user1。
当然ps grep找出进程杀死也可以实现,不过没有使用上面的命令方便。大家有什么更好的方法,欢迎在回复中评论,大家一起分享,哈哈。
不知为何……之前我在自己的VPS上不能kill掉另外一个bash进程,最后是用了
skill -KILL -t pts/1
才成功了……
原文地址:http://hi.baidu.com/panzhiqi/blog/item/3e66abad0d489d0c4a36d624.html
相当于apache 中的 Options Indexes功能
编辑 lighttpd.conf
dir-listing.activate = "enable"
$HTTP["url"] =~ "^/upload($|/)" { dir-listing.activate = "enable" }
dir-listing.activate = "enable" $HTTP["url"] =~ "^/www($|/)" { dir-listing.activate = "disable" }
嗯,因为换了CentOS,所以在设置VPN的时候也出问题了,发现根本没有添加VPN的选项(Ubuntu在这方面做的好多了),于是上网各种查。
得到的参考有很多,不过都说到了一个软件包 NetworkManager-pptp
这个就是关键了
找遍了Google,大多数教程都指向一个网址“”,结果一查询,发现根本没有这个域名……真是坑爹啊。
最后还有老实人好,有个博客指出了一个可用的ftp服务器“ftp://mirror.switch.ch/“,还是找到了想要的软件包。
装完 NetworkManager-pptp之后,重启(不知道为何,我装了很多东西都要重启)就能在网络管理器那里添加pptp的VPN了。
最近不知道为什么lighttpd又跑不动了(当然不是VPS上的,而是路由上的) ,运行
lighttpd -f /etc/lighttpd/lighttpd.conf -D
得到了下面这堆奇怪的结果
2012-3-20 13:55:54: (log.c.172) server started 2012-3-20 13:55:54: (mod_fastcgi.c.1087) the fastcgi-backend /usr/bin/php-fcgi failed to start: 2012-3-20 13:55:54: (mod_fastcgi.c.1091) child exited with status 13 /usr/bin/php-fcgi 2012-3-20 13:55:54: (mod_fastcgi.c.1094) If you're trying to run your app as a FastCGI backend, make sure you're using the FastCGI-enabled version. If this is PHP on Gentoo, add 'fastcgi' to the USE flags. 2012-3-20 13:55:54: (mod_fastcgi.c.1398) [ERROR]: spawning fcgi failed. 2012-3-20 13:55:54: (server.c.928) Configuration of plugins failed. Going down.
接着就无法启动了……
我擦勒,不带这样玩的啊喂,这种莫名其妙的东西是什么啊,到底是什么问题你说一下啊。不得已,只得在网上不断的搜索,都没有相关的资料……最后从某个英文的网站找到了一个指引(明灯啊!)strace
大概是一个调试的东东,在opkg的info里面的介绍是“A useful diagnostic, instructional, and debugging tool. Allows you to track whatsystem calls a program makes while it is running.”
接着我根据那位大神所说的,运行了一次
strace -ff lighttpd -D -f /etc/lighttpd/lighttpd.conf
结果出来了一大串一大串文字,刷屏了,而且看不到头。不过看到了一个很重要的信息
运行/usr/bin/php-fcgi的时候出现了“permission denied”。嗯?有问题?权限的话是755,应该没问题啊,尝试直接用root来运行lighttpd,报告说不能用root来运行。于是又新建了一个www-data的用户来运行,在用su切换账户的时候发现问题了。这个问题之前也提到过,于是就顺手改了过来。接着切换过去一运行/usr/bin/php-fcgi,没问题了。再运行lighttpd,也没问题了……
这可真蛋疼啊,明明之前的版本都可以直接用其他用户来运行的,现在的话还有自己动手。
嗯,最近在尝试win8之后打算卸掉呢,再考虑到一直都是玩debian系的Linux,就手痒装了个CentOS
只是CentOS的软件库不是很大,于是需要点第三方源,比如说RPMforge
参考:在CentOS 6上使用RPMforge安装源(软件仓库)
导入DAG GPG密钥:
rpm --import
下载并校验RPMforge软件包:
# 以下地址适用于CentOS 6,其他版本请参考官方文档 # 如果是i686系统,请wget下面地址的RPM包 wget # 如果是x86_64系统,请wget下面地址的RPM包 wget rpm -K rpmforge-release-0.5.2-2.el6.rf.*.rpm
校验完毕后,使用下面的命令安装:
rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm
接着就是安装软件了。