经过测试,ConoHa 无法架设 PPTP VPN,OpenVPN无问题
一、前言
本文旨在协助没有资讯相关背景的朋友能够建立自己的、安全的VPN。
文章将分为两部分:基础建设、OpenVPN架设。
本次将以 ConoHa VPS 搭配 Debian 8 (64bit) 来做示范。
如果你的VPS服务商只提供 Ubuntu 14.04 LTS,请别担心,大致上所有内容都通用。
(可能有细微差异)
如果你的VPS服务商只提供 Debian 6 / 7,请与我连络,我会详细解释如何升级。
如果你的VPS服务商只提供 CentOS 7,请容我说声抱歉,
因为撰文的时间关系,本次教学将不会涵盖 CentOS。
如果你的VPS服务商只提供 FreeBSD,那它还没倒真是个奇蹟(X)。
由于 ConoHa 似乎已经取消验证手机的1500 JPY免费额度,
且经过测试 ConoHa 无法架设 PPTP VPN,(推测是GRE协定被挡)
还请斟酌是否要使用,或者寻求其他供应商。
文章内容若有任何疑问或者本人有所疏忽的地方,欢迎发表推文或来信。
二、开始使用VPS
首先到 ConoHa VPS 的官方网站注册一个帐号。
注册后会要求手机号码验证与选择缴费方式。
ConoHa 可以储值的方式使用,提供信用卡、PayPal等等的方式。
注册手续完成后就可以到 Server List,
点击右上角的 Add 或左上角的 Add Server 进入添加服务器的画面。
在添加服务器的画面请点击“Debian”并选择 8 (64bit)。
在 root Password 字段填入 root 密码。
(root 是 Linux 系统中的“超级使用者”,拥有所有的权限)
建议使用大小写字母、数字、底线、问号等符号混杂的密码,且避开既有单词。
这里有一个 Intel 的页面可以测试密码强度。
https://www-ssl.intel.com/content/www/us/en/forms/passwordwin.html
请注意不要在这个页面打上真正的密码,而只是测试密码的“形式”。
题外话,我试了一下,fxxkutanaka居然要12年?
第三部分 Option 的地方,请取消勾选 Port Permission IPv6 的 Allow All。
接着就可以按右下角的 Add 新增机器。
等到红圈处变成 Running 就可以继续下一步。
三、基本设置
这部分将使用PieTTY做为远端连线至VPS的软件。
PieTTY可以在这边下载到:http://ntu.csie.org/~piaip/pietty/
打开PieTTY会是这样的画面:
首先请记录VPS的IP。VPS的IP可以在这里找到:
同时请先点击最上方的“Shutdown”关闭VPS,
然后点击第三项的“VPS Setup”并将 Console Key-map 改为 en-us。
如果跳出红色的讯息告诉你设定失败就代表VPS还没有关机。
修改完毕后点击上方的“Start”。
接着把IP填回PieTTY。
点下连线后应该会跳出类似这样的东西:
点击“是”就可以了。
接下来PieTTY会问你要用什么身分登入(login as:),
请填入root,然后打上密码登入。
使用root登入非常危险
使用root登入非常危险
使用root登入非常危险
但因为 ConoHa VPS 没有默认的使用者,我们还是要危险这一次。
登进去之后首先做基本的安全设定。
首先是开启一个新的使用者。
在命令列打上“adduser xxx”,xxx可为你希望使用的使用者名称。
(全小写、不可数字开头)
root@xxx:~# adduser xxx
然后指定密码。请不要和root使用同样的密码,
并请使用大小写字母、数字、底线、问号等符号混杂的密码,且避开既有单词。
除了密码以外的设定基本上可以留空直接 Enter。
接着我们要禁止使用root登入。
首先要赋予刚刚新增的使用者操作系统的权限。
root@xxx:~# visudo
找到 # User privilege specification
并在 root ALL=(ALL:ALL) ALL后面新增一行如图。
修改完后按Ctrl+X,再按Y,再按Enter存盘。
接着禁止使用root登入。
root@xxx:~# nano /etc/ssh/sshd_config
找到 PermitRootLogin yes,把yes改成no。改完后一样Ctrl+X、Y、Enter。
接着要重新开启ssh服务让它使用新的设定档。
root@xxx:~# systemctl restart ssh.service
然后离开VPS。
root@xxx:~# exit
接着重新打开PieTTY,并用刚刚建立的使用者登入。
登入后测试是否能获取root权限。
xxx@xxx:~$ sudo su -
输入密码后Enter,如果发现变成了“root@xxx:~#”就是成功了。
成功就可以回到一般使用者的状态了。
root@xxx:~# exit
注:如果你和我一样,使用sudo的时候会出现一行
sudo: unable to resolve host xxx-xxx-xxx-xxx
可以这样解:
$ sudo sed -i.bak 's/localhost/localhost '$(hostname)'/' /etc/hosts
接着设定 fail2ban 来阻挡外来攻击者暴力破解密码。
xxx@xxx:~$ sudo apt-get -y update
xxx@xxx:~$ sudo apt-get -y upgrade
xxx@xxx:~$ sudo apt-get -y install fail2ban
然后设定 fail2ban 的设定档。
xxx@xxx:~$ sudo nano /etc/fail2ban/jail.local
打开来确实是一个空白的文件,请不要惊慌。
由于内容有一点多,所以我把它放在codepad.org上:http://codepad.org/diDtliN7
复制之后在PieTTY的黑视窗点一下右键就可以贴上了,注意别点到两下。
一样Ctrl+X、Y、Enter存盘。
然后修改另外一个档案让它可以在重开机时保留原先的黑名单。
xxx@xxx:~$ sudo nano /etc/fail2ban/action.d/iptables-multiport.conf
在里面找到 actionstart,在整段的后面加上
cat /etc/fail2ban/ip.blocklist | while read IP;
do iptables -I fail2ban-<name> 1 -s $IP -j <blocktype>; done
(请合并成一行)
然后找到 actionban,加上
echo <ip> >> /etc/fail2ban/ip.blocklist
存完档后重启 fail2ban。
xxx@xxx:~$ sudo systemctl restart fail2ban.service
然后确认 fail2ban 是否有成功运行。
xxx@xxx:~$ sudo fail2ban-client status
注:fail2ban 最近有过一次设定档更新,而 Debian 8 stable 版本没有更新。
我不太确定 Ubuntu 14.04 LTS 有没有更新这一项。
如果无法正常启动还请告知,我会补上解法。
至此系统环境就大致上完成架设安全的VPN的准备了。
再次提醒,设置密码时,
请使用大小写字母、数字、底线、问号等符号混杂的密码,且避开既有单词。
基础建设篇至此结束,感谢收看;有问题欢迎发表推文或来信。
OpenVPN架设篇已完成,文章代码 #1LU_Gc_9