Siguiente: Actualizaciones no-atendidas, Anterior: Rotación del registro de mensajes, Subir: Servicios [Índice general][Índice]
El módulo (gnu services networking)
proporciona servicios para
configurar la interfaz de red.
Este es el tipo de los servicios que ejecutan dhcp, un cliente del
protocolo de configuración dinámica de máquinas DHCP, en todas las
interfaces de red no locales. Su valor es el paquete del cliente DHCP,
isc-dhcp
de manera predeterminada.
Este tipo define un servicio que ejecuta el daemon DHCP. Para crear un
servicio de este tipo debe proporcionar un objeto
<dhcpd-configuration>
. Por ejemplo:
(service dhcpd-service-type
(dhcpd-configuration
(config-file (local-file "mi-dhcpd.conf"))
(interfaces '("enp0s25"))))
package
(predeterminado: isc-dhcp
)El paquete que proporciona el daemon DHCP. Se espera que este paquete proporcione el daemon en sbin/dhcpd de manera relativa a su directorio de salida. El paquete predeterminado es el servidor DHCP de ISC.
config-file
(predeterminado: #f
)El archivo de configuración usado. Esta opción es necesaria. Se le
proporcionará a dhcpd
a través de su opción -cf
. Puede ser
cualquier objeto “tipo-archivo” (véase objetos
“tipo-archivo”). Véase man dhcpd.conf
para detalles sobre la
sintaxis del archivo de configuración.
version
(predeterminada: "4"
)La versión DHCP usada. El servidor DHCP de ISC permite los valores “4”,
“6” y “4o6”. Corresponden con las opciones -4
, -6
y
-4o6
del programa dhcpd
. Véase man dhcpd
para más
detalles.
run-directory
(predeterminado: "/run/dhcpd"
)El directorio de ejecución usado. Durante la activación del servicio se creará en caso de no existir.
pid-file
(predeterminado: "/run/dhcpd/dhcpd.pid"
)El archivo de PID usado. Corresponde con la opción -pf
de
dhcpd
. Véase man dhcpd
para más detalles.
interfaces
(predeterminadas: '()
)Los nombres de las interfaces de red en las que dhcpd debería esperar
retransmisiones. Si la lista no está vacía, entonces sus elementos (que
deben ser cadenas) se añadirá a la invocación de dhcpd
cuando se
inicie el daemon. Puede no ser necesaria la especificación explícita aquí de
ninguna interfaz; véase man dhcpd
para más detalles.
Este es el tipo para las interfaces de red configuradas de forma estática.
'()
] [#:requirement'(udev)
]
Devuelve un servicio que activa la interfaz con la dirección
ip. Si netmask es verdadero, se usa como máscara de red. Si
gateway es verdadero, se usa como cadena que especifica la pasarela
predeterminada de la red. requirement puede usarse para especificar
una dependencia en otro servicio antes de configurar la interfaz.
Se puede llamar a este procedimiento varias veces, una por cada interfaz de
red sobre la que se tenga interés. Internamente, lo que hace es extender
static-networking-service-type
con interfaces de red adicionales que
gestionar.
Por ejemplo:
(static-networking-service "eno1" "192.168.1.82"
#:gateway "192.168.1.2"
#:name-servers '("192.168.1.2"))
Devuelve un servicio que ejecuta Wicd, un daemon de gestión de red que intenta simplificar la gestión de redes cableadas e inalámbricas.
Este servicio añade wicd al perfil global, proporcionando varias
ordenes destinadas a la interacción con el daemon y a la configuración de la
red: wicd-client
, una interfaz gráfica, y las interfaces de
usuaria wicd-cli
y wicd-curses
.
Este es el tipo de servicio para el servicio
ModemManager. El valor
para este tipo de servicio es un registro
modem-manager-configuration
.
Este servicio es parte de %desktop-services
(véase Servicios de escritorio).
Tipo de datos que representa la configuración de ModemManager.
modem-manager
(predeterminado: modem-manager
)El paquete de ModemManager usado.
Este es el tipo de servicio para el servicio
USB_ModeSwitch. El valor
para este tipo de servicio es un registro
usb-modeswitch-configuration
.
Cuando se conectan, algunos modem USB (y otros dispositivos USB) se presentan inicialmente como medios de almacenamiento de sólo-lectura y no como un modem. Deben cambiar de modo antes de poder usarse. El tipo de servicio USB_ModeSwitch instala reglas de udev para cambiar automáticamente de modo cuando se conecten estos dispositivos.
Este servicio es parte de %desktop-services
(véase Servicios de escritorio).
Tipo de datos que representa la configuración de USB_ModeSwitch.
usb-modeswitch
(predeterminado: usb-modeswitch
)El paquete USB_ModeSwitch que proporciona los binarios para el cambio de modo.
usb-modeswitch-data
(predeterminado: usb-modeswitch-data
)El paquete que proporciona los datos de dispositivos y las reglas de udev usadas por USB_ModeSwitch.
config-file
(predeterminado: #~(string-append #$usb-modeswitch:dispatcher "/etc/usb_modeswitch.conf")
)Archivo de configuración usado para el gestor de eventos (dispatcher) de
USB_ModeSwitch. De manera predeterminada se usa el archivo que viene con
USB_ModeSwitch, que deshabilita el registro en /var/log junto a otras
configuraciones. Si se proporciona #f
no se usa ningún archivo de
configuración.
Este es el tipo de servicio para el servicio
NetworkManager. El
valor para este tipo de servicio es un registro
network-manager-configuration
.
Este servicio es parte de %desktop-services
(véase Servicios de escritorio).
Tipo de datos que representa la configuración de NetworkManager.
network-manager
(predeterminado: network-manager
)El paquete de NetworkManager usado.
dns
(predeterminado: "default"
)Modo de procesamiento para DNS, que afecta la manera en la que
NetworkManager usa el archivo de configuración resolv.conf
.
NetworkManager actualizará resolv.conf
para reflejar los servidores
de nombres proporcionados por las conexiones activas actualmente.
NetworkManager ejecutará dnsmasq
como una caché local del servicio de
nombres, mediante un reenvío condicional si se encuentra conectada a
una VPN, y actualiza posteriormente resolv.conf
para apuntar al
servidor de nombres local.
Con esta configuración puede compartir su conexión de red. Por ejemplo,
cuando desee compartir su conexión de red a otro equipo a través de un cable
Ethernet, puede abrir nm-connection-editor
y configurar el método
de la conexión cableada para IPv4 y IPv6 “Compartida con otros equipos” y
restablecer la conexión (o reiniciar).
También puede configurar una conexión anfitrión-invitado a las
máquinas virtuales de QEMU (véase Instalación de Guix en una máquina virtual). Con una
conexión anfitrión-invitado puede, por ejemplo, acceder a un servidor web
que se ejecute en la máquina virtual (véase Servicios Web) desde un
navegador web en su sistema anfitrión, o conectarse a la máquina virtual a
través de SSH (véase openssh-service-type
). Para configurar una conexión
anfitrión-invitado, ejecute esta orden una única vez:
nmcli connection add type tun \ connection.interface-name tap0 \ tun.mode tap tun.owner $(id -u) \ ipv4.method shared \ ipv4.addresses 172.28.112.1/24
Cada vez que arranque su máquina virtual de QEMU (véase Ejecutar Guix en una máquina virtual), proporcione -nic tap,ifname=tap0,script=no,downscript=no a
qemu-system-...
.
NetworkManager no modificará resolv.conf
.
vpn-plugins
(predeterminados: '()
)Esta es la lista de módulos disponibles para redes privadas virtuales
(VPN). Un ejemplo es el paquete network-manager-openvpn
, que permite
a NetworkManager la gestión de redes VPN a través de OpenVPN.
Este es el tipo de servicio para la ejecución de Connman, un gestor de conexiones de red.
Su valor debe ser un registro connman-configuration
como en este
ejemplo:
(service connman-service-type
(connman-configuration
(disable-vpn? #t)))
Véase a continuación más detalles sobre connman-configuration
.
Tipo de datos que representa la configuración de connman.
connman
(predeterminado: connman)El paquete connman usado.
disable-vpn?
(predeterminado: #f
)Cuando es verdadero, desactiva el módulo vpn de connman.
Este es el tipo de servicio para la ejecución de WPA supplicant, un daemon de identificación necesario para la identificación en redes WiFi o ethernet cifradas.
Tipo de datos que representa la configuración de WPA Supplicant.
Toma los siguientes parámetros:
wpa-supplicant
(predeterminado: wpa-supplicant
)El paquete de WPA Supplicant usado.
requirement
(predeterminados: '(user-processes loopback syslogd)
Lista de servicios que deben iniciarse antes del arranque de WPA Supplicant.
dbus?
(predeterminado: #t
)Si se escuchan o no peticiones en D-Bus.
pid-file
(predeterminado: "/var/run/wpa_supplicant.pid"
)Dónde se almacena el archivo con el PID.
interface
(predeterminado: #f
)En caso de proporcionarse un valor, debe especificar el nombre de la interfaz de red que WPA supplicant controlará.
config-file
(predeterminado: #f
)Archivo de configuración opcional usado.
extra-options
(predeterminadas: '()
)Lista de parámetros adicionales a pasar al daemon en la línea de órdenes.
Este es el tipo de servicio que ejecuta el daemon
hostapd para configurar puntos de acceso WiFi
(IEEE 802.11) y servidores de identificación. Su valor debe ser un registro
hostapd-configuration
como en este ejemplo:
;; Use wlan1 para ejecutar el punto de acceso para "Mi red". (service hostapd-service-type (hostapd-configuration (interface "wlan1") (ssid "Mi red") (channel 12)))
Este tipo de datos representa la configuración del servicio hostapd, y tiene los siguientes campos:
package
(predeterminado: hostapd
)El paquete hostapd usado.
interface
(predeterminado: "wlan0"
)La interfaz de red en la que se establece el punto de acceso WiFi.
ssid
El SSID (identificador del servicio, del inglés “service set identifier”), una cadena que identifica esta red.
broadcast-ssid?
(predeterminado: #t
)Determina si se emite este SSID.
channel
(predeterminado: 1
)El canal WiFi usado.
driver
(predeterminado: "nl80211"
)El tipo de controlador de la interfaz. "nl80211"
se usa con todos
los controladores de mac80211 de Linux. Use "none"
si está
construyendo hostapd como un servidor RADIUS independiente que no controla
ningún controlador de red cableada o inalámbrica.
extra-settings
(predeterminado: ""
)Configuración adicional que se añade literalmente al archivo de configuración de hostapd. Véase https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf para la referencia del archivo de configuración.
Tipo de servicio que simula una red inalámbrica (“WiFi”), lo que puede ser
útil en máquinas virtuales para realizar pruebas. El servicio carga el
módulo mac80211_hwsim
del núcleo Linux e inicia hostapd para crear
una red inalámbrica virtual que puede verse en wlan0
, de manera
predeterminada.
El valor de este servicio es un registro hostapd-configuration
.
Este es el tipo de servicio para la aplicación de configuración de iptables. iptables es un entorno de trabajo para el filtrado de paquetes implementado por el núcleo Linux. Este servicio permite la configuración de iptables tanto para IPv4 como IPv6. Un ejemplo simple de cómo rechazar todas las conexiones entrantes excepto aquellas al puerto 22 de ssh se muestra a continuación.
(service iptables-service-type
(iptables-configuration
(ipv4-rules (plain-file "reglas.iptables" "*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
COMMIT
"))
(ipv6-rules (plain-file "reglas.ip6tables" "*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp6-port-unreachable
COMMIT
"))))
El tipo de datos que representa la configuración de iptables.
iptables
(predeterminado: iptables
)El paquete iptables que proporciona iptables-restore
y
ip6tables-restore
.
ipv4-rules
(predeterminado: %iptables-accept-all-rules
)Las reglas de iptables usadas. Se le proporcionarán a
iptables-restore
. Puede ser cualquier objeto “tipo-archivo”
(véase objetos “tipo-archivo”).
ipv6-rules
(predeterminadas: %iptables-accept-all-rules
)Las reglas de ip6tables usadas. Se le proporcionarán a
ip6tables-restore
. Puede ser cualquier objeto “tipo-archivo”
(véase objetos “tipo-archivo”).
Es el tipo de servicio para levantar una configuración de nftables. nftables
es un proyecto de netfilter que quiere reemplazar los entornos ya existentes
iptables, ip6tables, arptables y ebtables. Proporciona un entorno de
filtrado de paquetes nuevo, una utilidad nft
de espacio de usuaria
nueva y una capa de compatibilidad con iptables. El servicio viene con un
conjunto de reglas predeterminado %default-nftables-ruleset
que
rechaza todas las conexiones entrantes excepto las del puerto 22. Para
usarlo, simplemente escriba:
El tipo de datos que representa la configuración de nftables.
package
(predeterminado: nftables
)El paquete nftables que proporciona nft
.
ruleset
(predeterminados: %default-nftables-ruleset
)El conjunto de reglas de nftables usado. Puede ser cualquier objeto “tipo-archivo” (véase objetos “tipo-archivo”).
Este es el tipo del servicio que ejecuta el daemon del
protocolo de tiempo en red (NTP),
ntpd
. El daemon mantendrá el reloj del sistema sincronizado con el
de los servidores NTP especificados.
El valor de este servicio es un objeto ntpd-configuration
, como se
describe a continuación.
Este es el tipo de datos para la configuración del servicio NTP.
servers
(predeterminados: %ntp-servers
)La lista de servidores (registros <ntp-server>
) con los que la
herramienta ntpd
se sincronizará. Véase la información sobre el
tipo de datos ntp-server
a continuación.
allow-large-adjustment?
(predeterminado: #t
)Esto determina si se le permite a ntpd
realizar un ajuste inicial
de más de 1000 segundos.
ntp
(predeterminado: ntp
)El paquete NTP usado.
Lista de nombres de máquinas usadas como servidores NTP predeterminados. Son servidores del NTP Pool Project.
Tipo de datos que representa la configuración de un servidor NTP.
type
(predeterminado: 'server
)El tipo del servidor NTP, proporcionado como un símbolo. Puede ser
'pool
, 'server
, 'peer
, 'broadcast
o
'manycastclient
.
address
La dirección del servidor, como una cadena.
options
Opciones de NTPD usadas en ese servidor específico, proporcionada como una lista de nombres de opciones y/o tuplas de nombre y valor. El siguiente ejemplo define un servidor con el que se usan las opciones iburst y prefer, así como version 3 y un tiempo de 16 segundos para maxpoll.
(ntp-server (type 'server) (address "miservidor.ntp.server.org") (options `(iburst (version 3) (maxpoll 16) prefer))))
Ejecuta ntpd
, el daemon del protocolo de tiempo en red (NTP),
implementado por OpenNTPD. El daemon
mantendrá el reloj del sistema sincronizado con el de los servidores
proporcionados.
(service
openntpd-service-type
(openntpd-configuration
(listen-on '("127.0.0.1" "::1"))
(sensor '("udcf0 correction 70000"))
(constraint-from '("www.gnu.org"))
(constraints-from '("https://www.google.com/"))
(allow-large-adjustment? #t)))
Esta variable es una lista de las direcciones de servidores definidos en
%ntp-servers
.
openntpd
(predeterminado: (file-append openntpd "/sbin/ntpd")
)El ejecutable openntpd usado.
listen-on
(predeterminadas: '("127.0.0.1" "::1")
)Una lista de direcciones IP o nombres de máquina en los que el daemon ntpd debe escuchar conexiones.
query-from
(predeterminadas: '()
)Una lista de direcciones IP locales que el daemon ntpd debe usar para consultas salientes.
sensor
(predeterminados: '()
)Especifica una lista de dispositivos de sensores de tiempo de ntpd debería
usar. ntpd
escuchará cada sensor que realmente exista e ignora los
que no. Véase la documentación de
las desarrolladoras originales para más información.
server
(predeterminado: '()
)Especifica una lista de direcciones IP o nombres de máquina de servidores NTP con los que sincronizarse.
servers
(predeterminada: %openntp-servers
)Una lista de direcciones IP o nombres de máquina con los que el daemon ntpd se debe sincronizar.
constraint-from
(predeterminado: '()
)ntpd
puede configurarse para que solicite la fecha a través del campo
“Date” de servidores HTTPS en los que se confíe a través de TLS. Esta
información de tiempo no se usa por precisión pero actúa como una condición
verificada, por tanto reduciendo el impacto de ataques mediante la
intervención del tráfico con servidores NTP no verificados. Especifica una
lista de URL, direcciones IP o nombres de máquina de servidores HTTPS que
proporcionarán la condición.
constraints-from
(predeterminadas: '()
)Como en constraint-from, proporciona una lista de URL, direcciones IP
o nombres de máquina de servidores HTTP para proporcionar la condición. En
caso de que el nombre de máquina resuelva en múltiples direcciones IP,
ntpd
calculará la condición mediana de todas ellas.
allow-large-adjustment?
(predeterminado: #f
)Determina si se permite a ntpd
realizar un ajuste inicial de más de
180 segundos.
Este servicio ejecuta el daemon inetd
(véase inetd invocation en GNU Inetutils). inetd
escucha conexiones en sockets de
internet, e inicia bajo demanda el programa servidor cuando se realiza una
conexión en uno de esos sockets.
El valor de este servicio es un objeto inetd-configuration
. El
ejemplo siguiente configura el daemon inetd
para proporcionar el
servicio echo
implementado por él mismo, así como un servicio smtp
que reenvía el tráfico smtp por ssh a un servidor servidor-smtp
tras
la pasarela máquina
:
(service
inetd-service-type
(inetd-configuration
(entries (list
(inetd-entry
(name "echo")
(socket-type 'stream)
(protocol "tcp")
(wait? #f)
(user "root"))
(inetd-entry
(node "127.0.0.1")
(name "smtp")
(socket-type 'stream)
(protocol "tcp")
(wait? #f)
(user "root")
(program (file-append openssh "/bin/ssh"))
(arguments
'("ssh" "-qT" "-i" "/ruta/de/la/clave_ssh"
"-W" "servidor-smtp:25" "usuaria@maquina")))))))
A continuación se proporcionan más detalles acerca de
inetd-configuration
.
Tipo de datos que representa la configuración de inetd
.
program
(predeterminado: (file-append inetutils "/libexec/inetd")
)El ejecutable inetd
usado.
entries
(predeterminadas: '()
)Una lista de entradas de servicio de inetd
. Cada entrada debe
crearse con el constructor inted-entry
.
Tipo de datos que representa una entrada en la configuración de
inetd
. Cada entrada corresponde a un socket en el que
inetd
escuchará a la espera de peticiones.
node
(predeterminado: #f
)Cadena opcional, una lista separada por comas de direcciones locales que
inetd
debería usar cuando se escuche para este
servicio. Véase Configuration file en GNU Inetutils para una
descripción completa de todas las opciones.
name
Una cadena, el nombre debe corresponder con una entrada en
/etc/services
.
socket-type
Puede ser 'stream
, 'dgram
, 'raw
, 'rdm
o
'seqpacket
.
protocol
Una cadena, debe corresponder con una entrada en /etc/protocols
.
wait?
(predeterminado: #t
)Si inetd
debe esperar la salida del servidor antes de reiniciar la
escucha de nuevas peticiones de servicio.
user
Una cadena que contiene el nombre (y, opcionalmente, el grupo) de la usuaria
como la que se deberá ejecutar el servidor. El nombe de grupo se puede
especificar en un sufijo, separado por dos puntos o un punto normal, es
decir "usuaria"
, "usuaria:grupo"
o "usuaria.grupo"
.
program
(predeterminado: "internal"
)El programa servidor que recibirá las peticiones, o "internal"
si
inetd
debería usar un servicio implementado internamente.
arguments
(predeterminados: '()
)Una lista de cadenas u objetos “tipo-archivo”, que serán los parámetros
del programa servidor, empezando con el parámetro 0, es decir, el nombre del
programa en sí mismo. Para los servicios internos de inetd
, esta
entrada debe ser '()
o '("internal")
.
Véase Configuration file en GNU Inetutils, para una información más detallada sobre cada campo de la configuración.
Este es el tipo para un servicio que ejecuta el daemon de red anónima
Tor. El servicio se configura mediante un
registro <tor-configuration>
. De manera predeterminada, el daemon Tor
se ejecuta como la usuaria sin privilegios tor
, que es miembro del
grupo tor
.
tor
(predeterminado: tor
)El paquete que proporciona el daemon Tor. Se espera que este paquete proporcione el daemon en bin/tor de manera relativa al directorio de su salida. El paquete predeterminado es la implementación del Proyecto Tor.
config-file
(predeterminado: (plain-file "empty" "")
)El archivo de configuración usado. Se agregará al final del archivo de
configuración predeterminado, y se proporcionará el archivo de configuración
resultante a tor
a través de su opción -f
. Puede ser cualquier
objeto “tipo-archivo” (véase objetos
“tipo-archivo”). Véase man tor
para detalles sobre la sintaxis del
archivo de configuración.
hidden-services
(predeterminados: '()
)La lista de registros de servicios ocultos <hidden-service>
usados. Para cada servicio oculto que añada en esta lista, se activará la
configuración apropiada para su activación en el archivo de configuración
predeterminado. Puede crear registros <hidden-service>
de manera
conveniente mediante el uso del procedimiento tor-hidden-service
descrito a continuación.
socks-socket-type
(predeterminado: 'tcp
)El tipo socket predeterminado que Tor debe usar para su socket SOCKS. Debe
ser 'tcp
i 'unix
. Si es 'tcp
, Tor escuchará en el
puerto TCP 9050 de la interfaz local (es decir, localhost) de manera
predeterminada. Si es 'unix
, tor escuchará en el socket de dominio de
UNIX /var/run/tor/socks-sock, que tendrá permisos de escritura para
miembros del grupo tor
.
Si desea personalizar el socket SOCKS de manera más detallada, mantenga
socks-socket-type
con su valor predeterminado de 'tcp
y use
config-file
para modificar el valor predeterminado proporcionando su
propia opción SocksPort
.
Define un servicio oculto Tor llamado nombre y que implementa la relación. relación es una lista de tuplas puerto/máquina, como:
'((22 "127.0.0.1:22") (80 "127.0.0.1:8080"))
En este ejemplo, el puerto 22 del servicio oculto se asocia con el puerto 22 local, y el puerto 80 se asocia con el puerto 8080 local.
Esto crea un directorio /var/lib/tor/hidden-services/nombre,
donde el archivo hostname contiene el nombre de máquina .onion
para el servicio oculto.
Véase la documentación del proyecto Tor para más información.
El módulo (gnu services rsync)
proporciona los siguientes servicios:
Puede ser que desee un daemon rsync si tiene archivos que desee tener disponibles de modo que cualquiera (o simplemente usted) pueda descargar archivos existentes o subir nuevos archivos.
Este es el tipo de servicio para el daemon rsync. El valor tipo de servicio es un registro
rsync-configuration
como en este ejemplo.
Véase a continuación para detalles sobre rsync-configuration
.
Tipo de datos que representa la configuración para rsync-service
.
package
(predeterminado: rsync)Paquete rsync
usado.
port-number
(predeterminado: 873
)Puerto TCP en el que rsync
escucha conexiones entrantes. Si el
puerto es menor a 1024
, rsync
necesita iniciarse como
root
, tanto usuaria como grupo.
pid-file
(predeterminado: "/var/run/rsyncd/rsyncd.pid"
)Nombre del archivo donde rsync
escribe su PID.
lock-file
(predeterminado: "/var/run/rsyncd/rsyncd.lock"
)Nombre del archivo donde rsync
escribe su archivo de bloqueo.
log-file
(predeterminado: "/var/log/rsyncd.log"
)Nombre del archivo donde rsync
escribe su archivo de registros.
use-chroot?
(predeterminado: #t)Si se debe usar “chroot” en el directorio compartido de rsync
.
share-path
(predeterminado: /srv/rsync)Localización del directorio compartido de rsync
.
share-comment
(predeterminado: "Rsync share"
)Comentario del directorio compartido de rsync
.
read-only?
(predeterminado: #f)Permisos de lectura/escritura en el directorio compartido.
timeout
(predeterminado: 300
)Plazo de la E/S en segundos.
user
(predeterminada: "root")Propietaria del proceso rsync
.
group
(predeterminado: "root")Grupo del proceso rsync
.
uid
(predeterminado: "rsyncd")Nombre o ID de usuaria bajo la cual se efectúan las transferencias desde y
hacia el módulo cuando el daemon se ejecuta como root
.
gid
(predeterminado: "rsyncd")Nombre o ID de grupo que se usa cuando se accede al módulo.
Es más, (gnu services ssh)
proporciona los siguientes servicios.
Ejecuta el programa lshd
de lsh para escuchar en el puerto
port-number. host-key debe designar a un archivo que contiene la
clave de la máquina, y que sea legible únicamente por root.
Cuando daemonic? es verdadero, lshd
se desligará del
terminal de control y registrará su salida con syslogd, a menos que se
establezca syslog-output? a falso. Obviamente, esto hace que
lsh-dependa de la existencia de un servicio syslogd. Cuando pid-file?
es verdadero, lshd
escribe su PID al archivo llamado
pid-file.
Cuando initialize? es verdadero, crea automáticamente una semilla una clave de máquina una vez se active el servicio si no existen todavía. Puede tomar un tiempo prolongado y necesita interacción.
Cuando initialize? es falso, es cuestión de la usuaria la inicialización del generador aleatorio (véase lsh-make-seed en LSH Manual), la creación de un par de claves y el almacenamiento de la clave privada en el archivo host-key (véase lshd basics en LSH Manual).
Cuando interfaces está vacío, lshd escucha conexiones en todas las interfaces de red; en otro caso, interfaces debe ser una lista de nombres de máquina o direcciones.
allow-empty-passwords? especifica si se aceptará el ingreso al sistema con una contraseña vacía y root-login? especifica si se acepta el ingreso al sistema como root.
El resto de opciones deberían ser autodescriptivas.
Este es el tipo para el daemon de shell seguro OpenSSH, sshd
. Su valor debe ser un registro
openssh-configuration
como en este ejemplo:
(service openssh-service-type
(openssh-configuration
(x11-forwarding? #t)
(permit-root-login 'without-password)
(authorized-keys
`(("alicia" ,(local-file "alicia.pub"))
("rober" ,(local-file "rober.pub"))))))
Véase a continuación detalles sobre openssh-configuration
.
Este servicio se puede extender con claves autorizadas adicionales, como en este ejemplo:
(service-extension openssh-service-type
(const `(("carlos"
,(local-file "carlos.pub")))))
Este es el registro de configuración para sshd
de OpenSSH.
openssh
(predeterminado: openssh)El paquete OpenSSH usado.
pid-file
(predeterminado: "/var/run/sshd.pid"
)Nombre del archivo donde sshd
escribe su PID.
port-number
(predeterminado: 22
)Puerto TCP en el que sshd
espera conexiones entrantes.
permit-root-login
(predeterminado: #f
)Este archivo determina si y cuando se permite el ingreso al sistema como
root. Si es #f
, el ingreso como root no está permitido; si es
#f
está permitido. Si es el símbolo 'without-password
, se
permite el ingreso al sistema como root pero no con identificación basada en
contraseña.
allow-empty-passwords?
(predeterminado: #f
)Cuando es verdadero, las usuarias con contraseñas vacías pueden ingresar en el sistema. Cuando es falso, no pueden.
password-authentication?
(predeterminado: #t
)Cuando es verdadero, las usuarias pueden ingresar al sistema con su contraseña. En caso falso, tienen otros métodos de identificación.
public-key-authentication?
(predeterminado: #t
)Cuando es verdadero, las usuarias pueden ingresar en el sistema mediante el uso de clave publica para su identificación. Cuando es falso, las usuarias tienen que usar otros métodos de identificación.
Las claves públicas autorizadas se almacenan en ~/.ssh/authorized_keys. Se usa únicamente por la versión 2 del protocolo.
x11-forwarding?
(predeterminado: #f
)Cuando verdadero, la retransmisión de conexiones del cliente gráfico X11
está desactivada—en otras palabras, las opciones -X y -Y
de ssh
funcionarán.
allow-agent-forwarding?
(predeterminado: #t
)Si se permite la retransmisión del agente de claves.
allow-tcp-forwarding?
(predeterminado: #t
)Si se permite la retransmisión TCP.
gateway-ports?
(predeterminado: #f
)Si se permiten los puertos pasarela.
challenge-response-authentication?
(predeterminado: #f
)Especifica si la identificación mediante respuesta de desafío está permitida (por ejemplo, a través de PAM).
use-pam?
(predeterminado: #t
)Permite el uso de la interfaz de módulos de identificación conectables
(PAM). Si es #t
se activará la identificación PAM mediante el uso de
challenge-response-authentication?
y password-authentication?
,
además del procesado de los módulos de cuenta usuaria y de sesión de PAM en
todos los tipos de identificación.
Debido a que la identificación mediante respuesta de desafío de PAM tiene un
rol equivalente a la identificación por contraseña habitualmente, debería
desactivar challenge-response-authentication?
o
password-authentication?
.
print-last-log?
(predeterminado: #t
)Especifica si sshd
debe imprimir la fecha y hora del último
ingreso al sistema de la usuaria cuando una usuaria ingresa
interactivamente.
subsystems
(predeterminados: '(("sftp" "internal-sftp"))
)Configura subsistemas externos (por ejemplo, el daemon de transmisión de archivos).
Esta es una lista de listas de dos elementos, cada una de las cuales que contienen el nombre del subsistema y una orden (con parámetros opcionales) para ejecutar tras petición del subsistema.
La orden internal-sftp
implementa un servidor SFTP dentro del
mismo proceso. De manera alternativa, se puede especificar la orden
sftp-server
:
(service openssh-service-type
(openssh-configuration
(subsystems
`(("sftp" ,(file-append openssh "/libexec/sftp-server"))))))
accepted-environment
(predeterminado: '()
)Una lista de cadenas que describe qué variables de entorno pueden ser exportadas.
Cada cadena obtiene su propia línea. Véase la opción AcceptEnv
en
man sshd_config
.
Este ejemplo permite a clientes ssh exportar la variable COLORTERM
. La
establecen emuladores de terminal que implementan colores. Puede usarla en
su archivo de recursos del shell para permitir colores en la línea de
órdenes y las propias ordenes si esta variable está definida.
(service openssh-service-type
(openssh-configuration
(accepted-environment '("COLORTERM"))))
authorized-keys
(predeterminadas: '()
)Esta es la lista de claves autorizadas. Cada elemento de la lista es un nombre de usuaria seguido de uno o más objetos “tipo-archivo” que representan claves públicas SSH. Por ejemplo:
(openssh-configuration
(authorized-keys
`(("rekado" ,(local-file "rekado.pub"))
("chris" ,(local-file "chris.pub"))
("root" ,(local-file "rekado.pub") ,(local-file "chris.pub")))))
registra las claves públicas especificadas para las cuentas rekado
,
chris
y root
.
Se pueden especificar claves autorizadas adicionales a través de
service-extension
.
Tenga en cuenta que esto no interfiere con el uso de ~/.ssh/authorized_keys.
log-level
(predeterminado: 'info
)Es un símbolo que especifica el nivel de detalle en los registros:
quiet
, fatal
, error
, info
, verbose
,
debug
, etc. Véase la página del manual de sshd_config para la
lista completa de los nombres de nivel.
extra-content
(predeterminado: ""
)Este campo puede usarse para agregar un texto arbitrario al archivo de configuración. Es especialmente útil para configuraciones elaboradas que no se puedan expresar de otro modo. Esta configuración, por ejemplo, generalmente desactivaría el ingreso al sistema como root, pero lo permite para una dirección IP específica:
(openssh-configuration
(extra-content "\
Match Address 192.168.0.1
PermitRootLogin yes"))
Ejecuta el daemon
Dropbear SSH con la configuración proporcionada, un objeto
<dropbear-configuration>
.
Por ejemplo, para especificar un servicio Dropbear que escuche en el puerto
1234, añada esta llama al campo services
de su sistema operativo:
(dropbear-service (dropbear-configuration
(port-number 1234)))
Este tipo de datos representa la configuración del daemon Dropbear SSH.
dropbear
(predeterminado: dropbear)El paquete de Dropbear usado.
port-number
(predeterminado: 22)Puerto TCP donde el daemon espera conexiones entrantes.
syslog-output?
(predeterminado: #t
)Determina si se envía la salida a syslog.
pid-file
(predeterminado: "/var/run/dropbear.pid"
)El nombre de archivo del archivo de PID del daemon.
root-login?
(predeterminado: #f
)Si se permite el ingreso al sistema como root
.
allow-empty-passwords?
(predeterminado: #f
)Si se permiten las contraseñas vacías.
password-authentication?
(predeterminado: #t
)Determina si se usará identificación basada en contraseña.
Tipo del servicio para el programa
AutoSSH que ejecuta una copia de
ssh
y la monitoriza, reiniciando la conexión en caso de que se
rompa la conexión o deje de transmitir datos. AutoSSH puede ejecutarse
manualmente en la línea de órdenes proporcionando los parámetros al binario
autossh
del paquete autossh
, pero también se puede ejecutar
como un servicio de Guix. Este último caso de uso se encuentra documentado
aquí.
AutoSSH se puede usar para retransmitir tráfico local a una máquina remota usando un túnel SSH, y respeta el archivo de configuración ~/.ssh/config de la cuenta bajo la que se ejecute.
Por ejemplo, para especificar un servicio que ejecute autossh con la cuenta
pino
y retransmita todas las conexiones locales al puerto 8081
hacia remote:8081
usando un túnel SSH, añada esta llamada al campo
services
del sistema operativo:
(service autossh-service-type
(autossh-configuration
(user "pino")
(ssh-options (list "-T" "-N" "-L" "8081:localhost:8081" "remote.net"))))
Este tipo de datos representa la configuración del servicio AutoSSH.
user
(predeterminado: "autossh"
)La cuenta de usuaria con la cual se ejecuta el servicio AutoSSH. Se asume que existe dicha cuenta.
poll
(predeterminado: 600
)Especifica el tiempo de comprobación de la conexión en segundos.
first-poll
(predeterminado: #f
)Especifica cuantos segundos espera AutoSSH antes de la primera prueba de
conexión. Tras esta primera prueba las comprobaciones se realizan con la
frecuencia definida en poll
. Cuando se proporciona el valor #f
la primera comprobación no se trata de manera especial y también usará el
valor especificado en poll
.
gate-time
(predeterminado: 30
)Especifica cuantos segundos debe estar activa una conexión SSH antes de que se considere satisfactoria.
log-level
(predeterminado: 1
)El nivel de registro, corresponde con los niveles usados por—por lo que
0
es el más silencioso y 7
el que contiene más información.
max-start
(predeterminado: #f
)El número de veces máximo que puede lanzarse (o reiniciarse) SSH antes de
que AutoSSH termine. Cuando se proporciona #f
, no existe un máximo
por lo que AutoSSH puede reiniciar la conexión indefinidamente.
message
(predeterminado: ""
)El mensaje que se añade al mensaje de eco que se envía cuando se prueban las conexiones.
port
(predeterminado: "0"
)Los puertos usados para la monitorización de la conexión. Cuando se
proporciona "0"
, se desactiva la monitorización. Cuando se
proporciona "n"
donde n es un entero positivo, los
puertos n y n+1 se usan para monitorizar la conexión, de tal
modo que el puerto n es el puerto base de monitorización y n+1
es el puerto de eco. Cuando se proporciona "n:m"
donde
n y m son enteros positivos, los puertos n y m se
usan para monitorizar la conexión, de tal modo que n es el puerto base
de monitorización y m es el puerto de eco.
ssh-options
(predeterminados: '()
)Lista de parámetros de línea de órdenes proporcionados a ssh
cuando se ejecuta. Las opciones -f y -M están reservadas
para AutoSSH y pueden causar un comportamiento indefinido.
Tipo para el programa WebSSH que
ejecuta un cliente SSH web. WebSSH puede ejecutarse manualmente en la línea
de órdenes proporcionando los parámetros al binario wssh
del
paquete webssh
, pero también se puede ejecutar como un servicio de
Guix. Este último caso de uso se encuentra documentado aquí.
Por ejemplo, para especificar un servicio que ejecute WebSSH en la interfaz
de red local sobre el puerto 8888
con una política de rechazo
predeterminado con una lista de máquinas a las que se les permite
explícitamente la conexión, y NGINX como pasarela inversa de este servicio a
la escucha de conexiones HTTPS, añada esta llamada al campo services
de su declaración de sistema operativo:
(service webssh-service-type (webssh-configuration (address "127.0.0.1") (port 8888) (policy 'reject) (known-hosts '("localhost ecdsa-sha2-nistp256 AAAA…" "127.0.0.1 ecdsa-sha2-nistp256 AAAA…")))) (service nginx-service-type (nginx-configuration (server-blocks (list (nginx-server-configuration (inherit %webssh-configuration-nginx) (server-name '("webssh.example.com")) (listen '("443 ssl")) (ssl-certificate (letsencrypt-certificate "webssh.example.com")) (ssl-certificate-key (letsencrypt-key "webssh.example.com")) (locations (cons (nginx-location-configuration (uri "/.well-known") (body '("root /var/www;"))) (nginx-server-configuration-locations %webssh-configuration-nginx))))))))
Tipo de datos que representa la configuración para webssh-service
.
package
(predeterminado: webssh)Paquete webssh
usado.
user-name
(predeterminado: "webssh")Nombre o ID de usuaria bajo la cual se efectúan las transferencias desde y hacia el módulo.
group-name
(predeterminado: "webssh")Nombre o ID de grupo que se usa cuando se accede al módulo.
address
(predeterminada: #f)Dirección IP en la que webssh
espera conexiones entrantes.
port
(predeterminado: 8888)Puerto TCP en el que webssh
espera conexiones entrantes.
policy
(predeterminada: #f)Política de conexión. La política reject necesita que se especifique un valor en known-hosts.
known-hosts
(predeterminada: ’())Lista de máquinas a las que se permite realizar conexiones SSH desde
webssh
.
log-file
(predeterminado: "/var/log/webssh.log")Nombre del archivo donde rsync
escribe su archivo de registros.
log-level
(predeterminado: #f)Nivel de registro.
Esta variable contiene una cadena para su uso en /etc/hosts
(véase Host Names en The GNU C Library Reference Manual). Cada línea
contiene una entrada que asocia un nombre de servidor conocido del servicio
en línea Facebook—por ejemplo, www.facebook.com
—a la máquina
local—127.0.0.1
o su equivalente IPv6, ::1
.
Esta variable habitualmente se usa en el campo hosts-file
de una
declaración operating-system
(véase /etc/hosts):
(use-modules (gnu) (guix)) (operating-system (host-name "micompu") ;; ... (hosts-file ;; Crea un archivo /etc/hosts file con alias para "localhost" ;; y "micompu", así como los servidores de facebook. (plain-file "hosts" (string-append (local-host-aliases host-name) %facebook-host-aliases))))
Este mecanismo puede impedir a los programas que se ejecutan localmente, como navegadores Web, el acceso a Facebook.
El módulo (gnu services avahi)
proporciona la siguiente definición.
Es el servicio que ejecuta avahi-daemon
, un servidor mDNS/DNS-SD a
nivel del sistema que permite el descubrimiento de servicios y la búsqueda
de nombres de máquina “sin configuración” (“zero-configuration”, véase
https://avahi.org/). Su valor debe ser un registro
avahi-configuration
—véase a continuación.
Este servicio extiende el daemon de la caché del servicio de nombres (nscd)
de manera que pueda resolver nombres de máquina .local
mediante el
uso de nss-mds. Véase Selector de servicios de nombres, para información sobre la resolución
de nombres de máquina.
De manera adicional, añade el paquete avahi al perfil del sistema de
manera que ordenes como avahi-browse
estén disponibles de manera
directa.
Tipo de datos que representa la configuración de Avahi.
host-name
(predeterminado: #f
)Si es diferente de #f
, se usa como el nombre de máquina a publicar
para esta máquina; en otro caso, usa el nombre actual de la máquina.
publish?
(predeterminado: #t
)Cuando es verdadero, permite la publicación (retransmisión) de nombres de máquina y servicios a través de la red.
publish-workstation?
(predeterminado: #t
)Cuando es verdadero, avahi-daemon
publica el nombre de máquina y
la dirección IP a través de mDNS en la red local. Para ver los nombres de
máquina publicados en su red local, puede ejecutar:
avahi-browse _workstation._tcp
wide-area?
(predeterminado: #f
)Cuando es verdadero, se permite DNS-SD sobre DNS unicast.
ipv4?
(predeterminado: #t
)ipv6?
(predeterminado: #t
)Estos campos determinan si usar sockets IPv4/IPv6.
domains-to-browse
(predeterminado: '()
)Esta es la lista de dominios a explorar.
Este es el tipo del servicio Open
vSwitch, cuyo valor debe ser un objeto openvswitch-configuration
.
Tipo de datos que representa la configuración de Open vSwitch, un switch virtual multicapa que está diseñado para permitir una automatización masiva en la red a través de extensión programática.
package
(predeterminado: openvswitch)El objeto paquete de Open vSwitch.
El tipo de servicio para el servicio PageKite,
una solución de encaminado para hacer servidores de la red local visibles
públicamente, incluso detrás de cortafuegos restrictivos o NAT sin
redirección de puertos. El valor para este servicio es un registro
pagekite-configuration
.
Este es un ejemplo que expone los daemon HTTP y SSH locales:
(service pagekite-service-type
(pagekite-configuration
(kites '("http:@kitename:localhost:80:@kitesecret"
"raw/22:@kitename:localhost:22:@kitesecret"))
(extra-file "/etc/pagekite.rc")))
Tipo de datos que representa la configuración de PageKite.
package
(predeterminado: pagekite)El objeto paquete de PageKite.
kitename
(predeterminado: #f
)Nombre de PageKite para la identificación con el servidor de fachada.
kitesecret
(predeterminado: #f
)Secreto compartido para la comunicación con el servidor. Probablemente
debería almacenarlo dentro extra-file
en vez de aquí.
frontend
(predeterminado: #f
)Conecta al servidor de fachada de PageKite con este nombre en vez de al servicio de pagekite.net.
kites
(predeterminados: '("http:@kitename:localhost:80:@kitesecret")
)Lista de servicios de publicación (kite) usados. Expone HTTP en el puerto 80
de manera predeterminada. El formato es
protocolo:nombre-kite:máquina:puerto:secreto
.
extra-file
(predeterminado: #f
)Archivo adicional de configuración que debe leerse, el cual se espera que sea creado de forma manual. Úselo para añadir opciones adicionales y gestionar secretos compartidos fuera de banda.
Siguiente: Actualizaciones no-atendidas, Anterior: Rotación del registro de mensajes, Subir: Servicios [Índice general][Índice]