Réponses:
Je ne peux penser à aucun réglage spécifique à Ubuntu, mais en voici quelques-unes qui s'appliquent à toutes les distributions:
Bien sûr, cette liste n'est pas complète et vous ne serez jamais complètement en sécurité, mais elle couvre tous les exploits que j'ai vus dans la vie réelle.
De plus, les exploits que j'ai vus étaient presque toujours liés à un code utilisateur non sécurisé, pas à une configuration non sécurisée. Les configurations par défaut dans les distributions de serveur minimales ont tendance à être assez sécurisées.
Une des choses rapides que je fais très tôt est d'installer DenyHosts . Il examinera régulièrement le répertoire / var / log / secure, recherchant les échecs de connexion et, après quelques échecs, bloquera l'adresse IP. Je l'ai configuré pour bloquer après le premier utilisateur «no-such-such», à la deuxième tentative à la racine, et après quelques tentatives pour de vrais utilisateurs (au cas où vous vous tromperiez, mais vous devriez utiliser une clé publique SSH pour vous connecter).
Ubuntu est basé sur Debian et j'ai trouvé le manuel de sécurisation de Debian très utile dans les distributions basées sur Debian pour vous guider complètement dans votre système et vérifier chaque partie. C'est fondamentalement une réponse très, vraiment complète à votre question.
J'installe généralement RKHunter, qui recherche les rootkits et vérifie l'intégrité de divers fichiers binaires importants du système. Il est dans le référentiel standard et fonctionnera quotidiennement à partir de cron. Ce n'est pas parfait, du point de vue de la sécurité, mais c'est un élément qui nécessite peu d'effort, et qui fournit une mesure de protection.
Installez logcheck, mais modifiez-vous afin de ne jamais recevoir de messages d'événements réguliers, sinon vous aurez l'habitude d'ignorer les courriels.
Vérifiez quels processus écoutent à l'aide de netstat et assurez-vous qu'aucun élément en cours d'exécution n'est inutile. De nombreux démons peuvent être configurés uniquement pour écouter sur l'IP interne (ou localhost) au lieu de toutes les interfaces.
Faites ce que Can suggère ...
Nmap l'hôte et désactivez tous les services non essentiels. Utilisez iptables si nécessaire.
Si vous allez quelque part près d'Internet avec le serveur, installez un système de détection d'intrusion tel que Snort.
Utilisez des partitions séparées pour différents répertoires comme /tmp
ou /var
et les monter avec nosuid
, nodev
et noexec
si possible.
Apprenez à utiliser un pare-feu et apprenez à verrouiller correctement une boîte. Changer les ports par défaut est en grande partie une chose inutile. la bonne application et la configuration du pare-feu sont beaucoup plus importantes.
Les deux sont dans le dépôt Ubuntu:
a la documentation formidable et très facile à apprendre la syntaxe. J'ai été capable de mettre en place une passerelle / pare-feu en vingt minutes. La seule raison pour laquelle je me suis éloigné de ceci est que cela ne semble pas être maintenu (dernière version il y a 2 ans). Ça ne veut pas dire que ça ne marche pas, mais ...
est un autre. Syntaxe plus semblable à iptables, mais même concept. Plus de communauté entretenue que FireHOL, mais prend plus de temps à ramasser.
est ce que j'utilise actuellement. Sa documentation est exhaustive et son format de configuration est tabulaire. Il m'a fallu environ une heure et demie pour comprendre tous les fichiers nécessaires (6) pour pouvoir utiliser une configuration de pare-feu / passerelle fonctionnelle. C'est assez puissant. CONSEIL: Les pages de manuel des différents fichiers de configuration sont vraiment utiles!
Toutes ces configurations de pare-feu de chargement à partir d'un fichier de configuration. Très efficace, plus facile à utiliser que iptables directement, et (à mon avis) plus facile à utiliser et à gérer que ufw.
J'appuie les recommandations relatives à l'utilisation de la clé SSH.
Mettre en place un IDS.
En savoir plus sur AppArmor. Il limite l'accès aux fichiers des exécutables aux seuls répertoires et fichiers spécifiés dont il a besoin. Semblable à SELinux dans le monde RHEL. Il est installé et activé avec des «profils» préconfigurés pour de nombreux programmes bien utilisés.
En plus des autres suggestions ici, j'en mentionnerai trois qui sont évidentes mais qui méritent d'être mentionnées pour être complètes: