Conseils de sécurité sur les systèmes GNU / Linux

Eh bien, j'avais préparé ce post pour mon blog depuis quelque temps, ils me l'ont suggéré en DesdeLinux, et faute de temps, il n’avait pas pu ou voulu. Si je suis un peu paresseux 😀. Mais maintenant ils se mettent en grève, comme on dit à Cuba ...

Ceci est une compilation de règles de sécurité de base pour les administrateurs système, dans ce cas, pour ceux comme moi qui gèrent des réseaux / systèmes basés sur GNU / Linux ... Il peut y en avoir plus et en fait il y en a plus, ce n'est qu'un échantillon de mon aventures dans le monde Linux ...

0- Gardez nos systèmes à jour avec les dernières mises à jour de sécurité.

Séries 0.1- Listes de diffusion des mises à jour critiques [Conseiller en sécurité Slackware, Conseiller en sécurité Debian, dans mon cas]

1- Aucun accès physique aux serveurs par du personnel non autorisé.

Séries 1.1- Appliquer le mot de passe à BIOS de nos serveurs

Séries 1.2- Pas de démarrage par CD / DVD

Séries 1.3- Mot de passe dans GRUB / Lilo

2- Bonne politique de mot de passe, caractères alphanumériques et autres.

Séries 2.1- Vieillissement des mots de passe [Password Aging] avec la commande "chage", ainsi que le nombre de jours entre le changement de mot de passe et la date du dernier changement.

Séries 2.2- Évitez d'utiliser les mots de passe précédents:

dans /etc/pam.d/common-password

password sufficient pam_unix.so use_auth ok md5 shadow remember 10

Vous changez donc le mot de passe et cela vous rappelle les 10 derniers mots de passe que l'utilisateur avait.

3- Bonne politique de gestion / segmentation de notre réseau [routeurs, commutateurs, vlans] et pare-feu, ainsi que des règles de filtrage INPUT, OUTPUT, FORWARD [NAT, SNAT, DNAT]

4- Activez l'utilisation des shells [/ etc / shells]. Les utilisateurs qui n'ont pas besoin de se connecter au système obtiendront / bin / false ou / bin / nologin.

5- Bloquer les utilisateurs lorsque la connexion échoue [faillog], ainsi que contrôler le compte utilisateur du système.

passwd -l pepe -> bloquer l'utilisateur pepe passwd -v pepe -> débloquer l'utilisateur pepe

6- Activez l'utilisation de "sudo", ne vous connectez JAMAIS en tant que root par ssh, "JAMAIS". En fait, vous devez modifier la configuration ssh pour atteindre cet objectif. Utilisez des clés publiques / privées sur vos serveurs avec sudo.

7- Appliquer dans nos systèmes le "Principe du moindre privilège" .

8- Consultez nos services de temps en temps [netstat -lptun], pour chacun de nos serveurs. Ajoutez des outils de surveillance qui peuvent nous aider dans cette tâche [Nagios, Cacti, Munin, Monit, Ntop, Zabbix].

9- Installez les IDS, Snort / AcidBase, Snotby, Barnyard, OSSEC.

Séries 10- Nmap est votre ami, utilisez-le pour vérifier votre sous-réseau / sous-réseaux.

Séries 11- Bonnes pratiques de sécurité dans OpenSSH, Apache2, Nginx, MySQL, PostgreSQL, Postfix, Squid, Samba, LDAP [ceux qui utilisent le plus] et certains autres services dont vous avez besoin dans votre réseau.

Séries 12- Cryptez toutes les communications tant que possible dans nos systèmes, SSL, gnuTLS, StarTTLS, digest, etc ... Et si vous gérez des informations sensibles, cryptez votre disque dur !!!

Séries 13- Mettez à jour nos serveurs de messagerie avec les dernières règles de sécurité, de liste noire et antispam.

Séries 14- Journalisation des activités dans nos systèmes avec logwatch et logcheck.

Séries 15- Connaissance et utilisation d'outils tels que top, sar, vmstat, gratuit, entre autres.

sar -> rapport d'activité du système vmstat -> processus, mémoire, système, entrées / sorties, activité du processeur, etc. iostat -> état des entrées / sorties du processeur mpstat -> état et utilisation du multiprocesseur pmap -> utilisation de la mémoire par les processus libres - > iptraf memory -> trafic en temps réel de notre réseau ethstatus -> moniteur de statistiques Ethernet basé sur la console etherape -> moniteur de réseau graphique ss -> état des sockets [tcp socket info, udp, raw sockets, DCCP Sockets] tcpdump -> Analyse détaillée de traffic vnstat -> surveillance du trafic réseau des interfaces sélectionnées mtr -> outil de diagnostic et analyse de surcharge dans les réseaux ethtool -> stats sur les cartes réseau

Pour l'instant, c'est tout. Je sais qu'il y a mille et une autres suggestions de sécurité dans ce type d'environnement, mais ce sont celles qui m'ont le plus frappé, ou qu'à un moment donné j'ai dû appliquer / m'exercer dans un environnement que j'ai administré.

Un câlin et j'espère que cela vous servira 😀


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   koratsuki dit

    Je vous invite dans les commentaires à nous parler de quelques autres règles qui ont été mises en place en dehors de celles déjà évoquées, pour accroître les connaissances de nos lecteurs 😀

    1.    Yukiteru dit

      Eh bien, j'ajouterais:

      1.- Appliquer des règles sysctl pour empêcher l'accès à dmesg, / proc, SysRQ, attribuer PID1 au noyau, activer les protections pour les liens symboliques durs et logiciels, les protections pour les piles TCP / IP pour IPv4 et IPv6, activer le VDSO complet pour une randomisation maximale les pointeurs et les allocations d'espace mémoire et améliorent la résistance contre les débordements de tampon.

      2.- Créez des pare-feu de type SPI (Stateful Package Inspect) pour empêcher les connexions non créées ou précédemment autorisées d'avoir accès au système.

      3.- Si vous ne disposez pas de services qui nécessitent des connexions avec des privilèges élevés depuis un emplacement distant, révoquez simplement leur accès à l'aide de access.conf, ou, à défaut, activez l'accès uniquement à un utilisateur ou à un groupe spécifique.

      4.- Utilisez des limites strictes pour empêcher l'accès à certains groupes ou utilisateurs de déstabiliser votre système. Très utile dans les environnements où il y a un vrai multi-utilisateur actif à tout moment.

      5.- TCPWrappers est votre ami, si vous êtes sur un système qui le prend en charge, l'utiliser ne ferait pas de mal, vous pouvez donc refuser l'accès à partir de n'importe quel hôte à moins qu'il ne soit préalablement configuré dans le système.

      6.- Créez des clés SSH RSA d'au moins 2048 bits ou mieux de 4096 bits avec des clés alphanumériques de plus de 16 caractères.

      7.- Dans quelle mesure êtes-vous inscriptible dans le monde? Vérifier les autorisations de lecture-écriture de vos répertoires n'est pas du tout mauvais et c'est le meilleur moyen d'éviter les accès non autorisés dans les environnements multi-utilisateurs, sans oublier que cela rend plus difficile pour certains accès non autorisés d'accéder à des informations que vous ne voulez pas. personne d'autre ne voit.

      8.- Montez toute partition externe qui ne le mérite pas, avec les options noexec, nosuid, nodev.

      9.- Utilisez des outils tels que rkhunter et chkrootkit pour vérifier périodiquement que le système n'a pas de rootkit ou de malware installé. Une mesure prudente si vous faites partie de ceux qui installent des éléments à partir de référentiels non sécurisés, à partir de PPA ou simplement en compilant du code en direct à partir de sites non approuvés.

      1.    koratsuki dit

        Euhmmm, délicieux… Bon commentaire, ajoutez les gars… 😀

    2.    William Moreno-Reyes dit

      Appliquer un contrôle d'accès obligatoire avec SElinux?

  2.   ArmandoF dit

    très bon article

    1.    koratsuki dit

      Merci mon ami 😀

  3.   Joaco dit

    Bonjour et si je suis un utilisateur normal, dois-je utiliser su ou sudo?
    J'utilise su parce que je n'aime pas sudo, parce que quiconque a mon mot de passe utilisateur peut changer ce qu'il veut sur le système, à la place avec su no.

    1.    koratsuki dit

      Sur votre PC cela ne prend pas la peine d'utiliser su, vous pouvez l'utiliser sans problème, sur les serveurs, il est fortement recommandé de désactiver l'utilisation de su et d'utiliser sudo, beaucoup disent que c'est dû au fait d'auditer qui a exécuté quoi et sudo fait cette tâche ... moi en particulier, sur mon pc j'utilise le sien, tout comme vous ...

      1.    Joaco dit

        Bien sûr, je ne sais pas vraiment comment cela fonctionne sur les serveurs. Cependant, il me semble que sudo avait l'avantage de pouvoir donner des privilèges à l'utilisateur d'un autre ordinateur, si je ne me trompe pas.

    2.    andrew dit

      Article intéressant, je crypte certains fichiers avec gnu-gpg, comme le privilège minimum, au cas où vous voudriez exécuter, par exemple, un binaire d'origine inconnue perdu dans les immenses mers d'informations sur le disque, comment supprimer l'accès à certaines fonctions ?

      1.    koratsuki dit

        Je vous dois cette partie, même si je pense que vous ne devriez exécuter qu'en tant que sudo / root, des programmes fiables, c'est-à-dire qu'ils proviennent de votre repo ...

      2.    Yukiteru dit

        Je me souviens avoir lu qu'il existe un moyen d'activer les capacités root dans un manuel sur GNU / Linux et UNIX, si je le trouve, je le mettrai 😀

      3.    Pitre dit

        et chown cages pour exécuter des binaires inconnus?

    3.    Yukiteru dit

      Il est préférable d'utiliser sudo à tout moment.

    4.    animé dit

      Ou vous pouvez utiliser sudo, mais en limitant le temps de mémorisation du mot de passe.

  4.   Kévin Rodriguez dit

    Des outils similaires que j'utilise pour surveiller le PC, "iotop" en remplacement de "iostat", "htop" excellent "gestionnaire de tâches", "iftop" surveillance de la bande passante.

  5.   moniteur dit

    beaucoup penseront que c'est exagéré, mais j'ai déjà vu des attaques visant à inclure un serveur dans un botnet.

    https://twitter.com/monitolinux/status/594235592260636672/photo/1

    ps: les mendiants chinois et leurs tentatives de pirater mon serveur.

  6.   pitre dit

    quelque chose qui est également pratique est d'utiliser des cages chown pour les services, donc si pour une raison quelconque ils sont attaqués, ils ne compromettraient pas le système.

  7.   Diab dit

    L'utilisation de la commande ps est également excellente pour la surveillance et pourrait faire partie des actions de vérification des failles de sécurité. l'exécution de ps -ef répertorie tous les processus, il est similaire à top mais il montre quelques différences. l'installation d'iptraf est un autre outil qui peut fonctionner.

  8.   Claudio J. Concepcion Certitude dit

    Bonne contribution.

    J'ajouterais: SELinux ou Apparmor, selon la distribution, toujours activé.

    D'après ma propre expérience, j'ai réalisé que désactiver ces composants était une mauvaise pratique. Presque toujours, nous le faisons lorsque nous allons installer ou configurer un service, avec l'excuse qu'il fonctionne sans problèmes, alors que ce que nous devrions vraiment faire est d'apprendre à les gérer pour autoriser ce service.

    Salutations.

  9.   GnuLinux ?? dit

    1.Comment crypter l'ensemble du système de fichiers? ça vaut la peine??
    2.Doit-il être décrypté à chaque mise à jour du système?
    3. Le cryptage de l'ensemble du système de fichiers de la machine est-il identique au cryptage de tout autre fichier?

    1.    Yukiteru dit

      Comment montrez-vous que vous savez de quoi vous parlez?

  10.   Nautile dit

    En outre, vous pouvez mettre en cage des programmes et même plusieurs utilisateurs. Bien que faire cela soit plus de travail, mais si quelque chose s'est produit et que vous aviez une copie précédente de ce dossier, il s'agit simplement de frapper et de chanter.

  11.   Toño dit

    La politique de sécurité la meilleure et la plus pratique est de ne pas être paranoïaque.
    Essayez-le, c'est infaillible.

  12.   angebénites dit

    J'utilise csf et lors du déverrouillage d'un client qui a égaré son mot de passe dans certains accès, cela retarde le processus, mais c'est le cas. C'est normal?

    Je recherche la commande pour débloquer de ssh ... toute suggestion