Archief - Linux mailt automatisch op nieuwe event (ssh login)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

fuze

Legacy Member
Hallo,

Ben al een tijdje aan het zoeken hierachter.. Wat ik dus wil doen is dat wanneer er een bepaalde event gelogged wordt (een user logt in via ssh ofzo) dat mij een tail van de log wordt doorgestuurd, naar mijn gmail ofzo.

Nu ik kan dat tamelijk makkelijk greppen en pipen naar mail -s, maar da's alleen voor de local mailbox van een user.. Iemand een tamelijk simpele oplossing hoe ik mail can configureren dat hij wel naar gmail/telenet kan sturen?

Thanks!

dJeez

Legacy Member
Configureer je lokale mail server en stel de mail server van je ISP daar als relay in. Da's het enige wat je dient te doen in principe...

fuze

Legacy Member
dJeez zei:
Configureer je lokale mail server en stel de mail server van je ISP daar als relay in. Da's het enige wat je dient te doen in principe...

Kan je het stuk "lokale mail server" verduidelijken? Waar stel ik dat in? Ben ff de kluts kwijt :).

dJeez

Legacy Member
Welke mail transfer agent (MTA)/server gebruik je? Postfix, qmail, Exim, sendmail, ... ? En welke Linux distributie gebruik je?

dJeez

Legacy Member
Pas dan de configuratie van postfix aan, meer bepaald in /etc/postfix/main.cf moet je bij myhostname een geldige hostname invullen (vul desnoods telenet.be in) en bij relayhost vul je uit.telenet.be in. Je kan dat vb. door rechtstreeks dat bestand te editen, ofwel door het volgende uit te voeren :
sudo postconf -e 'myhostname = telenet.be'
sudo postconf -e 'relayhost = uit.telenet.be'
Er van uitgaande dat je tenminste bij Telenet zit (anders vul je daar maar domein en SMTP server van je eigen ISP in).

En start uiteindelijk postfix op met de gewijzigde configuratie : /etc/init.d/postfix reload.

Dan zou je via mail ook moeten kunnen mailen naar om 't even welk email adres.

BTW http://ubuntuforums.org/showthread.php?t=185913 is een goed startpunt voor informatie mbt postfix op Ubuntu.

dJeez

Legacy Member
fuse, ik hier nu ff publiek antwoorden aangezien dit wel een nuttige oefening was waar anderen misschien ook iets aan hebben.

Het beoogde doel was om een email te ontvangen wanneer er iemand via ssh zou inloggen. De makkelijkste manier leek mij om dat op te vangen door het toe te voegen aan /etc/profile. Van daaruit ben ik dan ook op zoek gegaan naar een mogelijke oplossing. De beste manier leek er mij dan ook eentje te zijn waar je eender wat in de mail kan zetten, en ook de afzender kan specifiëren zodat een bounce van het bericht desnoods ook kan opgevangen worden.

De uiteindelijke oplossing (specifiek voor Ubuntu, paden kunnen nogal verschillen per distributie, maar die kan je snel achterhalen door het which commando) die ik zou gebruiken (gewoon toevoegen op het einde van /etc/profile) :
Code:
# Send mail on SSH login
if [ "$SSH_CONNECTION" ]; then
  echo -e "From: [email protected]\nTo: [email protected]\nSubject: SSH login\n\n`/usr/bin/whoami` heeft ingelogd op `/bin/date` via " $SSH_CONNECTION | /usr/sbin/sendmail -f [email protected] -t
fi
Het spreekt voor zich dat je de email adressen hierboven dient aan te passen aan de email adressen die je wenst te gebruiken.

Korte uitleg :
  • de SSH_CONNECTION environment variabele wordt ingevuld bij een SSH connectie (een mogelijk alternatief is SSH_CLIENT).
  • de -e optie bij echo zorgt ervoor dat escaped karakters (zoals \n) correct worden geïnterpreteerd.
  • de backticks (`) zorgen ervoor dat het commando wordt uitgevoerd, de uitvoer komt hier dus in die echo terecht (alternatief is $(commando) gebruiken).
  • de -f optie bij sendmail zorgt voor het overriden van de afzender
  • de -t optie bij sendmail zorgt ervoor dat de bestemmeling uit het bericht worden gelezen (in dit geval dus wat er in de echo staat).

Veel plezier ermee :p.

fuze

Legacy Member
Thx alot dJeez, die absolute paden naar de commando's was dus het grote probleem :). Hopelijk zijn nog mensen hier iets mee!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan