Ceux d'entre nous qui administrent des serveurs doivent garder le contrôle le plus strict possible sur tout ce qui se passe sur le serveur, l'une des choses que nous avons souvent besoin de savoir est quand un utilisateur se connecte via SSH (root inclus), pour cela avec un package et une ligne atteindrait nos notifications par e-mail.
Pouvez-vous imaginer que chaque fois que quelqu'un se connecte via SSH avec root, il reçoit un e-mail qui le dit?
En d'autres termes, ils recevraient un e-mail qui dirait quelque chose comme ceci:
[miserver] Alerte: accès au terminal racine le: 2014/01/21 (200.55.51.151)
Ce est à dire:
[$ NOMBRE_VPS] Alerte: accès au terminal racine le: $ DATE ($ IP_DE_WHO_S_CONNECT)
Pour ce faire, ils doivent d'abord installer un package appelé courrier x.
En supposant que votre serveur utilise Debian ou une distribution basée sur celle-ci (je ne recommande que Debian, pas Ubuntu ou similaire pour les serveurs), ce serait:
apt-get install mailx
Ensuite, nous devons mettre la ligne suivante à la racine .bashrc:
echo 'ALERTA - Acceso a Terminal de Root en:' `hostname` 'el:' `date +'%Y/%m/%d'` `who | grep -v localhost` | mail -s "[ `hostname` ] Alerta: Acceso a Terminal de Root el: `date +'%Y/%m/%d'` `who | grep -v localhost | awk {'print $5'}`" mi@email.com
Pour éditer /root/.bashrc, utilisez un éditeur dans un terminal comme nano:
nano /root/.bashrc
Après avoir mis (n'importe où dans le fichier) la ligne que j'ai placée avant, nous sauvegardons le fichier avec Ctrl + O (Ou ours) et nous l'avons laissé avec Ctrl + X
Prêt, chaque fois que quelqu'un entre dans le terminal racine, le fichier .bashrc sera chargé, ce qui est toujours fait par défaut, et lorsque le fichier est chargé, la ligne qui envoie l'e-mail sera exécutée, nous laissant quelque chose dans notre boîte de réception comme:
L'explication de la ligne est quelque chose de vraiment simple:
- Par mailx j'envoie le mail, avec le paramètre -s «_____» je spécifie le sujet, et je le passe avec l'écho «____» et un tuyau le contenu du corps.
- `hostname` avec cela, j'obtiens le nom d'hôte ou le nom d'hôte, c'est-à-dire le nom du VPS.
- `date + '% Y /% m /% d'` la commande date me montre la date du système, le reste des lettres indique simplement comment je veux que la date soit affichée.
- qui | grep -v localhost` Si vous exécutez who sur votre ordinateur, il vous montrera les utilisateurs actifs, avec un grep -v localhost, je m'assure qu'il ne montre que ceux qui se sont connectés d'un emplacement différent au serveur lui-même, c'est-à-dire essentiellement SSH
- `qui | grep -v localhost | awk {'print $ 5'} `Ce qui différencie cette ligne de la précédente c'est le awk, à travers le awk et l'impression de la 5ème colonne, c'est que j'obtiens l'IP d'où ils se sont connectés à SSH
Quoi qu'il en soit, la ligne est un peu longue et peut sembler complexe à comprendre, cependant il y a beaucoup de personnages étranges mais tout est assez simple 🙂
Comme toujours, j'espère que vous l'avez trouvé intéressant.
salutations
Une question, avec quel serveur de messagerie est-il envoyé? Devez-vous configurer un compte d'expédition?
Vous devez avoir installé le package mailx 😉
Une fois cela fait, il est envoyé sans qu'il soit nécessaire de configurer quoi que ce soit d'autre sur le serveur.
Je vais l'essayer, mais je pense que mon e-mail n'acceptera pas de recevoir des e-mails d'une source non authentifiée ...
J'utilise exim4 avec un compte 'gmail' pour envoyer des e-mails et cela fonctionne très bien
- Sauf pour les en-têtes FROM TO et REPLY TO, que gmail met ce qu'il veut mais ils arrivent bien -.
Pour configurer Gmail avec exim4, utilisez ces informations:
http://dajul.com/2009/06/08/configurar-exim4-con-gmail-o-google-apps/
Intéressant, merci beaucoup 🙂
Ami @ KZKG ^ Gaara J'ai installé le paquet et j'ai fait le manuel étape par étape, la seule chose que quand je l'envoie j'ai le mail local, je ne suis jamais sorti, pouvez-vous m'aider avec ça ?? …… bien J'ai vraiment besoin d'avoir ce thème configuré sur mes serveurs, salu2s.
Par votre IP, je suppose que vous êtes du même pays 😉
Le «problème» avec nos réseaux a rarement de vraies adresses IP en tant que telles, c'est-à-dire que nous sommes sous-réseau sous un réseau proxy ministériel, ou quelque chose comme ça. En d'autres termes, le problème est peut-être que le serveur Web seul ne peut pas recevoir d'e-mail du réseau ou quelque chose du genre, peut-être avez-vous besoin de ceci: https://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/
intéressant et s'il est placé dans «/ etc / profile» donnera-t-il l'avertissement lorsqu'un utilisateur se connecte?
Il faudrait essayer, ça ne m'était pas venu à l'esprit 😀
Appelez-moi paranoïaque, mais mettez un script qu'un inconnu me suggère dans une partie importante de mon système où je garde les mots de passe de compte, des données telles que des certificats de naissance, des documents personnels et des documents de travail (exposant ainsi mes clients également), etc. etc., et que implique aussi d'exposer mon compte de messagerie (!!!)… enfin, c'est quelque chose de dangereux, je pense.
Le danger du scénario présenté est inversement proportionnel à sa compréhension.
Et pour la paranoïa, arrêtez d'installer des référentiels NON GRATUITS, car il est possible que quelqu'un introduit un code malveillant qui vole votre panier.
J'ai expliqué ce que fait chaque partie de la ligne de commande, mais si vous pensez que je trompe quelqu'un, le script ou les commandes sont juste là dans le message, il n'a pas de code caché ou secret, vous êtes invités à examiner les commandes de manière aussi approfondie comme vous le souhaitez, si vous trouvez quelque chose de suspect, veuillez le commenter ici 😉
Merci.
Très intéressant.
Peut-être que les fichiers ~ / .bashrc ou / etc / profile ne sont pas les plus appropriés dans le cas où nous accédons par SSH avec un utilisateur normal et exécutons une commande spécifique en tant que root. Ou si nous exportons le X11 depuis notre VPS distant, chaque fois que nous ouvrons un xterm, nous aurions un nouvel e-mail.
Pour le hack mailx, je pense que nous devrions utiliser les fichiers ~ / .ssh / rc (individuel pour chaque utilisateur) ou / etc / ssh / sshrc
PostData: accès _NEVER_ par SSH en tant qu'utilisateur root. _NEVER_ accès par SSH en utilisant un mot de passe. _ALWAYS_ utilise des clés privées.
intéressant → ~ / .ssh / rc je trouverai plus d'informations à ce sujet merci 😀
Bonjour, très bon tuteur!
Pourriez-vous en créer un pour entrer via ssh depuis n'importe quelle adresse IP, en dehors du réseau local?
je vous remercie!
Ce script fonctionne si le serveur de messagerie auquel nous envoyons ne vérifie pas que le courrier source provient d'un serveur authentique, dans ce cas, il proviendrait de root @ localhost, la plupart des serveurs le prendront comme spam.
Ce que je fais, c'est configurer sendmail en tant que MTA, puis utiliser le courrier fourni dans toutes les distributions pour envoyer des e-mails.
http://vidagnu.blogspot.com/2009/02/configurar-sendmail-como-cliente-de.html
Merci pour le conseil que je vais avoir pour le tester:]
très utile merci
Merci un million pour le conseil ami @ KZKG ^ Gaara, je vais jeter un oeil à sendmail, j'espère résoudre, salu2s.
Formidable! Merci pour la contribution!
Et que se passe-t-il, si par exemple le script envoie trop d'e-mails, par exemple quelqu'un entre dans le terminal racine à 8h00 et a envoyé environ 40 e-mails, puis quelqu'un est entré à un autre moment et plus de 23 e-mails ont été envoyés, puis quelqu'un vient à un autre moment et plus de 150 e-mails ont été envoyés, que pourrait-il être?