IMAP szolgáltatás

  • Beküldve: 2015. október 21, 22:38
  • Szerző: Bolemányi Attila

A szolgáltatás bekapcsolásához telepítenünk kell a dovecot-imapd csomagot, majd a megfelelő fájlokban el kell végezni a szükséges módosításokat. Nézzük csak szépen sorjában.

A 10-master.conf fájlban az alábbi blokkok szükségesek:

service imap-login {
	inet_listener imap {
		port = 143
	}
	inet_listener imaps {
		port = 993
		ssl = yes
	}
	service_count = 1
	process_min_avail = 0
}
...
service imap { process_limit = 1024 }

A service imap-login blokk, amint azt a neve is mutatja, az IMAP szolgáltatás bejelentkezés részéért felelős. Ehhez meghatározunk két listenert is. Az első a 143-as porton várja a bejövő kapcsolatokat, és a titkosítatlan – cleartext - IMAP kapcsolatokat fogja kezelni. A második a titkosított – IMAPS – kapcsolatok kezeléséért felelős, és a 993-as porton várja a kapcsolódó felhasználókat. Az ssl=yes gondoskodik arról, hogy a kapcsolódás után megtörténjen az SSL/TLS handshake, azaz a titkosított kapcsolat felépítéséhez szükséges párbeszéd, „kézfogás”.

A service_count = 1 gondoskodik arról, hogy mindegyik bejövő kapcsolathoz külön-külön imap-login folyamat induljon el. Ez ugyan nagyon biztonságos megoldás, azonban nagy forgalmú szervereknél lehet, hogy célszerűbb ezt az értéket nullára állítani, amely beállítás a sebesség oltárán áldoz fel valamennyit a biztonságból (ilyenkor egy imap-login folyamat több kapcsolódó felhasználót is kiszolgál).

Másrészt figyelj arra is, hogy az imap-login szolgáltatás process_limit értéke a default_process_limit értékére, 100-ra van állítva, és ha service_count=1, akkor egyszerre csak 100 felhasználó tud kapcsolódni az imap-login szolgáltatáshoz. Ha ezen változtatni szeretnél, akkor az imap-login blokkhoz add hozzá a process_limit = érték sort, ahol az érték helyére az egyszerre maximálisan kiszolgálni kívánt felhasználók számát írd. Nekünk az alapértelmezett 100 egyelőre tökéletesen megfelelő.

A process_min_avail segítségével megadhatjuk, hogy hány tartalék imap-login folyamatunk álljon készenlétben, új felhasználók bejelentkezésére várva. Ezzel pedig a felhasználóid számára tudod a kapcsolódáshoz szükséges időt rövidebbre állítani (és mint tudjuk, a felhasználóknak soha semmi sem elég gyors).

service imap {
	process_limit = 1024
}

Míg az imap-login szolgáltatás a felhasználók bejelentkezéséért felel, az itt definiált „sima” imap nevű service, szolgáltatás pedig a bejelentkezés során a felhasználókkal felépülő IMAP kapcsolat fenntartásáért felelős. A process_limit = 1024 beállítás a párhozamos IMAP kapcsolatok számát maximalizálja a beállított értékre. A 20-imap.conf fájl tartalma a következő:

imap_max_line_length = 64k
imap_logout_format = in=%i out=%o
imap_capability =
imap_idle_notify_interval = 2 mins
imap_id_send =
imap_id_log =
imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags
imap_urlauth_host =

protocol imap {
	mail_plugins = $mail_plugins imap_quota
	mail_max_userip_connections = 10
}

A legfontosabb beállítások az alábbiak:

imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags

Az IMAP kliensek, azaz levelezőprogramok ismert hibáira megoldást kínáló szerver oldali beállítások. Talán furcsának tűnik, hogy egy levelezőkliens ismert hibáját szerver oldalon próbáljuk meg orvosolni, de ez még mindig jobb, mintha a felhasználóid a levelezőprogramjaik hibás működése miatt állandóan Neked panaszkodnának, nem igaz? A protocol imap blokkban található mail_plugins sorban tudatjuk az IMAP szolgáltatással, hogy ügyeljen a kvóta beállításokra. A mail_max_userip_connections sor azt mondja meg, hogy egy felhasználó ugyanarról az IP címről hány párhuzamos kapcsolatot nyithat az IMAP szolgáltatáshoz.