]> git.proxmox.com Git - pve-docs.git/blame - pveproxy.adoc
add binary names to section titles
[pve-docs.git] / pveproxy.adoc
CommitLineData
96f2beeb
DM
1ifdef::manvolnum[]
2PVE({manvolnum})
3================
4include::attributes.txt[]
5
6NAME
7----
8
9pveproxy - PVE API Proxy Daemon
10
11
49a5e11c 12SYNOPSIS
96f2beeb
DM
13--------
14
15include::pveproxy.8-synopsis.adoc[]
16
17DESCRIPTION
18-----------
19endif::manvolnum[]
20
21ifndef::manvolnum[]
e8b392d3
FG
22pveproxy - Proxmox VE API Proxy Daemon
23======================================
96f2beeb
DM
24include::attributes.txt[]
25endif::manvolnum[]
26
27This daemon exposes the whole {pve} API on TCP port 8006 using
8c1189b6 28HTTPS. It runs as user `www-data` and has very limited permissions.
96f2beeb 29Operation requiring more permissions are forwarded to the local
8c1189b6 30`pvedaemon`.
96f2beeb 31
eb641429
DM
32Requests targeted for other nodes are automatically forwarded to those
33nodes. This means that you can manage your whole cluster by connecting
96f2beeb
DM
34to a single {pve} node.
35
eb641429
DM
36Host based Access Control
37-------------------------
38
8c1189b6
FG
39It is possible to configure ``apache2''-like access control
40lists. Values are read from file `/etc/default/pveproxy`. For example:
eb641429
DM
41
42----
43ALLOW_FROM="10.0.0.1-10.0.0.5,192.168.0.0/22"
44DENY_FROM="all"
45POLICY="allow"
46----
47
48IP addresses can be specified using any syntax understood by `Net::IP`. The
8c1189b6 49name `all` is an alias for `0/0`.
eb641429 50
8c1189b6 51The default policy is `allow`.
eb641429
DM
52
53[width="100%",options="header"]
54|===========================================================
55| Match | POLICY=deny | POLICY=allow
56| Match Allow only | allow | allow
57| Match Deny only | deny | deny
58| No match | deny | allow
59| Match Both Allow & Deny | deny | allow
60|===========================================================
61
62
63SSL Cipher Suite
64----------------
65
8c1189b6 66You can define the cipher list in `/etc/default/pveproxy`, for example
eb641429
DM
67
68 CIPHERS="HIGH:MEDIUM:!aNULL:!MD5"
69
70Above is the default. See the ciphers(1) man page from the openssl
71package for a list of all available options.
72
73
74Diffie-Hellman Parameters
75-------------------------
76
77You can define the used Diffie-Hellman parameters in
8c1189b6 78`/etc/default/pveproxy` by setting `DHPARAMS` to the path of a file
eb641429
DM
79containing DH parameters in PEM format, for example
80
81 DHPARAMS="/path/to/dhparams.pem"
82
8c1189b6 83If this option is not set, the built-in `skip2048` parameters will be
eb641429
DM
84used.
85
86NOTE: DH parameters are only used if a cipher suite utilizing the DH key
87exchange algorithm is negotiated.
88
98a741e0
FG
89Alternative HTTPS certificate
90-----------------------------
91
8c1189b6
FG
92By default, pveproxy uses the certificate `/etc/pve/local/pve-ssl.pem`
93(and private key `/etc/pve/local/pve-ssl.key`) for HTTPS connections.
98a741e0
FG
94This certificate is signed by the cluster CA certificate, and therefor
95not trusted by browsers and operating systems by default.
96
97In order to use a different certificate and private key for HTTPS,
98store the server certificate and any needed intermediate / CA
8c1189b6 99certificates in PEM format in the file `/etc/pve/local/pveproxy-ssl.pem`
98a741e0 100and the associated private key in PEM format without a password in the
8c1189b6 101file `/etc/pve/local/pveproxy-ssl.key`.
98a741e0
FG
102
103WARNING: Do not replace the automatically generated node certificate
8c1189b6
FG
104files in `/etc/pve/local/pve-ssl.pem` and `etc/pve/local/pve-ssl.key` or
105the cluster CA files in `/etc/pve/pve-root-ca.pem` and
106`/etc/pve/priv/pve-root-ca.key`.
96f2beeb 107
9b75a03a
FG
108NOTE: There is a detailed HOWTO for configuring commercial HTTPS certificates
109on the {webwiki-url}HTTPS_Certificate_Configuration_(Version_4.x_and_newer)[wiki],
110including setup instructions for obtaining certificates from the popular free
111Let's Encrypt certificate authority.
112
96f2beeb
DM
113ifdef::manvolnum[]
114include::pve-copyright.adoc[]
115endif::manvolnum[]