如何在AWS EC2上架设L2TP/IPsec服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在AWS EC2上架设L2TP/IPsec服务相关的知识,希望对你有一定的参考价值。

简单,连上虚拟网络,使用的都是代理服务器的IP地址了,具体方法:
  1、右键单击“网上邻居”选择“属性”,打开网络连接属性。
  2、在右侧的“网络任务”栏中点击“创建一个新的连接。
  3、打开新建连接向导,点“下一步”。在 “网络连接属性”选择里,点击“设置高级连接”,点击“下一步”,然后,在接下来的“高级连接选项”中选择“接受传入的连接”。点击“下一步”。勾寻直接并行,点击“下一步”。
  4、勾寻允许虚拟专用连接”,点“下一步”。
  5、创建一个允许连接的用户权限。点击“添加”按钮,输入双鱼IP转换器账户和密码后点“确定”。点击“下一步”继续。
  6、在“网络软件”中勾选需要用到的协议,一般保持默认即可。点击“下一步”后,服务器就搭建完成了。
  选择“开始”→“设置”→“控制面板”→“网络连接”→“创建一个新的连接”→“下一步”→“连接到我的工作场所的网络”→“下一步”→“虚拟专用网络连接”,按说明完成后面的操作即可。
参考技术A 首先推荐使用AWS的EC2, 新开通账号可以获得一定时间的免费t2.micro虚拟服务器使用权限. 大家可以在aws.amazon.com找到相关的信息.

1. 开通aws.amazon.com的账号.

2. 进入ec2的控制面板, 开通实例. 这里实例就代表一个虚拟服务器的解决方案. 我选择的是推荐的免费ec2的t2.micro ubutntu解决方案.

3. 生成一个私钥, 这个用来使用ssh连接你的虚拟服务器. 生成后请妥善保管. 假设我们重命名为aws.pem

4. chmod 400 aws.pem

5. ssh -i ~/Desktop/aws.pem ubuntu@public_dns_name_for_your_aws_server. 这里, @后面的需要自己替换为自己控制面板中启用的实例公网dns

6. 登陆后, sudo -s 切换到root, 默认密码为空

7. 安装pptp service.

apt-get update, aptitude install pptpd

8. 编辑pptp配置文件:sudo vim /etc/pptpd.conf在最后一行加上以下代码:

localip 192.168.240.1
remoteip 192.168.240.2-9

9. 使用Google Public DNS:sudo vim /etc/ppp/pptpd-options找到包含ms-dns,去掉注释,并修改如下:

ms-dns 8.8.8.8
ms-dns 8.8.4.4

但是我这里修改无效, 连接vpn后还是无法ping youtube.com, 后来我手动在vpn的advance设置中添加了8.8.4.4 dns server就可以了. 待续.

10. 配置访问VPN的用户名和密码,将USERNAME和PASSWORD替换为你自己希望的。可以重复添加,分配给不同的用户::

echo "USERNAME pptpd PASSWORD *" | sudo tee -a /etc/ppp/chap-secrets

11. 重启服务:

sudo /etc/init.d/pptpd restart

12. 已经可以连接到pptp,下面配置数据转发。编辑/etc/sysctl.confsudo
vim /etc/sysctl.conf将下面一行的注释去掉net.ipv4.ip_forward=1

然后重新加载sudo
sysctl -p

13. 网络地址转换

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

其中-o eth0可以不要.

重启pptpd服务 不行的话, 试试iptables --flush, 再执行一遍上面的地址转换.

14. 确保服务器重启后服务可用:sudo
vim /etc/rc.local在exit 0上面加一行

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

15.
进入ec2控制台, 修改安全选项, 在inbound 和outbound里面都加入

All TCP, TCP, 0-65535 0.0.0.0/0

All UDP, UDP, 0-65535 0.0.0.0/0

All IMCP, All, N/A 0.0.0.0/0

16.
在客户端主机上建立VPN连接, 填入虚拟机公网dns地址, 用户名, 密码, 设置vpn的dns.

AWS SSH 访问密钥生成过程并安装在 EC2 上

【中文标题】AWS SSH 访问密钥生成过程并安装在 EC2 上【英文标题】:AWS SSH access key generation procedure and putting on EC2 【发布时间】:2020-09-18 21:08:46 【问题描述】:

我想知道 AWS EC2 如何将 SSH 公钥放在实例上并将私钥提供给最终用户。我的意思是了解创建 SSH 密钥并将其放在 EC2 实例上的过程是如何自动化的。

【问题讨论】:

当您生成 ec2 实例时,AWS 要求您提供密钥对!这就是 aws 在 ec2 实例中映射公钥的方式 请将您的问题移至Super User(在此处删除,在此处重新发布)。这是off-topic here。 【参考方案1】:

密钥对通过 EC2 元数据服务传递给实例。

来自Amazon EC2 key pairs and Linux instances - Amazon Elastic Compute Cloud:

您在启动实例时指定的公钥也可通过其实例元数据获得。要查看您在启动实例时指定的公钥,请在您的实例中使用以下命令:

curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key

预先安装在 AMI 上的“首次启动”脚本使用上述方法检索公钥,然后插入到 /home/ec2-user/.ssh/authorized_keys 文件中。

请注意,如果使用实例元数据 v2,则此方法略有不同,如链接页面中所述。

【讨论】:

【参考方案2】:

这个过程实际上是在实例作为user data 的一部分启动时执行的。

【讨论】:

以上是关于如何在AWS EC2上架设L2TP/IPsec服务的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 terraform 将 aws ec2 私有 ips 传递给模板文件

Terraform EC2 NIC private_ips 来自自定义模块输出的构建列表

如何基于java应用内存扩展aws ec2集群

如何在 aws EFS 上挂载 aws EC2 文件作为持久卷?

在 EC2 上运行 Java EE 应用程序

如何将定制的ec2 监控报表放到 aws cloudwatch 上