Set Up IKEv2 VPN Server

【2016 年 12 月】之前在阿里云服务器上搭建了 PPTP VPN,但是苹果在最新的 iOS 10 和 macOS Sierra 系统中移除了 PPTP VPN 的选项。所以打算重新搭建一个 IKEv2 VPN。

【2018 年 8 月】之前参考的教程是基于 Ubuntu 16.04 的,而且步骤太复杂了,所以重新写了一个基于 Ubuntu 18.04 的。


Prepare

在开始之前,先检查一下需要准备的东西。

首先,你需要一台有 IPv4 地址的服务器,安装 Ubuntu 18.04 操作系统。

然后,你需要一个域名,绑定到上面提到的 VPN 服务器。(当然直接使用 IP 地址也是可以的,不过比较复杂,后面有贴教程,这里只讨论有域名的情况。)

Steps

服务器和域名都准备好了之后,我们就可以开始操作了。首先 SSH 登录到 VPN Server,依次执行如下命令,然后按照提示一步一步操作就可以了。

git clone https://github.com/jawj/IKEv2-setup.git
cd IKEv2-setup
./setup.sh

当然,你可以随时添加和修改 VPN 用户名和密码。

sudo vi /etc/ipsec.secrets

只要 VPN 用户名和密码符合下面的格式就可以了。

someusername : EAP "somepassword"

修改完成之后别忘了执行下面的命令,让 strongSwan 接受更改,改动才能生效。

sudo ipsec secrets

Connect

一般情况下在脚本跑完之后你会收到一封邮件介绍怎么在 Mac OS X / iOS,Windows,Android,Ubuntu 系统下面连接 IKEv2 VPN。

如果你的服务器没有开通邮件服务,你还可以在你创建的用户目录下面找到对应的配置文件。(比如我的用户目录是 /home/vpn)

== iOS and macOS ==
A configuration profile is attached as vpn-ios-or-mac.mobileconfig — simply open this to install. You will be asked for your device PIN or password, and your VPN username and password, not necessarily in that order.

== Windows ==
You will need Windows 10 Pro or above. Please run the following commands in PowerShell:
Add-VpnConnection -Name “vpn.tanghengzhi.com” `
  -ServerAddress “vpn.tanghengzhi.com” `
  -TunnelType IKEv2 `
  -EncryptionLevel Maximum `
  -AuthenticationMethod EAP `
  -RememberCredential
Set-VpnConnectionIPsecConfiguration -ConnectionName “vpn.tanghengzhi.com” `
  -AuthenticationTransformConstants GCMAES256 `
  -CipherTransformConstants GCMAES256 `
  -EncryptionMethod AES256 `
  -IntegrityCheckMethod SHA256 `
  -DHGroup ECP384 `
  -PfsGroup ECP384 `
  -Force

== Android ==
Download the strongSwan app from the Play Store: https://play.google.com/store/apps/details?id=org.strongswan.android
Server: vpn.tanghengzhi.com
VPN Type: IKEv2 EAP (Username/Password)
Username and password: as configured on the server
CA certificate: Select automatically

== Ubuntu ==
A bash script to set up strongSwan as a VPN client is attached as vpn-ubuntu-client.sh. You will need to chmod +x and then run the script as root.


参考:

https://support.apple.com/en-us/HT206152
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-18-04-2
https://www.vultr.com/faq/#downloadspeedtests
https://github.com/jawj/IKEv2-setup

285 total views, 2 views today

如何科学上网

“The best time to plant a tree was 20 years ago. The second best time is now.”
— Chinese Proverb

一直想写点什么,却由于各种各样的原因一直没能实现。

最近红杏挂了,用阿里云的服务器搭了一个简单的 vpn,顺便用 WordPress 搭了一个个人博客。

可能会写一些技术文章,读书笔记,旅行日记,一切皆有可能。

对于一个拖延症晚期的人来说,保证按时更新基本是不可能的。

所以至少每月一篇吧。


为什么科学上网(翻墙)是每个科技工作者必备的技能?

因为一些众所周知的原因,包括 Google 在内的许多海外知名网站都被封了,而且随着 GFW 的不断升级,会有越来越多的网站无法访问。

那么问题来了,如何用正确的姿势来科学上网(翻墙)呢?

如果你去网上搜索一下,你会发现原来有这么多种科学上网的方法,不管你是没有什么经验的新手,还是已经解锁多种姿势的老手,相信都会大开眼界的。

这里主要介绍一些我用过的科学上网方法。

1.ssh 代理

首先你需要一个 ssh 账号。我当时用的是公司的账号。网上可以找到免费试用的 ssh 账号,如果需要购买可以去淘宝。

然后你需要 Bitvise SSH Client (以前叫 Bitvise Tunnelier),Firefox 浏览器 和 Foxyproxy 插件。

由于没有 Windows 系统的电脑(其实是懒),就不写详细的步骤了,教程可以自行网上搜索。

2.红杏

鉴于红杏已经挂了,不知道什么时候能恢复,这里就不介绍了。

3.vpn

不得不说,vpn 用户才是科学上网的主力军。

今天我们主要介绍怎么在 ubuntu 14.04 上搭建 PPTP 服务器。

安装和配置 pptp 服务器

首先我们用 apt-get 安装 pptp 服务器

# sudo apt-get install pptpd

然后我们需要修改 pptp 服务器配置文件

# sudo vi /etc/pptpd.conf

在文件结尾添加 server IP 和 client IP. 比如下面这样:

localip 192.168.0.1
remoteip 192.168.0.100-200

把 PPTP 服务器的 IP 配置为 192.168.0.1, 同时给连接到该 PPTP 服务器的 PPTP 客户端分配 192.168.0.100 到 192.168.0.200 的地址段。

配置当 PPTP 客户端 连接到 PPTP 服务器时使用的 DNS 服务器

# sudo vi /etc/ppp/pptpd-options

去掉 ms-dns 配置前面的 #,你可以像下面一样添加 google 的 DNS 服务器或者其他的 DNS 服务器

ms-dns 8.8.8.8
ms-dns 8.8.4.4

然后在配置文件 /etc/ppp/chap-secrets 里面添加用户数据

# sudo vi /etc/ppp/chap-secrets

每一行是是一个用户,一共四项数据,用空格隔开。

第一项是用户名。第二项是服务器名称,你可以填 “pptpd”。第三项是密码。最后一项是 IP 地址,填 * 代表允许所有 IP 访问。

# client server secret IP addresses
username * password *

最后启动 PPTP 服务器

# /etc/init.d/pptpd restart

OK,现在可以使用你的用户名密码连接到 PPTP 服务器了,是不是就大功告成了呢?

然而并没有,你会发现虽然你已经连上了 VPN,但是根本上不了网。因为你忘了一个重要的步骤。

配置 IP 转发

我们可以通过修改/etc/sysctl.conf 文件来启用 IPv4 转发。

# sudo vi /etc/sysctl.conf

把下面一行的注释去掉

net.ipv4.ip_forward=1

然后重新加载配置文件

sudo sysctl -p

把转发规则添加到 iptables

# sudo vi /etc/rc.local

在 exit 0 之前添加下面两行

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -p tcp --syn -s 192.168.0.0/24 -j TCPMSS --set-mss 1356

重启之后你就可以连接到你的 PPTP 服务器,并且愉快的 Google 一下了。

参考:

免费 ssh 代理

http://blog.onlybird.com/getfreessh

Bitvise SSH Client 下载地址

https://www.bitvise.com/ssh-client-download

在Ubuntu上搭建VPN(PPTP)

https://help.ubuntu.com/community/PPTPServer


最后说点题外话,这个世界上并没有绝对的自由。当我们讨论如何科学上网时,我们讨论的是一种技术问题,而不是是非问题。

1,459 total views, no views today