标签归档:pip

又发现一个神器—个人CalDAV/CardDAV服务器

主页在这里:http://radicale.org/

显着无聊,在LEDE的软件源里面到处找有什么有趣的服务,结果发现了一个叫做radicale的个人CalDAV/CardDAV服务器,直接装了跑起来之后总有点问题,于是稍微研究了一下,大概是由缺失了htpasswd的原因导致的,抓log也没报任何错误,但就是没法正常工作。最后还是去官网直接看部署过程才终于搞起来。

软件使用python编写,最新的版本使用python3,目前就我所知,软件包的需求最少也有python3、pip、htpasswd,及其所有所需软件包。功能上非常简陋,但核心的功能一个不漏,源码包不到100K,还自带一个简陋的web控制页面,可以用来新增文件夹。

安装过程就和官网所说,非常简单,最少只需要2条命令就能跑起来,不过想要用得好一点就还是需要进行一些配置。

先安装radicale

python3 -m pip install --upgrade radicale

然后pip就会搞定全部的需求,官方同时推荐对密码使用bcrypt进行加密,如果使用bcrypt加密,同时使用pip安装bcrypt。同时,根据不同的发行版,把htpasswd装上,LEDE由于没有将htpasswd从apache中拆出来,所以我就把apache装上就可以用了。

好了,服务器已经安装完,进入配置环节,radicale会自动尝试从“/etc/radicale/config~/.config/radicale/config或者是尝试从系统变量中读取RADICALE_CONFIG来找到配置文件,所以直接放在/etc/radicale/config就好,当然,可以直接加参数来运行,不过我觉得没有多少人会每次都加上一堆参数来运行的吧(笑)。

创建好配置文件,就向里面填入以下内容:

[auth]
type = htpasswd
htpasswd_filename = /path/to/users
htpasswd_encryption = plain
delay = 1

[server]
hosts = 0.0.0.0:5232
max_connections = 20
max_content_length = 10000000
timeout = 10
daemon = True
pid = /var/run/radicale.pid
ssl = True
certificate = /path/to/cert
key = /path/to/key
realm = Radicale - Password Required

[storage]
filesystem_folder = /path/to/storage

[rights]
type = authenticated

根据个人需求,可以酌情修改,比如说想要规模大一点,可以对权限进行更加详细的设定,比如说哪些人能读哪些人能写,参考这里
同时可以根据需要,抓取更加详尽的log,可以参考这里
在这个例子里面,我就参考LEDE默认的那个,直接用plain存储用户名和密码,同时使用SSL对通信进行加密,证书的做法有太多,这里就不详述。
users文件可以使用htpasswd来创建,大概的格式就是用户名:密码,如果用明文的话可以直接编辑users文件来修改密码。

创建好用户名和密码之后,可以尝试使用浏览器来访问https://your.domain:5232/,会自动跳转到一个非常简陋的web控制页面能够创建、编辑、删除包括地址簿、日历、todo清单等文件夹,根据我的测试来说暂时是没法在客户端创建这些文件夹的,所以现在web控制页面建好,然后就可以到客户端添加详细的条目了。

obfs通道的部署

参考:

https://plus.google.com/+GhostAssassin/posts/bMBbFYD6JZ3
https://www.liquidweb.com/kb/how-to-install-pip-on-centos-7/

 

最近听闻了一个模糊协议,叫做obfs,是开发Tor那群人搞出来的东西,用来模糊流量避免GFW的深度包检测,我尝试了一下可以做port forward,于是顺手再搭个梯子,感觉效果似乎比shadow socks好一点(心理作用?)。

搭建过程不算太麻烦,只需要一个叫做obfsproxy的软件就可以了,在ubuntu和debian似乎可以直接安装,不过pip安装的方法更加通用。

debian系的需求包

apt-get install gcc python-pip python-dev

redhat系的需求包

yum install python-pip python-devel gcc pycrypto

其中出现了我的CentOS软件源里并没有pip这种情况,可以实用python脚本来安装,方法如下:

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py

搞定之后可以用pip来安装obfsproxy

pip install obfsproxy

安装完毕后用法如下:

服务器端:

obfsproxy --data-dir ~/.obfs/ scramblesuit --dest 127.0.0.1:1194 --password ABCDEFGHIJKLMNOPQRSTUVWXYZ234567 server 0.0.0.0:1234 &

客户端:

obfsproxy scramblesuit –dest serveraddress:1234 –password ABCDEFGHIJKLMNOPQRSTUVWXYZ234567 client 127.0.0.1:56789 &

至此通道就搭起来了,例子中,客户端访问127.0.0.1:56789就相当于在服务器端访问127.0.0.1:1194。另外要注意的就是,obfsproxy似乎并不能保证数据加密的效果,最好搭配一个更加好的加密通道来使用。