O que deve ser feito para proteger o Raspberry Pi?


82

Ter dezenas de milhares de Raspberry Pi conectados à Internet acabará por atrair o interesse de algumas pessoas que gostariam de fazer coisas desagradáveis ​​para os pequenos computadores, especialmente quando muitas pessoas estão usando o Pi para fazer servidores de rede. O Linux é um sistema operacional sólido e pronto para uso, mas além de alterar a senha, o que deve ser feito para "fortalecer" o Raspberry Pi se eu pretender hospedar serviços voltados para a Internet no dispositivo?

Apenas para apoiar minha piada de "dezenas de milhares", Eben Upton disse que "o Raspberry Pi vendeu mais de 200.000 de seus módulos básicos de computador e atualmente está vendendo 4.000 unidades por dia" . Provavelmente, é seguro assumir que dezenas de milhares desses 200.000 foram conectados à Internet. É menos seguro supor que dezenas de milhares daqueles Raspberry Pis conectados à Internet estão hospedando um serviço da Web voltado para o público, mas ainda existe o potencial de entusiasmo por hackers.


3
Lembre-se de que, embora possa haver "dezenas de milhares" conectados, existem (atualmente) 3 distribuições Linux disponíveis (que eu conheço) e acho que existem até alguns projetos não baseados em Linux por aí. Isso afeta a perspectiva do hacker. Ainda assim, se a segurança for importante, mantenha sua distribuição atualizada e, se necessário, mantenha seu dispositivo protegido por um firewall.
RLH 24/07/12

Bom ponto RLH Vou acrescentar algumas informações adicionais à pergunta que suporta o número de Raspberry Pis em estado selvagem para dar uma idéia melhor da superfície de ataque do Raspberry Pi que Steve mencionou em sua resposta.
Dan B

A superfície @DanB Attack não é uma função do número de Pi, mas do número de sistemas e serviços disponíveis para ataque. en.wikipedia.org/wiki/Attack_surface #
Steve Robillard

@SteveRobillard Desculpe se eu não estava claro no comentário, mas na edição que fiz à pergunta, tentei resumir de maneira qualitativa o número de Pis que hospedam serviços públicos e, portanto, apresentariam um serviço disponível para ataque .
Dan B

Eu encontrei um pequeno tutorial sobre como proteger o seu raspberry pi ao usar o SSH, parece bem legal. -> tutorial
Dominik St.

Respostas:


54

Proteger um computador não é um processo simples, livros inteiros são escritos sobre o assunto. O tamanho do Pi não reduz a ameaça à segurança ou a superfície de ataque apresentada a um possível invasor. Como resultado, descreverei as etapas envolvidas e fornecerei links para instruções e tutoriais mais detalhados.

Como você não mencionou a distribuição que está usando, assumirei a distribuição Raspbian recomendada.

  1. Mude a senha padrão. A distribuição Raspbian inclui isso como uma opção no script de inicialização inicial. Se você ainda não fez isso, pode usar o comando passwd para alterá-lo. Certifique-se de escolher uma senha forte .
  2. Desative serviços não utilizados . Vi que a distribuição Raspbian recomendada inclui o servidor da web Apache e o habilita na inicialização (alguém pode confirmar isso) . Você realmente precisa de um servidor web em execução? Caso contrário, desative-o. Se você precisar executar o Apache, certifique-se de protegê-lo e faça o mesmo com outros serviços (por exemplo, FTP, NGINX, MySQL etc.), uma pesquisa no Google deve exibir vários recursos.
  3. Instale e configure o iptables .
  4. Mantenha seu sistema atualizado. Você pode automatizar isso usando cron ou cron-apt .
  5. Configure o log para monitorar logins e tentativas de logon com falha. Se possível, use um disco rígido externo para hospedar sua partição / var, isso lhe dará mais espaço, evita que os arquivos de log encham o cartão SD e prolongam a vida útil do seu cartão SD.

Algumas coisas adicionais que você pode querer considerar:

Você também deve ler esta pergunta relacionada Como posso proteger contra invasões e malware antes de conectá-lo à Internet (especialmente em um endereço IP público)? .

Essas são apenas as etapas mínimas necessárias para proteger seu Pi. Para mais informações, você pode ler o Manual de Segurança do Debian .


6
Certifique-se de gerar suas próprias chaves ssh. Eu acho que algumas das imagens já tinham chaves.
John La Rooy

2
O Apache não está instalado no raspbian por padrão (o usuário instalou algo como php5-mysql IIRC). Para um filtro de pacotes que é um pouco mais amigável do que o iptables nu, talvez devamos recomendar o ufw e talvez até o GUF frontend da GUI?
elmicha

1
Faz sentido instalar o iptables, mesmo se você estiver atrás de um roteador?
27512 keiki

2
@ otakun85 Sim, é chamado de defesa em profundidade. Ao confiar completamente no seu roteador, alguém deve passar pelo seu roteador com o iptables instalado e funcionando, tornando as explorações mais difíceis.
27512 Steve Robillard

2
Desabilitar serviços não utilizados também ajuda no tempo de inicialização e economiza uma (pequena) quantidade de memória e CPU.
TomG 5/15/15

11

Tendo analisado o RPi, parece um dispositivo bastante seguro, desde que você faça algumas coisas.

As necessidades padrão de usuário / passe foram alteradas. No mínimo, altere a senha. Para melhorar a segurança novamente, altere também o nome de usuário. (Adicione um novo usuário e desative o PI. Verifique se o ROOT também está desabilitado no logon SSH, embora eu ache que seja por padrão).

A varredura do RPi retorna apenas uma porta aberta, 22, que é a conexão SSH, e mesmo isso precisa ser ativada antes de aparecer (embora a maioria das pessoas o utilize em vez de um monitor, teclado e mouse, espero, especialmente em um servidor {web})

Você pode alterar o número da porta SSH, mas isso não fará muito, pois pode ser verificado com facilidade. Em vez disso, ative a autenticação de chave SSH.

Agora você não tem como alguém entrar em sua máquina sem a chave SSH, nome de usuário e senha corretos.

Em seguida, configure seu servidor da web. O Apache está praticamente onde está. Isso servirá para monitorar a porta 80 como padrão e responder automaticamente às conexões dos navegadores, servindo suas páginas da web.

Se você tiver um firewall ou roteador, poderá alterar as portas RPi e fazer com que o roteador direcione o tráfego de uma porta para a outra. Por exemplo, o tráfego da porta 80 no roteador é redirecionado para a porta 75 no RPi e o SSH na 22 é redirecionado para a porta 72. Isso adicionaria outra camada de proteção, mas é um pouco mais complexo.

Mantenha tudo atualizado e atualizado, obviamente.

Isso não irá protegê-lo de ataques que exploram java, flash, servidores SQL, etc, que você pode adicionar mais tarde, mas é isso mesmo o básico.

Você também pode adicionar um firewall, o que impedirá qualquer pessoa que entre no seu sistema de sair por uma porta diferente se instalar um novo serviço. Seu roteador deve lidar com isso, mas se estiver diretamente conectado, configure-o e, por quanto tempo leva, você também pode executá-lo de qualquer maneira - ele não adicionará muito em termos de recursos do sistema.

Outra coisa que você pode querer adicionar é fail2ban ( http://www.fail2ban.org/wiki/index.php/Main_Page ), que adiciona uma regra de firewall para bloquear várias tentativas de login, impedindo ataques de dicionário. Embora eles não funcionem no sistema se você seguiu o procedimento acima, se por algum motivo precisar deixar apenas a autenticação SSH por senha (você faz logon remoto de muitas máquinas diferentes, por exemplo), isso impedirá um ataque de dicionário de trabalhar. Após o número de tentativas que você especificar, ele bloqueará por mais um tempo as tentativas desse endereço IP. (Apenas tome cuidado para que ele não veja nenhum endereço IP do roteador / local e proíba muito cedo ou por muito tempo!)

Editado para adicionar: Depois de configurar tudo bem, use uma ferramenta como dd ou Win32DiskImager para fazer um backup completo em bits do seu cartão SD. Dessa forma, se algo der errado, você poderá restaurá-lo no mesmo cartão ou gravá-lo em um novo cartão e continuar independentemente. (Mas, se hackeado, você gostaria de descobrir qual buraco foi encontrado e fechar primeiro, talvez!)


1
Você pode explicar como a alteração das portas RPi no roteador adiciona outra camada de proteção?
Andrei


-1

Além de proteger o sistema operacional, você também pode considerar o uso de um serviço de monitoramento de segurança baseado em nuvem para monitorar a atividade de / para / no seu dispositivo e receber alertas se algo indesejável for detectado. Atualmente, existem algumas ferramentas SIEM baseadas em nuvem disponíveis e algumas (como a siemless) operam um modelo freemium para que os usuários domésticos não precisem pagar um centavo. Para usar esse serviço, você precisará se familiarizar com coisas como rsyslog / syslog, que é uma parte padrão de todas as distribuições de SO Linux.


1
As ferramentas na nuvem aumentam a superfície de ataque, o monitoramento de segurança local (registro / verificação) são boas ferramentas, mas essa resposta está incompleta e é mais um comentário.
User1133275
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.