]> git.proxmox.com Git - pmg-docs.git/blame - pmgconfig.adoc
explain handling of sa configuration
[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
4a08dffe 548[[pmgconfig_clamav]]
c331641e
DM
549Virus Detector Configuration
550----------------------------
551
4a08dffe 552[[pmgconfig_clamav_options]]
2d672352
DM
553Options
554~~~~~~~
555
e7c18c7c
DM
556ifndef::manvolnum[]
557image::images/screenshot/pmg-gui-virus-options.png[]
558endif::manvolnum[]
559
0bfbbf88
DM
560All mails are automatically passed to the included virus detector
561({clamav}). The default setting are considered safe, so it is usually
562not required to change them.
563
564{clamav} related settings are saved to subsection 'clamav' in `/etc/pmg/pmg.conf`,
565using the following configuration keys:
566
567include::pmg.clamav-conf-opts.adoc[]
568
e7c18c7c
DM
569ifndef::manvolnum[]
570image::images/screenshot/pmg-gui-clamav-database.png[]
571endif::manvolnum[]
572
573Please note that the virus signature database it automatically
574updated. But you can see the database status on the GUI, and you can
575trigger manual updates there.
576
0bfbbf88 577
4a08dffe 578[[pmgconfig_clamav_quarantine]]
2d672352
DM
579Quarantine
580~~~~~~~~~~
0bfbbf88 581
e7c18c7c
DM
582ifndef::manvolnum[]
583image::images/screenshot/pmg-gui-virusquar-options.png[]
584endif::manvolnum[]
585
0bfbbf88
DM
586Indentified virus mails are automatically moved to the virus
587quarantine. The administartor can view those mails using the GUI, or
588deliver them in case of false positives. {pmg} does not notify
589individual users about received virus mails.
590
591Virus quarantine related settings are saved to subsection 'virusquar'
592in `/etc/pmg/pmg.conf`, using the following configuration keys:
593
594include::pmg.virusquar-conf-opts.adoc[]
c331641e
DM
595
596
7eff8815
DM
597Custom SpamAssassin configuration
598---------------------------------
599
833e1edc
SI
600This is only for advanced users. {spamassassin}'s rules and their associated
601scores get updated regularly and are trained on a huge corpus, which gets
602classified by experts. In most cases adding a rule for matching a particular
603keyword is the wrong approach, leading to many false positives. Usually bad
604detection rates are better addressed by properly setting up DNS than by adding
605a custom rule - watch out for matches to 'URIBL_BLOCKED' in the logs or
606spam-headers - see the {spamassassin_dnsbl}.
607
608To add or change the Proxmox {spamassassin} configuration please login to the
d2f49775
TL
609console via SSH. Change to the `/etc/mail/spamassassin/` directory. In this
610directory there are several files (`init.pre`, `local.cf`, ...) - do not change
69a428d9
SI
611them, as `init.pre`, `v310.pre`, `v320.pre`, `local.cf` will be overwritten by
612the xref:pmgconfig_template_engine[template engine], while the others can
613get updated by any {spamassassin} package upgrade.
833e1edc
SI
614
615To add your special configuration, you have to create a new file and name it
d2f49775
TL
616`custom.cf` (in this directory), then add your configuration there. Make sure
617to use the correct {spamassassin} syntax, and test with
7eff8815
DM
618
619----
620# spamassassin -D --lint
621----
622
623If you run a cluster, the `custom.cf` file is synchronized from the
d2f49775 624master node to all cluster members automatically.
7eff8815
DM
625
626
ed7970d8
SI
627[[pmgconfig_custom_check]]
628Custom Check Interface
629----------------------
630
631For use cases which are not handled by the {pmg} Virus Detector and
632{spamassassin} configuration, advanced users can create a custom check
633executable which, if enabled will be called before the Virus Detector and before
634passing an e-mail through the Rule System. The custom check API is kept as
635simple as possible, while still providing a great deal of control over the
636treatment of an e-mail. Its input is passed via two CLI arguments:
637
638* the 'api-version' (currently `v1`) - for potential future change of the
639 invocation
640
641* the 'queue-file-name' - a filename, which contains the complete e-mail as
642 rfc822/eml file
643
644The expected output need to be printed on STDOUT and consists of two lines:
645
646* the 'api-version' (currently 'v1') - see above
647
648* one of the following 3 results:
649** 'OK' - e-mail is ok
650** 'VIRUS: <virusdescription>' - e-mail is treated as if it contained a virus
651 (the virusdescription is logged and added to the e-mail's headers)
652** 'SCORE: <number>' - <number> is added (negative numbers are also possible)
653 to the e-mail's spamscore
654
655The check is run with a 5 minute timeout - if it is exceeded the check
656executable is killed and the e-mail is treated as OK.
657
658All output written to STDERR by the check is written with priority 'err' to the
659journal/mail.log.
660
661A simple sample script following the API (and yielding a random result) for
662reference:
663
664----
665#!/bin/sh
666
667echo "called with $*" 1>&2
668
669if [ "$#" -ne 2 ]; then
670 echo "usage: $0 APIVERSION QUEUEFILENAME" 1>&2
671 exit 1
672fi
673
674apiver="$1"
675shift
676
677if [ "$apiver" != "v1" ]; then
678 echo "wrong APIVERSION: $apiver" 1>&2
679 exit 2
680fi
681
682queue_file="$1"
683
684echo "v1"
685
686choice=$(shuf -i 0-3 -n1)
687
688case "$choice" in
689 0)
690 echo OK
691 ;;
692 1)
693 echo SCORE: 4
694 ;;
695 2)
696 echo VIRUS: Random Virus
697 ;;
698 3) #timeout-test
699 for i in $(seq 1 7); do
700 echo "custom checking mail: $queue_file - minute $i" 1>&2
701 sleep 60
702 done
703 ;;
704esac
705
706exit 0
707----
708
709The custom check needs to be enabled in the admin section of `/etc/pmg/pmg.conf`
710
711----
712section: admin
713 custom_check 1
714----
715
716The location of the custom check executable can also be set there with the key
717`custom_check_path` and defaults to `/usr/local/bin/pmg-custom-check`.
718
719
c331641e
DM
720User Management
721---------------
722
05336835
DC
723User management in {pmg} consists of three types of users/accounts:
724
725
4a08dffe 726[[pmgconfig_localuser]]
05336835
DC
727Local Users
728~~~~~~~~~~~
729
f02d2b90
DM
730image::images/screenshot/pmg-gui-local-user-config.png[]
731
05336835
DC
732Local users are used to manage and audit {pmg}. Those users can login on the
733management web interface.
734
735There are three roles:
736
737* Administrator
738+
739Is allowed to manage settings of {pmg}, except some tasks like
740network configuration and upgrading.
741
742* Quarantine manager
743+
744Is allowed to manage quarantines, blacklists and whitelists, but not other
745settings. Has no right to view any other data.
746
747* Auditor
748+
749With this role, the user is only allowed to view data and configuration, but
750not to edit it.
751
752In addition there is always the 'root' user, which is used to perform special
753system administrator tasks, such as updgrading a host or changing the
754network configuration.
755
756NOTE: Only pam users are able to login via the webconsole and ssh, which the
757users created with the web interface are not. Those users are created for
758{pmg} administration only.
759
760Local user related settings are saved in `/etc/pmg/user.conf`.
761
762For details of the fields see xref:pmg_user_configuration_file[user.conf]
763
4a08dffe 764[[pmgconfig_ldap]]
05336835
DC
765LDAP/Active Directory
766~~~~~~~~~~~~~~~~~~~~~
767
f02d2b90
DM
768image::images/screenshot/pmg-gui-ldap-user-config.png[]
769
05336835
DC
770You can specify multiple LDAP/Active Directory profiles, so that you can
771create rules matching those users and groups.
772
773Creating a profile requires (at least) the following:
774
775* profile name
776* protocol (LDAP or LDAPS; LDAPS is recommended)
777* at least one server
778* a user and password (if your server does not support anonymous binds)
779
780All other fields should work with the defaults for most setups, but can be
781used to customize the queries.
782
783The settings are saved to `/etc/pmg/ldap.conf`. Details for the options
784can be found here: xref:pmg_ldap_configuration_file[ldap.conf]
785
786Bind user
787^^^^^^^^^
788
789It is highly recommended that the user which you use for connecting to the
790LDAP server only has the permission to query the server. For LDAP servers
791(for example OpenLDAP or FreeIPA), the username has to be of a format like
792'uid=username,cn=users,cn=accounts,dc=domain' , where the specific fields are
793depending on your setup. For Active Directory servers, the format should be
794like 'username@domain' or 'domain\username'.
795
796Sync
797^^^^
798
799{pmg} synchronizes the relevant user and group info periodically, so that
800that information is available in a fast manner, even when the LDAP/AD server
801is temporarily not accessible.
802
803After a successfull sync, the groups and users should be visible on the web
804interface. After that, you can create rules targeting LDAP users and groups.
c331641e
DM
805
806
4a08dffe 807[[pmgconfig_fetchmail]]
8538d9a2 808Fetchmail
05336835
DC
809~~~~~~~~~
810
f02d2b90
DM
811image::images/screenshot/pmg-gui-fetchmail-config.png[]
812
05336835
DC
813Fetchmail is utility for polling and forwarding e-mails. You can define
814e-mail accounts, which will then be fetched and forwarded to the e-mail
815address you defined.
816
817You have to add an entry for each account/target combination you want to
818fetch and forward. Those will then be regularly polled and forwarded,
819according to your configuration.
820
821The API and web interface offer following configuration options:
8538d9a2
DM
822
823include::fetchmail.conf.5-opts.adoc[]
824
825
e62ceaf0
DM
826ifdef::manvolnum[]
827include::pmg-copyright.adoc[]
828endif::manvolnum[]
829