Sécuriser un nouveau serveur Ubuntu [fermé]


Réponses:


25

Je ne peux penser à aucun réglage spécifique à Ubuntu, mais en voici quelques-unes qui s'appliquent à toutes les distributions:

  1. Désinstallez tous les paquets inutiles
  2. Utiliser l'authentification par clé publique uniquement dans SSH
  3. Désactiver les connexions root via SSH (ne s'applique pas à Ubuntu)
  4. Utilisez les paramètres de production pour PHP (recommandé par php.ini)
  5. Configurez MySQL pour utiliser uniquement des sockets

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.


1
Modifiez le port pour des services tels que MySQL (inutile de le configurer pour utiliser des sockets uniquement), FTP (bien que, si vous êtes sécurisé, vous ne devriez pas utiliser FTP du tout), SSH et tous les tris.
Josh Hunt

3
"Désinstaller tous les paquets inutiles". D'ACCORD. C'est assez vague. Quels forfaits "inutiles"?
Luc

2
@ Luke: Tout ce que vous n'utilisez pas est inutile. Plus spécifiques, les services en cours d'exécution dont vous n'avez pas besoin mettent les machines en danger inutile.
Andrioid

@ Luke: cat / etc / services devrait vous donner quelques idées.
Jeshurun

17

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).


3
lorsque vous vous connectez à la page d'accueil de sourceforge - denyhosts est également disponible dans le référentiel (univers) via "sudo aptitude install denyhosts"
Olaf

bon point @olaf. La plupart des serveurs sur lesquels je l'ai installé étaient RHEL, où il se trouve également dans le dépôt DAG.
Alister Bulman

+1 pour denyhosts
wimvds

2
DenyHosts semble ne détecter et bloquer que les attaques par force brute de ssh. Un meilleur choix serait fail2ban (qui est également disponible dans le dépôt), qui surveille une variété de choses, y compris les journaux Apache. Consultez le wiki de la communauté à l' adresse help.ubuntu.com/community/Fail2ban
jeshurun


5

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.


4

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.


3

Faites ce que Can suggère ...

Nmap l'hôte et désactivez tous les services non essentiels. Utilisez iptables si nécessaire.


2
Sur tout serveur accessible via Internet, iptables est toujours nécessaire. ;-)
Christopher Cashell

3

Si vous allez quelque part près d'Internet avec le serveur, installez un système de détection d'intrusion tel que Snort.


3

Utilisez des partitions séparées pour différents répertoires comme /tmpou /varet les monter avec nosuid, nodevet noexecsi possible.


3

Quelques suggestions de pare-feu.

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:

FireHOL

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 ...

Ferm

est un autre. Syntaxe plus semblable à iptables, mais même concept. Plus de communauté entretenue que FireHOL, mais prend plus de temps à ramasser.

Shorewall

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.

Autre:

  • 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.


2

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:

  1. Si vous ne pensez pas avoir besoin d'un pare-feu, détrompez-vous. ufw est simple mais conçu pour Ubuntu et basé sur iptables
  2. Mettre à jour les packages: appliquer au minimum tous les correctifs de sécurité
  3. Documentez ce que vous avez fait pour sécuriser le serveur et pourquoi. Incluez des processus de configuration (automatisés) pour surveiller les journaux, tester la configuration et signaler les mises à jour de sécurité nécessaires.
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.