Meu servidor está sendo usado como proxy ou solicitações maliciosas?

0

Eu tenho um projeto do Ubuntu, Apache, Passenger e Rails 4 no AWS EC2.

Eu sou um desenvolvedor de pilha completa e não estou familiarizado com a segurança e o lado do servidor do meu projeto. Esta é a minha primeira vez configurando o Ubuntu e o Apache, anteriormente eu usei o Heroku.

Recentemente, meu site ficou inativo por causa de "muitos usuários", por isso, quando verifiquei minha

tail -f log/production.log

Vi que recebia solicitações GET sem parar de IPs aleatórios para minha página inicial. As solicitações não pararam e continuam a inundar meu servidor.

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)

Meu servidor está sendo usado como proxy ou está sendo atacado? Como posso evitar que isso continue acontecendo?

Eu tentei usar este guia , mas como você verá em minha outra postagem SO , não obtive êxito e só consegui interromper TODAS as solicitações, inclusive as válidas.

/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>

Por favor me ajude! Peço desculpas se minha terminologia ou as informações fornecidas são insuficientes. Eu irei ansiosamente fornecer mais e melhores informações com orientação.

    
por MicFin 02.04.2015 / 14:11

1 resposta

1

Esta é uma situação difícil. As solicitações parecem corresponder a um padrão malicioso, portanto, sua tarefa é bloquear os IPs que fazem solicitações mal-intencionadas de seu servidor.

Hoje em dia existem todos os tipos de hardware sofisticados para fazer isso. Se você não conseguir isso, então você deve criar regras de firewall ou regras de apache manualmente para ignorar ou bloquear solicitações de determinados IPs.

Para o seu recurso de servidor, é melhor se o firewall bloquear e não o apache. Você pode usar o tcpdump para ver todos os IPs que estão batendo em seu servidor. Por exemplo, algo como:

tcpdump -nn porta 80 | awk '{print $ 3}' | awk -F. '{imprimir $ 1, $ 2, $ 3, $ 4}' | enquanto lê a b c d; faça echo $ a. $ b. $ c. $ d > > newlist.txt; feito

* note que você pode executar o mesmo para a porta 443

Isso será executado até você pará-lo e despejará todos os IPs que estiverem atingindo o servidor em um arquivo. Em seguida, execute algo como:

cat newlist.txt | classificar | uniq -c | classificar -n

Agora você tem uma lista ordenada mostrando quantas vezes cada um desses IPs atingiu seu servidor no momento em que você permite que o primeiro oneliner seja executado. A partir daí, você decide quantas solicitações lhe parecem abusivas. Ao executar várias vezes, você selecionará os infratores com facilidade. Agora você precisa pegar esses IPs e bloqueá-los do seu firewall.

Esta é uma maneira brutal e difícil de se defender do DDOS. Não funcionará se alguém estiver seriamente atacando você, mas nesse caso provavelmente seu servidor já caiu de qualquer maneira.

Não há como impedi-los de atacar você sem precisar de hardware de rede sofisticado, mas com esses princípios você pode pelo menos se defender ... até atingir o limite de regras do firewall, pelo menos. Se chegar a isso, bloqueie por intervalos em vez de indivíduos. Olhe para o link e para o google, você pode encontrar a maioria de seus hits vindo de uma determinada área se tiver sorte .. tosse rússia, china, europa oriental tosse nesse caso, considere o bloqueio de toda a região se estiver degradando o desempenho do seu servidor ou se você tiver informações valiosas que podem ser roubadas do seu site.

    
por 02.04.2015 / 22:38