
Tinfoil团队在今年早些时候的RSA大会上,我们注意到两件事:没有安全的WiFi,有人设置了一个菠萝,一种欺骗无线网络的设备,它位于你的连接中间,用来收集所有未加密的信息。菠萝在任何安全会议中都不意外,但在任何无线网络上,尤其是在不安全的网络上,人们都应该警惕。幸运的是,设置VPN并保护您的笔记本电脑或手机的通信相当容易。通过SSL/TLS传输的流量会自动得到这种保护(只要您注意证书信任错误),但是如果您通过http访问URL,您的cookies和会话就会被劫持。你自己的VPN可以缓解这种情况,你可以自己设置。在本指南中,我将在运行Ubuntu的DigitalOcean设备上设置OpenVPN,但在其他平台上应该是类似的。还没有数字海洋帐户吗?在这里注册。自动方式我们已经创建了一个方便的自动化脚本来创建VPN。你可以在GitHub上找到这个脚本。下载脚本,然后运行它:wgethttps://raw.githubusercontent.com/tinfoil/openvpn_autoconfig/master/bin/openvpn.shchmod+xopenvpn.sh版./openvpn.sh版查看配置文件:cat 客户.ovpn复制/粘贴到OpenVPN中,就可以开始了!手动方式第一件事是,登录到这个盒子里,把基础知识准备好。一旦基本的基础设施就位,安装OpenVPN:sudo智能安装openvpn并提取基本配置文件示例:sudo cp/usr/share/doc/openvpn/examples/sample配置文件/server.conf.gz服务器/etc/openvpn/sudo gzip-d/etc/openvpn/server.conf.gz服务器接下来,在我们返回定制配置之前,是时候设置身份验证了。我建议建立一个快速的公钥基础设施-基本上是你自己的SSL证书。您需要VPN的密钥和证书以及客户端的密钥/证书。在你的VPN:sudo opensslreq-新密钥rsa:4096-密钥输出/etc/openvpn/vpn-密钥.pem-出去虚拟专用网.csr在CA的环境中(希望在其他地方):然后把你的卡塞特·佩姆和vpn-证书pem文件返回到VPN框中的/etc/openvpn。为额外的安全.sudoopenvpn--genkey--secret/etc/openvpn/ta键接下来,为OpenVPN创建一些Diffie-Hellman参数。将4096改为密钥大小(如果它更小),并注意到在EC2上找到4096位素数需要一段时间微型sudoopenssl dhparam-out/etc/openvpn/dh4096.pem 4096关闭私人锁文件:sudo chmod600/etc/openvpn/vpn-密钥.pemsudo chmod 600/etc/openvpn/ta键创建隧道,使您的VPN充当客户端ssudo sysctl-w的NAT网络ipv4.ip_转发=1同时取消对/etc中的行的注释/sysctl.conf系统坚持到底重新启动.sudoiptables-I转发-I tun0-o eth0-s 10.8.0.0/24-m conntrack--ctstate NEW-j ACCEPTsudo iptables-I FORWARD-m conntrack--ctstate相关,已建立-j ACCEPTsudo iptables-t nat-I POSTROUTING-o eth0-s 10.8.0.0/24-j伪装最后,修改openvpn配置(/etc/openvpn/服务器配置)你的设置。下面是一个重要部分的快速示例:#OpenVPN应该监听哪个TCP/UDP端口?端口80#TCP还是UDP服务器?协议udp#"dev tun"将创建一个路由IP隧道,德夫屯#SSL/TLS根证书(ca),证书#(cert)和私钥(key)。每个客户#服务器必须有自己的证书#密钥文件。服务器和所有客户端将#使用相同的ca文件。加利福尼亚州卡塞特·佩姆证书vpn-证书pem密钥vpn-密钥.pem#这个文件应该保密#Diffie hellman参数。dh dh4096.pem#配置服务器模式并提供VPN子网#用于从中提取客户端地址的OpenVPN。#服务器本身需要10.8.0.1,#其余部分将提供给客户。#每个客户端都可以访问服务器#在10.8.0.1中。如果是,请将这行注释掉#以太网桥接。有关更多信息,请参阅手册页。服务器10.8.0.0 255.255.255.0#维护客户机虚拟IP地址的记录#此文件中的关联。如果OpenVPN关闭或#重新启动时,可以分配重新连接的客户端#池中的虚拟IP地址与#以前分配的。ifconfig池持久化ipp.txt文件#如果启用,此指令将配置#所有客户端重定向其默认值#通过VPN的网络网关,导致#所有IP流量,如web浏览和#通过VPN进行DNS查找#(OpenVPN服务器机器可能需要NAT#或者将TUN/TAP接口连接到互联网#为了使其正常工作)。按下"重定向网关def1绕过dhcp"#某些特定于Windows的网络设置#可以推送到客户端,如DNS#或WINS服务器地址。警告:# \dhcpcautions#以下地址指公众#DNS服务器由提供opendns.com网站.按"dhcp option DNS 208.67.222.222"按"dhcp option DNS 208.67.220.220"#取消注释此指令以允许#客户能够"看到"彼此。#默认情况下,客户端只能看到服务器。#要强制客户机只看到服务器,您可以#还需要适当地防火墙#服务器的TUN/TAP接口。客户对客户#如果有多个客户端,请取消此指令的注释#可能使用相同的证书/密钥进行连接#文件或通用名称。建议这样做#仅用于测试目的。用于生产用途,#每个客户端都应该有自己的证书/密钥#配对。##如果你没有生成个人#每个客户端的证书/密钥对,#每个人都有自己独特的"通用名",#取消注释此行。;复制cn#keepalive指令导致ping#要来回发送的消息#使双方都知道什么时候#另一边倒下去了。#每隔10秒Ping一次,假设遥控器#如果在#120秒的时间段。保持连接10 120#提供额外的安全保障#通过SSL/TLS,创建一个"HMAC防火墙"#帮助阻止DoS攻击和UDP端口溢出。##服务器和每个客户端必须#这把钥匙的复印件。#第二个参数应为"0"#在服务器上,在客户端上为"1"。tls认证ta键0#此文件是机密文件#在VPN链接上启用压缩。#如果您在这里启用它,您还必须#在客户端配置文件中启用它。压缩机lzo#减少OpenVPN是个好主意#初始化后守护程序的权限。用户无人不分组#persist选项将尝试避免#重新启动时访问某些资源#可能已经无法访问,因为#特权降级。持久键坚持住#输出一个简短的状态文件,显示#当前连接,已截断#每分钟都在重写。状态openvpn-状态.log#设置适当的日志级别#文件冗长。##0是静默的,但致命错误除外#4对于一般用途来说是合理的#5和6可以帮助调试连接问题#9非常冗长动词4呼,你快到了!创建一些客户端证书并配置计算机或电话进行连接。我们最喜欢的VPN应用是粘度。当您尝试连接时,请使用tail/var/log/syslog查找连接错误。LZO压缩和ta.键/方向对于获得稳定的连接尤其重要。现在你希望有一个VPN设置。它可能会比没有保护慢一点,但你的数据将通过公共WiFi进行加密。对其他客户端有什么建议或OpenVPN配置吗?告诉我!