Category: Notes

翻译:使用带strongSwan的L2TP,即使是OpenVZ

译者注:希望你看英文不晕,否则请关掉吧。 yep, pretty strong swan 如果你想找一个全平台制霸,连路由器都不用刷的VPN,那基本上就是PPTP和L2TP+IPsec这两个中选了。因为安全和NAT穿越(以及GFW——Beining注)的问题,这年头不流行PPTP了。而L2TP的无用内容(overhead)有点多,而且还有个L2包的传输——这玩意有啥用啊。 挺奇怪,虽然IPsec很灵活,很成熟,网上却没有非L2TP的IPsec指南。黑喂狗。 深♂入IPsec 大体上,“所有的IPsec都是VPN”不大准确。IPsec不是为了VPN开发的,是为了签名并端到端发送加密IP数据的。IPsec在IP层的上面(OSI的第3层——网络层,相对于PPTP和L2TP的第二层——数据链路层  Beining注)和一般创建一个新的网络层,数据被路由到上面的VPN不同,IPsec只加密外部服务器和客户端的连接。神奇吧。 现代的IPsec使用这些东西: 认证头(AH),“保证被传输分组的完整性和可靠性”(wikipedia——Beining注)。这不仅仅加密数据,也包括包头,除了有些可变的东西,例如ToS和TTL。 封装安全载荷(ESP),“对分组提供了源可靠性、完整性和保密性的支持”。 安全关联(SA),“为了提供安全的通讯环境”。 因特网密钥交换(IKE/IKEv2),”归属于IPsec协议族之下,用以创建安全联结”。 AH和ESP都在IP头有自己的协议号。在大局域网要建成,满地都是内网IP的时候,这种东西更加常见。IPsec支持ESP包的UDP封装,可以内网穿越;AH不能和NAT共用。 IPsec有两种模式: 透明模式:签名IP头和数据(AH),或签名并加密数据(ESP)。不隐藏目标IP。在L2TP+IPsec中使用。 隧道模式:签名(AH)而且加密(ESP)整个包。 IKE协议允许你使用X.509证书,预共享密钥或者扩展认证协议(EAP)认证。二元认证也可以。 所有的现代桌面操作系统(Windows  Vista以及以后,OSX,Linux),移动系统(Android,iOS, Blackberry,甚至WP)以及一些路由器支持IPsec使用ESP的隧道模式,我们就用这个。 注意:是IPsec,不是那个Cisco IPsec。 Linux下的IPsec IPsec(AH/ESP, SA)在内核模式工作,只需要为客户端安装并设置IKE守护进程。虽然选择不少,但是只有两个还活跃:strongSwan和libreswan。第二个我不评价,没用过。(我也没用过——Beining注)第一个不错。而且,这个东西是唯一自带IPSec用户空间的,所以可以和OpenVZ的老内核一起用(这个东西的IPsec路由是坏的) OpenVZ的IPsec注释 OVZ可以开L2TP,但是路由有问题。可以加防火墙规则解决,但是问题是——不可能这么做。你需要用strongSwan用户IPsec空间,libIPsec。编译strongSwan时,加上… Read more »

摘抄:关于Python多进程,以及生产者-消费者模型

www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868323401155ceb3db1e2044f80b974b469eb06cb43000 多进程 461次阅读 要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识。 Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。 子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的ID。 Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程: # multiprocessing.py import os print ‘Process (%s) start…’ % os.getpid() pid = os.fork() if pid==0: print ‘I am child process (%s) and my… Read more »

为什么OpenVPN这么慢?(演义版本)

翻译自:http://lowendtalk.com/discussion/40099/why-openvpn-is-so-slow-cool-story#latest 作者:ValdikSS 转载请注明原出处,本出处,以及翻译:cnbeining 我经常看见小白在网上问,为什么用OpenVPN连接两个网站的速度比链接速度慢的多,例如,2Mb/s的链接只有400Kb/s的速度,或者百兆只有20Mb/s的速度。有些人推荐将MTU调大到48000,有些人说应该调整mssfix,但是都不管用。有些人说OpenVPN就这样,老娘就这个速度。扯淡! 一点老黄历 2004年7月。当时发达国家一般家庭网速为256-1024kb/s,在发展中国家网速为56kb/s。Linux2.6.7刚刚发布,带有默认启动TCP窗口大小调节的2.6.8版本一个月前刚发布。OpenVPN已经活跃地开发了3年,即将发布2.0版本。 一名开发者想加入socket缓冲区的代码,估计是想统一各个系统的缓冲区大小。在Windows下,如果人工设置缓冲区大小,网络适配器的MTU会出错,最终是这个结果: #ifndef WIN32     o->rcvbuf = 65536;     o->sndbuf = 65536; #endif   技术层面 如果你用过OpenVPN,你肯定知道OpenVPN支持TCP和UDP。如果你手工设置TCP连接缓冲区大小到64 KB这么小,TCP 窗口大小调整算法不能将窗口大小调节到64K以上。什么意思?假如你的连接水管大但是延迟高,例如从美国到毛子,ping差不多100ms,用默认的OpenVPN设置,你的速度肯定不能高于5.12Mb/s。要50Mb/s的速度,缓冲区至少要640 KB。UDP因为没有窗口大小所以快点,但是也快不到哪去。 怎么破? 你已经猜到了,现在的OpenVPN还在用64 KB的默认缓冲区大小。怎么修?最好的办法是禁止OpenVPN设置自定义缓冲区大小。在服务器和客户端的配置文件加入: sndbuf… Read more »

笔记:在LNMP下部署HHVM

LNMP,http://lnmp.org/  ,是我目前看见的最方便的一键部署脚本。什么都不用担心,全傻瓜(bi)化操作。 但是,由于他几乎更换了所有的默认目录,HHVM会认不出这货。 网上所有的教程都是从0开始安装Nginx。这多不爽。 这里记录一下具体操作。 环境: Ubuntu 12.04 x64(<—-重要!x86不能安装,在这里浪费了两个小时) 1.准备环境,安装HHVM: Ubuntu有deb包,不必自己编译了。 具体列表看这里:https://github.com/facebook/hhvm/wiki/Prebuilt%20Packages%20for%20HHVM #安装依赖 sudo add-apt-repository ppa:mapnik/boost sudo apt-get update sudo apt-get install libboost1.49-dev libboost-regex1.49-dev \ libboost-system1.49-dev libboost-program-options1.49-dev \ libboost-filesystem1.49-dev libboost-thread1.49-dev… Read more »

详细纯小白向教程:如何使用Mailvelope对你的邮件进行签名和PGP加密(3个月,终于写完了。。)

更新: 我的中文翻译已经merge了,大家可以看中文了。 Beining       之前一直没有推荐Mailvelope。因为这货不能签名,所以一直使用GPGTools。 但是这东西必须和系统整合,所以携带不便。当然有个优点是可以一并加密文件。 现在Mailvelope支持了签名,而且进行了安全审计。所以开始推荐这个东西。 对于不方便使用软件的地方,Mailvelope是极其好用的工具。   以下都以Chrome举例,FF类似。 国产浏览器,安全软件绝对不推荐。     初级篇: 1.安装: www.mailvelope.com/ 去Chrome网上商店可以安装。 2.初次使用,设置密钥: 点Options。 如果你没有密钥: 创建密钥:   稍候就好了。 如果你已经有了密钥:   2. 加密邮件 0…. Read more »

摘抄:自信不是說出來的

这个Argument我很喜欢。 作者:御坂0x4e21 原始来源: blog-netarmy.rhcloud.com/?p=173 协议:CC-BY-SA 3.0 Unported   自信,就是相信自己的實力等。大家都說自信對人的成長很重要,正如歌中所唱:「自信,它是積極的態度,平凡的希望。自信,它是前進的動力,成功的源泉。內清困擾,外抵誘惑,為勝利而凱歌,圖竿頭之進步。」然而,自信不是說出來的。 自信的人不需要宣揚和鼓吹。子曰:「君子欲訥於言而敏於行。」少說多做並不是因為對自己的作為缺乏信心,而是因為自己已經做得很好,不需要再加以宣傳。就拿各種廣告來說,整天宣傳移民政策的往往都是西班牙等國力漸漸衰弱的國家,何時有人見過美國公民和移民服務局的宣傳?但事實卻是人們都擠破頭往美國跑。GNU/Linux操作系統下的桌面環境GNOME3,推出兩年前就開始鋪天蓋地地吹噓,結果一發佈就讓人大跌眼鏡;相反,它的競爭對手KDE,沒有各大IT網站的軟文,沒有開發者美好的規劃,甚至沒有桌面組件的大版本更新,但卻一步步走向KDE框架版本5和Wayland新底層。正如Linux內核的開發者Linus Torvalds所說,“Talk is cheap, show me the code. ”(吹牛不值錢,拿代碼說話。)我想,敢於這麼說,Linus是一個自信的人。 說出來的自信不是真自信。這又分兩種:若真的相信,那是自大、虛榮和狂妄;若連自己都不信,那其實是自卑。自大和自卑往往會交替出現。夜郎侯問「漢孰與我大」,源於他對漢朝的無知;但他的無知,並不是一無所知。夜郎侯至少知道自己的國家很大,並且知道有個叫漢的國家也不小。(事實上夜郎國是西南夷中最大的一個。)可就是這點,讓他狂妄自大,起兵反漢,最終因此滅亡。同樣,葉公也對龍有極其淺顯的認識。這些故事告訴我們,一些淺薄、表面上的「知識」,只是知道而不是理解,又或者知道的還不夠多,這種半瓶醋精神只會讓人顯得更無知。當自大的幻想破滅的時候,人們就會陷入自卑的恐懼之中。這時為了保存自己的面子,他們仍然要照著鏡子,在口中唸唸有詞:「我很自信,我很成功……」 那當我們失去自信的時候,應該怎麼辦呢?其實蔣總統經國先生已經為我們指明了道路:與其大喊「我沒有敗」、「大陸自古是中華民國神聖不可分割的一部分」,不如踏踏實實檢視自己的失敗,開闢嶄新的未來。偽裝自信沒有用,高喊反攻大陸也不能拯救中國國民黨。作出我們的成績,讓他們刮目相看——自信,自然會回來。 自信帶個「自」,不是「自己說」,而是「自己做」、「自己展示」的意思。習某某講制度自信,就讓他講去吧,我們人民,會走出一條屬於我們自己的道路。網路上流傳這樣一句話「我們都在談道路自信,制度自信,理論自信。但我覺得自信不是宣傳和說出來的,而是你做的事情讓人家覺得你自信。」這句話傳聞是白巖松說的;不管他是否真的說過——或者借他人之口說話也是不自信的表現——我認為這句話,對。