Sei que um certo 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?
27
Respostas:
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 podem apenas "permitir" serviços por meio de uma política de negação padrão. Portanto, se você estiver tentando bloquear o acesso a um serviço "permitido" publicamente para um pequeno intervalo de IPs, 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 bom pedaço, a lista de intervalos de rede que não inclui 172.64.0.0/16 não é muito longa:
Essa lista precisaria ser adicionada para suas portas. Em seguida, você pode excluir sua regra 'permitir tudo' para essa porta. Se você tiver várias portas para as quais não é contígua, a lista delas precisará ser exibida várias vezes. Se você tiver vários grupos de segurança, isso poderá se tornar rapidamente incontrolável.
O firewall local também funcionará.
iptables
está disponível na Amazon AMI padrão e em todas as distros do LinuxDepois de adicionar suas regras, você precisará salvá-las e garantir que o
iptables
serviço seja iniciado na inicialização.O arquivo de configuração para salvar varia de acordo com as distribuições.
Usando uma VPC
Se você usar uma VPC para suas instâncias, poderá especificar "ACLS de rede" que funcionam em sua sub-rede. As ACLs de rede permitem que você escreva regras de permissão e negação, por isso recomendo fazer dessa maneira.
fonte
iptables
não está funcionando. Você está se referindo às grandes sub-redes permitidas no grupo de segurança?A maneira mais simples de interromper o tráfego é (supondo que o VPC esteja 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 de permissão.
fonte
Eu deparei com um problema duas vezes e percebi que minha situação no EC2 é um pouco diferente:
iptables
não funciona se os servidores estiverem em um cluster atrás de um ELB (elástico) - o endereço IP instância conhece é o de o ELB.Se você tiver seu ELB configurado em uma configuração mais moderna, consulte esta resposta do SO: https://stackoverflow.com/questions/20123308/how-to-configure-aws-elb-to-block-About-ip-addresses-known -spammers
No nosso caso, não tínhamos as coisas bem configuradas, então tive que usar o Apache, que pode procurar o
X-FORWARDED-FOR
cabeçalho e bloquear os endereços IP a partir dele.Adicione isso à sua configuração apache (talvez em um bloco do VirtualHost):
Isso verificará o cabeçalho definido pelo ELB
Salve a configuração, teste com
apache2ctl -t
para debian / ubuntu (ouapachectl -t
RHEL) e reinicie o apache.Isso apenas envia uma
403 Forbidden
resposta de voltafonte
Bloqueando o tráfego de um único intervalo de IP / IP na AWS
Aqui está um tutorial rápido: http://chopmo.dk/posts/2015/06/13/blocking-traffic-in-aws.html
fonte