ruby-on-rails - 有人试图进入我的服务器?

标签 ruby-on-rails security nginx server

我上周托管了我的 Rails 应用程序。今天我正在浏览我们的日志文件,并注意到很多这样的请求。

I, [2016-03-14T00:42:18.501703 #21223]  INFO -- : Started GET "/testproxy.php" for 185.49.14.190 at 2016-03-14 00:42:18 -0400
F, [2016-03-14T00:42:18.510616 #21223] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/testproxy.php"):

有人试图从不同的 IP 地址访问 testproxy.php。一些ip来自波兰,另一些来自香港。我是不是被别人攻击了。我有什么选择来保护自己。

以下是日志文件的其他输出:
I, [2016-03-14T03:09:24.945467 #15399]  INFO -- : Started GET "/clientaccesspolicy.xml" for 107.22.223.242 at 2016-03-14 03:09:24 -0400
F, [2016-03-14T03:09:24.949328 #15399] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/clientaccesspolicy.xml"):

不同的ip地址:
I, [2016-03-14T16:03:47.793731 #15399]  INFO -- : Started GET "/testproxy.php" for 178.216.200.48 at 2016-03-14 16:03:47 -0400
F, [2016-03-14T16:03:47.818519 #15399] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/testproxy.php"):
search.php
I, [2016-03-14T19:41:14.261843 #15399]  INFO -- : Started GET "/forum/search.php" for 164.132.161.67 at 2016-03-14 19:41:14 -0400
F, [2016-03-14T19:41:14.266563 #15399] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/forum/search.php"):
forum/index.php
I, [2016-03-15T10:54:55.254785 #26469]  INFO -- : Started GET "/forum/index.php" for 164.132.161.56 at 2016-03-15 10:54:55 -0400
F, [2016-03-15T10:54:55.266456 #26469] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/forum/index.php"):
phpmyadim/scripts/setup.php
I, [2016-03-15T13:21:36.862918 #26469]  INFO -- : Started GET "/phpMyAdmin/scripts/setup.php" for 103.25.73.234 at 2016-03-15 13:21:36 -0400
F, [2016-03-15T13:21:36.867050 #26469] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/phpMyAdmin/scripts/setup.php"):
another setup.php
I, [2016-03-15T13:21:37.452097 #26469]  INFO -- : Started GET "/pma/scripts/setup.php" for 103.25.73.234 at 2016-03-15 13:21:37 -0400
F, [2016-03-15T13:21:37.453647 #26469] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/pma/scripts/setup.php"):
myadmin/scripts/setup.php
I, [2016-03-15T13:21:38.034283 #26469]  INFO -- : Started GET "/myadmin/scripts/setup.php" for 103.25.73.234 at 2016-03-15 13:21:38 -0400
F, [2016-03-15T13:21:38.041563 #26469] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/myadmin/scripts/setup.php"):

还有很多其他的东西。请告诉我如何保护自己免受这些攻击。

最佳答案

当您运行公共(public)服务器时,这很常见。这是我的家庭服务器的 auth.log 的摘录:

Mar 14 19:22:36 hotdog sshd[65937]: Received disconnect from 181.214.92.11:  11: Bye Bye [preauth]
Mar 14 19:22:37 hotdog sshd[65939]: Invalid user ubnt from 181.214.92.11
Mar 14 19:22:37 hotdog sshd[65939]: input_userauth_request: invalid user ubnt [preauth]
Mar 14 19:22:37 hotdog sshd[65939]: Received disconnect from 181.214.92.11: 11: Bye Bye [preauth]
Mar 14 19:22:38 hotdog sshd[65941]: Invalid user support from 181.214.92.11
Mar 14 19:22:38 hotdog sshd[65941]: input_userauth_request: invalid user support [preauth]
Mar 14 19:22:38 hotdog sshd[65941]: Received disconnect from 181.214.92.11: 11: Bye Bye [preauth]
Mar 14 19:22:39 hotdog sshd[65943]: Invalid user oracle from 181.214.92.11
Mar 14 19:22:39 hotdog sshd[65943]: input_userauth_request: invalid user oracle [preauth]
Mar 14 19:22:39 hotdog sshd[65943]: Received disconnect from 181.214.92.11: 11: Bye Bye [preauth]
Mar 14 19:22:40 hotdog sshd[65945]: Received disconnect from 181.214.92.11: 11: Bye Bye [preauth]
Mar 14 19:24:04 hotdog sshd[65947]: fatal: Read from socket failed: Operation timed out [preauth]
Mar 14 20:01:19 hotdog sshd[66032]: Received disconnect from 183.3.202.102: 11:  [preauth]
Mar 14 20:40:17 hotdog sshd[66092]: Invalid user cacti from 199.217.117.71
Mar 14 20:40:17 hotdog sshd[66092]: input_userauth_request: invalid user cacti [preauth]
Mar 14 20:40:17 hotdog sshd[66092]: Connection closed by 199.217.117.71 [preauth]
Mar 14 21:32:09 hotdog sshd[66188]: Received disconnect from 183.3.202.102: 11:  [preauth]
Mar 14 22:01:59 hotdog sshd[66256]: Invalid user user1 from 199.217.117.71
Mar 14 22:01:59 hotdog sshd[66256]: input_userauth_request: invalid user user1 [preauth]
Mar 14 22:02:00 hotdog sshd[66256]: Connection closed by 199.217.117.71 [preauth]
Mar 14 22:17:57 hotdog sshd[66280]: Did not receive identification string from 14.182.117.161

正如你所看到的,人们不断地试图通过猜测用户名来闯入我的服务器。由于服务器只接受公钥登录,而不接受密码,我相信我自己对这些特定的攻击是相当安全的。

这同样适用于您的 PHP 文件。他们试图找到一个 php 端点,他们可以在该端点上运行一些 jar 装漏洞利用。您可以使用 等工具失败2禁令这有助于限制速率。但实际上这些攻击将始终存在于公共(public)服务器上。唯一的方法是确保您的软件能够抵抗攻击。

一些一般常识提示:
  • 不要运行超过您需要的服务,因为任何一项服务都可能使您的服务器受到攻击。使用 nmap 检查您打开了哪些端口。
  • 检查您的 apache/nginx 配置是否允许执行不必要的 (PHP) 文件。
  • 不断更新您的软件。大多数这些攻击是自动化的,因此依赖于常见包中已发布的漏洞利用。
  • 关于ruby-on-rails - 有人试图进入我的服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36024095/

    相关文章:

    ruby-on-rails - 如何计算 Rails 应用程序中的曾孙对象?

    ruby-on-rails - Controller 测试,用户需要登录每个测试单元

    ruby-on-rails - 默认图像的 CarrierWave 完整 url

    asp.net - 保护 ASP.NET Web 目录中的文件夹

    python - Django React Nginx 服务管理静态文件

    mysql - 我应该使用 Ruby 进行计算,还是应该使用 MySQL 进行计算?

    JSF 2.0 的安全性(框架?)

    Javascript location.hostname 安全吗?

    nginx - 反向代理后面的HTTP/2

    linux - 本地 webapp 和 websocket 的 Nginx 设置