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