konfigurálása EXIM

Hozzon létre egy mail szerver, amely a MTA Exim (EXIM mail MTA virtuális spam vírus clamav freebsd imap postgresql)

Ebben a cikkben fogunk beszélni egy hatásos mail szerver, amely a MTA EXIM. Az első kérdés, ami természetesen jut eszembe - „És miért EXIM?”. Válasz erre a kérdésre különböző módon, így azt mondom, hogy én annyira vonzotta az EXIM-e:
- logikai rendszer levélfeldolgozás;
- Nagy sebességű;
- kényelmes formában konfigurációs fájl;
- nagyszerű módja találni olyan értékek, adatbázis fájlok, LDAP
- natív támogatást biztosít smtp-hitelesítés
- kisszámú sebezhetőséget talált (sőt, tudom, hogy csak az egyik, hogy találtak a közelmúltban, és megérintette a változatok EXIM-egy 4,20 beleértve)
- igen nagy számú lehetőség, valamint a rendkívüli rugalmasság
- annak lehetőségét, hogy teljes cseréje sendmail (azaz. megteheti ln -sf / usr / local / sbin / exim / usr / libexec / sendmail :-))

Véleményem exim egy nagyon, nagyon sikeres termék, nem csoda, hogy az alapértelmezett az operációs rendszer Debian GNU Linux. Két nagy mínusz EXIM-hazugság az a tény, hogy a hiányzó minőségi dokumentációval orosz Makefile változtatásokat kell kapcsolni ezeket vagy más EXIM-és a lehetőségeket.

Tehát, először azt hiszem, hogy tartalmaznia kell az „ideális” szempontjából a beadás egyszerűsége és alkalmazása a postai rendszer. Fogalmazza egy sor követelményt az e-mail rendszer:

1) egyszerű felhasználók kezelése
2) nyújtásának lehetőségét hozzáférés levelet küldeni a hálózati felhasználók és a mobil felhasználók számára (smtp hitelesítés)
3) maximális védelmet a hackerek, vírusok és spam
A referencia-rendszer felállításával MTA volt FreeBSD 5.2.1, ami bizonyos funkciók a telepítést.

Felsorolni a teljes készlet szoftver a szervezet szerver mail:
- EXIM-4,34 - MTA (Mail Transfer Agent - Mail Transfer Agent)
- futár-3.0.4 - IMAP szerver eléréséhez a felhasználó mail, nincs helyi felhasználói fiókok (virtuális felhasználó)
- clamav - kell vírusokat
- SpamAssasin - keresni spam e-mailek
- postgresql-7.4.2 - tárolja az összes a mail rendszer felhasználói adatok
- Squirrelmail - csak egy szép webes felület az e-mail (szükséges a web szerver és php)

Természetesen, ha összegyűjti az összes ezeket a komponenseket kézzel is, de én nem vagyok nagy rajongója ennek a megközelítésnek. Először meg kell, hogy nagyon világos összeállításának rendjét a különböző alkatrészeket. Másodszor, meg kell érteni egy halom lehetőségek egy csomó különböző könyvtárakban. Harmadszor, tisztában kell lennie végig, és tudom, hogy a felhasználók mit kell hozzá. Nos, és negyedszer, hogy ez nagyon nehéz, hogy frissítse. Mert mi használja a szolgáltatást a portok (ha van, például a Debian GNU Linux, akkor meg kell csomagolni az úgynevezett exim4-daemon-nehéz). Ehhez állítsa be a következő portokat:

- adatbázisok / pogstgresql7
- mail / exim (összeállításakor meg kell adnia a következő lehetőségek közül: Márka WITH_PGSQL = yo
- mail / p5-Mail-SpamAssassin
- biztonság / clamav
- mail / courier-imap (fordításkor újra rámutatni: hogy WITH_CRAM = yo WITH_POSTGRESQL = yo
- mail / Squirrelmail

Összeállítása után az összes szükséges viszont a beállítás színpadon. Ott lesz, hogy kiad egy tisztességes mennyiségű időt beállítani minden eleme a postai rendszer, és a cél ennek a cikknek, hogy minimálisra csökkentsék ezúttal :) Kezdjük az adatbázis postgresql beállításokat, hogy az alapján az építőiparban a postai rendszer.

Először postgresql operációs rendszer felhasználói jogok pgsql (megjegyzés, a felhasználótól egy igazi kagyló és az otthoni könyvtár - / usr / local / pgsql /). Tehát először mi meg a felhasználó jelszavát:

Ezután teszünk su pgsql és kezdődik egy adatbázis létrehozása:

Mi adja meg a felhasználó jelszavát pgsql, és bejutni a parancssor SQL lekérdezések. A részleteket a képességeit az adatbázisban, azt tanácsolom, hogy a kézikönyvben, vagy az egyik könyvet.

CREATE DATABASE felhasználók számára;

Mi feliratkozás az adatbázisban:

CREATE TABLE számlák (
uid soros NOT NULL,
Bejelentkezés karakter változó (128)
„Jelszó” karakter Különböző (128)
maildir karakter Különböző (255)
gecos karakter változó (255)
gid integer DEFAULT 150
otthon jellegű Különböző (255)
mailquota integer DEFAULT 20
);
ALTER TABLE CSAK számlák
ADD CONSTRAINT uid_k PRIMARY KEY (UID);
ALTER TABLE CSAK számlák
ADD CONSTRAINT login_k UNIQUE (login);


create table alias:

CREATE fedőnevek (
mail karakter Különböző (128) NOT NULL,
alias karakter Különböző (128)
);
ALTER TABLE csak álnevek
ADD CONSTRAINT mail_k PRIMARY KEY (e-mail);


Hadd magyarázzam a célja a táblákat és mezőket:

Ezt követően, akkor feltételezzük, hogy dolgozunk postgresql. Ahhoz azonban, hogy teljes mértékben kihasználják az adatbázisban jobb elolvasni a dokumentációt.

Ezután lépni a felállítása a tényleges MTA EXIM. A konfigurációs fájl a változata a „port” van tárolva az / usr / local / etc / EXIM / configure. Kezdeni, szeretném tisztázni a egyes kifejezések jelentése és leírja az alapvető működési elvek az Exim.

Képzeljünk el egy utat bármelyik e-mail üzenetet. Bármely levél áll az úgynevezett „boríték”, és a tényleges adatokat. Valami, amit megszokták, hogy dolgozik e-mail kliensek, nem csak egy „adat”, és nem rendelkezik a borítékot semmilyen módon. A boríték leírja a 2 paraméter: mail: és rcpt a. azt jelzik, hogy a küldő és a címzett, ill.

Session az MTA előzheti „barátságos” - szabvány (HELO) és a fejlett (EHLO). Az üzenet jeleznie kell az ügyfél FQDN, bár több okból nem lehet túl éber benne
FQDN, mert Sok gépet lehet a NAT mögött. MTA válaszul Helo vagy EHLO be képességeiket, így biztosítva az ügyfél és a szinkronizációs szerver.

Továbbá, a levél megy a lánc úgynevezett „router”, amely meghatározza, hogyan kell szállítani a levelet. Között szerepelt útválasztók dnslookup, szállító levelek alapján MX rekordok a DNS, a fájlok ellenőrzése álnevek és .forward fájlokat is, és a helyi szállítás. Minden router rendelkezik egy bizonyos feltétel és működtetése a megfelelő közlekedés. Azzal a feltétellel, EXIM, kijelöli az említett szállítási szállít a levelet, különben az üzenetet átadja a következő útválasztó (annyira fontos annak érdekében leírásának router a konfigurációs fájl).

Transzportoknak is meghatározzák az, hogy a levél szállítás. Így Exim beállítás több részből áll:

-Globális beállítások konfigurálása
-ACL beállítása
-router konfigurációs
-közlekedési konfiguráció
-authenticators beállítás
-sor konfigurációja
-konfigurálja az átírási szabályok

Felállításában Exim széles körben használt különböző listák (hostlist, domainlist és dnslist), valamint az ún lookup'y amellyel EXIM beolvassa az adatokat külső forrásokból.

Sok barátom, próbálják elsajátítani az EXIM hitt lookup'y legbonyolultabb téma, így fogok összpontosítani ezzel a kérdéssel részletesebben.
Kétféle keresési: keresni egy kulcsot (egy kulcs), és keressen (lekérdezés). Az első használható keresni a helyi fájlok, és a második - a különböző típusú adatbázisok (SQL, LDAP, stb.) Bármilyen lookup'y ágyazhatók, azaz egyetlen keresési eredményeinek felhasználásával egy másik.

Keresés alapuló egységes kulcs van felépítve, mint ez:


Különösen említésre méltók elválás fogszabályozó. Ha ismeri a funkcionális nyelvek, mint a Lisp, a következő szintaxist ismerős lesz neked, vagy csak meg kell számolni minden szerkezet lista, amely kezeli az Exim. Ezután a szálakat és más állandók is zárójelek.
Azaz, a fenti példa lehet tekinteni, mint
$ List -> $ -> $ driver>.

Ebben az esetben a fájl maga, így a keresési kell kinéznie:

míg maga a fájl a következő legyen:

192.168.3.4: domain1. domain2.
192.168.1.9: DOMAIN3. domain4.

A keresés az első mezőbe.

Keresés stílusú különbség az, hogy mi nem kifejezetten meghatározza, hogy mit kell keresni, rámutatva helyett a kérelemre. Így például, úgy néz ki, mint egy tipikus lekérdezés sql alap:

Ha sikeres, a kérés vissza az adatbázisból, vagy speciális intézkedések a nem, vagyis rossz kérésnek.
Több ijesztő vannak kérések ldap. Megértjük őket részletesen.
uazanie kiszolgáló és az LDAP port a következő:

Kérdések a könyvtárba a következők:

Request formákat a szabványban leírt, de azt gondolom, hogy érdemes további magyarázatot.

Ha hitelesítés szükséges a szerveren, csak használja valami hasonló

Megjegyzés, hogy cserélni kell a 20 rések at%, amint azt a szabvány.

Azt hiszem, a további megértést a cikket, ez elég.

# Openssl genrsa kijelentkezés mailed.key 2048
# Openssl req -új -x509 gombos mailed.key -days 365 kijelentkezés mailed.crt

Ebben az esetben az összes mezőt a tanúsítvány kérni fogják. Vegye figyelembe, hogy a privát kulcsot nem lehet titkosítani, vagy exim nem lesz képes olvasni, csak állítsa be a tulajdonos a fájl root: kerék, és telepítse a 0600 törvény.

Akkor próbálja futtatni EXIM debug módban:

és nézni a kimeneti üzeneteket. Annak érdekében, hogy az EXIM sendmail helyett tegye a következőket:
az /etc/rc.conf szüksége a következő sorokat:

sendmail_enable = "none"
exim_enable = "YES"
# És SpamAssasin és clamav:
clamav_clamd_enable = "YES"
spamd_enable = "YES"


Ezután állítsd be kézbesítés helyi alkalmazások révén Exim, amelyhez /etc/mail/mailer.conf fájlt kell kinéznie:

sendmail / usr / local / sbin / EXIM
Levél-mail / usr / local / sbin / EXIM
mailq / usr / local / sbin / EXIM -bp
newaliases / usr / local / sbin / EXIM bi
hoststat / usr / local / sbin / EXIM
purgestat / usr / local / sbin / EXIM


Következő folytassa beállítani clamav: a / usr / local / etc / és másolja clamav.conf.sample a clamav.conf és a jobb oldali úgy, hogy elfogadja-kapcsolat révén a TCP / IP, hanem egy helyi socket, ami clamav.confnuzhny
a következő sorokat:

TCPSocket 3310
TCPAddr 127.0.0.1

Ezután másolja a freshclam.conf.sample a freshclam.conf. Ez a fájl beállításait határozza freshclam használt program az adatbázis frissítését antifirusnyh clamav.

SpamAssasin dolgozik anélkül, hogy további konfigurációt.

Nézzük tovább a következő rész - beállítás courier'a. Az IMAP-szerver működéséhez használ több folyamat, amely viszont úgy van kialakítva, a különböző konfigurációs fájlokat. Az én 3. példa folyamat fut - authdaemon, futár-imapd és futár-imapd-ssl. Ez nyitott a külvilág felé
Csak futár-imapd-ssl. Először hozzon létre egy tanúsítványt imapd-ssl TLS kapcsolatok imapd:

kijavítjuk /usr/local/etc/couier-imap/imapd.cnf fájlt annak dn a tanúsítvány, amely részben ír req_dn a beállításokat (ne felejtsük el, hogy a CN meg kell egyeznie a FQDN a kiszolgáló IMAP):

[Req_dn]
C = RU
ST = Moskow régió
L = Moskow
O = Tehnopark
OU = Internet technológiák
CN = test.ru
[email protected]

Ezután létrehoz egy igazolást speciális script:

cd / usr / local / share / courier-imap /
./ mkimapdcert

Ezután konfigurálja IMAP hitelesítés:
cd / usr / local / etc / courier-imap /
cp authdaemonrc.dist authdaemonrc
később authdaemonrc cserélje ki a modulok listáját a hitelesítéshez:

Most futár tudja, mit kell hitelesíteni a pgsql. Ez csak akkor szükséges, hogy konfigurálja magát pgsql modul, amelynek beállításait tárolja authpqsqlrc. Ez a következőket kell tartalmaznia:

# Táblázat beállításai hitelesítés, itt vagyunk, hogy melyik területeken
# Táblázatok vannak tárolva különböző felhasználói adatok:
PGSQL_USER_TABLE számlák
PGSQL_CLEAR_PWFIELD jelszó
DEFAULT_DOMAIN test.ru
PGSQL_UID_FIELD uid
PGSQL_GID_FIELD gid
PGSQL_LOGIN_FIELD bejelentkezés
PGSQL_HOME_FIELD otthon
PGSQL_NAME_FIELD gecos
PGSQL_MAILDIR_FIELD maildirből


Azt viszont, hogy tuning közvetlenül imapd Hozzunk:
skopriuem imapd.dist a imapd. A jogot, hogy a következő sorokat (más beállítások
Az alapértelmezett alkalmasak):

# Alapértelmezés szerint nem, azért, hogy IGEN, úgyhogy tudott futni imapd
IMAPDSTART = IGEN

Ezek a beállítások elvileg elegendő. Ezután másolja a imapd-ssl.dist a imapd-ssl és
Szabályzat, a következő sorokat:

Akkor tegye fut futár-imap induláskor. Ehhez menj a /usr/local/etc/rc.d és ismét egy kevés popereimenovyvaem fájlokat:

# Mv futár-imap-imapd-ssl.sh.sample courier-imap-imapd-ssl.sh
# Mv futár-imap-imapd.sh.sample courier-imap-imapd.sh


Ezt követően, úgy véljük, hogy a mi e-mail rendszer majdnem kész. Te csak egy kis ponastraivat Squirrelmail ezért a / usr / local / www / Squirrelmail és futtatni kell a ./configure szkriptet. Elvileg a konfiguráció a felület tiszta minden további magyarázat nélkül, mert én nem igazán lakik ebben a kérdésben (ne felejtsük el, a legfontosabb, adja meg az IMAP szerver és SMTP). Azt, hogy egy szimbolikus hivatkozás az / usr / local / www / Squirrelmail bármely VirtualHost'a vagy közvetlenül a DocumentRoot az apache. Itt elvileg minden.

Vannak bizonyos funkciók a távon Squirrelmail amikor a safe_mode php. Először is a php fájlokat és könyvtárakat Squirrelmail kell a felhasználóhoz tartozik, melyek közül fut apache (VirtualHostot vagy globális, az alapértelmezett - www: nogroup). Továbbá, meg kell változtatnia az engedélyeket a / var / spool / Squirrelmail:

# Chmod 1777 / var / spool / Squirrelmail / tulajdonítanak
# Chmod 1777 / var / spool / Squirrelmail / pref


Nos, a tulajdonos meg ugyanazt, mint az / usr / local / www / Squirrelmail.


Végén egy listát hasznos linkek:

Kapcsolódó cikkek