2016-04-10 10:33:40 +02:00
ifdef::manvolnum[]
2016-10-10 17:46:48 +02:00
PVE(8)
======
2016-04-10 10:33:40 +02:00
include::attributes.txt[]
2016-10-14 06:49:09 +02:00
:pve-toplevel:
2016-04-10 10:33:40 +02:00
NAME
----
pveproxy - PVE API Proxy Daemon
2016-10-06 15:12:49 +02:00
SYNOPSIS
2016-04-10 10:33:40 +02:00
--------
include::pveproxy.8-synopsis.adoc[]
DESCRIPTION
-----------
endif::manvolnum[]
ifndef::manvolnum[]
2016-10-06 15:01:52 +02:00
pveproxy - Proxmox VE API Proxy Daemon
======================================
2016-04-10 10:33:40 +02:00
include::attributes.txt[]
endif::manvolnum[]
This daemon exposes the whole {pve} API on TCP port 8006 using
2016-09-27 10:58:50 +02:00
HTTPS. It runs as user `www-data` and has very limited permissions.
2016-04-10 10:33:40 +02:00
Operation requiring more permissions are forwarded to the local
2016-09-27 10:58:50 +02:00
`pvedaemon`.
2016-04-10 10:33:40 +02:00
2016-04-10 10:47:52 +02:00
Requests targeted for other nodes are automatically forwarded to those
nodes. This means that you can manage your whole cluster by connecting
2016-04-10 10:33:40 +02:00
to a single {pve} node.
2016-04-10 10:47:52 +02:00
Host based Access Control
-------------------------
2016-09-27 10:58:50 +02:00
It is possible to configure ``apache2''-like access control
lists. Values are read from file `/etc/default/pveproxy`. For example:
2016-04-10 10:47:52 +02:00
----
ALLOW_FROM="10.0.0.1-10.0.0.5,192.168.0.0/22"
DENY_FROM="all"
POLICY="allow"
----
IP addresses can be specified using any syntax understood by `Net::IP`. The
2016-09-27 10:58:50 +02:00
name `all` is an alias for `0/0`.
2016-04-10 10:47:52 +02:00
2016-09-27 10:58:50 +02:00
The default policy is `allow`.
2016-04-10 10:47:52 +02:00
[width="100%",options="header"]
|===========================================================
| Match | POLICY=deny | POLICY=allow
| Match Allow only | allow | allow
| Match Deny only | deny | deny
| No match | deny | allow
| Match Both Allow & Deny | deny | allow
|===========================================================
SSL Cipher Suite
----------------
2016-09-27 10:58:50 +02:00
You can define the cipher list in `/etc/default/pveproxy`, for example
2016-04-10 10:47:52 +02:00
CIPHERS="HIGH:MEDIUM:!aNULL:!MD5"
Above is the default. See the ciphers(1) man page from the openssl
package for a list of all available options.
Diffie-Hellman Parameters
-------------------------
You can define the used Diffie-Hellman parameters in
2016-09-27 10:58:50 +02:00
`/etc/default/pveproxy` by setting `DHPARAMS` to the path of a file
2016-04-10 10:47:52 +02:00
containing DH parameters in PEM format, for example
DHPARAMS="/path/to/dhparams.pem"
2016-09-27 10:58:50 +02:00
If this option is not set, the built-in `skip2048` parameters will be
2016-04-10 10:47:52 +02:00
used.
NOTE: DH parameters are only used if a cipher suite utilizing the DH key
exchange algorithm is negotiated.
2016-04-15 13:16:03 +02:00
Alternative HTTPS certificate
-----------------------------
2016-09-27 10:58:50 +02:00
By default, pveproxy uses the certificate `/etc/pve/local/pve-ssl.pem`
(and private key `/etc/pve/local/pve-ssl.key`) for HTTPS connections.
2016-04-15 13:16:03 +02:00
This certificate is signed by the cluster CA certificate, and therefor
not trusted by browsers and operating systems by default.
In order to use a different certificate and private key for HTTPS,
store the server certificate and any needed intermediate / CA
2016-09-27 10:58:50 +02:00
certificates in PEM format in the file `/etc/pve/local/pveproxy-ssl.pem`
2016-04-15 13:16:03 +02:00
and the associated private key in PEM format without a password in the
2016-09-27 10:58:50 +02:00
file `/etc/pve/local/pveproxy-ssl.key`.
2016-04-15 13:16:03 +02:00
WARNING: Do not replace the automatically generated node certificate
2016-09-27 10:58:50 +02:00
files in `/etc/pve/local/pve-ssl.pem` and `etc/pve/local/pve-ssl.key` or
the cluster CA files in `/etc/pve/pve-root-ca.pem` and
`/etc/pve/priv/pve-root-ca.key`.
2016-04-10 10:33:40 +02:00
2016-10-06 12:32:13 +02:00
NOTE: There is a detailed HOWTO for configuring commercial HTTPS certificates
on the {webwiki-url}HTTPS_Certificate_Configuration_(Version_4.x_and_newer)[wiki],
including setup instructions for obtaining certificates from the popular free
Let's Encrypt certificate authority.
2016-04-10 10:33:40 +02:00
ifdef::manvolnum[]
include::pve-copyright.adoc[]
endif::manvolnum[]