AWS中国区使用EC2+Openwan作为路由器部署Site-to-site VPN服务手册(简版)

一、背景

之前做过两个类似主题的文档,第1贴是使用Cloudformation从零开始搭建实验环境创建出来2个VPC,然后配置VPN对接。第2贴是讲述海外AWS的托管VPN服务的配置。这部分文档讲解是按照学习和做实验的角度,对于配置环境可能过于复杂。因此这里又整理了一个简化版。

本文是个简化版文档,不搭建学习实验环境,只部署用于生产系统,使用Libreswan 3.0(Openswan 2.6的分支)部署VPN路由器。

Continue reading “AWS中国区使用EC2+Openwan作为路由器部署Site-to-site VPN服务手册(简版)”

使用AWS WAF进行Captcha人机验证

一、背景

2021年的re-Invent大会发布了AWS WAF验证码功能即Captcha。Captcha是Completely Automated Public Turing test to tell Computers and Humans Apart(全自动区分计算机和人类的图灵测试)的首字母缩写,通常用于区分机器人和人类访客,以防止 Web 抓取、凭证填充和垃圾邮件等恶意活动。

Continue reading “使用AWS WAF进行Captcha人机验证”

创建对所有AWS服务有只读权限的IAM User用户

在日常使用IAM User的过程中,要配置对各服务的查询权限,需要逐个添加每个服务对应的IAM Readonly Policy。

当需要配置几十个服务的时候,逐个添加很麻烦。此时可以查找名为“ReadOnlyAccess”的策略挂载到用户,即可为所有服务赋权。

Continue reading “创建对所有AWS服务有只读权限的IAM User用户”

在AWS中国区域启用WAF防护Log4J漏洞

一、背景

2021年12月爆出的高危漏洞 CVE-2021-44228 和CVE-2021-45045漏洞,彻底的防护措施是升级Log4J版本到官方指定版本,临时措施是通过WAF进行一定程度的防护。建议升级到Log4J 2.17版本才可以满足安全要求。

使用WAF防护的前提:

  • 中国区域和海外区域,已经使用EC2、ECS容器服务、EKS容器服务,且使用ALB作为发布点,此场景可使用WAF防护
  • 海外区域,没有使用ALB发布但是使用Cloudfront CDN加速,则可使用基于Cloudfront的WAF防护
  • 中国区域和海外区域的WAF都不支持直接对一个EC2的80、443、8080端口进行防护
  • 不支持NLB网络负载均衡器,NLB后可嵌套接入ALB(此为2021年新发布新特性)

如果您已经配置过WAF并启用了,请参考这里的changelog确认后续更新。如果还没有启用WAF,请参考如下Step-by-step配置说明如下。

Continue reading “在AWS中国区域启用WAF防护Log4J漏洞”

使用EC2 Userdata为丢失密钥的EC2更换密钥

一、背景

AWS云上EC2默认使用比密码认证更安全的密钥登录方式,并且默认不允许SSH密码验证。于此同时,为了提升安全性,密钥一旦创建好只允许下载一次。一旦密钥被下载过,AWS控制台上不再提下载按钮。因此保存密钥就成了一项非常重要的工作。

在一台已经登录上的EC2上,可以访问EC2的元数据来获取当前EC2使用的是哪一个密钥。

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

如果丢失了密钥,现有EC2将无法登录。

如果希望抢救这台EC2并更换为新的密钥,则可以采取如下的方法:

Continue reading “使用EC2 Userdata为丢失密钥的EC2更换密钥”

查询在特定Region的某AWS服务IP地址段

2023年9月测试通过,可使用本文档查询EC2 Instance Connect的地址范围

一、背景

为了查询在特定Region的某AWS服务IP地址段,可参考详细文档,包含Windows Powershell说明,请参考官方文档:

https://docs.aws.amazon.com/zh_cn/general/latest/gr/aws-ip-ranges.html

Continue reading “查询在特定Region的某AWS服务IP地址段”

Yum 升级时候提示 “xxx packages excluded due to repository priority protections” 的解决办法

当在Amazon Linux 2上执行 yum update 时候,提示如下信息:

[root@ip-172-31-6-95 ~]# yum update
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
234 packages excluded due to repository priority protections
No packages marked for update
[root@ip-172-31-6-95 ~]#

这是由于yum组件的priority插件已经不在被使用。

Continue reading “Yum 升级时候提示 “xxx packages excluded due to repository priority protections” 的解决办法”

构建Graviton2处理器的Amazon Linux 2平台的openswan 3.0软件包

一、背景

Openswan是用于构建site-to-site VPN服务的开源软件。Openswan历史较长,在主流Linux发行版上一般没有软件安装源,无法通过yum install一步执行安装。由此需要手工编译源代码,比较麻烦。

作为替代方案,可使用libreswan,这是一个从openswan 2.6版本fork出来的分支,在Amazon Linux 2(等同CentOS7)系统上有软件源,可以使用yum install libreswan安装。

However,libreswan的配置和参数与openswan有细微差别,例如不支持auth=esp等参数。由此,在与AWS托管的VPN网关对接时候,生成的配置文件还需要再做人工调整,以消除openswan和libreswan的配置差异。

由此本文将构建一个基于Graviton2处理器的Amazon Linux 2平台的openswan 3.0软件包,可用于在新的EC2上快速安装部署而无需从源代码编译。

Continue reading “构建Graviton2处理器的Amazon Linux 2平台的openswan 3.0软件包”