Category: Web

  • 自建vpn之三:搭建openvpn service和生成客户端Profile

    注:本文于2017年6月8日更新,涉及到用tcp还是udp和如何无错误地启动openvpn。 给虚机设定了基本的防护措施后,我们来安装openvpn服务器终端并生成profile文件。以下指令都是root级别。我假定你已经通过命令行连到服务器上。请根据需要在命令行前自行添加sudo或变成root。 我原计划给读者提供一步一步的说明,但那样会太繁琐。前两天注意到github上有人已经把这一切打包成一个shell脚本。我今天看了下,觉得写得很好。经过我成功测试后,推荐给你使用。并且这个脚本对Ubuntu,Debian, CentOS, RedHat啥的都管用。 请到 https://github.com/Nyr/openvpn-install 下载openvpn-install.sh脚本文件; 打开命令行,运行: bash /EnterRightPathHere/openvpn-install.sh 脚本程序会自动探测到你的IP网址,按回车键; 脚本问你用tcp或udp。如果你在大陆,我建议你用udp。udp因为不需要确认数据包安全抵达目的地信息,所以理论上比tcp要快; 脚本问你port number。我建议你用443。443是https的端口,这样你的vpn和https用同一个端口,我觉得可能更难以堵截; 脚本程序让你选择DNS。我不建议第一个选项(Current system resolvers)。2和6均可. 脚本程序让你命名客户端名字。默认是client。我不建议你用默认。建议你根据其所用的设备和数据中心命名,如androidFrankfurt,iphoneFrankfurt,或winPcFrankfurt等等。请用英文字母来命名; 再敲一次回车,程序就开始运行。运行时间差不多三五分钟,请等待,稍安毋躁。 运行结束后,openvpn服务器已经搭建完成并开始运行。接下来你要把它产生的.ovpn文件(profile 文件),比如winPcFrankfurt.ovpn输送到你的Windows/MacBook/Linux/Android/iPhone设备上。强烈建议你用WinSCP(Windows)或scp(Linux/Mac)来输送文件,防止在传送途中被偷窥; 如你需要产生更多的.ovpn文件,只要重新运行 bash /EnterRightPathHere/openvpn-install.sh 并选择第一个选项即可。 我注意到新版脚本在我的一个Debian服务器上不能正常启动。为了找到问题所在,在命令行运行: [code language=”text”] haidong@localhost:~/openvpn-install-master$ sudo openvpn –config /etc/openvpn/server.conf Options error: –dh fails with ‘dh.pem’: No such file or directory Options error: –ca fails with ‘ca.crt’: No such file or […]

  • 自建vpn之二:保护你的机器

    选完虚拟机供应商、机器规格、操作系统啥的,机器启动后的第一件事是保护它的安全,尽可能减少被攻击面。我在这里只提供一些最基本建议,主要是在防火墙的设置方面。这里提供的一些指令假定你是用Debian 7或8。你如果用Ubuntu,这些指令基本上可以直接拿过来用。CentOS/Red Hat/Fedora方面的指令类似,请自行查询。如有需要,等我有空专门写CentOS/Red Hat/Fedora的设置。 以下指令都是root级别。我假定你已经通过命令行连到服务器上。请根据需要在命令行前自行添加sudo或变成root。 给服务器做软件更新,打补丁: apt-get update apt-get upgrade (yum update) 调整ssh接口端,防范ssh攻击: Linux服务器默认ssh接口端是22。很多网络攻击就从这个接口强攻,用程序频繁自动发起无数次的连接申请,所谓的dictionary attack和brute-force attack。把默认的接口改成其它如50683,是防止这种攻击的有效手段。 用你熟悉的编辑器,打开/etc/ssh/sshd_config,然后查找”Port 22″,把22改成50683后保存文件。 接下来请重新启动ssh服务: service ssh restart 注意以后的远程连接你要记得加-p 50683 建防火墙 apt-get install iptables apt-get install iptables-persistent (运行这个指令,系统会问你要不要把现在的设置存下来,说要) 基本的防火墙设定,IPv4 用你熟悉的编辑器,打开/etc/iptables/rules.v4,删除里面所有的内容,然后加下面的设置: [code language=”text”] *filter # Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn’t use lo0 -A INPUT […]

  • 自建vpn之一:挑选供应商

    想自建vpn,就必须有vpn的服务器。这种服务器一般是利用云服务公司提供的虚拟机服务VPS(Virtual Private Server)。 要有可以国外支付的办法,如信用卡、PayPal啥的; 业界比较知名的供应商有Amazon EC2,Microsoft Azure,Linode,DigitalOcean等等。这几个应当都可以; 如果是单纯做vpn翻墙供自己或小团队使用,供应商的最小配置就可以。我现在用的就是单CPU、128MB内存、10G硬盘小虚机,够我们多台设备一起用; 挑选数据中心时,不建议用英语国家的数据中心,特别是美国的。一是有安全和隐私方面的担心,相信大家都读过相关新闻;二是至少我尝试过的美国数据中心访问中国的一些网站都慢的要死,如优酷。但我发现西欧的数据中心如德国、荷兰、瑞典就没有这方面的问题。我不知道为什么。 操作系统当然要用Linux。我建议Debian。接下来的how to我会假定你的操作系统是Debian 7或8。如果你用其它操作系统,接下来的how to仍然会有帮助。 先写到这儿。亲爱的读者,你先去研究下哪个服务更适合你。之后再回来看我的指南。接下来的博客会提供些建议,讲如何提高你的虚拟机的安全。然后我们再说建vpn的事儿。 PS. 本系列其它文章 自建vpn之二:保护你的机器 自建vpn之三:搭建openvpn service和生成客户端Profile 自建vpn之四:安装启动客户端

  • WordPress post update services and Nginx upstream time out

    Starting around last Friday, I think, this site became irresponsive. Checking Tengine/Nginx error logs, here is a sample of what I saw: [code language=”text”] 2014/03/xx 08:43:40 [error] 3837#0: *6149 connect() to unix:/var/run/php-fastcgi/php-fastcgi.socket failed (11: Resource temporarily unavailable) while connecting to upstream, client: xxx.xx.xxx.xxx, server: haidongji.com, request: “POST /xmlrpc.php HTTP/1.0”, upstream: “fastcgi://unix:/var/run/php-fastcgi/php-fastcgi.socket:”, host: “www.haidongji.com” 2014/03/xx 08:45:13 […]

  • Setting up ownCloud

    I’ve spent some of my spare time lately researching on ways to have better control of my calendar, contacts, important files that I sync to different places, and such. My objective is to move those things away from big cloud providers like Google, Microsoft, Dropbox, Skype, and so on. I am happy to report that […]