]> git.proxmox.com Git - pmg-docs.git/blame - pmgconfig.adoc
update screenshots for PMG 6.1
[pmg-docs.git] / pmgconfig.adoc
CommitLineData
e62ceaf0
DM
1[[chapter_pmgconfig]]
2ifdef::manvolnum[]
3pmgconfig(1)
4============
5:pmg-toplevel:
6
7NAME
8----
9
10pmgconfig - Proxmox Mail Gateway Configuration Management Toolkit
11
12
13SYNOPSIS
14--------
15
16include::pmgconfig.1-synopsis.adoc[]
17
18
19DESCRIPTION
20-----------
21endif::manvolnum[]
22ifndef::manvolnum[]
66e9c719
DM
23Configuration Management
24========================
e62ceaf0
DM
25:pmg-toplevel:
26endif::manvolnum[]
27
685576c2
DM
28{pmg} is usually configured using the web-based Graphical User
29Interface (GUI), but it is also possible to directly edit the
30configuration files, use the REST API over 'https'
66e9c719 31or the command line tool `pmgsh`.
685576c2 32
66e9c719 33The command line tool `pmgconfig` is used to simplify some common
685576c2
DM
34configuration tasks, i.e. to generate cerificates and to rewrite
35service configuration files.
36
66e9c719
DM
37NOTE: We use a Postgres database to store mail filter rules and
38statistic data. See chapter xref:chapter_pmgdb[Database Management]
39for more information.
40
41
42Configuration files overview
43----------------------------
44
45`/etc/network/interfaces`::
46
47Network setup. We never modify this files directly. Instead, we write
48changes to `/etc/network/interfaces.new`. When you reboot, we rename
49the file to `/etc/network/interfaces`, so any changes gets activated
50on the next reboot.
51
9bfe27f3
DM
52`/etc/resolv.conf`::
53
54DNS search domain and nameserver setup.
55
56`/etc/hostname`::
57
58The system's host name.
59
60`/etc/hosts`::
61
62Static table lookup for hostnames.
63
66e9c719
DM
64`/etc/pmg/pmg.conf`::
65
66Stores common administration options, i.e. the spam and mail proxy setup.
67
68`/etc/pmg/cluster.conf`::
69
70The cluster setup.
71
72`/etc/pmg/domains`::
73
74The list of relay domains.
75
5053eecc
SI
76`/etc/pmg/dkim/domains`::
77
78The list of domains for outbound DKIM signing.
79
66e9c719
DM
80`/etc/pmg/fetchmailrc`::
81
82Fetchmail configuration (POP3 and IMAP setup).
83
84`/etc/pmg/ldap.conf`::
85
86LDAP configuration.
87
88`/etc/pmg/mynetworks`::
89
90List of local (trusted) networks.
91
92`/etc/pmg/subscription`::
93
94Stores your subscription key and status.
95
37b2b051
SI
96`/etc/pmg/tls_policy`::
97
98TLS policy for outbound connections.
99
66e9c719
DM
100`/etc/pmg/transports`::
101
102Message delivery transport setup.
103
104`/etc/pmg/user.conf`::
105
106GUI user configuration.
107
797db11d
DM
108`/etc/mail/spamassassin/custom.cf`::
109
110Custom {spamassassin} setup.
111
8b4756e5
SI
112`/etc/mail/spamassassin/pmg-scores.cf`::
113
114Custom {spamassassin} rule scores.
66e9c719
DM
115
116Keys and Certificates
117---------------------
118
119`/etc/pmg/pmg-api.pem`::
120
121Key and certificate (combined) used be the HTTPs server (API).
122
123`/etc/pmg/pmg-authkey.key`::
124
125Privat key use to generate authentication tickets.
126
127`/etc/pmg/pmg-authkey.pub`::
128
129Public key use to verify authentication tickets.
130
131`/etc/pmg/pmg-csrf.key`::
132
133Internally used to generate CSRF tokens.
134
135`/etc/pmg/pmg-tls.pem`::
136
137Key and certificate (combined) to encrypt mail traffic (TLS).
138
5053eecc
SI
139`/etc/pmg/dkim/<selector>.private`::
140
141Key for DKIM signing mails with selector '<selector>'.
142
66e9c719 143
69a428d9 144[[pmgconfig_template_engine]]
66e9c719
DM
145Service Configuration Templates
146-------------------------------
147
9c85cc80
DM
148{pmg} uses various services to implement mail filtering, for example
149the {postfix} Mail Transport Agent (MTA), the {clamav} antivirus
150engine and the Apache {spamassassin} project. Those services use
151separate configuration files, so we need to rewrite those files when
152configuration is changed.
153
154We use a template based approach to generate those files. The {tts} is
155a well known, fast and flexible template processing system. You can
156find the default templates in `/var/lib/pmg/templates/`. Please do not
157modify them directly, because your modification would get lost on the
9dd45bd7
SI
158next update. Instead, copy the template you wish to change to
159`/etc/pmg/templates/`, then apply your changes there.
9c85cc80
DM
160
161Templates can access any configuration setting, and you can use the
162`pmgconfig dump` command to get a list of all variable names:
163
164----
165# pmgconfig dump
166...
167dns.domain = yourdomain.tld
168dns.hostname = pmg
169ipconfig.int_ip = 192.168.2.127
170pmg.admin.advfilter = 1
171...
172----
173
174The same tool is used to force regeneration of all template based
175configuration files. You need to run that after modifying a template,
176or when you directly edit configuration files
177
178----
179# pmgconfig sync --restart 1
180----
181
9dd45bd7 182The above command also restarts services if the underlying configuration
9c85cc80
DM
183files are changed. Please note that this is automatically done when
184you change the configuration using the GUI or API.
185
186NOTE: Modified templates from `/etc/pmg/templates/` are automatically
187synced from the master node to all cluster members.
66e9c719
DM
188
189
4a08dffe 190[[pmgconfig_systemconfig]]
685576c2
DM
191System Configuration
192--------------------
193
194Network and Time
195~~~~~~~~~~~~~~~~
196
197ifndef::manvolnum[]
198image::images/screenshot/pmg-gui-network-config.png[]
199endif::manvolnum[]
200
45de5bf5 201Normally the network and time is already configured when you visit the
c6e27848 202GUI. The installer asks for those settings and sets up the correct
45de5bf5
DM
203values.
204
205The default setup uses a single Ethernet adapter and static IP
206assignment. The configuration is stored at '/etc/network/interfaces',
207and the actual network setup is done the standard Debian way using
208package 'ifupdown'.
209
210.Example network setup '/etc/network/interfaces'
211----
212source /etc/network/interfaces.d/*
213
214auto lo
215iface lo inet loopback
216
217auto ens18
218iface ens18 inet static
219 address 192.168.2.127
220 netmask 255.255.240.0
221 gateway 192.168.2.1
222----
223
224.DNS recommendations
225
226Many tests to detect SPAM mails use DNS queries, so it is important to
227have a fast and reliable DNS server. We also query some public
228available DNS Blacklists. Most of them apply rate limits for clients,
229so they simply will not work if you use a public DNS server (because
230they are usually blocked). We recommend to use your own DNS server,
231which need to be configured in 'recursive' mode.
685576c2
DM
232
233
234Options
235~~~~~~~
236
237ifndef::manvolnum[]
238image::images/screenshot/pmg-gui-system-options.png[]
239endif::manvolnum[]
240
e09057ab
DM
241
242Those settings are saved to subsection 'admin' in `/etc/pmg/pmg.conf`,
243using the following configuration keys:
244
685576c2
DM
245include::pmg.admin-conf-opts.adoc[]
246
c331641e
DM
247
248Mail Proxy Configuration
249------------------------
250
4a08dffe 251[[pmgconfig_mailproxy_relaying]]
c331641e
DM
252Relaying
253~~~~~~~~
254
c331641e
DM
255ifndef::manvolnum[]
256image::images/screenshot/pmg-gui-mailproxy-relaying.png[]
257endif::manvolnum[]
258
e09057ab
DM
259Those settings are saved to subsection 'mail' in `/etc/pmg/pmg.conf`,
260using the following configuration keys:
261
262include::pmg.mail-relaying-conf-opts.adoc[]
c331641e 263
4a08dffe 264[[pmgconfig_mailproxy_relay_domains]]
c331641e
DM
265Relay Domains
266~~~~~~~~~~~~~
267
c331641e
DM
268ifndef::manvolnum[]
269image::images/screenshot/pmg-gui-mailproxy-relaydomains.png[]
270endif::manvolnum[]
271
6822b369
DM
272List of relayed mail domains, i.e. what destination domains this
273system will relay mail to. The system will reject incoming mails to
274other domains.
c331641e 275
d9c56b22 276
4a08dffe 277[[pmgconfig_mailproxy_ports]]
c331641e
DM
278Ports
279~~~~~
280
c331641e
DM
281ifndef::manvolnum[]
282image::images/screenshot/pmg-gui-mailproxy-ports.png[]
283endif::manvolnum[]
284
d9c56b22
DM
285Those settings are saved to subsection 'mail' in `/etc/pmg/pmg.conf`,
286using the following configuration keys:
287
288include::pmg.mail-ports-conf-opts.adoc[]
289
c331641e 290
4a08dffe 291[[pmgconfig_mailproxy_options]]
c331641e
DM
292Options
293~~~~~~~
294
c331641e
DM
295ifndef::manvolnum[]
296image::images/screenshot/pmg-gui-mailproxy-options.png[]
297endif::manvolnum[]
298
e3d778e0
DM
299Those settings are saved to subsection 'mail' in `/etc/pmg/pmg.conf`,
300using the following configuration keys:
301
302include::pmg.mail-options-conf-opts.adoc[]
c331641e
DM
303
304
89028579
SI
305[[pmgconfig_mailproxy_before_after_queue]]
306Before and After Queue scanning
307~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
308
309Scanning email can happen at two different stages of mail-processing:
310
311* During the SMTP Session after the complete message has been received (after
312 the 'DATA' command), known as 'before queue filtering'.
313
314* After intially accepting the mail and putting it on a queue for further
315 processing, known as 'after queue filtering'.
316
317The former has the advantage that the system can reject a mail (by sending a
318permanent reject code '554'), and leave the task of notifying the original
319sender to the other mailserver. This is of particular advantage if the
320processed mail is a spam message or contains a virus and has a forged
321sender-address. Sending out a notification in this situation leads so-called
322'backscatter' mail, which might cause your server to get listed as spamming on
323RBLs.
324
325The latter has the advantage of providing faster delivery of mails for the
326sending servers, since queueing mails is much faster than analyzing it for
327spam and viruses.
328
329If a mail is addressed to multiple recipients (e.g. when multiple addresses are
330subscribed to the same mailinglist) the situation is more complicated: Your
331mailserver can only reject or accept the mail for all recipients, after having
332received the complete message, while your rule setup might accept the mail for
333part of the recipients and reject it for others. This can be due to a
334complicated rule setup, or if your users use the 'User White- and Blacklist'
335feature.
336
337If the resulting action of the rule system is the same for all recipients {pmg}
338responds accordingly if configured for before queue filtering (sending '554'
339for a blocked mail and '250' for an accepted or quarantined mail). If some
340mailboxes accept the mail and some reject it the system has to accept the mail.
341
342Whether {pmg} notifies the sender that delivery failed for some recipients by
343sending a non-delivery report, depends on the 'ndr_on_block' setting in
344'/etc/pmg/pmg.conf'. If enabled an NDR is sent. Keeping it disabled prevents
345NDRs being sent to the (possibly forged) sender and thus minimizes the chance
346of getting your IP listed on a RBL. However in certain environments it can be
347unacceptable not to inform the sender about a rejected mail.
348
349The setting has the same effect if after queue filtering is configured, with
350the exception that an NDR is always sent out, even if all recipients block the
351mail, since the mail already got accepted before being analyzed.
352
353The details of integrating the mail proxy with {postfix} in both setups are
354explained in {postfix_beforequeue} and {postfix_afterqueue} respectively.
355
356NOTE: Since before queue filtering is currently incompatible with the
357'Tracking Center' you need to enable it by manually
358editing '/etc/pmg/pmg.conf'.
359
360
4a08dffe 361[[pmgconfig_mailproxy_transports]]
c331641e
DM
362Transports
363~~~~~~~~~~
364
365ifndef::manvolnum[]
366image::images/screenshot/pmg-gui-mailproxy-transports.png[]
367endif::manvolnum[]
368
b335e06b
DM
369You can use {pmg} to send e-mails to different internal
370e-mail servers. For example you can send e-mails addressed to
371domain.com to your first e-mail server, and e-mails addressed to
372subdomain.domain.com to a second one.
373
374You can add the IP addresses, hostname and SMTP ports and mail domains (or
375just single email addresses) of your additional e-mail servers.
c331641e
DM
376
377
4a08dffe 378[[pmgconfig_mailproxy_networks]]
c331641e
DM
379Networks
380~~~~~~~~
381
382ifndef::manvolnum[]
383image::images/screenshot/pmg-gui-mailproxy-networks.png[]
384endif::manvolnum[]
385
20e879ad
DM
386You can add additional internal (trusted) IP networks or hosts.
387All hosts in this list are allowed to relay.
388
389NOTE: Hosts in the same subnet with Proxmox can relay by default and
390it’s not needed to add them in this list.
c331641e
DM
391
392
4a08dffe 393[[pmgconfig_mailproxy_tls]]
c331641e
DM
394TLS
395~~~
396
397ifndef::manvolnum[]
398image::images/screenshot/pmg-gui-mailproxy-tls.png[]
399endif::manvolnum[]
400
20e879ad
DM
401Transport Layer Security (TLS) provides certificate-based
402authentication and encrypted sessions. An encrypted session protects
403the information that is transmitted with SMTP mail. When you activate
404TLS, {pmg} automatically generates a new self signed
405certificate for you (`/etc/pmg/pmg-tls.pem`).
406
37b2b051 407{pmg} uses opportunistic TLS encryption by default. The SMTP transaction is
20e879ad 408encrypted if the 'STARTTLS' ESMTP feature is supported by the remote
37b2b051
SI
409server. Otherwise, messages are sent in the clear.
410You can set a different TLS policy per desitination domain, should you for
411example need to prevent e-mail delivery without encryption, or to work around
412a broken 'STARTTLS' ESMTP implementation. See {postfix_tls_readme} for details
413on the supported policies.
20e879ad
DM
414
415Enable TLS logging::
416
417To get additional information about SMTP TLS activity you can enable
418TLS logging. That way information about TLS sessions and used
419certificate’s is logged via syslog.
420
421Add TLS received header::
422
423Set this option to include information about the protocol and cipher
424used as well as the client and issuer CommonName into the "Received:"
425message header.
426
a649b38f
DM
427Those settings are saved to subsection 'mail' in `/etc/pmg/pmg.conf`,
428using the following configuration keys:
429
430include::pmg.mail-tls-conf-opts.adoc[]
431
c331641e 432
20522d96
SI
433[[pmgconfig_mailproxy_dkim]]
434DKIM Signing
435~~~~~~~~~~~~
436
437DomainKeys Identified Mail (DKIM) Signatures (see {dkim_rfc}) is a method to
438cryptographically authenticate a mail as originating from a particular domain.
439Before sending the mail a hash over certain header fields and the body is
440computed, signed with a private key and added in the `DKIM-Signature` header of
441the mail. The 'selector' (a short identifier chosen by you, used to identify
442which system and private key were used for signing) is also included in the
443`DKIM-Signature` header.
444
445The verification is done by the receiver: The public key is fetched
446via DNS TXT lookup for `yourselector._domainkey.yourdomain.example` and used
447for verifying the hash. You can publish multiple selectors for your domain,
448each use by a system which sends e-mail from your domain, without the need to
449share the private key.
450
451{pmg} verifies DKIM Signatures for inbound mail in the Spam Filter by default.
452
453Additionally it supports conditionally signing outbound mail if configured.
454It uses one private key and selector per PMG deployment (all nodes in a cluster
455use the same key). The key has a minimal size of 1024 bits and rsa-sha256 is
456used as signing algorithm.
457
458The headers included in the signature are taken from the list of
459`Mail::DKIM::Signer`. Additionally `Content-Type` (if present), `From`, `To`,
460`CC`, `Reply-To` and `Subject` get oversigned.
461
462You can either sign all mails received on the internal port using the domain of
463the envelope sender address or create a list of domains, for which e-mails
464should be signed, defaulting to the list of relay domains.
465
466
467Enable DKIM Signing::
468
469Controls whether outbound mail should get DKIM signed.
470
471Selector::
472
473The selector used for signing the mail. The private key used for signing is
3fe91910 474saved under `/etc/pmg/dkim/yourselector.private`. You can display the DNS TXT
20522d96
SI
475record which you need to add to all domains signed by {pmg} by clicking on the
476'View DNS Record' Button.
477
478Sign all Outgoing Mail::
479
480Controls whether all outbound mail should get signed or only mails from domains
481listed in `/etc/pmg/dkim/domains` if it exists and `/etc/pmg/domains` otherwise.
482
483Those settings are saved to subsection 'admin' in `/etc/pmg/pmg.conf`,
484using the following configuration keys:
485
486include::pmg.admin-dkim-conf-opts.adoc[]
487
488
c331641e
DM
489Whitelist
490~~~~~~~~~
491
492ifndef::manvolnum[]
493image::images/screenshot/pmg-gui-mailproxy-whitelist.png[]
494endif::manvolnum[]
495
6822b369
DM
496All SMTP checks are disabled for those entries (e. g. Greylisting,
497SPF, RBL, ...)
498
499NOTE: If you use a backup MX server (e.g. your ISP offers this service
500for you) you should always add those servers here.
c331641e
DM
501
502
4a08dffe 503[[pmgconfig_spamdetector]]
c331641e
DM
504Spam Detector Configuration
505---------------------------
506
2d672352
DM
507Options
508~~~~~~~
509
74bfe8ba
DM
510ifndef::manvolnum[]
511image::images/screenshot/pmg-gui-spam-options.png[]
512endif::manvolnum[]
513
3371c521
DM
514{pmg} uses a wide variety of local and network tests to identify spam
515signatures. This makes it harder for spammers to identify one aspect
516which they can craft their messages to work around the spam filter.
517
518Every single e-mail will be analyzed and gets a spam score
519assigned. The system attempts to optimize the efficiency of the rules
520that are run in terms of minimizing the number of false positives and
521false negatives.
522
523include::pmg.spam-conf-opts.adoc[]
524
525
4a08dffe 526[[pmgconfig_spamdetector_quarantine]]
2d672352
DM
527Quarantine
528~~~~~~~~~~
3371c521 529
74bfe8ba
DM
530ifndef::manvolnum[]
531image::images/screenshot/pmg-gui-spamquar-options.png[]
532endif::manvolnum[]
533
3371c521
DM
534Proxmox analyses all incoming e-mail messages and decides for each
535e-mail if its ham or spam (or virus). Good e-mails are delivered to
536the inbox and spam messages can be moved into the spam quarantine.
537
538The system can be configured to send daily reports to inform users
539about the personal spam messages received the last day. That report is
540only sent if there are new messages in the quarantine.
541
ee34edb0
DC
542Some options are only available in the config file `/etc/pmg/pmg.conf`,
543and not in the webinterface.
544
3371c521 545include::pmg.spamquar-conf-opts.adoc[]
c331641e
DM
546
547
36b169e6
SI
548[[pmgconfig_spamdetector_customscores]]
549Customization of Rulescores
550~~~~~~~~~~~~~~~~~~~~~~~~~~~
551
552While the default scoring of {spamassassin}'s ruleset provides very good
553detection rates, sometimes your particular environment can benefit from
554slightly adjusting the score of a particular rule. Two examples:
555
556* Your system receives spam mails which are scored at 4.9 and you have
557 a rule which puts all mails above 5 in the quarantine. The one thing the
558 spam mails have in common is that they all hit 'URIBL_BLACK'. By increasing
559 the score of this rule by 0.2 points the spam mails would all be quarantined
560 instead of being sent to your users
561
562* Your system tags many legitimate mails from a partner organization as spam,
563 because the organization has a policy that each mail has to start with
564 'Dear madam or sir' (generating 1.9 points through the rule
565 'DEAR_SOMETHING'). By setting the score of this rule to 0 you can disable
566 it completely.
567
568The system logs all rules which particular mail hits. Analyzing the logs can
569lead to finding such a pattern in your environment.
570
571You can adjust the score of a rule by creating a new 'Custom Rule Score' entry
572in the GUI.
573
574NOTE: In general it is strongly recommended to not make large changes to the
575default scores.
576
577
4a08dffe 578[[pmgconfig_clamav]]
c331641e
DM
579Virus Detector Configuration
580----------------------------
581
4a08dffe 582[[pmgconfig_clamav_options]]
2d672352
DM
583Options
584~~~~~~~
585
e7c18c7c
DM
586ifndef::manvolnum[]
587image::images/screenshot/pmg-gui-virus-options.png[]
588endif::manvolnum[]
589
0bfbbf88
DM
590All mails are automatically passed to the included virus detector
591({clamav}). The default setting are considered safe, so it is usually
592not required to change them.
593
594{clamav} related settings are saved to subsection 'clamav' in `/etc/pmg/pmg.conf`,
595using the following configuration keys:
596
597include::pmg.clamav-conf-opts.adoc[]
598
e7c18c7c
DM
599ifndef::manvolnum[]
600image::images/screenshot/pmg-gui-clamav-database.png[]
601endif::manvolnum[]
602
603Please note that the virus signature database it automatically
604updated. But you can see the database status on the GUI, and you can
605trigger manual updates there.
606
0bfbbf88 607
4a08dffe 608[[pmgconfig_clamav_quarantine]]
2d672352
DM
609Quarantine
610~~~~~~~~~~
0bfbbf88 611
e7c18c7c
DM
612ifndef::manvolnum[]
613image::images/screenshot/pmg-gui-virusquar-options.png[]
614endif::manvolnum[]
615
0bfbbf88
DM
616Indentified virus mails are automatically moved to the virus
617quarantine. The administartor can view those mails using the GUI, or
618deliver them in case of false positives. {pmg} does not notify
619individual users about received virus mails.
620
621Virus quarantine related settings are saved to subsection 'virusquar'
622in `/etc/pmg/pmg.conf`, using the following configuration keys:
623
624include::pmg.virusquar-conf-opts.adoc[]
c331641e
DM
625
626
7eff8815
DM
627Custom SpamAssassin configuration
628---------------------------------
629
833e1edc
SI
630This is only for advanced users. {spamassassin}'s rules and their associated
631scores get updated regularly and are trained on a huge corpus, which gets
632classified by experts. In most cases adding a rule for matching a particular
633keyword is the wrong approach, leading to many false positives. Usually bad
634detection rates are better addressed by properly setting up DNS than by adding
635a custom rule - watch out for matches to 'URIBL_BLOCKED' in the logs or
636spam-headers - see the {spamassassin_dnsbl}.
637
638To add or change the Proxmox {spamassassin} configuration please login to the
d2f49775
TL
639console via SSH. Change to the `/etc/mail/spamassassin/` directory. In this
640directory there are several files (`init.pre`, `local.cf`, ...) - do not change
69a428d9
SI
641them, as `init.pre`, `v310.pre`, `v320.pre`, `local.cf` will be overwritten by
642the xref:pmgconfig_template_engine[template engine], while the others can
643get updated by any {spamassassin} package upgrade.
833e1edc
SI
644
645To add your special configuration, you have to create a new file and name it
d2f49775
TL
646`custom.cf` (in this directory), then add your configuration there. Make sure
647to use the correct {spamassassin} syntax, and test with
7eff8815
DM
648
649----
650# spamassassin -D --lint
651----
652
653If you run a cluster, the `custom.cf` file is synchronized from the
d2f49775 654master node to all cluster members automatically.
7eff8815 655
36b169e6
SI
656Should you only wish to adjust the score assigned to a particular rule you
657can also use the xref:pmgconfig_spamdetector_customscores[Custom Rule Score]
658settings in the GUI.
659
7eff8815 660
ed7970d8
SI
661[[pmgconfig_custom_check]]
662Custom Check Interface
663----------------------
664
665For use cases which are not handled by the {pmg} Virus Detector and
666{spamassassin} configuration, advanced users can create a custom check
667executable which, if enabled will be called before the Virus Detector and before
668passing an e-mail through the Rule System. The custom check API is kept as
669simple as possible, while still providing a great deal of control over the
670treatment of an e-mail. Its input is passed via two CLI arguments:
671
672* the 'api-version' (currently `v1`) - for potential future change of the
673 invocation
674
675* the 'queue-file-name' - a filename, which contains the complete e-mail as
676 rfc822/eml file
677
678The expected output need to be printed on STDOUT and consists of two lines:
679
680* the 'api-version' (currently 'v1') - see above
681
682* one of the following 3 results:
683** 'OK' - e-mail is ok
684** 'VIRUS: <virusdescription>' - e-mail is treated as if it contained a virus
685 (the virusdescription is logged and added to the e-mail's headers)
686** 'SCORE: <number>' - <number> is added (negative numbers are also possible)
687 to the e-mail's spamscore
688
689The check is run with a 5 minute timeout - if it is exceeded the check
690executable is killed and the e-mail is treated as OK.
691
692All output written to STDERR by the check is written with priority 'err' to the
693journal/mail.log.
694
695A simple sample script following the API (and yielding a random result) for
696reference:
697
698----
699#!/bin/sh
700
701echo "called with $*" 1>&2
702
703if [ "$#" -ne 2 ]; then
704 echo "usage: $0 APIVERSION QUEUEFILENAME" 1>&2
705 exit 1
706fi
707
708apiver="$1"
709shift
710
711if [ "$apiver" != "v1" ]; then
712 echo "wrong APIVERSION: $apiver" 1>&2
713 exit 2
714fi
715
716queue_file="$1"
717
718echo "v1"
719
720choice=$(shuf -i 0-3 -n1)
721
722case "$choice" in
723 0)
724 echo OK
725 ;;
726 1)
727 echo SCORE: 4
728 ;;
729 2)
730 echo VIRUS: Random Virus
731 ;;
732 3) #timeout-test
733 for i in $(seq 1 7); do
734 echo "custom checking mail: $queue_file - minute $i" 1>&2
735 sleep 60
736 done
737 ;;
738esac
739
740exit 0
741----
742
743The custom check needs to be enabled in the admin section of `/etc/pmg/pmg.conf`
744
745----
746section: admin
747 custom_check 1
748----
749
750The location of the custom check executable can also be set there with the key
751`custom_check_path` and defaults to `/usr/local/bin/pmg-custom-check`.
752
753
c331641e
DM
754User Management
755---------------
756
05336835
DC
757User management in {pmg} consists of three types of users/accounts:
758
759
4a08dffe 760[[pmgconfig_localuser]]
05336835
DC
761Local Users
762~~~~~~~~~~~
763
f02d2b90
DM
764image::images/screenshot/pmg-gui-local-user-config.png[]
765
05336835
DC
766Local users are used to manage and audit {pmg}. Those users can login on the
767management web interface.
768
769There are three roles:
770
771* Administrator
772+
773Is allowed to manage settings of {pmg}, except some tasks like
774network configuration and upgrading.
775
776* Quarantine manager
777+
778Is allowed to manage quarantines, blacklists and whitelists, but not other
779settings. Has no right to view any other data.
780
781* Auditor
782+
783With this role, the user is only allowed to view data and configuration, but
784not to edit it.
785
786In addition there is always the 'root' user, which is used to perform special
787system administrator tasks, such as updgrading a host or changing the
788network configuration.
789
790NOTE: Only pam users are able to login via the webconsole and ssh, which the
791users created with the web interface are not. Those users are created for
792{pmg} administration only.
793
794Local user related settings are saved in `/etc/pmg/user.conf`.
795
796For details of the fields see xref:pmg_user_configuration_file[user.conf]
797
4a08dffe 798[[pmgconfig_ldap]]
05336835
DC
799LDAP/Active Directory
800~~~~~~~~~~~~~~~~~~~~~
801
f02d2b90
DM
802image::images/screenshot/pmg-gui-ldap-user-config.png[]
803
05336835
DC
804You can specify multiple LDAP/Active Directory profiles, so that you can
805create rules matching those users and groups.
806
807Creating a profile requires (at least) the following:
808
809* profile name
810* protocol (LDAP or LDAPS; LDAPS is recommended)
811* at least one server
812* a user and password (if your server does not support anonymous binds)
813
814All other fields should work with the defaults for most setups, but can be
815used to customize the queries.
816
817The settings are saved to `/etc/pmg/ldap.conf`. Details for the options
818can be found here: xref:pmg_ldap_configuration_file[ldap.conf]
819
820Bind user
821^^^^^^^^^
822
823It is highly recommended that the user which you use for connecting to the
824LDAP server only has the permission to query the server. For LDAP servers
825(for example OpenLDAP or FreeIPA), the username has to be of a format like
826'uid=username,cn=users,cn=accounts,dc=domain' , where the specific fields are
827depending on your setup. For Active Directory servers, the format should be
828like 'username@domain' or 'domain\username'.
829
830Sync
831^^^^
832
833{pmg} synchronizes the relevant user and group info periodically, so that
834that information is available in a fast manner, even when the LDAP/AD server
835is temporarily not accessible.
836
837After a successfull sync, the groups and users should be visible on the web
838interface. After that, you can create rules targeting LDAP users and groups.
c331641e
DM
839
840
4a08dffe 841[[pmgconfig_fetchmail]]
8538d9a2 842Fetchmail
05336835
DC
843~~~~~~~~~
844
f02d2b90
DM
845image::images/screenshot/pmg-gui-fetchmail-config.png[]
846
05336835
DC
847Fetchmail is utility for polling and forwarding e-mails. You can define
848e-mail accounts, which will then be fetched and forwarded to the e-mail
849address you defined.
850
851You have to add an entry for each account/target combination you want to
852fetch and forward. Those will then be regularly polled and forwarded,
853according to your configuration.
854
855The API and web interface offer following configuration options:
8538d9a2
DM
856
857include::fetchmail.conf.5-opts.adoc[]
858
859
e62ceaf0
DM
860ifdef::manvolnum[]
861include::pmg-copyright.adoc[]
862endif::manvolnum[]
863