• No results found

The Logic o f Leviathan p 84-5 79 Leviathan, chapter 14, p

Section 3: Keeping the covenant

78 The Logic o f Leviathan p 84-5 79 Leviathan, chapter 14, p

Per al servei de llistes de correu de l’empresa, tant internes com externes, empraremMailman, que és la solució més emprada i més fàcil d’administrar via web, tot i haver algunes alternatives comenemies-of-carlottaque prometen ser un bon reemplaç per a Mailman i algunes de les seues limitacions, però encara no estan llestes per a un ús tan del dia a dia.

Aprofitant que la instal·lació de Roundcube s’ha fet sota Nginx, emprarem aquesta instal·lació per a penjar d’ella el Mailman, mitjançant el llançador de scripts CGIFCGIWrap.

Per a facilitar la integració amb el servidor de correu basat en usuaris virtuals, les adreces de les llistes de correu aniran lligades al subdominillistes.organitzacio.cat. D’aquesta manera, es pot crear una regla genèrica que fa que tot el correu dirigit a aquest subdomini, se li passe al Mailman mitjançant un transport del Postfix.

Instal·lació dels serveis de correu

Instal·lació

El programari que ens fa falta per a instal·lar Mailman està disponible en els repositoris normals de Debianwheezy. Instal·lem tot el necessari:

apt-get install mailman fcgiwrap

La instal·lació de Mailman realitza diverses preguntes. La primera és quin nom hauria de tenir la llista administrativa de Mailman. És recomanable usar el nom per defecte,mailman. En segon lloc, preguntarà què llengües han d’activar-se per a la interfície web i correus administratius. Seleccionem «ca», «en» i «es», que són els valors que té sentit que puguen voler usar els usuaris de la nostra organització. També ens demanarà establir una contrasenya global d’administrador de Mailman, i l’adreça del correu de l’administrador.

Configuració

Nginx

En primer lloc afegirem la configuració necessària en el fitxer de configuració de nginx per a gestionar les URL de Mailman:

# Start: Mailman # ~~~~~~~~~~~~~~

location /mailman {

# Disable gzip (it makes scripts feel slower since they have to # complete before getting gzipped)

gzip off;

# Set the root to /usr/lib/cgi-bin (inside this location this # means that we are giving access to the files under

# /usr/lib/cgi-bin/mailman)

root /usr/lib/cgi-bin;

# Fastcgi socket

fastcgi_pass unix:/var/run/fcgiwrap.socket;

# Fastcgi parameters, include the standard ones include /etc/nginx/fastcgi_params;

# Adjust non standard parameters (SCRIPT_FILENAME)

fastcgi_param SCRIPT_FILENAME /usr/lib/cgi-bin$fastcgi_script_name;

} # Pipermail location /pipermail { alias /var/lib/mailman/archives/public; } # Images location /images/mailman { alias /var/lib/mailman/icons; } # End: Mailman # ~~~~~~~~~~~~

Instal·lació dels serveis de correu

Nota

Veure fitxer complet en la secció anterior del document.

Una vegada afegits aquests canvis, es pot reiniciar el servidor perquè tinguen efecte. Les pàgines de Mailman hau- rien d’estar disponibles en les URLhttps://llistes.organitzacio.cat/mailmanihttps://llistes.

organitzacio.cat/pipermail.

Aquest serà l’URL recomanada per a accedir a les llistes de correu. No obstant això, si aquest servei fora exclussi- vament intern, seria millor enllaçar-ho amb la intranet, mitjançant l’adreçahttps://intranet.organitzacio. cat/mailman. Per a açò, afegirem un parell de regles de rproxy en la configuració de nginx del servidorintranet, en el fitxer/etc/nginx/sites-available/intranet.organitzacio.cat:

# --- # Proxy del Mailman # --- location /mailman { proxy_pass http://llistes.organitzacio.cat; include /etc/nginx/proxy.conf; } location /images/mailman { proxy_pass http://llistes.organitzacio.cat; include /etc/nginx/proxy.conf; } location /pipermail { proxy_pass http://llistes.organitzacio.cat; include /etc/nginx/proxy.conf; }

I reiniciarem l’nginx del servidor perquè els canvis tinguen efecte.

Postfix

Com s’ha dit abans, per a simplificar la instal·lació i encaixar-la amb la configuració d’usuaris virtuals de Postfix, s’ha decidit moure les llistes al dominillistes.organitzacio.cat. A més, s’integrarà la gestió dels àlies de correu que utilitza Mailman directament en un transport de Mailman, perquè no siga necessari editar fitxers cada vegada que es crea una nova llista (ho farà Mailman automàticament).

En el fitxer/etc/postfix/main.cf, afegirem el següent:

# Alias files

alias_maps = hash:/etc/aliases hash:/var/lib/mailman/data/aliases

# Don’t relay any domain except lists relay_domains = lists.organitzacio.cat

# Transport maps (for mailman)

transport_maps = hash:/etc/postfix/transport mailman_destination_recipient_limit = 1

I el fitxer/etc/postfix/transportcontindrà la línia:

lists.organitzacio.cat mailman:

Açò li indica a Postfix que tot correu amb destinació al subdominilistsha de processar-se a través del mètode

mailman, que en Debian ja està definit per defecte en/etc/postfix/master.cf, per la qual cosa no fa caldrà afegir-ho a mà:

Instal·lació dels serveis de correu

mailman unix - n n - - pipe

flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}

Finalment, com amb els altreshashesde postfix, cal generar-ho:

postmap /etc/postfix/virtual

Ja podem tornar a carregar la configuració de Postfix:

service postfix reload

Mailman

La configuració global de Mailman es manté en el fitxer/etc/mailman/mm_cfg.py. Ajustarem els següents valors:

DEFAULT_URL_PATTERN = ’https://%s/mailman/’ PRIVATE_ARCHIVE_URL = ’/mailman/private’

DEFAULT_EMAIL_HOST = ’llistes.organitzacio.cat’ DEFAULT_SERVER_LANGUAGE = ’ca’

MTA=None # Misnomer, suppresses alias output on newlist

# Other Multiscan requirements

# Maximum length in kilobytes (KB) of a message body (2MB) DEFAULT_MAX_MESSAGE_SIZE = 2048

# What should happen to non-member posts which are do not match explicit # non-member actions? # 0 = Accept # 1 = Hold # 2 = Reject # 3 = Discard DEFAULT_GENERIC_NONMEMBER_ACTION = 2

# Private_roster == 0: anyone can see, 1: members only, 2: admin only. DEFAULT_PRIVATE_ROSTER = 1

# Reply-To: 2 - Reply-To: set to an explicit value (reply_to_address) DEFAULT_REPLY_GOES_TO_LIST = 0

DEB_LISTMASTER = ’[email protected]

El fitxermm_cfg.pycomplet s’inclou com a referència en els annexos del document. Una vegada realitzats aquests canvis, reiniciarem el Mailman:

service mailman restart

Monit

Per monitoritzar el funcionament del Mailman, afegirem el següent al fitxer/etc/monit/monitrc.d/mailman:

# Check mailman

check process mailman with pidfile /var/run/mailman/mailman.pid group mail

start program = "/etc/init.d/mailman start" stop program = "/etc/init.d/mailman stop" if 5 restarts within 5 cycles then timeout

I farem el mateix per monitoritzar el llançador de CGIfcgiwrap, en el fichero/etc/monit/monitrc.d/fcgiwrap:

Instal·lació dels serveis de correu

# Check fcgiwrap

check process fcgiwrap with pidfile /var/run/fcgiwrap.pids group www

start program = "/etc/init.d/fcgiwrap start" stop program = "/etc/init.d/fcgiwrap stop" if 5 restarts within 5 cycles then timeout

Finalment, reiniciarem el Monit perquè els canvis tinguen efecte.