De af os, der administrerer servere, skal have den strengest mulige kontrol over alt, hvad der sker på serveren, en af de ting, som vi ofte skal vide, er, når en bruger forbinder via SSH (root inkluderet), for dette med en pakke og en linje ville nå vores e-mail-meddelelser.
Kan du forestille dig, at hver gang nogen forbinder via SSH med root, modtager de en e-mail, der siger?
Med andre ord ville de modtage en e-mail, der ville sige noget som dette:
[ miserver ] Advarsel: Root Terminal Adgang den: 2014/01/21 (200.55.51.151)
Det er:
[ $VPS_NAME ] Advarsel: Adgang til Root Terminal den: $DATE ($IP_OF_WHO_SE_CONNECTED)
For at opnå dette skal de først installere en pakke kaldet mailx.
Hvis du antager, at din server bruger Debian eller en distro baseret på den (jeg anbefaler kun Debian, ikke Ubuntu eller lignende til servere), ville det være:
apt-get install mailx
Så skal vi indsætte følgende linje i root .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
For at redigere /root/.bashrc brug en terminal editor som nano:
nano /root/.bashrc
Efter at have lagt (hvor som helst i filen) den linje, som jeg satte før, gemmer vi filen med Ctrl + O (Eller bjørn) og vi kom ud af det med Ctrl + X
Færdig, hver gang nogen går ind i rodterminalen, vil .bashrc-filen blive indlæst, hvilket er noget, der altid gøres som standard, og når filen er indlæst, vil linjen, der sender e-mailen blive udført, hvilket efterlader noget i vores indbakke som:
Forklaringen på linjen er noget virkelig simpelt:
- Ved hjælp af mailx sender jeg mailen, med parameteren -s "_____" angiver jeg emnet, og jeg sender det med ekko "____" og et rør indholdet af kroppen.
- `hostname` med dette får jeg værtsnavnet eller værtsnavnet, det vil sige navnet på VPS'en.
- `date +'%Y/%m/%d'` dato-kommandoen viser mig systemdatoen, resten af bogstaverne angiver bare hvordan jeg ønsker at datoen skal vises.
- hvem | grep -v localhost` Hvis du kører hvem på din computer, den vil vise dig de aktive brugere, med en grep -v localhost sørger jeg for, at den kun viser dem, der har oprettet forbindelse fra en anden placering til selve serveren, altså SSH i bund og grund
- `hvem | grep -v localhost | awk {'print $5'}` Det, der adskiller denne linje fra den forrige, er awk, ved at bruge awk og udskrive den 5. kolonne er, at jeg får IP'en fra hvor de tilsluttede SSH
Anyway, linjen er ret lang, og den kan virke kompleks at forstå, dog er der mange mærkelige karakterer, men alt er ret simpelt 🙂
Som altid håber jeg, at du fandt det interessant.
hilsen
Et spørgsmål, med hvilken mailserver sendes det? Skal jeg oprette en forsendelseskonto?
Du skal have mailx-pakken installeret 😉
Når dette er gjort, sendes det uden behov for at konfigurere noget andet på serveren.
Jeg vil prøve det, men jeg tror, at min e-mail ikke vil acceptere modtagelse af e-mail fra en ikke-godkendt kilde...
Jeg bruger exim4 med en 'gmail'-konto til at sende e-mails, og det fungerer fint
– undtagen FROM TO og REPLY TO headerne, som gmail sætter, hvad den vil have, men de ankommer godt -.
For at konfigurere gmail med exim4, brug disse oplysninger:
http://dajul.com/2009/06/08/configurar-exim4-con-gmail-o-google-apps/
Interessant, mange tak 🙂
Ven @KZKG^Gaara Jeg har installeret pakken og jeg har lavet manualen trin for trin, det eneste er at når jeg sender den, bliver den lokale post hos mig, den kom aldrig ud, kan du hjælpe mig med det?? …… ja, jeg skal virkelig have dette tema konfigureret på mine servere, salu2s.
Ved din IP antager jeg, at du er fra mit samme land 😉
"Problemet" med vores netværk har sjældent rigtige IP'er som sådan, det vil sige, at vi er under et undernet af et ministerium proxy-netværk, eller noget i den stil. Med andre ord er problemet muligvis, at webserveren i sig selv ikke kan få en e-mail fra netværket eller sådan noget, måske har du brug for dette: https://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/
interessant, og hvis det er placeret i "/etc/profile", vil det give en advarsel, når en bruger forbinder?
Jeg skulle prøve, det var ikke faldet mig ind 😀
Kald mig paranoid, men sæt et script, som en fremmed foreslår mig, i en vigtig del af mit system, hvor jeg opbevarer kontoadgangskoder, data såsom fødselsattester, personlige dokumenter og arbejdsdokumenter (således afslører mine klienter også) osv. osv. indebærer også at afsløre min e-mail-konto (!!!)... ja, det er noget farligt, tror jeg.
Faren ved det præsenterede manuskript er omvendt proportional med forståelsen af det.
Og for paranoia, stop med at installere IKKE-GRATIS arkiver, fordi det er muligt, at nogen introducerer en ondsindet kode, der stjæler din indkøbskurv.
Jeg forklarede, hvad hver del af kommandolinjen gør, men hvis du tror, jeg narrer nogen, er scriptet eller kommandoerne lige der i indlægget, det har ikke nogen skjult eller hemmelig kode, du er velkommen til at gennemgå kommandoerne så grundigt som du vil. der udføres, hvis du finder noget mistænkeligt, så kommenter det lige her 😉
Det værdsættes.
Meget interessant.
Måske er filerne ~/.bashrc eller /etc/profile ikke de mest passende i tilfælde af, at vi får adgang via SSH med en normal bruger og udfører en bestemt kommando som root. Eller hvis vi eksporterer X11 fra vores eksterne VPS, vil vi have en ny e-mail hver gang vi åbner en xterm.
Til mailx-tricket synes jeg, vi skal bruge filerne ~/.ssh/rc (individuelt for hver bruger) eller /etc/ssh/sshrc
PostData: _NEVER_ SSH ind som root. _NEVER_ adgang via SSH ved hjælp af en adgangskode. _ALTID_ brug private nøgler.
interessant → ~/.ssh/rc Jeg vil lede efter mere information om det tak 😀
Hej, meget god tutorial!
Kunne du få en til at indtaste via ssh fra enhver ip, uden for det lokale netværk?
tak!!
Dette script virker, hvis den mailserver, vi sender til, ikke bekræfter, at kildemailen kommer fra en autentisk server, i dette tilfælde ville det være fra root@localhost-kilden, de fleste servere vil tage det som spam.
Det jeg gør er at konfigurere sendmail som MTA, og så bruge mail, der kommer i alle distros til at sende e-mails.
http://vidagnu.blogspot.com/2009/02/configurar-sendmail-como-cliente-de.html
Tak for tippet, jeg beholder det for at prøve det :]
meget nyttig tak
Tusind tak for rådet ven @KZKG^Gaara, jeg vil tage et kig på sendmail-tinget, jeg håber at løse det, salu2s.
Store! Tak for input!
Og hvad sker der, hvis scriptet f.eks. sender for mange e-mails, f.eks. kommer nogen ind i rodterminalen kl. 8:00 og sender omkring 40 e-mails, så kommer nogen ind på et andet tidspunkt, og der sendes mere end 23 e-mails, og så kommer nogen ind på et andet tidspunkt og mere end 150 e-mails blev sendt, hvad kunne årsagen være?