Como posso bloquear um intervalo de endereços IP com uma instância do Amazon EC2?

24

Eu sei que um determinado intervalo de endereços IP está causando problemas no meu servidor, 172.64.*.* qual é a melhor maneira de bloquear o acesso à minha instância do Amazon EC2? Existe uma maneira de fazer isso usando grupos de segurança ou é melhor fazê-lo com o firewall no próprio servidor?

    
por cwd 27.02.2012 / 02:39

4 respostas

15

Bloqueie o tráfego no servidor e no firewall, se possível, apenas por precaução.

Os grupos de segurança são bons porque são externos ao seu host, para que os dados nunca cheguem até você. Eles não são tão configuráveis quanto a maioria dos firewalls baseados em servidor.

Infelizmente, os grupos de segurança do EC2 só podem "permitir" serviços por meio de uma política de negação padrão. Portanto, se você está tentando bloquear o acesso a um serviço "permitido" publicamente para um pequeno intervalo de IP, criar a regra de permissão para "o resto da Internet" é um pouco mais complexo do que apenas bloquear um intervalo de IPs. Como você especificou um grande pedaço, a lista de intervalos de rede não incluindo 172.64.0.0/16 não é muito longa:

0.0.0.0/1
128.0.0.0/3
160.0.0.0/5
168.0.0.0/6
172.0.0.0/10
173.0.0.0/8
174.0.0.0/7
176.0.0.0/4
192.0.0.0/3
224.0.0.0/3

Essa lista precisa ser adicionada para sua (s) porta (s). Em seguida, você pode excluir sua regra "permitir todos" para essa porta. Se você tem várias portas que você deseja fazer isso para que não sejam contíguas, a lista precisará ir em várias vezes. Se você tiver vários grupos de segurança, isso pode crescer rapidamente para ser incontrolável.

O firewall local também funcionará. iptables está disponível no Amazon AMI padrão e todas as distribuições do Linux

sudo iptables -I INPUT -s 172.64.0.0/16 -j DROP

Depois de adicionar suas regras, você precisará salvá-las e garantir que o serviço iptables seja iniciado na inicialização.

# For Amazon Linux
sudo service iptables save

# Other distributions might use one of these:
#sudo iptables-save > /etc/sysconfig/iptables-config
#sudo iptables-save > /etc/iptables/rules.4

O arquivo de configuração para salvar varia com as distribuições.

Usando um VPC

Se você usar uma VPC para suas instâncias, poderá especificar "Network ACLS" que funcionam na sua sub-rede. As ACLs de rede permitem que você escreva regras de permissão e negação, portanto, recomendamos que você faça isso dessa maneira.

    
por 01.03.2013 / 02:32
12

A maneira mais simples de parar o tráfego é (assumindo que o VPC está sendo usado) adicionando-o à ACL da rede VPC dessa instância e negando todo o tráfego desse endereço IP.

Uma coisa a lembrar é que o número da regra de negação deve ser menor que o primeiro número da regra.

    
por 21.05.2015 / 17:47
3

Eu tive um problema duas vezes e percebi que minha situação no EC2 é um pouco diferente: iptables não funciona se o (s) seu (s) servidor (es) estiver em um cluster atrás de um balanceador de carga elástico (ELB) - o endereço IP instância conhece é a do ELB.

Se você tiver o seu ELB configurado em uma configuração mais moderna, veja esta resposta SO: link

No nosso caso, não tínhamos as coisas bem configuradas, então eu tive que usar o Apache, que pode procurar o cabeçalho X-FORWARDED-FOR e bloquear endereços IP a partir dele.

Adicione isto à sua configuração do Apache (talvez em um bloco VirtualHost):

RewriteEngine On RewriteCond %{HTTP:X-FORWARDED-FOR] ^46\.242\.69\.216 RewriteRule .* - [F]

Isto irá verificar o cabeçalho que é definido pelo ELB

Salve a configuração, teste com apache2ctl -t para o debian / ubuntu (ou apachectl -t para o RHEL) e reinicie o apache.

Isso envia uma resposta 403 Forbidden

    
por 14.06.2014 / 06:49
2

Bloqueio de tráfego de um único IP / IP no AWS

  1. Abra seu painel de controle VPC
  2. Abra a visualização "Network ACLs"
  3. Abra o editor da ACL
  4. Adicione uma regra para bloquear o tráfego

Aqui está um tutorial rápido: link

    
por 28.11.2017 / 19:29