Como proteger o memcached?

4

No Debian, eu instalei o memcached (usando este guia ) para diminuir a carga de outra forma não gerenciável no banco de dados mysql. O banco de dados está em um servidor separado e o memcached e o Varnish estão no servidor frontal. É uma falha de segurança em potencial deixar o memcached desprotegido por um firewall? Se sim, como devo garantir isso? A situação é especialmente preocupante, pois recebi relatórios (não comprovados) de roubos de cookies no servidor. Obrigado

    
por alfish 04.09.2012 / 23:28

1 resposta

9

Apenas bloqueie a porta do memcached no firewall e permita o acesso somente do servidor de banco de dados. Isso deve lhe dar alguma proteção. Além disso, você pode abrir um túnel SSL entre o servidor mysql e o memcached e fazer com que o fluxo de dados do memcached-mysql passe apenas por ele.

Para o túnel SSL você pode usar o IPSEC, para configurá-lo você pode seguir o tutorial no link ou link

Para bloquear a porta para todos os ip, exceto um, você pode emitir um comando iptables como:

iptables -A INPUT -s 2.2.2.2/32 -p tcp --destination-port 11211 -j ALLOW
iptables -A INPUT -s 0.0.0.0/0 -p tcp --destination-port 11211 -j DROP

ou:

iptables -A INPUT -s !2.2.2.2/32 -p tcp --destination-port 11211 -j DROP

Além disso, pelo que entendi, seu servidor da Web e o servidor de memcached estão na mesma máquina? Se sim, então é o seu servidor web que irá se comunicar com o memcached ao invés do servidor mysql. Ele apenas obterá os dados do cache ou, se não estiverem presentes no cache, os obterá do servidor mysql. Neste caso, é suficiente apenas ligar o memcached ao localhost para que apenas o seu servidor possa acessar o memcached usando php, ruby, python ou qualquer outro código de idioma, isso deve ser o mais seguro possível.

    
por 04.09.2012 / 23:40