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