Kuinka käyttää Amazon Simple Email Service (SES) -palvelinta palvelinpohjaisen sähköpostipalvelimen korvaamiseen

Eräänä hienona päivänä ilman havaittavaa syytä Ubuntu 18.04 -yrityspalvelimeni lopetti sähköpostin edelleenlähetämisen Gmail-osoitteeseeni.

Juuri edellisenä päivänä .forward-tiedostot, jotka olin luonut sähköpostitse käyttämieni paikallisten palvelintilien kotihakemistoissa - kuten /home/office/.forward - ohjaavat iloisesti kaikki yritykseni osoitteisiin kohdistetut postit päivittäin - käytä Gmail-tiliä. Ja sitten he yhtäkkiä pysähtyivät.

Kun huomasin, että jokin oli vialla, otin heti yhteyttä palvelimelleni. /var/log/mail.err sylkäisi viehättäviä viestejä, jotka sisälsivät esimerkiksi:

status=deferred (delivery temporarily suspended: connect to alt2.gmail-smtp-in.l.google.com[219.8.202.27]:25: Connection timed out)

Palvelimen postilaatikoiden tarkistaminen kertoi minulle, että postia oli saapumassa, mutta että Postfix ei voinut muodostaa yhteyttä Gmailiin viestien edelleenlähettämiseksi osoitteeseeni.

Luonnollisesti aloitin Postfixin uudelleen, mutta se ei auttanut.

sudo systemctl restart postfix

Vahvistin, ettei mikään estä lähteviä viestejä poistumasta palvelimeltani portilta 25 (SMTP). Sitten tarkistin, että verkkotunnustani ei ollut jotenkin lisätty mustalle listalle (on olemassa lukuisia online-työkaluja, jotka tekevät sen puolestasi), ja kurkistin MX-tietueiden tilaa suorittamalla kaivamisen komentoriviltä:

dig MX bootstrap-it.com

Ei mitään tekemistä. Kaikki näytti lähtevän.

Muutaman turhauttavan vianmääritysistunnon jälkeen luulin ja ajattelin kokeilla jotain aivan erilaista.

Koska olen AWS-ratkaisuarkkitehti ja olen kirjoittanut kaksi Wiley / Sybex-kirjaa AWS: stä (yhden opas pilvipalveluhenkilöstökokeeseen ja toisen ratkaisuarkkitehtiopettajan tenttiin), eikö minun pitäisi olla halukas ja kykenevä rakentamaan oma pino AWS-työkaluista, jotka hoitavat sähköpostipalvelimeni tarpeet pilvessä?

On käynyt ilmi, että olin sekä halukas että - vakavien tutkimusten ja kokeilujen ja virheiden jälkeen - kykenevä. Sen tekeminen vaatii:

  • Luodaan S3-ämpäri, johon saapuvat sähköpostit tallennetaan.
  • Luomalla yksinkertaisen ilmoituspalvelun (SNS) aihe lähettämään minulle ilmoituksen joka kerta, kun uusi sähköposti saapuu.
  • Määritetään Amazonin yksinkertainen sähköpostipalvelu (SES) ottamaan vastaan ​​sähköpostiosoitteeni (bootstrap-it.com) ja käsittelemään saapuvia viestejä. Tähän sisältyy MX-tietueen lisääminen reitille 53 (missä verkkotunnuksiani hallitaan) ja SES-osoitin toimialueelleni; jokaisen sähköpostiosoitteen lisääminen ja vahvistaminen, jota haluan SES: n hallitsevan; ja sitten käsketään SES: ää lähettämään uusia viestejä S3-ämpäriin ja samalla käynnistämään hälytys SNS-aiheesta.
  • Olettaen, että haluat myös lähettää sähköpostiviestejä palvelun kautta, on myös hyvä määrittää SES allekirjoittamaan lähtevät viestisi käyttämällä DomainKeys Identified Mail (DKIM) -palvelua.

En aio kuvata kaikkia näitä vaiheita yksityiskohtaisesti täällä. Siellä on runsaasti erinomaisia ​​asiakirjoja. Mutta mainitsen lyhyesti joitain kipupisteitä, joita saatat kohdata.

Sinun on lisättävä MX-tietue DNS-isännöityyn vyöhykkeeseesi jokaiselle käyttämällesi verkkotunnukselle. Vaikka verkkotunnuksiasi hallitaan Amazonin reitillä 53, sinun on annettava arvo tietueellesi.

Se, mitä käytät kyseiselle arvolle, riippuu AWS-alueesta, jossa SES-resurssi sijaitsee. Minun tapauksessani se näytti tältä:

10 inbound-smtp.us-east-1.amazonaws.com

SNS-ilmoitukset saapuvat yhtenä pitkänä tekstijonona, joka sisältää vain pari lyhyttä morsia hyödyllistä mutta vaikeasti luettavaa tietoa. Se riittää roskapostin tunnistamiseen, mutta tarvitset yleensä enemmän tietoa kuin mitä löydät täältä. Käytän ilmoituksia heads-upina, jotka kertovat minulle, että S3-ämpäriini on tullut uutta postia.

Sähköpostien tarkasteleminen S3-ryhmässä AWS-hallintakonsolin kautta ei ole maailman loppu, jos se tapahtuu vain kerran tai kahdesti kuukaudessa. Mutta jos he saapuvat sitä nopeammin, sinun on löydettävä parempi tapa käyttää ja lukea viestejäsi.

Protokollan luominen prosessin automatisoimiseksi on kuitenkin paikallinen käyttöjärjestelmäongelma, joka vaatii täysin erilaisia ​​työkaluja. Ratkaisin ongelman itselleni käyttämällä AWS CLI: tä ja hienoa Bash-komentosarjaa. Jos haluat nähdä, kuinka tein sen, napsauta tätä artikkelia.

Bootstrap-it.com -sivustollani on paljon enemmän hallinnon hyvyyttä kirjojen, kurssien ja artikkeleiden muodossa.