Android原生OpenVPN使用方法 & Linux SSH帐号权限限制
Android原生OpenVPN使用方法
现在Cyanogenmod和MIUI的ROM都已经原生自带OpenVPN,但是使用方法不是那么方便,前几个月折腾过,今天把方法记录下,需要的人也可以尝试下
我这里以MIUI ROM为例介绍,其实Cyanogenmod也是完全相同的,MIUI也是基于Cyanogenmod开发出来的
原生的OpenVPN设置的最大问题就是证书选择,很多人不知道怎么导入证书
android支持的证书类型是PKCS#12,所以之前我把生成的crt证书放到手机内存块根目录或openvpn文件夹下都找不到
做这些的前提是你有服务器或VPS,并安装了openvpn,或者你购买了Openvpn,并提供商可以帮忙制作PKCS#12证书
我是用自己的VPS安装了openvpn来测试的,这里我不具体说openvpn的安装方法了,网上教程非常多,今天主要说的是如何生成PKCS#12证书,并在手机上设置openvpn
进入到openvpn的证书生成文件夹,通常在/etc/openvpn/easy-rsa/2.0/keys
这里假设你生成的根证书名为ca.crt,而你自己的用户证书为client.crt,私钥为client.key
在目录下运行指令
openssl pkcs12 -export -in client.crt -inkey client.key -certfile ca.crt -out client.p12
运行指令会提示你输入一个export passwd,随便设置一个就行
开始我没设置,直接为空,但是android导入证书时就有问题了,不允许无密码解开PKCS#12证书
其实这指令就是把根证书和你自己的证书和私钥合并到一个PKCS#12证书中,然后把该证书传到手机导入
这里有两个办法,直接把证书放到你的apache或nginx等web服务器的文档目录下,然后直接用手机访问下载地址
这样手机会直接弹出导入证书提示,要求输入导入密码,就是之前运行指令时要求输入的密码
输入后确定,会要求为证书命名,默认是一串字符,你可以取一个方便你区分的证书名字,确定即可
另一种导入方法是把PKCS#12证书传到手机SD卡根目录,然后设置——》个人——》安全和隐私,找到凭证存储
使用安全凭证,默认是没设置过密码的,这里会要求你先设置一个密码,相当于手机报密码一样,只是用处不同
然后下面有一个从SD卡安装,选择这个选项,会弹出一个选择框,让你选择需要导入的证书,同样会要求为证书命名,确定后就导入成功了
使用第一种方法,如果你之前未设置过存储凭证的密码,也会先提示设置一个密码
证书导入的步骤就完成了,下面是设置VPN了
进入设置——》系统——》VPN——》添加虚拟专用网,选择“添加VPN “OpenVPN””
名称随你自己设一个,服务器设置为OpenVPN服务器的ip或者域名
用户认证根据你生成用户证书的时候是否选择输入密码,具体方法这里没有提及,我因为讨厌输入密码,没有设置,所以这里不需要开启
设置CA证书,选择后会弹出选择框,里面有你之前导入的证书,选择它
设置用户证书,同样选择你之前导入的证书
DNS搜索范围,可设置为8.8.8.8,Google的DNS
然后按下menu,选择高级设置
服务端口改为你的OpenVPN端口,默认为1194,很多人装OpenVPN把端口改为53端口,具体原因不在这里解释
使用协议,OpenVPN支持TCP和UDP协议,根据你的OpenVPN服务器设置选择相同的协议
使用设备,一般都是用tun网卡,不需修改
LZO压缩,大部分OpenVPN都会打开这个压缩,如果服务器开启了LZO压缩,手机也必须开启
重定向网关,根据你自己需求而定
远程设置地址,默认开启,由服务器为手机分配一个ip地址
下面的密码算法,密钥大小等不需修改,返回后保存
在VPN设置里多了你刚才设置的VPN账户,点击连接即可
补充一点,如果你的VPN设置里需要TLS验证,无法使用原生OpenVPN
如果要更好的使用OpenVPN,推荐在菜市场里搜索openvpn setting下载安装
因为MIUI本来就支持OpenVPN,也就是本来就有openvpn的库文件,不需要下载openvpn install,这个程序的功能是按照openvpn的库文件,安装一次后即可删除
但是如果你使用Cyanogenmod或者MIUI的ROM,你不需要安装它,直接安装OpenVPN Setting即可
当然你也可以下载安装看看,它会先检测是否已经有openvpn库了,一般都在/system/xbin/openvpn
本文不具体介绍OpenVPN Setting的使用方法了,如果不会设置的朋友可以留言,我改天有空了整理下写出来
作者:小峰JoysBoy@小峰网络遨游记
原文地址:http://xfeng.me/android-original-openvpn-guide/
====================================================================
Linux SSH帐号权限限制
在天朝用SSH来Proxy是家常便饭了,别跟我说你不知道怎么用
我自己也经常在vps上开一些ssh帐号给朋友用,一般都把shell设置为nologin,这样来禁止他们登入服务器
不过有一点很麻烦,密码只能由我设,当然也只能设个简单的,朋友不可能把自己平常用的密码随便告诉我,改密码也只能由我操作
今天看到有人说把这种帐号的shell设置为passwd,登录服务器只能修改密码,其他啥都做不了
试了一下,非常给力啊,这里记录下,顺便也分享一下
首先需要把/usr/bin/passwd加入到/etc/shells中
echo "/usr/bin/passwd" >> /etc/shells
新建账户的方法非常简单
useradd -M -s /usr/bin/passwd username
如果已经建好账户,修改/etc/passwd,把对应帐号最后面的shell改为/usr/bin/passwd即可
搞定,这些账户如果登录服务器,将直接提示修改密码,当然它也只能不停的修改密码
Last login: Mon Aug 15 20:35:17 2011 from *.*.*.* Could not chdir to home directory /home/xxx: No such file or directory Changing password for user xxx. Changing password for xxx (current) UNIX password:
这里会有个小报错,不过没关系,是由于我在新建账户时加了-M参数,不建立用户目录,的确也没必要建这个目录,所以这里warn忽略好了
如果你也有vps,也有这种给朋友开ssh帐号的事情,非常简易你尝试下
作者:小峰JoysBoy@小峰网络遨游记
原文地址:http://xfeng.me/linux-ssh-account-access-limit/
请问,设置CA证书那个选项是不是就是直接导入文中的ca.crt即可,导入用户证书是导入pkcs12证书还是文中的client.crt证书?谢谢。
应该是pkcs12那个
关于OpenVPN for Android,这里有一个详细的说明,可以参考一下:
感谢提示