Sécuriser une installation Debian pour un usage domestique général


8

Debian est livrée avec plusieurs hardenpackages, conçus pour sécuriser un ordinateur. Mes besoins sont très simples: traitement de texte et navigation sur le Web. Je n'exécute aucun serveur spécial, n'utilise pas SSH, telnet, etc. Le seul logiciel qui devrait utiliser Internet, à ma connaissance, est iceweaselet apt.

  • Existe-t-il un moyen de garantir que seuls ces deux logiciels peuvent accéder à Internet?
  • Certains hardenforfaits conviennent-ils à ces besoins?

Réponses:


6

Dans une installation utilisateur par défaut, il n'y a que ssh comme application serveur installée que vous pouvez simplement désinstaller via aptitude remove openssh-serverou via tout autre gestionnaire de packages que vous utilisez.

Il est difficile de restreindre l'accès au réseau pour les applications. {{EDIT : Cependant, il existe maintenant Leopard Flower développé qui semble fournir les fonctionnalités dont vous avez besoin (pare-feu par processus, interface utilisateur interactive). }} Voir Pare-feu par processus? pour plus d'informations sur le sujet. Sans utiliser de solutions compliquées, vous ne pouvez restreindre l'accès au réseau qu'aux utilisateurs spéciaux via le ownermodule iptables .

En tant qu'utilisateur normal, vous n'avez pas besoin de harden-*packages. Ils entrent en conflit sur des packages dangereux, que vous n'avez probablement pas installés de toute façon, ou installent des packages de sécurité qui sont pour des systèmes normaux trop compliqués à configurer et à entretenir - comme les systèmes d'intrusion réseau.


3

Je serais d'accord avec l'utilisation stricte d'iptables. Il s'agit d'un pare-feu basé sur une ligne de commande très simple qui utilise le noyau (dans la plupart des distributions).

Une autre suggestion que je ferais est selinux. Je ne suis pas sûr que debian soit maintenant livré par défaut. Selinux en bref est un contrôle d'accès obligatoire, ce qui signifie qu'au niveau du noyau, il régit la communication entre l'application et les ressources externes (c'est-à-dire les fichiers et les propriétés du système). En tant que sidenote, il a également été développé avec l'aide de la NSA. Avec les profils selinux, vous pouvez empêcher les applications de lire des fichiers au-delà de sa portée.

Combiné avec les meilleures pratiques telles que la désactivation des démons inutiles, de bonnes règles de pare-feu selinux peuvent être l'option que vous recherchez pour durcir cette case.


Cette réponse pourrait être améliorée en fournissant un exemple de politique selinux qui démontrait faire ce que le PO demandait.
jmtd

Comme demandé ici, voici un bon exemple de Cent OS sur la façon de durcir un accès apache en utilisant la ligne de commande selinux. wiki.centos.org/HowTos/…
Andrew Munro

2

Malheureusement, il ne semble pas y avoir d'alternative Linux à littlesnitchou zonealarm, et la plupart des pare-feu à interface graphique vous laisseront à désirer. Vous pouvez bien sûr faire pas mal de choses utiles avec le iptablessuivi des connexions.

Une utilité souvent négligée est tcpwrappers. J'ajouterais une règle à /etc/hosts.deny:

ALL: PARANOID

Désactivez également le ping et les autres réponses ICMP en ajoutant la ligne suivante à /etc/sysctl.conf:

net.ipv4.icmp_echo_ignore_all = 1

EDIT : Je suis enclin à être d'accord avec jmtd, à la réflexion, il existe de meilleures façons de filtrer les pings.


Le problème tcpwrappersest qu'il est opt-in : le programme doit être lié à la bibliothèque de wrappers pour qu'il prenne effet. iceweaseln'est pas. Vous pouvez le forcer à le faire LD_PRELOADsi vous le souhaitez.
jmtd

la désactivation des réponses ICMP présente des avantages discutables en termes de sécurité et n'est pas gratuite: cela peut ralentir considérablement les interactions réseau si une réponse attend pour expirer, plutôt que d'obtenir un refus explicite. Le taux de réponses limitant la protection contre les DDoS est une bien meilleure approche. ICMP-DDoS est presque un problème inexistant pour les utilisateurs de bureau à l'ère moderne.
jmtd

@jmtd tcpwrapper n'est pas LD_PRELOAD-capable. Les programmes doivent le soutenir. Pour les programmes liés statiques, LD_PRELOADne fonctionnerait pas de toute façon.
jofel

@jmtd Je suis d'accord, j'ai modifié ma réponse. Cependant, je pense toujours que l'ignorance des pings n'est pas bénéfique pour la protection contre ICMP-DDoS juste pour éviter la découverte d'hôte.
kwarrick

1

Arrêtez tous les services que vous ne souhaitez pas démarrer: ssh, smtp, http, tout ce que vous ne souhaitez pas démarrer. Configurez vos iptables pour bloquer tout ce qui accède à votre machine ou laisse votre machine en dehors du logiciel que vous souhaitez.

Notez que je ne donne pas une liste complète de commandes à taper car il est essentiel que l'on apprenne et comprenne les implications des services et des iptables avant de jouer avec eux.


1

La base la plus populaire de filtrage réseau / pare-feu sous Linux est iptables, qui ne fonctionne pas sur une base d'application. Vous avez besoin d'un programme de politique de sécurité qui peut empêcher les programmes d'accéder aux ressources réseau. Deux approches seraient SELinux et AppArmor .

Voici quelques exemples de recettes AppArmor , dont l'une ouvre l'accès au réseau pour Firefox / Iceweasel.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.