Protegendo uma instalação Debian para uso doméstico geral

8

O Debian vem com vários hardenpacotes, projetados para tornar um computador mais seguro. Minhas necessidades são muito simples: processamento de texto e navegação na Web. Não executo nenhum servidor especial, não uso SSH, telnet etc. O único software que deve usar a Internet que eu conheço é iceweasele apt.

  • Existe uma maneira de garantir que apenas esses dois softwares possam acessar a Internet?
  • Algum dos hardenpacotes é adequado para essas necessidades?
Vila
fonte
1
Veja também Hardening Linux Server e Secure Linux Desktop on Security Information
Gilles 'SO- stop be evil'

Respostas:

6

Em uma instalação padrão do usuário, existe apenas o ssh como aplicativo de servidor instalado, que você pode simplesmente desinstalar via aptitude remove openssh-serverou através de qualquer outro gerenciador de pacotes usado.

Restringir o acesso à rede para aplicativos é difícil. {{EDIT : No entanto, agora existe o Leopard Flower desenvolvido que parece fornecer os recursos necessários (firewall por processo, interface interativa do usuário). }} Consulte Firewall por processo? para mais informações sobre o tópico. Sem usar soluções complicadas, você só pode restringir o acesso à rede a usuários especiais através do ownermódulo iptables .

Como usuário normal, você não precisa de nenhum harden-*pacote. Eles conflitam com pacotes não seguros, que você provavelmente não instalou de qualquer maneira, ou instalam pacotes de segurança que são para sistemas normais muito complicados de configurar e manter - como sistemas de intrusão de rede.

jofel
fonte
3

Eu concordo com o uso estrito de iptables. É um firewall baseado em linha de comando muito simples que utiliza o kernel (na maioria das distros).

Outra sugestão que eu faria é o selinux. Não tenho certeza se o debian agora vem com ele por padrão. Em resumo, o Selinux é um controle de acesso obrigatório, que significa que, no nível do kernel, ele governa a comunicação entre o aplicativo e os recursos externos (isto é, arquivos e propriedades do sistema). Como nota de rodapé, também foi desenvolvido com a ajuda da NSA. Com os perfis selinux, você pode impedir que os aplicativos leiam arquivos além do seu escopo.

Combinado com as práticas recomendadas, como desativar daemons desnecessários, boas regras de firewall selinux podem ser a opção que você está procurando para fortalecer esta caixa.

Andrew Munro
fonte
Essa resposta poderia ser melhorada, fornecendo um exemplo de política selinux que demonstrasse fazer o que o OP estava pedindo.
jmtd
Conforme solicitado aqui, é um bom exemplo do Cent OS de como proteger um acesso apache usando a linha de comando selinux. wiki.centos.org/HowTos/...
Andrew Munro
2

Infelizmente, parece não haver alternativas para Linux littlesnitchou zonealarm, e a maioria dos firewalls da GUI deixará você com vontade. Obviamente, você pode fazer algumas coisas úteis com o iptablesrastreamento de conexão.

Um utilitário muitas vezes esquecido é tcpwrappers. Eu adicionaria uma regra a /etc/hosts.deny:

ALL: PARANOID

Além disso, desative o ping e outras respostas ICMP adicionando a seguinte linha a /etc/sysctl.conf:

net.ipv4.icmp_echo_ignore_all = 1

EDIT : Estou inclinado a concordar com jmtd, pensando bem, existem maneiras melhores de filtrar pings.

kwarrick
fonte
O problema tcpwrappersé que ele é aceito : o programa precisa estar vinculado à biblioteca de wrappers para que ele entre em vigor. iceweaselnão é. Você poderia forçá-lo a ser através de um LD_PRELOADtruque, se quisesse.
jmtd
desabilitar as respostas do ICMP é um benefício questionável em termos de segurança e não é sem custo: pode tornar as interações de rede muito mais lentas se uma resposta aguardar o tempo limite, em vez de receber uma negação explícita. Respostas de limitação de taxa para proteção contra DDoS é uma abordagem muito melhor. O ICMP-DDoS é quase um problema inexistente para usuários de desktop na era moderna.
jmtd
@jmtd tcpwrapper não é capaz LD_PRELOAD. Os programas precisam apoiá-lo. Para programas vinculados estáticos, LD_PRELOADnão funcionaria de qualquer maneira.
Jofel
@ jmtd Eu concordo, editei minha resposta. No entanto, ainda acredito que ignorar pings é benéfico, não para a proteção do ICMP-DDoS apenas para evitar a descoberta do host.
Kwarrick
1

Pare todos os serviços que você não deseja iniciar: ssh, smtp, http, o que mais você não deseja que seja iniciado. Configure suas iptables para bloquear tudo o que acessar sua máquina ou deixá-la à parte do software que você deseja.

Observe que não estou fornecendo uma lista inteira de comandos para digitar, pois é vital que se aprenda e compreenda as implicações dos serviços e das tabelas de ip antes de mexer com eles.

Sardathrion - contra o abuso de SE
fonte
1

A base mais popular de filtragem de rede / firewalls no Linux é a iptablesque não funciona com base em aplicativos. O que você precisa é de um programa de política de segurança que possa impedir que programas acessem os recursos de rede. Duas abordagens seriam o SELinux e o AppArmor .

Aqui estão alguns exemplos de receitas do AppArmor , uma das quais abre o acesso à rede para o Firefox / Iceweasel.

jmtd
fonte