阻止可疑登录(Heroku、Amazon AWS、Gmail SMTP)

Posted

技术标签:

【中文标题】阻止可疑登录(Heroku、Amazon AWS、Gmail SMTP)【英文标题】:Suspicious sign in prevented (Heroku, Amazon AWS, Gmail SMTP) 【发布时间】:2012-11-08 01:14:40 【问题描述】:

我偶尔会收到来自 Google (accounts-noreply@google.com) 的电子邮件,类似于以下内容:

Subject: Suspicious sign in prevented

Someone recently tried to use an application to sign in to your Google  
Account, ________@gmail.com. We prevented the sign-in attempt in case  
this was a hijacker trying to access your account. Please review the  
details of the sign-in attempt:

Monday, November 19, 2012 8:40:55 PM GMT
IP Address: 184.72.161.49 (amazonaws.com)
Location: Dixmoor, IL, USA

If you do not recognize this sign-in attempt, someone else might be trying  
to access your account. You should sign in to your account and reset your  
password immediately. Find out how at  
http://support.google.com/accounts?p=reset_pw

If this was you, and you want to give this application access to your  
account, complete the troubleshooting steps listed at  
http://support.google.com/mail?p=client_login

Sincerely,
The Google Accounts Team


© 2012 Google Inc. 1600 Amphitheatre Parkway, Mountain View, CA 94043

You have received this mandatory email service announcement to update you  
about important changes to your Google product or account.

确实,这就是我,因为我在 Heroku 上运行了一个应用程序(因此 IP 地址来自 amazonaws.com),我通过 Gmail SMTP 直接从我的应用程序发送电子邮件(我不认为这很重要,但具体来说,我使用的是gmail_smtp plugin,我是updated for Rails 3.2)。

有没有办法避免这个警告,或者有办法将已知 IP 列入白名单?

【问题讨论】:

【参考方案1】:

简答

    在网络浏览器(可能是 Chrome/Incognito)中,登录到您的 Gmail 帐户(您试图通过该帐户从您的应用发送电子邮件)。

    在另一个浏览器选项卡中,打开https://accounts.google.com/DisplayUnlockCaptcha -- 并按照步骤操作。

长答案

我最终登录了我的 Gmail 帐户(在上面的 *** 问题中称为 ________@gmail.com)并看到以下警告:

[注意:我在事后拼凑这个答案。]点击链接是你吗?我很确定我被带到了一个包含以下内容的页面,但在其下方有一条消息和有关将另一个应用程序添加到列表的按钮:

[再次,我很确定...]点击该页面上的按钮将我带到https://accounts.google.com/DisplayUnlockCaptcha——看起来像这样:

点击继续将我带到另一个页面:

那时我只是去我的应用程序,并让它发送一封电子邮件。

注意:对于我的应用程序中的电子邮件的一般实时测试,我在triggers#index 有一个视图,其中有两个按钮可以向这些操作发送PUT 请求:triggers#send_emailtriggers#raise_exception。这使管理员可以转到/triggers发送电子邮件引发异常以测试生产系统是否正常工作,只要能够发送电子邮件是担心的。通过exception_notification 在我的任何应用程序中向我发送电子邮件详细信息。

【讨论】:

如果尝试使用来自 AWS 的 gmail 的 SMTP 服务器,重要的是允许谷歌服务器中的 IP 地址,通过使用:“accounts.google.com/DisplayUnlockCaptcha”,否则它将无法使用 SMTP 服务器。 这个答案现在似乎已经过时了。在您的 Google 帐户安全设置中,您正在寻找“应用程序专用密码”。通过应用程序访问 Gmail 时,您需要创建一个并使用它(而不是主密码)。 @DavidTuite - 感谢您的来信。当我下次收到此通知并且必须完成该过程时,我会更新此答案。 其实我只是用了上面的解决方案,效果很好。也许 gmail 界面已更改,但 URL 当前仍被接受。 我必须先访问accounts.google.com/DisplayUnlockCaptcha,然后才能成功配置 gmail 以使用 smtp.gmail.com 从我拥有的另一个电子邮件地址发送邮件。令人惊讶的是,这没有记录在某个显眼的地方:-(【参考方案2】:

当我尝试使用 php 通过 Gmail SMTP 发送电子邮件时,我遇到了同样的问题。您应该完成电子邮件末尾提供的故障排除步骤。

【讨论】:

【参考方案3】:

在您的 Gmail 邮箱右下角,您可以看到一个详细信息按钮。点击它,然后在弹出窗口中更改可疑警告设置。

【讨论】:

【参考方案4】:

为了在开发中使用 Rails 4,我必须启用安全性较低的应用程序的访问权限。

在登录到您的 gmail 帐户时访问 https://www.google.com/settings/security/lesssecureapps,然后点击“开启”。请注意,这可以访问不太安全的应用程序,这可能会带来意想不到的后果。

某些应用和设备使用不太安全的登录技术,这使得 您的帐户更容易受到攻击。您可以关闭这些应用的访问权限, 我们推荐,或者如果您想使用它们,请打开访问权限,尽管 风险。

【讨论】:

【参考方案5】:

要在 Rails 4 中实现此功能,除了启用对安全性较低的应用程序的访问外,如前所述(在登录到您的 gmail 帐户时访问 https://www.google.com/settings/security/lesssecureapps 并单击“打开”。请注意,这启用访问权限更少安全的应用程序,可能会带来意想不到的后果。), 在某些情况下,如果帐户访问仍被阻止,则可能需要再执行一个步骤。 如果是这种情况,也请访问https://accounts.google.com/DisplayUnlockCaptcha 并单击继续,以启用通过 gmail SMTP 发送的帐户访问权限。

感谢Steve Polito

【讨论】:

以上是关于阻止可疑登录(Heroku、Amazon AWS、Gmail SMTP)的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何在 Amazon S3 上配置“阻止公共访问”?

AWS redshift 阻止了我的 IP

权限被拒绝(公钥) Amazon Linux aws

在 AWS Cognito 中管理用户

使用 PHP 和 Amazon AWS EC2 的会话

AWS Cognito:生成令牌并在使用 amazon-cognito-identity-js SDK 刷新后