Next: , Previous: , Up: Servicios   [Contents][Index]


11.10.24 Servicios VPN

The (gnu services vpn) module provides services related to virtual private networks (VPNs).

Bitmask

Variable: bitmask-service-type

A service type for the Bitmask VPN client. It makes the client available in the system and loads its polkit policy. Please note that the client expects an active polkit-agent, which is either run by your desktop-environment or should be run manually.

OpenVPN

It provides a client service for your machine to connect to a VPN, and a server service for your machine to host a VPN. Both openvpn-client-service-type and openvpn-server-service-type can be run simultaneously.

Variable: openvpn-client-service-type

Type of the service that runs openvpn, a VPN daemon, as a client.

The value for this service is a <openvpn-client-configuration> object.

Variable: openvpn-server-service-type

Type of the service that runs openvpn, a VPN daemon, as a server.

The value for this service is a <openvpn-server-configuration> object.

Data Type: openvpn-client-configuration

Los campos disponibles de openvpn-client-configuration son:

openvpn (default: openvpn) (type: file-like)

El paquete OpenVPN.

pid-file (default: "/var/run/openvpn/openvpn.pid") (type: string)

El archivo de pid de OpenVPN.

proto (default: udp) (type: proto)

El protocolo (UDP o TCP) usado para la apertura del canal entre clientes y servidores.

dev (default: tun) (type: dev)

El tipo de dispositivo usado para representar la conexión VPN.

ca (default: "/etc/openvpn/ca.crt") (type: maybe-string)

La autoridad de certificación contra la que se comprueban las conexiones.

cert (default: "/etc/openvpn/client.crt") (type: maybe-string)

El certificado de la máquina en la que se ejecuta el daemon. Debe estar firmado por la autoridad proporcionada en ca.

key (default: "/etc/openvpn/client.key") (type: maybe-string)

La clave de la máquina en la que se ejecuta el daemon. Debe ser la clave cuyo certificado es cert.

comp-lzo? (default: #t) (type: boolean)

Determina si se usa el algoritmo de compresión lzo.

persist-key? (default: #t) (type: boolean)

No vuelve a leer los archivos de claves tras la señal SIGUSR1 o –ping-restart.

persist-tun? (default: #t) (type: boolean)

No cierra y reabre el dispositivo TUN/TAP o ejecuta los guiones de parada e inicio tras el reinicio provocado por SIGUSR1 o –ping-restart.

fast-io? (default: #f) (type: boolean)

(Experimental) Optimiza las escrituras de E/S de TUN/TAP/UDP evitando llamar poll/epoll/select antes de la operación de escritura (write).

verbosity (default: 3) (type: number)

Nivel de detalle en los mensajes.

tls-auth (default: #f) (type: tls-auth-client)

Añade una capa adicional de verificación HMAC sobre el canal de control TLS para protección contra ataques de denegación de servicio (DoS).

auth-user-pass (type: maybe-string)

Activa la identificación con el servidor mediante el uso de usuaria/contraseña. La opción es un archivo que contiene en dos líneas el nombre de usuaria y la contraseña. No use un objeto tipo-archivo, ya que se añadiría al almacén y sería legible para cualquier usuaria.

verify-key-usage? (default: #t) (type: key-usage)

Si se comprueba que el certificado del servidor tenga la extensión de uso de servidor.

bind? (default: #f) (type: bind)

Asociación a un número específico de puerto local.

resolv-retry? (default: #t) (type: resolv-retry)

Reintentos de resolución de la dirección del servidor.

remote (default: '()) (type: openvpn-remote-list)

Una lista de servidores remotos a los que conectarse.

Data Type: openvpn-remote-configuration

Los campos disponibles de openvpn-remote-configuration son:

name (default: "my-server") (type: string)

Nombre del servidor.

port (default: 1194) (type: number)

Puerto en el que escucha el servidor.

Data Type: openvpn-server-configuration

Los campos disponibles de openvpn-server-configuration son:

openvpn (default: openvpn) (type: file-like)

El paquete OpenVPN.

pid-file (default: "/var/run/openvpn/openvpn.pid") (type: string)

El archivo de pid de OpenVPN.

proto (default: udp) (type: proto)

El protocolo (UDP o TCP) usado para la apertura del canal entre clientes y servidores.

dev (default: tun) (type: dev)

El tipo de dispositivo usado para representar la conexión VPN.

ca (default: "/etc/openvpn/ca.crt") (type: maybe-string)

La autoridad de certificación contra la que se comprueban las conexiones.

cert (default: "/etc/openvpn/client.crt") (type: maybe-string)

El certificado de la máquina en la que se ejecuta el daemon. Debe estar firmado por la autoridad proporcionada en ca.

key (default: "/etc/openvpn/client.key") (type: maybe-string)

La clave de la máquina en la que se ejecuta el daemon. Debe ser la clave cuyo certificado es cert.

comp-lzo? (default: #t) (type: boolean)

Determina si se usa el algoritmo de compresión lzo.

persist-key? (default: #t) (type: boolean)

No vuelve a leer los archivos de claves tras la señal SIGUSR1 o –ping-restart.

persist-tun? (default: #t) (type: boolean)

No cierra y reabre el dispositivo TUN/TAP o ejecuta los guiones de parada e inicio tras el reinicio provocado por SIGUSR1 o –ping-restart.

fast-io? (default: #f) (type: boolean)

(Experimental) Optimiza las escrituras de E/S de TUN/TAP/UDP evitando llamar poll/epoll/select antes de la operación de escritura (write).

verbosity (default: 3) (type: number)

Nivel de detalle en los mensajes.

tls-auth (default: #f) (type: tls-auth-server)

Añade una capa adicional de verificación HMAC sobre el canal de control TLS para protección contra ataques de denegación de servicio (DoS).

port (default: 1194) (type: number)

Especifica el número de puerto en el que escucha el servidor.

server (default: "10.8.0.0 255.255.255.0") (type: ip-mask)

Una IP y una máscara que especifiquen la subred dentro de la red virtual.

server-ipv6 (default: #f) (type: cidr6)

La especificación de una subred IPv6 dentro de la red virtual en notación CIDR.

dh (default: "/etc/openvpn/dh2048.pem") (type: string)

El archivo de parámetros Diffie-Hellman.

ifconfig-pool-persist (default: "/etc/openvpn/ipp.txt") (type: string)

El archivo que registra IP de clientes.

redirect-gateway? (default: #f) (type: gateway)

Cuando sea verdadero, el servidor actuará como una pasarela para sus clientes.

client-to-client? (default: #f) (type: boolean)

Cuando es verdadero, se permite la comunicación entre clientes dentro de la VPN.

keepalive (default: (10 120)) (type: keepalive)

Hace que se envíen mensajes tipo-ping en ambas direcciones a través del enlace de modo que cada extremo conozca si el otro extremo no está disponible. keepalive necesita un par. El primer elemento es el periodo de envío de ping, y el segundo elemento es el plazo máximo antes de considerar que el otro extremo no está disponible.

max-clients (default: 100) (type: number)

Número máximo de clientes.

status (default: "/var/run/openvpn/status") (type: string)

El archivo de estado. Este archivo muestra un pequeño informe sobre la conexión actual. Su contenido se borra y se reescribe cada minuto.

client-config-dir (default: '()) (type: openvpn-ccd-list)

Lista de configuración para algunos clientes.

strongSwan

Currently, the strongSwan service only provides legacy-style configuration with ipsec.conf and ipsec.secrets files.

Variable: strongswan-service-type

A service type for configuring strongSwan for IPsec VPN (Virtual Private Networking). Its value must be a strongswan-configuration record as in this example:

(service strongswan-service-type
         (strongswan-configuration
          (ipsec-conf "/etc/ipsec.conf")
          (ipsec-secrets "/etc/ipsec.secrets")))
Data Type: strongswan-configuration

Data type representing the configuration of the StrongSwan service.

strongswan

The strongSwan package to use for this service.

ipsec-conf (default: #f)

The file name of your ipsec.conf. If not #f, then this and ipsec-secrets must both be strings.

ipsec-secrets (default #f)

The file name of your ipsec.secrets. If not #f, then this and ipsec-conf must both be strings.

Wireguard

Variable: wireguard-service-type

A service type for a Wireguard tunnel interface. Its value must be a wireguard-configuration record as in this example:

(service wireguard-service-type
         (wireguard-configuration
          (peers
           (list
            (wireguard-peer
             (name "my-peer")
             (endpoint "my.wireguard.com:51820")
             (public-key "hzpKg9X1yqu1axN6iJp0mWf6BZGo8m1wteKwtTmDGF4=")
             (allowed-ips '("10.0.0.2/32")))))))
Data Type: wireguard-configuration

Data type representing the configuration of the Wireguard service.

wireguard

The wireguard package to use for this service.

interface (default: "wg0")

The interface name for the VPN.

addresses (default: '("10.0.0.1/32"))

List of strings or G-expressions which represent the IP addresses to be assigned to the above interface.

port (default: 51820)

The port on which to listen for incoming connections.

dns (default: '()))

List of strings or G-expressions which represent the DNS server(s) to announce to VPN clients via DHCP.

monitor-ips? (default: #f)

Whether to monitor the resolved Internet addresses (IPs) of the endpoints of the configured peers, resetting the peer endpoints using an IP address that no longer correspond to their freshly resolved host name. Set this to #t if one or more endpoints use host names provided by a dynamic DNS service to keep the sessions alive.

monitor-ips-interval (default: '(next-minute (range 0 60 5)))

The time interval at which the IP monitoring job should run, provided as an mcron time specification (see (mcron)Guile Syntax).

private-key (default: "/etc/wireguard/private.key")

The private key file for the interface. It is automatically generated if the file does not exist. If this field is #f, a private key is not automatically created and the path is not serialized to the configuration file.

bootstrap-private-key? (default: #t)

Whether or not the private key should be generated automatically if it does not exist.

Setting this to #f allows one to set the private key using command substitution. One example shown in the wg-quick(8) manual is retrieving a private key using password-store. This can be achieved with the following code:

(wireguard-configuration
 (private-key
  #~(string-append "<("
                   #$(file-append password-store "/bin/pass")
                   ;; Wireguard replaces %i with the interface name.
                   " WireGuard/private-keys/%i)")))
peers (default: '())

The authorized peers on this interface. This is a list of wireguard-peer records.

pre-up (default: '())

List of strings or G-expressions. These are script snippets which will be executed before setting up the interface.

post-up (default: '())

List of strings or G-expressions. These are script snippets which will be executed after setting up the interface.

pre-down (default: '())

List of strings or G-expressions. These are script snippets which will be executed before tearing down the interface.

post-down (default: '())

List of strings or G-expressions. These are script snippets which will be executed after tearing down the interface.

table (default: "auto")

The routing table to which routes are added, as a string. There are two special values: "off" that disables the creation of routes altogether, and "auto" (the default) that adds routes to the default table and enables special handling of default routes.

Data Type: wireguard-peer

Data type representing a Wireguard peer attached to a given interface.

name

The peer name.

endpoint (default: #f)

The optional endpoint for the peer, such as "demo.wireguard.com:51820".

public-key

The peer public-key represented as a base64 string.

preshared-key (default: #f)

An optional pre-shared key file for this peer that can be either a string or a G-expression. The given file will not be autogenerated.

allowed-ips

A list of IP addresses from which incoming traffic for this peer is allowed and to which incoming traffic for this peer is directed.

keep-alive (default: #f)

An optional time interval in seconds. A packet will be sent to the server endpoint once per time interval. This helps receiving incoming connections from this peer when you are behind a NAT or a firewall.


Next: Sistema de archivos en red, Previous: VNC Services, Up: Servicios   [Contents][Index]