Ubuntu

我的伺服器是否被用作代理或惡意請求?

  • August 20, 2018

我在 AWS EC2 上有一個 Ubuntu、Apache、Passenger 和 Rails 4 項目。

我是一名全棧開發人員,不熟悉我的項目的安全性和伺服器端。這是我第一次設置 Ubuntu 和 Apache,之前我使用過 Heroku。

最近,我的網站因為“使用者太多”而關閉,所以當我檢查我的

tail -f log/production.log

我看到我從隨機 IP 收到不間斷的 GET 請求到我的首頁。請求並沒有停止並繼續淹沒我的伺服器。

I, [2015-04-02T16:38:47.692152 #11851]  INFO -- :   Rendered layouts/_google_analytics.html.erb (0.1ms)
I, [2015-04-02T16:38:47.692709 #11851]  INFO -- : Completed 200 OK in 9ms (Views: 8.6ms | ActiveRecord: 0.0ms)
I, [2015-04-02T16:38:49.073504 #11851]  INFO -- : Started GET "/" for 54.252.254.204 at 2015-04-02 16:38:49 +0000
I, [2015-04-02T16:38:49.077260 #11851]  INFO -- : Processing by HomeController#home_page as */*
I, [2015-04-02T16:38:49.084489 #11851]  INFO -- :   Rendered home/_sign_up_modal.html.erb (1.6ms)
I, [2015-04-02T16:38:49.084799 #11851]  INFO -- :   Rendered home/home_page.html.erb within layouts/application (6.2ms)
I, [2015-04-02T16:38:49.085349 #11851]  INFO -- :   Rendered /home/ubuntu/.rvm/gems/ruby-2.1.5/gems/stripe-rails-0.3.1/app/views/stripe/_js.html.erb (0.1ms)
I, [2015-04-02T16:38:49.086550 #11851]  INFO -- :   Rendered layouts/_google_analytics.html.erb (0.0ms)
I, [2015-04-02T16:38:49.087121 #11851]  INFO -- : Completed 200 OK in 10ms (Views: 8.8ms | ActiveRecord: 0.0ms)
I, [2015-04-02T16:38:50.166665 #11851]  INFO -- : Started GET "/" for 107.23.255.12 at 2015-04-02 16:38:50 +0000
I, [2015-04-02T16:38:50.169943 #11851]  INFO -- : Processing by HomeController#home_page as */*
I, [2015-04-02T16:38:50.176601 #11851]  INFO -- :   Rendered home/_sign_up_modal.html.erb (1.4ms)
I, [2015-04-02T16:38:50.176924 #11851]  INFO -- :   Rendered home/home_page.html.erb within layouts/application (5.5ms)
I, [2015-04-02T16:38:50.177425 #11851]  INFO -- :   Rendered /home/ubuntu/.rvm/gems/ruby-2.1.5/gems/stripe-rails-0.3.1/app/views/stripe/_js.html.erb (0.1ms)

我的伺服器是被用作代理還是受到攻擊?我怎樣才能防止這種情況繼續發生?

我嘗試使用本指南,但正如您從我的其他 SO 文章中看到的那樣,我沒有成功,只能停止所有請求,包括有效請求。

/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
 ServerName ec2-54-###-###-##.us-west-2.compute.amazonaws.com
 # !!! Be sure to point DocumentRoot to 'public'!
 DocumentRoot /etc/projects/myapp/public

   <Directory /etc/projects/myapp/public>
           #Options FollowSymLinks
           Options Indexes FollowSymLinks Includes ExecCGI
           AllowOverride All
           Order deny,allow
           Allow from all
   </Directory>
 </VirtualHost>

請幫忙!如果我的術語或提供的資訊不充分,我深表歉意。我將熱切地提供更多更好的資訊和指導。

這是一個艱難的局面。這些請求似乎與惡意模式匹配,因此您的任務是阻止從您的伺服器發出惡意請求的 IP。

如今,有各種花哨的硬體可以做到這一點。如果您無法做到這一點,那麼您只能手動創建防火牆規則或 apache 規則來忽略或阻止來自某些 IP 的請求。

對於您的伺服器資源,最好是防火牆阻止而不是 apache。您可以使用 tcpdump 查看正在攻擊您的伺服器的所有 IP。例如,類似:

tcpdump -nn 埠 80 | awk ‘{列印 $ 3}’ | awk -F. ‘{print$1,$2,$3,$4}’ | while read a b c d; do echo $ 一種。 $ b. $ c.$d >> newlist.txt; 完畢

*請注意,您可以對埠 443 執行相同的操作

這將一直執行,直到您停止它,它將所有訪問您伺服器的 IP 轉儲到一個文件中。然後執行類似:

貓newlist.txt | 排序 | 唯一的-c | 排序 -n

現在您有一個排序列表,顯示在您讓第一個 oneliner 執行時,每個 IP 訪問您的伺服器的次數。從中您可以決定有多少請求對您來說似乎是濫用的,通過執行幾次,您將輕鬆挑選出違規者。現在您必須獲取這些 IP 並將它們從防火牆中阻止。

這是保護自己免受 DDOS 攻擊的一種殘酷而困難的方法。如果有人嚴重攻擊你,它就不會起作用,但在這種情況下,你的伺服器可能已經倒塌了。

沒有花哨的網路硬體,沒有辦法真正阻止他們攻擊你,但有了這些原則,你至少可以保護自己……直到你至少達到防火牆中的規則限制。如果涉及到這一點,請按範圍而不是個人阻止。看看https://www.arin.net/和 google,如果你幸運的話,你可能會發現你的大部分點擊都來自某個地區..咳嗽俄羅斯、中國、東歐咳嗽在這種情況下考慮封鎖整個地區,如果它正在降低您的伺服器性能,或者您有可能從您的網站竊取的有價值的資訊。

引用自:https://unix.stackexchange.com/questions/194012