]> git.proxmox.com Git - pve-docs.git/blame_incremental - pveproxy.adoc
update sdn doc
[pve-docs.git] / pveproxy.adoc
... / ...
CommitLineData
1ifdef::manvolnum[]
2pveproxy(8)
3===========
4:pve-toplevel:
5
6NAME
7----
8
9pveproxy - PVE API Proxy Daemon
10
11
12SYNOPSIS
13--------
14
15include::pveproxy.8-synopsis.adoc[]
16
17DESCRIPTION
18-----------
19endif::manvolnum[]
20
21ifndef::manvolnum[]
22pveproxy - Proxmox VE API Proxy Daemon
23======================================
24endif::manvolnum[]
25
26This daemon exposes the whole {pve} API on TCP port 8006 using
27HTTPS. It runs as user `www-data` and has very limited permissions.
28Operation requiring more permissions are forwarded to the local
29`pvedaemon`.
30
31Requests targeted for other nodes are automatically forwarded to those
32nodes. This means that you can manage your whole cluster by connecting
33to a single {pve} node.
34
35Host based Access Control
36-------------------------
37
38It is possible to configure ``apache2''-like access control
39lists. Values are read from file `/etc/default/pveproxy`. For example:
40
41----
42ALLOW_FROM="10.0.0.1-10.0.0.5,192.168.0.0/22"
43DENY_FROM="all"
44POLICY="allow"
45----
46
47IP addresses can be specified using any syntax understood by `Net::IP`. The
48name `all` is an alias for `0/0`.
49
50The default policy is `allow`.
51
52[width="100%",options="header"]
53|===========================================================
54| Match | POLICY=deny | POLICY=allow
55| Match Allow only | allow | allow
56| Match Deny only | deny | deny
57| No match | deny | allow
58| Match Both Allow & Deny | deny | allow
59|===========================================================
60
61
62Listening IP
63------------
64
65By setting `LISTEN_IP` in `/etc/default/pveproxy` you can control to which IP
66address the `pveproxy` and `spiceproxy` daemons bind. The IP-address needs to
67be configured on the system.
68
69This can be used to listen only to an internal interface and thus have less
70exposure to the public internet:
71
72----
73LISTEN_IP="192.0.2.1"
74----
75
76Similarly, you can also set an IPv6 address:
77
78----
79LISTEN_IP="2001:db8:85a3::1"
80----
81
82Note that if you want to specify a link-local IPv6 address, you need to provide
83the interface name itself. For example:
84
85----
86LISTEN_IP="fe80::c463:8cff:feb9:6a4e%vmbr0"
87----
88
89WARNING: The nodes in a cluster need access to `pveproxy` for communication,
90possibly on different sub-nets. It is **not recommended** to set `LISTEN_IP` on
91clustered systems.
92
93To apply the change you need to either reboot your node or fully restart the
94`pveproxy` and `spiceproxy` service:
95
96----
97systemctl restart pveproxy.service spiceproxy.service
98----
99
100NOTE: Unlike `reload`, a `restart` of the pveproxy service can interrupt some
101long-running worker processes, for example a running console or shell from a
102virtual guest. So, please use a maintenance window to bring this change in
103effect.
104
105SSL Cipher Suite
106----------------
107
108You can define the cipher list in `/etc/default/pveproxy`, for example
109
110 CIPHERS="ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256"
111
112Above is the default. See the ciphers(1) man page from the openssl
113package for a list of all available options.
114
115Additionally, you can set the client to choose the cipher used in
116`/etc/default/pveproxy` (default is the first cipher in the list available to
117both client and `pveproxy`):
118
119 HONOR_CIPHER_ORDER=0
120
121
122Diffie-Hellman Parameters
123-------------------------
124
125You can define the used Diffie-Hellman parameters in
126`/etc/default/pveproxy` by setting `DHPARAMS` to the path of a file
127containing DH parameters in PEM format, for example
128
129 DHPARAMS="/path/to/dhparams.pem"
130
131If this option is not set, the built-in `skip2048` parameters will be
132used.
133
134NOTE: DH parameters are only used if a cipher suite utilizing the DH key
135exchange algorithm is negotiated.
136
137Alternative HTTPS certificate
138-----------------------------
139
140You can change the certificate used to an external one or to one obtained via
141ACME.
142
143pveproxy uses `/etc/pve/local/pveproxy-ssl.pem` and
144`/etc/pve/local/pveproxy-ssl.key`, if present, and falls back to
145`/etc/pve/local/pve-ssl.pem` and `/etc/pve/local/pve-ssl.key`.
146The private key may not use a passphrase.
147
148See the Host System Administration chapter of the documentation for details.
149
150COMPRESSION
151-----------
152
153By default `pveproxy` uses gzip HTTP-level compression for compressible
154content, if the client supports it. This can disabled in `/etc/default/pveproxy`
155
156 COMPRESSION=0
157
158ifdef::manvolnum[]
159include::pve-copyright.adoc[]
160endif::manvolnum[]