Sähköpostipalvelin

Linux.fista
Versio hetkellä 1. tammikuuta 2019 kello 23.03 – tehnyt Heikkiket (keskustelu | muokkaukset) (Lisätty Palvelin-malline)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Sähköpostipalvelin on palvelinohjelma, joka välittää sähköpostia eteenpäin Internetissä tai järjestelmän sisällä tai vastaanottaa sähköpostia ja tallettaa sen käyttäjien postilaatikoihin. Useimmat sähköpostipalvelimet toimivat sekä sähköpostin välittäjinä (MTA, mail transfer agent), SMTP-protokollalla, että postin jakajina käyttäjille (MDA mail delivery agent), mutta jälkimmäiseen voi myös käyttää erikoistunutta ohjelmaa (esim. procmail). IMAP-, POP- ja WWW-liittymä sekä postin suodatus hoidetaan usein toisen palvelinohjelman avulla.

Unixeissa on perinteisesti pystytetty jokaiseen järjestelmään oma sähköpostipalvelin (esimerkiksi Sendmail, Exim tai Postfix). Palvelin huolehtii postituslistoista, postin suodatuksesta, paikallisesta postista sekä postin säilyttämisestä ja uudelleenlähettämisestä verkko-ongelmien sattuessa. Tietoturvasyistä paikallinen sähköpostipalvelin ei useinkaan näy verkkoon (paitsi varsinaisilla palvelimilla), vaan ulkopuoliset postit haetaan eri ohjelmalla (Fetchmail) tai suoraan sähköpostiohjelmalla. Jos käytössä on paikallinen sähköpostipalvelin, lähettää Linux tietoja järjestelmän ongelmista pääkäyttäjän sähköpostitilille (tai osoitteeseen, jonne nämä viestit on asetettu ohjattaviksi).

Asennettaessa ulkomaailmaan näkyvä sähköpostipalvelin on tietoturvasta huolehtiminen tärkeää. Väärin säädetty sähköpostipalvelin on helppo käyttää roskapostin levittämiseen. Kaikki ulkoverkkoon näkyvät palvelimet on pidettävä ajan tasalla tietoturvapäivitysten osalta, jottei koneelle pääsisi murtautumaan. Monet sähköpostipalvelimet toimivat lisäksi pääkäyttäjän oikeuksin (root).

Jollei tyydy jakelun oletusasetuksiin, pitää asetukset katsoa ja testata tarkkaan. Väärillä asetuksilla sähköpostia saattaa hävitä tai viesti saattaa alkaa pomppia edestakaisin. Jälkimmäinen ongelma liittyy ennen kaikkea oheistoimintoihin, kuten sähköpostilistoihin, suodattimiin ja poissaoloviesteihin.

Kuuntelun ja välittämisen rajoittaminen

Paikallinen palvelin voi kuunnella Internetiä, lähiverkkoa tai loopback-liitäntää (localhost) tai olla kuuntelematta verkkoa. Jälkimmäisessä tapauksessa sähköposti annetaan palvelimen välitettäväksi komentoriviltä (yleinen komento on /usr/lib/sendmail, joka on symbolinen linkki sähköpostipalvelimen oikeaan ohjelmaan). Jos palvelimen pitää kuunnella verkkoa eikä itse palvelin osaa rajoittaa kuuntelua sopivasti, voi palomuuria käyttää apuna kuuntelun rajoittamiseen.

Sähköpostipalvelin voi rajoittaa viestien välityksen paikallisille käyttäjille osoitettuihin ja paikallisten käyttäjien lähettämiin viesteihin. Viestien vastaanottaminen myös lähiverkosta tai muilta koneilta vaatii erilliset säädöt, avainsanana relay hosts, local domains tai vastaava. Rajoitusten poistaminen kokonaan ("open relay") kavahdetaan, koska tämä mahdollistaa roskapostin välityksen palvelimen kautta ulkomaailmasta ulkomaailmalle.

Jos koneeseen viitataan eri nimillä kuin localhost ja host-komennon palauttamalla nimellä, nämä on yleensä mainittava sähköpostipalvelimen säädöissä, jotta osoitetta ei tulkittaisi ulkoiseksi.

Sisäinen sähköposti

Useat Linux-koneen palvelut lähettävät viestejä koneen ylläpitäjälle sähköpostin kautta. Siksi kannattaa ohjata pääkäyttäjälle tulevat viestit sähköpostilaatikkoon, jota oikeasti luetaan. Toisaalta jotkut ongelmatilanteet estävät postin lähettämisen ulkomaailmaan, joten posti kannattaa lähettää myös paikalliseen postilaatikkoon (jota siis myös kannattaa lukea).

Postin ohjaaminen tietylle käyttäjälle onnistuu tiedoston /etc/aliases avulla. Sähköpostiohjelman asennus saattaa ohjata useiden järjestelmätunnusten postin pääkäyttäjälle. Lisäksi pääkäyttäjän posti siis on ohjattava eteenpäin:

# /etc/aliases
mailer-daemon: postmaster
postmaster: root
...
root: matti, mattimei@example.org

Jotkut sähköpostiohjelmat lukevat erillistä tietokantaa, jolloin muutokset on saatettava voimaan ohjelmakohtaisella käskyllä.

Jos sähköpostia normaalisti luetaan suoraan palvelutarjoajan palvelimelta, paikallisen sähköpostilaatikon voi lisätä luettaviin sähköpostilaatikkoihin. Katso ohjelmakohtaiset ohjeet.

Lähtevä posti

Tavallinen asetelma kotikoneen sähköpostipalvelimella on, että ulkomaailmaan menevä posti lähetetään yhteydentarjoajan sähköpostipalvelimen kautta (avainsanoja: smarthost, satellite host). Sama saattaa olla järkevää pienissä yrityksissä. On myös mahdollista rajoittaa palvelin niin, ettei sen kautta voi lähettää postia ulkomaailmaan ollenkaan.

Windows-koneiden sähköpostiasiakkaat käyttävät yleensä suoraan palveluntarjoajan sähköpostipalvelinta. Tämä onnistuu Linuxissakin useimmissa ohjelmissa, mutta käyttämällä omaa sähköpostipalvelinta postin lähettäminen onnistuu silloinkin, kun yhteys smarthost-palvelimeen jostakin syystä reistailee. Lisäksi postin lähetys onnistuu jokaisella sähköpostiohjelmalla, säätämättä jokaisen ohjelman ja jokaisen käyttäjän asetuksiin kulloinkin käytettävä postipalvelin. Yksittäisen sähköpostiohjelman säädöiksi riittää silloin asetus SMTP:localhost tai "sendmail" (tai vastaava, riippuen ohjelmasta).

Sähköpostipalvelin voi olla jatkuvasti ajossa tai se voi käynnistyä tietyin väliajoin cronista. Usein palvelin yrittää kymmenen minuutin väliajoin lähettää jonossa olevat viestit (harvempaan, jos edelliset yhteydet ovat epäonnistuneet). Epäonnistuneesta lähetyksestä tulee yleensä varoitus tietyn ajan (esim. vuorokausi) ja virheviesti pidemmän ajan (esim. kolmen vuorokauden) päästä, sisältäen alkuperäisen viestin.

Sisääntuleva posti

Jos sähköpostipalvelin kuuntelee verkkoliitäntää, posti osoitteeseen postmaster (muunnoksineen) on luettava. Yleensä sähköpostiohjelman oletusasetukset ohjaavat sen samaan osoitteeseen kuin root-tunnukselle tulevan postin.

Jos sähköpostipalvelin ei kuuntele ulkoverkkoa, sille voidaan hakea muulle sähköpostipalvelimelle tuleva posti erillisellä ohjelmalla fetchmail, joka välittää postin SMTP:llä localhost-osoitteeseen.

Oman palvelimen käytön syynä voi olla postilistojen hallinta, oman postin suodatus tai oman postin pitäminen luettavissa useammalta koneelta. Näihin tarkoituksiin löytyy erillisiä ohjelmia, jotka useimiten toimivat hyvin MTA-ohjelmien kanssa.

Vaihtoehtoiset nimet ja osoitteet

Jos pystyttää sähköpostipalvelimen vakavaan käyttöön, sillä pitäisi olla pysyvä Internetissä käypä nimi, jonka nimipalvelinasetukset ovat kunnossa. Tämä ei ole itsestäänselvää kuluttajaliittymällä. dyndns.org tai vastaavat palvelut auttavat jonkin verran, mutta eivät vastaa kiinteää ip-numeroa jonka käänteispalvelu reverse DNS toimii.

Jos koneella ei ole Internetissä käypää ja pysyvää nimeä, on usein suotavaa että lähtevässä postissa kerrotaan lähettäjän ulkoinen, koneesta riippumaton osoite. Kaikissa ulkomaailmaan näkyvissä lähettäjätietokentissä (From, From:, Sender:, Reply-To:, Resent-From: jne.) pitäisi olla ulkomaailmassa käypä osoite. Sähköpostipalvelin voi usein muuttaa koneen sisäiset tunnukset ulkomaailmassa käypiin, kunhan vastaavuudet kirjataan tietokantaan. Toisaalta lähettäjätietojen väärentämistä ei katsota hyvällä, joten muutos kannattaa jättää tekemättä, jollei ymmärrä ohjelman tai sähköpostiosoitteiden toimintaa.

Koneesta lähtevien viestien muoto kannattaa varmistaa katsomalla omaan ulkoiseen postilaatikkoon lähetetyn viestin kaikki otsaketiedot ("view all headers", "raw" tms.).

Katso myös

v  k  m
  Palvelin
 Ylläpito  SSH | Tietoturva | Käyttäjien hallinta | Systemd | iptables | Security-Enhanced Linux | AppArmor
 Palvelintyypit  Web-palvelin | Sähköposti | Tietokanta | NFS | Samba
 Komentorivi  Komentorivin perusteet | Komentorivikomennot | Bash-skriptaus
 Tekstieditoreja  nano | vi | emacs
Palvelin-luokka