Autor Subiect: Tutorial Instalare si configurare server de e-mail  (Citit de 15956 ori)

Tomoiaga

  • Webmaster
  • ****
  • Mesaje postate: 921
  • Karma: +18/-9
    • Vezi Profilul
    • http://elvsoft.com
Tutorial Instalare si configurare server de e-mail
« : Martie 18, 2007, 05:05:26 am »
In urmatoarele randuri am sa incerc sa prezint cum am facut setup la un server de e-mail folosind Exim si Courier-Imap. Distributia de linux folosita a fost CentOS 4.4 dar sunt sigur ca totul merge si pe Red Hat, Fedora etc.
Imi cer scuze pentru eventualele greseli de ortografie, se mai intampla.

Serverul de e-mail tine datele legate de utilizatori si domeniile pentru care raspunde intr-o baza de date MySQL. Mi s-a parut mai simplu folosirea MySQL.

Ce am folosit:

MTA = Exim 4.x
IMAP & POP3 = Courier-Imap
POP/IMAP before SMTP = antirelayd (se gaseste pe serverele cu Cpanel).
MySQL = MySQL 5.x Tine baza de date cu useri si domeniile acestora.
MySQL l-am instalat tot din surse.Am folosit ./configure --prefix=/home/mysql pentru acest setup. De ce /home, nu ma intrebati :)


 INSTALARE EXIM

Exim l-am instalat folosind sursele pentru a asigura suportul MySQL.
Nu m-am complicat cu rpm-uri desi poate sa para mai usor cu ele.
Sursele pentru Exim se pot lua de la http://www.exim.org/
Versiunea disponibila de exim gasita a fost exim-4.66.

Dezarhivare:
tar -xvzf exim-4.66.tar.gz
Intram in directorul unde am dezarhivat exim (cd exim-4.66).
Trebuie sa cream un fisier Makefile pentru a compila exim.
Astfel, dupa ce intram in directorul cu sursele:
 Copiem scr/EDITME in Local/Makefile (cp src/EDITME Local/Makefile) si editam fisierul dupa preferinte.
Variabilele din fisierul Local/Makefile dupa modificari au fost:


##################################################
#          The Exim mail transport agent         #
##################################################
.......
.......

BIN_DIRECTORY=/usr/exim/bin
CONFIGURE_FILE=/etc/exim/exim.conf
EXIM_USER=mailnull
SPOOL_DIRECTORY=/var/spool/exim
ROUTER_ACCEPT=yes
ROUTER_DNSLOOKUP=yes
ROUTER_IPLITERAL=yes
ROUTER_MANUALROUTE=yes
ROUTER_QUERYPROGRAM=yes
ROUTER_REDIRECT=yes
TRANSPORT_APPENDFILE=yes
TRANSPORT_AUTOREPLY=yes
TRANSPORT_PIPE=yes
TRANSPORT_SMTP=yes
SUPPORT_MAILDIR=yes
LOOKUP_DBM=yes
LOOKUP_LSEARCH=yes
LOOKUP_MYSQL=yes
#Atentie urmatoarele variabile (LOOKUP_LIBS si LOOKUP_INCLUDE) trebuie schimbate si in functie de locul unde am instalat mysql

LOOKUP_LIBS=-L/home/mysql/lib/mysql -lmysqlclient -lwrap
LOOKUP_INCLUDE=-I /home/mysql/include/mysql
FIXED_NEVER_USERS=root
AUTH_CRAM_MD5=yes
AUTH_PLAINTEXT=yes
HEADERS_CHARSET="ISO-8859-1"
LOG_FILE_PATH=/var/log/exim_%slog
SYSLOG_LOG_PID=yes
EXICYCLOG_MAX=10
COMPRESS_COMMAND=/usr/bin/gzip
COMPRESS_SUFFIX=gz
ZCAT_COMMAND=/usr/bin/zcat
USE_TCP_WRAPPERS=yes
SYSTEM_ALIASES_FILE=/etc/aliases
TMPDIR="/tmp"


Acestea sunt toate variabilele configurate, restul le-am lasat sau le-am comentat in functie de nevoi.


 Make si make install


De obicei pot aparea erori mai ales daca LOOKUP_LIBS si LOOKUP_INCLUDE nu sunt setate corect sau db4-devel nu este instalat.
De exemplu pentru eroarea dbstuff.h:103:16: db.h: No such file or directory
inseamna ca db4-devel nu este instalat. In centOS sau fedora se rezolva simplu: yum install db4-devel. La fel si in celelalte distributii ce au managere de pachete.
Pentru erori des intalnite avem urmatorul link: http://www.exim.org/exim-html-4.00/doc/html/FAQ_1.html
Daca ceva nu functioneaza corect la compilare ca rog sa cereti ajutor aici pe forum.

Make se executa simplu prin comanda: make
Daca make se executa fara erori (mesajul de final e ">>> exim binary built") atunci se poate executa si: make install

 Baza de date MySQL

Inainte de pornirea Exim trebuie creata baza de date:

create database mailserver;
grant select,insert,update,delete on mailserver.* to mail@localhost identified by 'parola';
flush privileges;


'parola' trebuie schimbata cu o parola dorita
'mailserver', numele bazei de date se poate schimba in functie de preferinte.
'mail@localhost', userul prin care exim poate accesa MySQL se poate schimba dupa preferinte. Ex: eximmail@localhost

Adaugam in baza de date tabela pentru utilizatori:
Inainte de adaugare trebuie verificat daca avem userul mailnull(sau alt user definit in Makefile atunci cand am compilat exim) adaugat.
Aceasta verificare se face simplu prin: cat /etc/passwd | grep mailnull
Ar trebui sa intoarca ceva asemanator: mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
Daca nu avem acest user definit il adaugam simplu prin comenzile:

groupadd mailnull
useradd -g mailnull -d /dev/null -s /sbin/nologin mailnull


Nu uitam sa memoram uid si gid ale mailnull, in cazul meu: 47 si 47 pentru a le adauga corect la crearea tabelei pentru utilizatori

use mailserver;
CREATE TABLE users (
    id                    char(128) DEFAULT '' NOT NULL,
    crypt                 char(128) DEFAULT '' NOT NULL,
    clear                 char(128) DEFAULT '' NOT NULL,
    name                  char(128) DEFAULT '' NOT NULL,
    uid                   int(10) unsigned DEFAULT '47' NOT NULL,
    gid                   int(10) unsigned DEFAULT '47' NOT NULL,
    home                  char(255) DEFAULT '' NOT NULL,
    maildir               char(255) DEFAULT '' NOT NULL,
    quota                 char(255) DEFAULT '' NOT NULL,
    KEY id (id(128))
);

Trebuie sa mai adaugam o tabela in baza de date ce tine domeniile pentru care serverul exim raspunde (domeniile locale sau cele ce au MX-urile catre serverul nostru)

use mailserver;
CREATE TABLE domains (
    userid char(128) NOT NULL default '',
    KEY userid (userid)
);

Continuam cu configurarea Exim:

Trebuie sa cream fisierele unde exim isi tine logurile (altfel nu porneste), in cazul meu /var/log/. Aceste fisiere se creaza in functie de setarile din Makefile. Daca aceste setari sunt ca cele facute de mine atunci:

touch /var/log/exim_mainlog
touch /var/log/exim_rejectlog
touch /var/log/exim_paniclog
chown mailnull:mailnull /var/log/exim_mainlog
chown mailnull:mailnull /var/log/exim_rejectlog
chown mailnull:mailnull /var/log/exim_paniclog


Pentru o pornire/oprire mai simpla a Exim adaugam si un fisier in init.d

touch /var/log/exim
chmod +x /var/log/exim

Asa arata fisierul de pe serverul meu:

#!/bin/bash
#
# exim    This shell script takes care of starting and stopping exim
#
# chkconfig: 2345 80 30
# description: Exim is a Mail Transport Agent, which is the program \
#              that moves mail from one machine to another.
# processname: exim
# config: /etc/exim/exim.conf
# pidfile: /var/run/exim.pid

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Source exim configuration.
if [ -f /etc/sysconfig/exim ] ; then
        . /etc/sysconfig/exim
else
        DAEMON=yes
        QUEUE=1h
fi

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -f /usr/exim/bin/exim ] || exit 0

start() {
        # Start daemons.
        echo -n $"Starting $0: "
        daemon /usr/exim/bin/exim $([ "$DAEMON" = yes ] && echo -bd) \
                              $([ -n "$QUEUE" ] && echo -q$QUEUE)
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/exim
}

stop() {
        # Stop daemons.
        echo -n $"Shutting down $0: "
        daemon /usr/exim/bin/exim $([ "$DAEMON" = yes ] && echo -bd) \
                              $([ -n "$QUEUE" ] && echo -q$QUEUE)
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/exim
}

stop() {
        # Stop daemons.
        echo -n $"Shutting down $0: "
        killproc exim
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/exim
}

restart() {
        stop
        start
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  reload)
        restart
        ;;
  condrestart)
        [ -f /var/lock/subsys/exim ] && {
                stop
                [ -x /bin/chown ] && /bin/chown mailnull.mailnull -R /var/spool/exim
                start
        } || {
                [ -x /bin/chown ] && /bin/chown mailnull.mailnull -R /var/spool/exim
        }
        ;;
  status)
        status exim
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
        exit 1
esac

exit $RETVAL

Dupa crearea acestui fisier testem pornirea/oprirea exim:

/etc/init.d/exim start
/etc/init.d/exim stop


Daca totul merge ok inseamna ca avem un server Exim functional (mai putin partea de comunicare cu MySQL din exim.conf ce urmeaza mai jos si unde Exim stie pentru ce domenii raspunde si unde sa trimita mailurile)

Se adauga la inceputul fisierului de configurare:

hide mysql_servers = localhost/mailserver/mail/parola
domainlist local_domains = mysql;SELECT userid FROM domains WHERE userid='$domain';

# si se comenteaza mai jos linia: domainlist local_domains = @ pentru a nu primi erori

Se adauga inainte de TRANSPORTS CONFIGURATION la sfarsitul ROUTERS CONFIGURATION

virtual_user:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup mysql{ SELECT maildir FROM users \
          WHERE id='${quote_mysql:${local_part}@${domain}}' }}
  directory_transport = address_directory

 
Se daduga la TRANSPORTS CONFIGURATION address_directory inainter de address_reply:

address_directory:
  driver = appendfile
  maildir_format
  delivery_date_add
  envelope_to_add
  return_path_add

 
Oprim si pornim Exim pentru a observa eventualele erori in configurare.
Daca totul e ok trecem mai departe:

Ne alegem un director unde se vor tine mailurile pentru utilizatori, in cazul meu am ales /usr/local/vmail il cream si dam drepturile necesare pentru ca exim sa poata scrie in el:

mkdir /usr/local/vmail
chown mailnull:mailnull /usr/local/vmail


Apoi adaugam in baza de date un domeniu virtual pentru teste si un user:

use mailserver;
INSERT INTO domains (userid) VALUES ("exemplu.ro");
INSERT INTO users (id, crypt, clear, name, home, maildir) VALUES (
    "test@exemplu.ro", "Y28Ytt3paf5m2", "test", "Test",
    "/usr/local/vmail/examplu.ro/test",
    "/usr/local/vmail/examplu.ro/test/Maildir/");

Ce saracie mai e si Y28Ytt3paf5m2 ?
Pai e parola "test" criptata. Pentru a obtine o criptare a unei parola avem scriptul perl urmator:

#!/usr/bin/perl

if( $#ARGV != 0 )
{
    print "usage: ./script parola\n";
    exit 1;
}
my $salt = join '', ('.', '/', 0..9,'A'..'Z', 'a'..'z')[rand 64, rand 64];
print crypt($ARGV[0], $salt) ."\n";


Testam configurarile facute:

telnet 127.0.0.1 25

HELO TEST
MAIL FROM:<cineva@yahoo.com>
RCPT TO:<test@exemplu.ro>
DATA
text
.
QUIT

MAIL FROM la setarile default ale Exim trebuie sa fie un domeniu valid, altfel testul esueaza.
Totul merge OK daca nu intalnim nici o eroare :)
Dupa acest test observam cum exim a creat automat subdirectorul exemplu.ro din /usr/local/vmail si celelalte subdirectoare unde tine mailurile exact asa cum i-am zis in baza de date.

Eh, avem un Exim ready to go. So far so good !


   INSTALARE Courier-Imap
      
Mailuri primim pe server, dar utilizatorii nostri dragi cum le citesc ?
Aici ne ajuta Courier-Imap, server IMAP si POP3.
La instalarea Courier-Imap (NU Courier ci Courier-Imap) avem nevoie si de Courier-authlib, librarii care ajuta la autentificari etc. Trebuie sa fim atenti astfel incat la compilare(da, ii facem compilare si la asta) sa avem creat authmysqlclient.so pentru folosirea autentificarii prim MySQL.

Luam pentru inceput courier-authlib si instalam:

cd /usr/local/src
wget http://prdownloads.sourceforge.net/courier/courier-authlib-0.59.1.tar.bz2
bzip2 -d courier-authlib-0.59.1.tar.bz2
tar -xf courier-authlib-0.59.1.tar

Din pacate courier-authlib nu ne lasa sa-l compilam sub root asa ca
su user
cd /usr/local/src/courier-authlib-0.59.1
./configure --with-mysql-libs=/home/mysql/lib/mysql --with-mysql-includes=/home/mysql/include/mysql --with-redhat
make


# make install si make install-configure le rulam sub root !
Nu uitati, 'user' e un user existent, daca nu avem unul, il cream, --with-redhat sau altceva se adauga in functie de ce detecteaza fisierul de configurare, astfel nici o grija daca intalnim o eroare prima data.Citim ce scrie si ne conformam.
Default, pentru CentOS avem /var/lib/mysql/ iar fisierele pentru include in /usr/include/mysql/. Eu avand o instalare custom de mysql am folosit /home/mysql.
Rulam make install si make install-configure
Dupa, ar trebui sa avem fisierul /usr/local/etc/authlib/authmysqlrc creat.
In acest fisier, configuram accesul la baza noastra de date:

 
Citat
 MYSQL_SERVER            localhost
    MYSQL_USERNAME          mail
    MYSQL_PASSWORD          parola
    MYSQL_DATABASE          mailserver
    MYSQL_USER_TABLE        users
    MYSQL_CRYPT_PWFIELD     crypt
    MYSQL_LOGIN_FIELD       id
    MYSQL_HOME_FIELD        home
    MYSQL_NAME_FIELD        name

   
Trecem la instalarea courier-imap

cd /usr/local/src
wget http://prdownloads.sourceforge.net/courier/courier-imap-4.1.2.tar.bz2
bzip2 -d courier-imap-4.1.2.tar.bz2
tar -xf courier-imap-4.1.2.tar
cd courier-imap-4.1.2

Din nou trebuie sa compilam sub un alt user decat root.

su user
cd /usr/local/src/courier-imap-4.1.2
./configure --with-redhat
make

Iesim de sub user si instalam ca si root cu: make install && make install-configure.
Dupa instalare pornim serverele:

/usr/local/sbin/authdaemond start
/usr/lib/courier-imap/libexec/imapd.rc start
/usr/lib/courier-imap/libexec/pop3d.rc start


Testam functionarea cat de cat corecta printr-un telnet la ip-ul serverului pe portul 110 si/sau imap
si logarea la server. Daca totul e OK inseamna ca suntem sefi si avem un server de mail functional.
Daca nu, cel mai simplu e sa verificam /var/log/maillog de obicei, fisierul unde serverul pop3/imap isi tine logurile.

Eh, adaugam un user pentru un domeniu care cel putin are MX-urile catre noul nostru server de mail si testam cu Outlook sau Thunderbird sau alt client pop3 imap functionalitatea serverului nostru.
Daca totul e ok suntem sefi. Mai avem de implementat autentificarea pentru ca nu vrem ca oricine stie macar un domeniu de pe server sa trimita mailuri.

Unul dintre cele mai simple moduri e sa copeim scriptul perl, antirelayd de pe un server cu Cpanel. Acest fisier verifica /var/log/maillog si de indata ce un user se autentifica ii daduga adresa IP in fisierul /etc/relayhosts fisier ce trebuie creat daca nu exista si date drepturile necesare.
Pornim antirelayd sa nu-l uitam si trecem mai departe la configurarea Exim pentru a lasa trimiterea de mailuri de pe aceste IP-uri din /etc/relayhosts.
Pentru acest lucru adaugam in exim.conf urmatoarele:

Modificam relay_from_hosts astfel incat sa avem:

Citat
hostlist relay_from_hosts = net-lsearch;/etc/relayhosts : localhost

Si uite asa avem un server de mail aproximativ asemanator cu cel de pe serverele cu Cpanel cu exceptia faptului ca la Cpanel nu se foloseste MySQL de exemplu si alte cateva diferente minore.

Cum rezolvam cu spam-ul ?
Pai luam o pushca si pushcam tot ce misca pentru inceput, numai dupa, merita sa postez tot in acest topic cateva metode cel putin de baza.
Am sa continui cu: Optimizari Exim si Courier-IMAP, instalare si configurare MailScanner plus altele.

SA LAMURIM: ORICE MESAJ NESOLICITAT E SPAM.
NU EXISTA: "Daca acest mail a ajuns din gresala bla bla".
NU AM SOLICITAT ACEL MAIL NICI DIN GRESALA, DECI E SPAM.
CEI CARE FAC SPAM SUNT NISTE CERSETORI SI OAMENI DE NIMIC, DIN MOMENT CE NU SUNT IN STARE SA-SI VANDA PRODUSUL DE 2 LEI ALTCUMVA.


Astept completari, sugestii si alte comentarii cu mare placere. Nimeni nu e perfect ;)

organic

  • Vizitator
Tutorial Instalare si configurare server de e-mail
« Răspuns #1 : Martie 18, 2007, 10:23:59 am »
foarte frumos. cred ca ai avut cea mai consistenta contributie in materie de tutoriale tehnice pe aici. felicitari.

o singura observatie. orice mesaj de natura comerciala nesolicitat e spam. daca Bill Gates iti trimite un e-mail in care se ofera sa investeasca 50000 de dolari in afacerea ta, ma indoiesc ca ai sa-i scrii inapoi si sa-i spui ca mesajul sau e spam, chiar daca nu i-ai cerut sa il trimita. la fel pentru Angelina Jolie, samd. you get the point.

Tomoiaga

  • Webmaster
  • ****
  • Mesaje postate: 921
  • Karma: +18/-9
    • Vezi Profilul
    • http://elvsoft.com
Tutorial Instalare si configurare server de e-mail
« Răspuns #2 : Martie 18, 2007, 11:55:12 am »
Era ora 5 dimineata dupa ce am mai facut o instalare exim si courier-imap astfel incat sa gresesc cat mai putin tutorialul si dupa ce am inchis calculatorul mi-am dat seama ca am uitat cuvantul comercial :)
Oricum e doar o fraza ca si "Da mesajul mai departe" de pe messenger sau "Daca ai primit acest mail din gresala stergel ca noi sa iti mai trimitem inca 100"

Gupi

  • Furnizor servicii
  • Hostmaster
  • *****
  • Mesaje postate: 2726
  • Karma: +33/-22
  • Hangar Hosting, SRL
    • Vezi Profilul
    • albinutza@polimedia.us
Tutorial Instalare si configurare server de e-mail
« Răspuns #3 : Martie 18, 2007, 12:33:14 pm »
... mai este ala patetic al lui valeriu_ripa
Citat
Iarta-ma,

dar te rog din suflet acorda cateva clipe acestui
mesaj, ...

Tomoiaga

  • Webmaster
  • ****
  • Mesaje postate: 921
  • Karma: +18/-9
    • Vezi Profilul
    • http://elvsoft.com
Tutorial Instalare si configurare server de e-mail
« Răspuns #4 : Martie 18, 2007, 01:40:03 pm »
//offtopic
nu stiu cine e valeriu_rpia, dar tare as vrea sa aflu !
(Stiu ca e spammer, intra spam zilnic semnat de el, dar in realitate cine e?)

//ontopic
Fast and easy greylist pentru Eximul nostru (compilat cu suport MySQL): http://theinternetco.net/projects/exim/greylist

xServers.ro

  • Webmaster
  • ****
  • Mesaje postate: 966
  • Karma: +1/-6
    • Vezi Profilul
    • http://www.xservers.ro
Tutorial Instalare si configurare server de e-mail
« Răspuns #5 : Martie 18, 2007, 01:42:36 pm »
gupi, ce facem cu valeriu_ripa, ca e incredibil de jenibil omu?!

Tomoiaga

  • Webmaster
  • ****
  • Mesaje postate: 921
  • Karma: +18/-9
    • Vezi Profilul
    • http://elvsoft.com
Tutorial Instalare si configurare server de e-mail
« Răspuns #6 : Martie 18, 2007, 01:46:27 pm »
am deschis un topic nou legat de el, la offtopic, sa postam acolo. Aici as dori numai legat de subiect :)

Tomoiaga

  • Webmaster
  • ****
  • Mesaje postate: 921
  • Karma: +18/-9
    • Vezi Profilul
    • http://elvsoft.com
Change exim outgoing interface
« Răspuns #7 : Aprilie 18, 2007, 07:31:57 pm »
Completare.
Cum se poate schimba la exim interfata prin care se trimite mail in afara, in functie de domeniu. E valabil atat la serverele cu Cpanel cat si la cele fara, cu mici diferente.
La serverele cu Cpanel se foloseste ca fisier de configurare exim_outgoing.conf iar in materialul prezentat mai sus, sau in general se foloseste exim.conf si pentru trimiterea de e-mail in afara.

Pe undeva arata si etp o solutie: http://gazduire.info/forum/viewtopic.php?t=1019

Pentru cpanel:
modificam fisierul exim_outgoing.conf.
Astfel la TRANSPORTS CONFIGURATION avem:

remote_smtp:
       driver = smtp

Schimbam cu(adaugam):
remote_smtp:
       driver = smtp
       interface = ${if eq{$sender_address_domain}{domeniu.com}\
{192.168.1.2}{192.168.1.1}}
     


Iar pentru serverele fara cpanel schimbam exim.conf in locul exim_outgoing.conf.
Bineinteles fisierul de configurare exim, locatia si numele sau depinde de configurarile la compilare a.s.o.

Astfel daca mailul pleaca de la nume@domeniu.com ip-ul prin care exim trimite acest mail se schimba in 192.168.1.2 iar daca mailuri pleaca de pe server dar nu de pe domeniu.com atunci ip-ul de iesire al exim-ului ramane 192.168.1.1.

Daca avem 20 domenii, in locul 192.168.1.1 punem alt if pentru alt domeniu si continuam pana la final.
Schimbarea ip-ului de iesire al exim-ului e bun si in cazurile in care din anumite motive ip-ul principal al serverului a ajuns pe un black list. (Rezolvare temporara oricum. Pana la urma si cel de-al doilea ip o sa ajunga in blacklist daca nu se rezolva problema la server).

1vs1

  • Vizitator
Tutorial Instalare si configurare server de e-mail
« Răspuns #8 : Aprilie 18, 2007, 09:21:47 pm »
daca am direct admin mai tre sa fac astea sau acest tutorial i numai daca vrei sa ti serveru de mail pe alt server/?

Tomoiaga

  • Webmaster
  • ****
  • Mesaje postate: 921
  • Karma: +18/-9
    • Vezi Profilul
    • http://elvsoft.com
Tutorial Instalare si configurare server de e-mail
« Răspuns #9 : Aprilie 19, 2007, 02:01:49 am »
Acest tutorial e , daca vrei sa iti instalezi un server de mail. Daca deja ai mail functional atunci nu mai trebuie urmat tutorialul.
Totusi, daca vrei ca unele mailuri sa fie trimise de pe un ip al serverului si ai exim instalat si functional, setat ca default smtp atunci poti sa te folosesti de ultimul post.

dt

  • Moderator
  • Hostmaster
  • *****
  • Mesaje postate: 1404
  • Karma: +8/-5
    • Vezi Profilul
    • http://www.webdev.ro
Optimizare exim
« Răspuns #10 : Aprilie 19, 2007, 01:47:19 pm »
Zilele astea am vazut o crestere a numarului de virusi trimisi ca atasamente pe mail. Mai exact, fisiere cu numele Update-XXX-x86.zip Clamav-ul nu ii recunoaste, asa ca am cautat o solutie la nivel de exim. Google is my friend.

Se face un fisier /etc/exim_filenames_reject cu urmatorul continut
^Update-.+-x86\.zip "W32/Tricky-Malware-based Win32/Stration"
Se adauga in fisierul de configurare al exim-ului (de obicei /etc/exim.conf) urmatoarele linii. La inceput:
acl_smtp_mime = check_mime
pe urma mai jos, in sectiunea ACL:
check_mime:
   deny    set acl_m1 = ${lookup {$mime_filename} nwildlsearch \
                           {/etc/exim_filenames_reject}}
           condition = ${if def:acl_m1}
           message = This message containes a blacklisted attachment filename
           log_message = DENY: reject_filename ($mime_filename)

   warn    log_message = DEBUG: acl_check_mime done for \"$mime_filename\" \
                           (lookup = $acl_m1)
           condition = ${if def:mime_filename}
   accept


La sfarsit, se reseteaza exim-ul si se urmaresc logurile
tail -f /var/log/exim_mainlog | grep "rejected during MIME ACL"

Partea cu warn cred ca se poate scoate. accept trebuie pastrat, altfel toate mailurile sunt refuzate.

Nota: cPanel-ul, la update, inlocuieste fisierul de configurare cu un altul (cred ca exim.conf.buildtest) si in felul asta se pierd toate setarile facute. Ar trebui facut un patch cu modificarile, sa se aplice dupa update.

@Tomoiaga - Felicitari pentru tutoriale. In ritmul asta, cPanel o sa devina depasit cat de curand :)

Tomoiaga

  • Webmaster
  • ****
  • Mesaje postate: 921
  • Karma: +18/-9
    • Vezi Profilul
    • http://elvsoft.com
Tutorial Instalare si configurare server de e-mail
« Răspuns #11 : Aprilie 19, 2007, 04:10:18 pm »
Eh, cPanel mai are :)
one more thing. Nu stiu daca am mai zis.
cPanel are versiunea free dnsonly. Practic interfata nu ne prea ajuta, dar daca se instaleaza dnsonly, automat se instaleaza si server de mail, si server ftp a.s.o.

Also, unul din avantajele folosirii eximului cu sql e ca se pot face interfete de administrare mai simplu. Dezavantajul e ca, daca pica sql-u, pica si mailul.

dt

  • Moderator
  • Hostmaster
  • *****
  • Mesaje postate: 1404
  • Karma: +8/-5
    • Vezi Profilul
    • http://www.webdev.ro
Tutorial Instalare si configurare server de e-mail
« Răspuns #12 : Aprilie 19, 2007, 05:13:40 pm »
Ref. la cPanel: da, poti sa instalezi cPanel si peste el DNSONLY-BETA (ca versiunea normala are bug-uri). In felul asta ai practic tot serververul instalat, mai putin cPanel/WHM (defapt, WHM minim). Problema la cPanel e ca ramane mult in urma fata de problemele curente, cum ar fi update-ul la clamav 0.90.2, la phpBB, etc.

Daca vrei exim cu mysql, ar trebui un daemon sa ruleze separat, ca sa nu crape din cauza site-urilor. Sau poate sqlite in loc de mysql? Sau un parser de fisiere de configuratie suficient de destept?

Tomoiaga

  • Webmaster
  • ****
  • Mesaje postate: 921
  • Karma: +18/-9
    • Vezi Profilul
    • http://elvsoft.com
Tutorial Instalare si configurare server de e-mail
« Răspuns #13 : Aprilie 19, 2007, 05:27:48 pm »
sigur, optiuni sunt multe :)

dt

  • Moderator
  • Hostmaster
  • *****
  • Mesaje postate: 1404
  • Karma: +8/-5
    • Vezi Profilul
    • http://www.webdev.ro
Răspuns: Tutorial Instalare si configurare server de e-mail
« Răspuns #14 : Septembrie 07, 2007, 03:52:09 pm »
am vrut sa fac cateva mici corecturi la tutorial dar mi-a dat eroare 406 - Not Acceptable :( e de vina mod_security

Pe scurt: src in loc de scr iar scriptul din init.d trebuie sa aiba calea /etc/init.d/exim dupa care se adauga cu chkconfig --add exim

Intrebarea e: merita sa tii configuratia in mysql? daca pica, ce faci, ramai si fara exim? poate ar fi mai bine ceva de genul sqlite
« Ultima Modificare: Septembrie 07, 2007, 03:53:59 pm de dt »