A Postfix és a Dovecot konfigurálása az Ubuntu-on

Sok Ubuntu felhasználó nemcsak otthoni igényekhez használja a rendszert. Ez a megközelítés teljesen indokolt, mert Linux-rendszereken sokkal kényelmesebb a programozás, szerverek és weboldalak létrehozása. Az egyik kényelem az e-mail szerver létrehozása. Kezdők számára ez a feladat rendkívül nehéz lesz, de ha kitalálod, hogyan telepítheted és konfigurálhatod az e-mail kiszolgálót az Ubuntu számára, a feladat nem tűnik olyan nehéznek.

Hogyan állítsunk be egy Ubuntu alapú levelezési kiszolgálót.

Egy kicsit elmélet

A konkrét utasítások és a kódolás előtt az elméleti anyag töredéke nélkül nem lehet megtenni a kódot. Fontos megérteni, hogy mi az e-mail szerver és hogyan működik.

Egy konfigurált levelezőszerver, egy nagyon egyszerű postázó, aki egy levelezést kap egy e-mail kliensről, és ad egy másiknak. Ebben az elvben a szoftver működésének lényege. Az e-mail szerver nem csak az e-mail küldéséhez szükséges. A webhelyeken ő felelős a felhasználók regisztrálásáért, a formanyomtatványok benyújtásáért és egyéb fontos tevékenységekért, amelyek nélkül a helyszín olyan lenne, mint egy könyv, amelyet csak az oldalak elfordításával nézhet meg, de nehéz valamit tenni.

A Linux levelezőszerverei jelentősen eltérnek a Windows és más rendszerek kiszolgálóitól. Windows-ban ez egy kész zárt program, amely csak a használat megkezdéséhez használható. A Linux disztribúciók az összes összetevő önbeállítását is igénylik. És a szerver végül nem egy programból áll, hanem többből. A Postfix-et Dovecot és MySQL kombinációval fogjuk használni.

Miért a Postfix?

Számos e-mail kliens van az Ubuntu-on, de még mindig ezt választottuk. A Posfix beállítása az Ubuntu-nál sokkal könnyebb, mint ugyanaz a SendMail, és ez fontos a kezdő felhasználó számára. A Dovecot-tal kombinálva a Postfix mindent megtesz, amit általában a levelezőszerverekből kell megtenni.

A Postfix közvetlenül maga a postai átutalás ügynök. Nagy szerepet fog játszani az egész benyújtásban. Ez egy nyílt forráskódú program, amelyet sok szerver és webhely alapértelmezés szerint használ. A Dovecot egy postai kézbesítési ügynök. Fő feladata a szerver biztonságának biztosítása. A MySQL ideális adatbázis-kezelő rendszer (DBMS) bármely webhely számára. Szükség van a szerverünk felhasználóitól kapott információk kezelésére.

Tehát az elméleti rész vége. Most érdemes gyakorolni

E-mail szerver létrehozása

Mit kell konfigurálni a levelezőszerver telepítése előtt?

  • MySQL;
  • A DNS-zónának rendelkeznie kell egy személyes FDQN-vel. Ezután a namehostot használjuk.

telepítés

Telepítse a programot:

apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql

Amikor megjelenik a Postfix konfigurációs ablak, ki kell választanunk az „internetes oldalt”.

Az alábbiakban felkérjük, hogy adjon meg egy domain nevet, használja a "primer.ru" -t.

MySQL beállítás

Most három táblát kell konfigurálnunk a MySQL adatainak: tartományok, felhasználók és az ún. Alias ​​- álnevek vagy további felhasználói postafiókok számára. Itt nem tárgyaljuk részletesen a MySQL adatbázis konfigurációját.

Hívjuk fel a examplemail adatbázist. Hozzon létre egy adatbázist a következő névvel:

mysqladmin -p hozzon létre kiszolgálót

Bejelentkezés a MySQL-ben:

mysql -u root –p

Ezután adja meg a jelszót. Ha minden rendben megtörténik, akkor a bejegyzés lesz a terminálon:

mysql>

Új felhasználó létrehozása kifejezetten a hálózatba való bejelentkezéshez:

mysql> GRANT SELECT ON examplemail. * TO 'usermail'@'127.0.0.1' 'jelszóval';

Most indítsa újra a MySQL-t, hogy megbizonyosodjon arról, hogy minden változtatást sikeresen alkalmazunk.

Adatbázisunk segítségével táblázatokat hozunk létre rajta:

mysql> USE examplemail;

Táblázat létrehozása domainekhez:

TÁBLÁZAT "virtual_domains" létrehozása (

`id` INT NEM NULL AUTO_INCREMENT,

"név" VARCHAR (50) NEM NULL,

PRIMARY KEY ("id")

) MOTOR = InnoDB DEFAULT CHARSET = utf8;

Táblázat létrehozása a felhasználók számára:

TÁBLÁZAT "virtual_users" CREATE

`id` INT NEM NULL AUTO_INCREMENT,

`domain_id` INT NEM NULL,

"jelszó" VARCHAR (106) NEM NULL,

VARCHAR (120) NOT NULL,

PRIMARY KEY ("id"),

UNIQUE KEY "email" ("email"),

FOREIGN KEY (domain_id) REFERENCIÁK virtual_domains (id) KÖZVETLEN CASCADE

) MOTOR = InnoDB DEFAULT CHARSET = utf8;

Itt láthatod, hogy hozzáadtak e-mailt és jelszót. És minden felhasználó kötődik a domainhez.

Végül hozzon létre egy táblát álnevekre:

TÁBLÁZAT "virtual_aliases" létrehozása (

`id` INT NEM NULL AUTO_INCREMENT,

`domain_id` INT NEM NULL,

`source` varchar (100) NEM NULL,

"rendeltetési hely" varchar (100) NOT NULL,

PRIMARY KEY ("id"),

FOREIGN KEY (domain_id) REFERENCIÁK virtual_domains (id) KÖZVETLEN CASCADE

) MOTOR = InnoDB DEFAULT CHARSET = utf8;

Sikeresen konfiguráltuk a MySQL-t, és három szükséges táblát hoztunk létre. Most már foglalkoznia kell a domainekkel és az e-mailekkel.

Domainek, e-mail címek és álnevek

Adjunk hozzá domainünket a táblázathoz a domainekkel. Az FDQN-t ott kell megadni:

INSERT INTO `examplemail` .`virtual_domains`

("id", "név")

VALUES

('1', 'example.com'),

('2', 'namehost.example.com');

Adjon adatokat az e-mail címről a felhasználói táblázathoz:

INSERT INTO `examplemail```virtual_users`

("id", "domain_id", "jelszó", "email")

VALUES

('1', '1', ENCRYPT ('firstpassword', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()), -16)), ' '),

('2', '1', ENCRYPT ('secondpassword', CONCAT ('$ 6 $', SUBSTRING (SHA (RAND ()), -16)), ' ');

Most adja hozzá az információkat az utolsó táblázathoz:

INSERT INTO `examplemail` .`virtual_aliases`

("id", "domain_id", "forrás", "rendeltetési hely")

VALUES

("1", "1", " ", " ");

A MySQL bezárása:

mysql> kilépés

Postfix beállítás

Közvetlenül a Postfix paraméterekhez. Szükségünk van az e-mail kliensre, hogy üzeneteket küldjön az adatbázisba beírt felhasználók nevében és kezelje az SMTP kapcsolatot. Először is létrehozunk egy biztonsági másolatot a konfigurációs fájlból, amely esetben vissza lehetett térni az alapértelmezett beállításokhoz:

cp /etc/postfix/main.cf /etc/postfix/main.cf.orig

Most nyissa meg a konfigurációs fájlt:

nano /etc/postfix/main.cf

A nano helyett bármelyik szövegszerkesztő használható az Ön számára.

Megjegyezzük a TLS paramétereket, és hozzáadunk másokat is. Ingyenes SSL-t használunk itt:

# TLS paraméterek

# smtpd_tls_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem

# smtpd_tls_key_file = / etc / ssl / private / ssl-cert-snakeoil.key

# smtpd_use_tls = igen

#smtpd_tls_session_cache_database = btree: $ {data_directory} / smtpd_scache

#smtp_tls_session_cache_database = btree: $ {data_directory} / smtp_scache

smtpd_tls_cert_file = / etc / ssl / certs / dovecot.pem

smtpd_tls_key_file = / etc / ssl / private / dovecot.pem

smtpd_use_tls = igen

smtpd_tls_auth_only = igen

Ezt követően további paramétereket adunk hozzá:

smtpd_sasl_type = dovecot

smtpd_sasl_path = privát / auth

smtpd_sasl_auth_enable = igen

smtpd_recipient_restrictions =

permit_sasl_authenticated,

permit_mynetworks,

reject_unauth_destination

Azt is meg kell kommentálnunk a mydestination beállításokat, és módosítanunk kell őket a localhost-ra:

#mydestination = example.com, namehost.example.com, localhost.example.com, localhost

mydestination = localhost

A myhostname paraméternek tartalmaznia kell a domain nevünket:

myhostname = namehost.example.com

Most adjon hozzá egy sort, hogy üzeneteket küldjön a MySQL táblázatban felsorolt ​​összes tartományba:

virtual_transport = lmtp: unix: privát / dovecot-lmtp

További három paraméter hozzáadása, hogy a Postfix csatlakozhasson a MySQL táblákhoz:

virtual_mailbox_domains = mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf

virtual_mailbox_maps = mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf

virtual_alias_maps = mysql: /etc/postfix/mysql-virtual-alias-maps.cf

MySQL és Postfix fájlok beállítása

Hozzon létre egy fájlt

mysql-virtual-mailbox-domains.cf

Adja hozzá ezeket az értékeket:

user = usermail

jelszó = mailpassword

gazdagép = 127.0.0.1

dbname = examplemail

query = SELECT 1 virtuális_domainokból WHERE name = '% s'

Indítsa újra a Postfix-et:

a szolgáltatás postfix újraindítása

Teszt domain a Postfix számára:

postmap -q example.com mysql: /etc/postfix/mysql-virtual-mailbox-domains.cf

Új fájl létrehozása:

nano /etc/postfix/mysql-virtual-mailbox-maps.cf

user = usermail

jelszó = mailpassword

gazdagép = 127.0.0.1

dbname = examplemail

query = SELECT 1 virtuális felhasználóktól WHERE email = '% s'

A Postfix újraindítása:

a szolgáltatás postfix újraindítása

Ezután ellenőrizze újra a Postfix-et:

postmap -q mysql: /etc/postfix/mysql-virtual-mailbox-maps.cf

Ha helyesen végezte el, meg kell jelennie

Az utolsó fájl létrehozása álnevek esetén:

nano /etc/postfix/mysql-virtual-alias-maps.cf

user = usermail

jelszó = mailpassword

gazdagép = 127.0.0.1

dbname = examplemail

query = SELECT célpont virtuális_aliasokból WHERE source = '% s'

Újraindítás:

a szolgáltatás postfix újraindítása

Utoljára teszteltük:

postmap -q mysql: /etc/postfix/mysql-virtual-alias-maps.cf

Dovecot beállítás

Készítünk biztonsági mentéseket hét módosított fájlra:

cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig

Ez egy minta parancs. Adja meg még ugyanazokat a fájlokat ezekhez a fájlokhoz:

/etc/dovecot/conf.d/10-mail.conf

/etc/dovecot/conf.d/10-auth.conf

/etc/dovecot/dovecot-sql.conf.ext

/etc/dovecot/conf.d/10-master.conf

/etc/dovecot/conf.d/10-ssl.conf

Nyissa meg az első fájlt:

nano /etc/dovecot/dovecot.conf

Ellenőrizze, hogy ez a paraméter megjegyzésre került:

! tartalmazza a conf.d / *

írja:

! include_try /usr/share/dovecot/protocols.d/*.protocol

protokoll = imap lmtp

A következők helyett:

! include_try /usr/share/dovecot/protocols.d/*.protocol sor

A következő fájl szerkesztése:

nano /etc/dovecot/conf.d/10-mail.conf

Keresse meg a mail_location sort, távolítsa el a megjegyzést, állítsa be a következő paramétert:

mail_location = maildir: / var / mail / vhosts /% d /% n

Mail_privileged_group keresése, tegye:

mail_privileged_group = mail

Ellenőrizzük a hozzáférést. Adja meg a parancsot:

ls -ld / var / mail

A hozzáférésnek így kell kinéznie:

drwxrwsr-x 3 root vmail 4096 jan. 24:23 / var / mail

Hozzon létre egy mappát minden regisztrált domainhez:

mkdir -p /var/mail/vhosts/example.com

Felhasználó és csoport létrehozása az 5000-es azonosítóval:

groupadd -g 5000 vmail

useradd -g vmail -u 5000 vmail -d / var / mail

A tulajdonos megváltoztatása a felhasználóra VMail:

chown -R vmail: vmail / var / mail

A következő fájl szerkesztése:

nano /etc/dovecot/conf.d/10-auth.conf

Szüntesse meg a hitelesítési szöveget, és adja hozzá a sort:

disable_plaintext_auth = igen

Módosítsa a következő paramétert:

auth_mechanisms = egyszerű bejelentkezés

A sor megjegyzése:

#! tartalmazza az auth-system.conf.ext fájlt

MySQL-jogosultság hozzáadása, megjegyzések megjelölése a sorban:

! tartalmaz auth-sql.conf.ext fájlt

Fájl létrehozása a hitelesítéshez szükséges adatokkal:

nano /etc/dovecot/conf.d/auth-sql.conf.ext

Adja meg a következőket:

passdb {

driver = sql

args = /etc/dovecot/dovecot-sql.conf.ext

}

userdb {

driver = statikus

args = uid = vmail gid = vmail home = / var / mail / vhosts /% d /% n

}

A következő fájl szerkesztése:

nano /etc/dovecot/dovecot-sql.conf.ext

A MySQL paraméter beállítása és megjegyzése:

driver = mysql

Kizárás és beírás:

connect = host = 127.0.0.1 dbname = szerverail user = usermail jelszó = mailpassword

Keresse meg az default_pass_scheme sort, törölje és adja meg a paramétert:

default_pass_scheme = SHA512-CRYPT

Kizárás és új paraméter bevezetése:

password_query = SELECT email felhasználóként, jelszó virtuális felhasználóktól WHERE email = '% u';

A tulajdonos módosítása:

chown -R vmail: dovecot / etc / dovecot

chmod -R o-rwx / etc / dovecot

A fájl megnyitása és szerkesztése:

nano /etc/dovecot/conf.d/10-master.conf

Kizárás és adja meg a paramétert:

szolgáltatás imap-login {

inet_listener imap {

port = 0

}

írja:

szolgáltatás lmtp {

unix_listener / var / spool / postfix / private / dovecot-lmtp {

mód = 0600

user = postfix

group = postfix

}

#inet_listener lmtp {

# Kerülje el, hogy az LMTP látható legyen az interneten

#address =

#port =

#}

}

Módosítsa a következő konfigurációt:

szolgáltatás auth {

unix_listener / var / spool / postfix / private / auth {

mód = 0666

user = postfix

group = postfix

}

unix_listener auth-userdb {

mód = 0600

user = vmail

#group =

}

#unix_listener / var / spool / postfix / private / auth {

# mód = 0666

#}

user = dovecot

}

A fájl utolsó konfigurációjának módosítása:

szolgáltatást nyújtó munkavállaló {

# Auth munkás folyamat

# / etc / shadow. Ha ez nem szükséges

# $ default_internal_user.

user = vmail

}

Szóval végül létrehoztunk egy e-mail szervert az Ubuntu-on. És akkor is hozzáadhat SSL-konfigurációt, vagy használhatja az alapértelmezett beállítást. A levélszemét elleni védelemhez konfigurálhatja a Spam Assassin-t, hogy működjön együtt a szerverünkkel.

Az adatok megadásához használja a szabványos e-mail klienst:

  • Felhasználónév:
  • Jelszó: email1
  • IMAP: example.com
  • SMTP: example.com