Configurar el agente para Linux
Cada clave de /etc/reportedip-agent/config.yaml con su valor por omisión y su rango, los umbrales de detección por fuente, la escalada de bloqueos, los límites de funcionamiento, el correo que llega cuando algo va mal, y qué cambio tiene efecto en la siguiente sincronización, en un reinicio o en menos de un minuto.
Configuración
Un archivo, una lista blanca, un directorio de estado. Lo que escribe el instalador ya encaja con el
host; la mayoría de las instalaciones cambian solo dos cosas, el valor de mode y si el
bloqueo local está activo.
| Ruta | Propietario, modo | Contenido |
|---|---|---|
/etc/reportedip-agent/config.yaml | root:root, 0600 | Todos los ajustes. El agente se niega a arrancar cuando el grupo u otros pueden leerlo, porque el archivo contiene tu clave API, e indica el comando chmod que lo corrige. |
/etc/reportedip-agent/whitelist.conf | root:root, 0600 | Nunca bloquear, nunca notificar. Una dirección o un CIDR por línea, # inicia un comentario. Una línea rota se omite con un aviso. La crea install, con un comentario explicativo al principio. |
/var/lib/reportedip-agent/ | root:root, 0700 | Estado: offsets.json (posiciones de lectura), queue/, dedup.json, bans.json, health.json (salud), install-id, auto-whitelist, group-whitelist (escrito por la sincronización desde tu grupo, no a mano), feed-token, los archivos de lock. |
/var/log/reportedip-agent.log | root:root, 0640 | El registro propio del agente. Él mismo rota el archivo, así que logrotate no es necesario ni molesta. |
/usr/local/bin/reportedip-agent | root:root, 0755 | El binario. Un solo archivo, enlazado estáticamente. |
sync_interval, el intervalo viene de tu
licencia, y no hay whitelist, la clave se llama whitelist_file. Tras un
cambio, reportedip-agent status termina con el código 2 y nombra la clave cuando el
archivo no se puede leer.
Cada clave de config.yaml
Solo api_key es obligatoria. Cada otra clave tiene el valor por defecto que se indica, y
una clave que omitas conserva ese valor. Un valor fuera de su rango es un error que nombra la clave,
nunca un recorte silencioso. Los puntos en los nombres de abajo marcan el anidamiento:
ban.enabled es un enabled: sangrado bajo ban:.
| Clave | Por defecto | Aceptado | Efecto |
|---|---|---|---|
api_key | ninguna | tu clave | La única clave sin valor por defecto. REPLACE_ME cuenta como ausente. |
api_url | https://reportedip.com/wp-json/reportedip/v2 | https absoluta | La base REST. El http simple solo se acepta en la interfaz loopback, para un proxy local. |
update_url | desde api_url, ruta /agent | https absoluta | De dónde vienen los binarios del agente. Se define para un espejo. |
auto_update | true | true, false | Instalar una versión más nueva durante la sincronización. false para un host cuya versión se decide en otro sitio; update a mano sigue funcionando, y status sigue indicando cuánto se ha quedado atrás el host. |
log_level | warn | debug, info, warn, error | Nada más se acepta. Una instalación nueva escribe warn, así que un host nuevo se queda callado en el diario hasta que algo necesite atención; las líneas de rutina (una lista actualizada, un informe en la cola, un bloqueo local puesto) están en info. Un host ya instalado conserva lo que diga su archivo de configuración, y --log-level o REPORTEDIP_LOG_LEVEL fijan el valor que escribe una instalación nueva, así que una flota que quiera info no hay que editarla después host por host. Los pocos fallos que detienen el host antes de que exista el registrador están en un nivel por encima de error y se muestran siempre, sea cual sea esta clave: ese nivel no es un grado de detalle que un host pueda bajar, es la única línea que deja siempre un host que acaba de detenerse. |
log_file | /var/log/reportedip-agent.log | ruta o vacío | El registro propio del agente, además de stderr, para que journald conserve todo lo que tiene hoy. Vacío desactiva el archivo. |
log_max_mb | 10 | 1 a 1024 | Tamaño al que el agente rota su propio archivo. |
log_keep | 3 | 0 a 20 | Generaciones rotadas que se conservan. Con los valores por defecto el peor caso en disco son 40 MB. |
backend | auto | auto, ipset, nftables | Qué filtro de paquetes se escribe. Un cambio posterior necesita sync --migrate-backend. |
mode | drop | log, drop, off | Qué hacen las reglas. Se aplica a las listas del feed y a los bloqueos locales. |
confidence | 90 | 1 a 100 | El umbral del feed. Más bajo significa una lista más larga y más casos límite. El servidor indica un suelo para tu plan, y gana el más alto de los dos valores. |
limit | 50000 | 1 a 50000 | Número máximo de direcciones por petición de lista. |
lists | ssh, edge | ssh, mail, web, ftp, edge, group | Qué listas del feed están activas. ssh y edge están siempre activas y no se pueden desactivar. group, la lista del grupo de tu cuenta, también está siempre activa y no necesita entrada: en una clave sin grupo está simplemente vacía. |
lists.ssh.ports | del servicio real a la escucha | 1 a 65535 cada uno | Los puertos en los que actúa la regla ssh. La única opción por lista; las demás listas tienen conjuntos de puertos fijos. Una lista vacía hace que la regla actúe en todos los puertos. |
min_entries.<list> | ssh 1000, mail 500, web 500, ftp 500, edge 1000 | 1 o más | El suelo de plausibilidad: por debajo de ese número de direcciones una lista no se intercambia. Un mínimo de cero dejaría pasar una lista vacía, así que se rechaza. La lista group no tiene mínimo y rechaza la clave: un grupo vacío es un grupo válido. |
whitelist_file | /etc/reportedip-agent/whitelist.conf | ruta | Tu lista de nunca bloquear, nunca notificar. |
sources | una entrada sshd | lista de entradas | Las fuentes de registro. Un archivo con una clave sources decide solo, así que una entrada tuya va junto a las que escribió el instalador, no en un segundo bloque. |
sources[].type | ninguno | uno de los catorce | Un tipo desconocido es un error que enumera los válidos. web-app no es uno de ellos. |
sources[].path | ninguno | un archivo | Define path o glob, nunca ambos. Sin ninguno de los dos, el agente elige el canal por su cuenta, journald o el archivo por defecto de la distribución. La fuente web no tiene valor por defecto y sin uno de los dos no apunta a nada. Para scan es el diario del núcleo, si no /var/log/kern.log o /var/log/messages. |
sources[].glob | ninguno | 5 segmentos comodín como máximo | Un patrón sobre muchos archivos, reevaluado cada diez minutos. |
sources[].exclude | ninguno | patrones de shell | Retira archivos que un glob había captado. No son expresiones regulares. Un patrón sin barra coincide solo con el nombre del archivo, uno con barra tiene que cubrir la ruta completa. Un patrón que no coincide con nada se avisa al arrancar. |
sources[].poll_minutes | 5 | 1 a 60 | Solo para imunify360, que consulta un comando en lugar de leer un archivo. En cualquier otro tipo es un error. |
min_hits, window_minutes | 5, 10 | 1 o más | El par global para toda fuente de evento sin entrada propia en la tabla interna. |
web_min_hits, web_window_minutes | 50, 120 | 1 o más | El mismo par solo para la fuente web, que necesita volumen en lugar de un código de estado. |
thresholds.<event source>.hits, .window_minutes | la tabla interna | 1 o más | Sustituye la tabla interna para una fuente de evento. Un nombre desconocido es un error, no un ajuste que nunca se aplica. |
dedup_hours | 6 | 1 o más | La misma dirección se notifica como máximo una vez por ventana. |
queue_max | 5000 | 1 o más | Archivos de informe en espera. Por encima se descartan los más antiguos. |
disk_min_mb | 200 | 0 a 1000000 | Mebibytes libres exigidos donde vive el directorio de estado. Por debajo no se encola ningún informe nuevo, mientras la detección y el bloqueo siguen. 0 desactiva el límite. |
jail_categories.<jail> | tabla interna | identificadores positivos | Correspondencia adicional entre un nombre de jail de fail2ban e identificadores de categoría de amenaza. Hay 63 categorías, numeradas de 1 a 63 sin huecos. A propósito no se comprueba un techo: el servidor es dueño de la lista y gana entradas sin que se actualice el agente, y un identificador que no conoce cuesta un informe rechazado, mientras que negarse a arrancar costaría el host entero. Solo importa mientras fail2ban siga siendo una fuente. |
ban.enabled | true | true, false | Si los hallazgos locales se bloquean. Un ban add manual funciona en ambos casos. |
ban.time_minutes | 30 | 1 o más | El primer bloqueo de una dirección. |
ban.max_time_minutes | 10080 (7 días) | al menos ban.time_minutes | El techo de la escalada. Bajarlo después deja como están los bloqueos que ya están en el núcleo; el nuevo techo se aplica a los bloqueos nuevos y a los que se restauran tras un reinicio o un vaciado. |
ban.escalate | 4 | 1 o más | El multiplicador por reincidencia dentro de la ventana de memoria. 1 significa ninguna escalada. |
ban.memory_hours | 24 | 1 o más | Cuánto tiempo cuenta un bloqueo para la siguiente escalada. |
notify.email | vacío | una dirección | Vacío significa que este host no envía correo. Igualmente registra sus estados y los muestra en status. |
notify.cooldown_hours | 24 | 1 o más | Como máximo un correo por estado en esa ventana. 1 es como máximo un correo por hora para un estado que sigue abierto; 0, un correo por sincronización, se rechaza. |
notify.relay | true | true, false | Enviar a través de reportedip.com en lugar del MTA local. Se intenta primero, disponible desde Professional. |
notify.smtp.host, .from, .user, .password | vacío | cadenas | Solo hace falta en un host sin MTA local y sin relé. Con Postfix, Exim o msmtp el agente usa sendmail y ninguna contraseña tiene que vivir en un archivo. |
notify.smtp.port | 587 | 1 a 65535 | Puerto de envío de tu propio servidor SMTP. |
notify.smtp.starttls | true | true, false | Con true el correo se rechaza en lugar de enviarse en claro cuando el servidor no ofrece STARTTLS. |
Un archivo completo que el analizador acepta, con cada bloque que usa un host normal:
# /etc/reportedip-agent/config.yaml root:root 0600
api_key: "YOUR_API_KEY"
api_url: https://reportedip.com/wp-json/reportedip/v2
log_level: warn # debug | info | warn | error
log_file: /var/log/reportedip-agent.log
log_max_mb: 10
log_keep: 3
auto_update: true
backend: auto # auto | ipset | nftables
mode: drop # log | drop | off
confidence: 90 # the feed threshold
limit: 50000
lists: # ssh, edge and group are always on
ssh:
ports: [22] # written by install from the real listener
edge: {}
mail: {}
web: {}
min_entries: # below this many addresses a list is not applied
ssh: 1000
mail: 500
web: 500
ftp: 500
edge: 1000
whitelist_file: /etc/reportedip-agent/whitelist.conf
min_hits: 5 # the global detection pair
window_minutes: 10
web_min_hits: 50 # the web source uses its own
web_window_minutes: 120
dedup_hours: 6
queue_max: 5000
disk_min_mb: 200
sources: # detected at install time
- type: sshd
- type: web
glob: /var/www/*/log/access.log
- type: web-error
path: /var/log/nginx/error.log
- type: postfix
path: /var/log/mail.log
- type: dovecot
path: /var/log/mail.log
- type: scan # the kernel log; adds the port scan rule
thresholds: {} # per event source overrides, see below
ban: # block local finds, not only the feed
enabled: true
time_minutes: 30
max_time_minutes: 10080
escalate: 4
memory_hours: 24
notify:
email: "" # empty means no mail
cooldown_hours: 24
relay: true # through reportedip.com, from Professional
Límites de detección, por fuente
Un umbral es un par: cuántos golpes, en cuántos minutos. Es la misma idea que maxretry y
findtime de un jail de fail2ban. Tres niveles deciden qué par se aplica a una fuente de
evento, y gana el primero que tenga respuesta.
| Orden | De dónde viene el par | Alcance |
|---|---|---|
| 1 | Una entrada en thresholds | Exactamente la fuente de evento que nombras. |
| 2 | La tabla interna, nueve entradas | Las nueve fuentes de evento marcadas como «interno» en la tabla de abajo. |
| 3 | web_min_hits / web_window_minutes | Solo la fuente web. |
| 3 | min_hits / window_minutes | Todo lo demás, web-error incluido. |
| Fuente de evento | Umbral | Procedencia |
|---|---|---|
sshd | 5 en 10 min | min_hits / window_minutes |
web-error | 5 en 10 min | min_hits / window_minutes |
modsec | 5 en 10 min | min_hits / window_minutes |
exim | 5 en 10 min | min_hits / window_minutes |
web | 50 en 120 min | web_min_hits / web_window_minutes |
web-app | 20 en 60 min | interno |
postfix-sasl | 3 en 60 min | interno, medido |
postfix-reject | 5 en 60 min | interno, solo rechazos 5xx |
postfix-amavis | 3 en 60 min | interno |
dovecot | 10 en 60 min | interno, medido |
ftp | 20 en 60 min | interno |
named | 20 en 30 min | interno |
panel | 5 en 60 min | interno |
scan | 10 en 10 min | interno |
fail2ban, csf, imunify360 | sin umbral | Esa fuente ya ha contado, así que una línea es un informe. |
La clave en thresholds es la fuente de evento de esa tabla, no el tipo de fuente de
sources. Los dos números tienen que ser al menos 1. Un solo bloque
thresholds, una entrada por fuente que quieras cambiar:
thresholds:
# A resolver that sees a lot of refused queries: fewer minutes,
# more hits.
named:
hits: 40
window_minutes: 5
# A mail server whose customers keep mistyping passwords: SASL a
# little more forgiving, Dovecot untouched.
postfix-sasl:
hits: 6
window_minutes: 60
# An exposed SSH port, stricter than the global pair.
sshd:
hits: 3
window_minutes: 10
Subir un umbral hace al agente más silencioso y deja pasar a los atacantes lentos. Bajarlo es la dirección que cuesta algo: por debajo de unos tres golpes por hora en una fuente de correo o web acabarás notificando a un cliente con una contraseña mal puesta en su programa de correo, y un informe es público dentro de la comunidad.
Un dato no es configurable. Una dirección con historial de bloqueos necesita menos golpes que una desconocida: un bloqueo anterior cuenta una línea el doble, dos el triple, luego cinco y nueve. El peso se recorta al umbral de su fuente de evento, así que un décimo bloqueo no convierte una sola línea en un informe.
Límites de bloqueo
Cinco valores en el bloque ban, cada uno en la unidad que nombra su clave. Solo se
aplican a direcciones que el agente encontró en tus propios registros. La lista comunitaria no tiene
tiempo de bloqueo alguno, se reemplaza entera en cada pasada del feed. Con los valores por defecto, una dirección que vuelve
queda bloqueada 30 minutos, luego 2 horas, 8 horas, 32 horas y 128 horas, y después durante el
techo de 7 días.
| Clave | Por defecto | Qué pasa en los extremos |
|---|---|---|
enabled | true | false es un host que notifica y no bloquea. |
time_minutes | 30 | Valores muy cortos hacen de la escalada lo único relevante; valores muy largos significan que un falso positivo se queda mucho tiempo en el conjunto. |
max_time_minutes | 10080 | Por debajo de time_minutes el techo acortaría el primer bloqueo, y el agente rechaza un archivo así. Bajarlo después deja intactos los bloqueos que siguen en el núcleo: el techo de hoy se aplica a los bloqueos nuevos y a los que la sincronización restaura tras un reinicio o un vaciado. |
escalate | 4 | 1 significa que cada bloqueo dura time_minutes. |
memory_hours | 24 | Un registro se mantiene además el triple de la duración de su último bloqueo cuando eso es más largo, y eso es lo que hace alcanzable el techo sin que el archivo de bloqueos crezca por bloqueos cortos. |
# Careful: a short first ban, a low cap, a long memory.
ban:
enabled: true
time_minutes: 10
max_time_minutes: 1440 # one day
escalate: 3
memory_hours: 72
# Strict: a long first ban and a hard escalation.
ban:
enabled: true
time_minutes: 60
max_time_minutes: 43200 # thirty days
escalate: 6
memory_hours: 168 # a week
Límites de funcionamiento
Estos valores acotan lo que el agente consume él mismo. No son ajustes de detección, y los dos que merece la pena cambiar son el tamaño de la cola y el suelo de disco.
| Clave | Por defecto | Unidad | Demasiado bajo | Demasiado alto |
|---|---|---|---|---|
queue_max | 5000 | informes en espera | Se descartan informes durante una caída de la API, los más antiguos primero. | Una caída larga deja miles de archivos pequeños que enviar después. |
dedup_hours | 6 | horas | El mismo atacante se notifica una y otra vez y se come tu cupo diario. | Una dirección que vuelve a atacar la semana que viene se notifica tarde. |
disk_min_mb | 200 | MB libres | El agente puede ayudar a llenar /var, y eso se lleva el host entero. | Los informes se detienen en un host perfectamente sano. 0 quita el límite. |
log_max_mb | 10 | MB | Rotación en cada segunda escritura y un historial demasiado corto para investigar nada. | Máximo 1024, y junto con log_keep ese es el peor caso en disco. |
log_keep | 3 | generaciones | 0 no conserva ningún archivo rotado. | Máximo 20, y el coste en disco es el producto de los dos. |
notify.cooldown_hours | 24 | horas | Al menos 1, y 1 es como máximo un correo por hora para un estado que sigue abierto. 0 sería un correo por sincronización y se rechaza. | Un problema que empezó esta mañana se envía por correo mañana. |
poll_minutes | 5 | minutos | Un comando que arranca demasiado a menudo en un host cargado. | Máximo 60, y los hallazgos llegan otro tanto más tarde. |
limit | 50000 | direcciones por lista | Una lista truncada: las peores direcciones están, el resto no. | 50000 es el máximo que sirve la API. |
min_entries | 1000 / 500 | direcciones | Una lista inverosímilmente corta entra en producción y el host está peor protegido de lo que cree. | Una lista realmente pequeña se rechaza para siempre y el conjunto se queda en su generación anterior. |
Por debajo del suelo de disco el agente deja de encolar informes nuevos, anota el estado y lo envía
por correo, y sigue detectando y bloqueando. Un /var lleno es peor que un informe
perdido.
Límites que no vienen del archivo
Cuatro números no son un ajuste del host. Vienen de tu cuenta y el agente los consulta, y por eso una mejora de plan tiene efecto sin que nadie edite un archivo.
| Límite | Valor | Dónde lo ves |
|---|---|---|
| Informes por día, por cuenta | Free 50, Contributor 200, Professional 1.000, Business 5.000 por tu multiplicador de volumen, Enterprise ilimitado. Alcanzarlo responde HTTP 429 y el agente mantiene el informe en su cola. | status, sección account |
| Informes por día, por servidor | Automático: el 150 por ciento de la parte justa, nunca por debajo de 50 y nunca por encima del límite de la cuenta. Con un servidor es todo el límite de la cuenta, con dos el 75 por ciento cada uno, con seis un cuarto cada uno. Puedes fijar un número en su lugar, o detener los informes de una máquina. | status, y Agent Servers en tu cuenta |
| Intervalo del feed y confianza mínima | Cada 15 minutos con confianza desde 75 en Professional, Business y Enterprise; cada hora con confianza desde 90 en Contributor; sin licencia de servidor, ningún feed. Tu confidence solo sirve donde es más estricto que ese suelo. | status, por lista |
| Correos por el relé de reportedip.com | 500 al mes en Professional, 2.500 en Business. Compartidos con el plugin Hive. No disponible en Free ni Contributor, donde el agente usa el MTA local. | Tu cuenta |
status, y por ahora eso es
todo lo que hace. Su activación se anunciará antes, y el texto de esa línea cambia con ella, así
que la línea siempre dice cuál de los dos casos se aplica.
Un correo cuando algo va mal
Lo que se envía por correo es un estado y no un evento, así que un feed que falla cada hora es un mensaje y no veinticuatro. El agente lleva once estados, recuerda cuándo se envió por correo cada uno por última vez para que un reinicio no empiece de cero, y envía un aviso de restablecimiento cuando uno termina.
| Estado | Significado |
|---|---|
feed | Una lista ha fallado tres veces seguidas, porque no se pudo descargar o volvió más pequeña que min_entries. |
api_key | La clave fue rechazada. |
chain | La cadena o un conjunto no es lo que dice la configuración. |
disk | Menos espacio libre que disk_min_mb. |
source | Una fuente configurada no resuelve nada, o no es legible. |
update | La actualización automática no alcanza o no verifica una versión. |
queue | La cola ha llegado a queue_max y se descartan los informes más antiguos. |
license | La licencia de servidor de este host falta o está a punto de acabar. |
rules | Tus archivos de reglas bajo rules.d no se pudieron usar, y las reglas incluidas funcionan solas. |
rule | Una salvaguarda ha desactivado una de tus reglas de archivo; rules status la nombra. |
reputation | La dirección desde la que este host notifica está ella misma listada en la base de datos comunitaria. Un aviso, no un error: necesita confianza 75, la más baja que sirve cualquier feed, así que salta cuando otros hosts bloquearían de verdad esa dirección; por debajo, el número solo aparece en status y en el archivo de estado. En status lleva la confianza, el número de informes y la página de retirada; el correo solo nombra el estado, porque este texto contiene una dirección y nunca entra en un correo. Desaparece con la siguiente sincronización tras la retirada. |
El correo lleva el nombre del host, la versión, el nombre del estado, una frase corta con números y el
comando con el que mirar. Nunca una línea de registro, nunca una dirección IP, nunca una ruta. Como
máximo un correo por estado dentro de notify.cooldown_hours. Detener el agente envía
exactamente un correo que nombra lo que este host deja de hacer; un reinicio de la máquina y un
reinicio del servicio no envían ninguno, y eso es lo que mantiene callada la actualización
automática.
install escribe el bloque notify, así que la dirección es una opción de línea de comandos al
instalar y no un retoque posterior. Una configuración existente nunca se cambia, ni siquiera por una
actualización.
# Arm the mail while the host is being set up
sudo REPORTEDIP_KEY=<YOUR-KEY> reportedip-agent install --notify-email ops@example.org
# The same through the install script, so one line arms a whole
# rollout
curl -fsSL https://reportedip.com/agent/install.sh \
| REPORTEDIP_ACCEPT_TERMS=1 REPORTEDIP_KEY=<YOUR-KEY> REPORTEDIP_NOTIFY_EMAIL=ops@example.org sh
Tres vías de entrega, en el orden en que el agente las intenta. Sin notify.email no se
ejecuta ninguna.
| Vía | Cuándo se usa | Qué necesita |
|---|---|---|
| El relé de reportedip.com | notify.relay: true, el valor por defecto. Se intenta primero, porque un MTA local que acepta un correo y nunca lo entrega es el único fallo que el agente no puede ver. | Professional o superior, y un buzón real y alcanzable como destinatario. Un plan sin el relé responde 403 una vez, y eso se recuerda durante un día. |
| El MTA local | Con relay: false, o después de que el relé lo haya rechazado. | Postfix, Exim o msmtp. El agente llama a sendmail -t -i y ninguna contraseña vive en un archivo. Un buzón local como root@localhost funciona aquí y solo aquí. |
| Tu propio servidor SMTP | Con relay: false y sin MTA local. | El bloque notify.smtp. STARTTLS sigue activo, así que el correo se rechaza en lugar de enviarse en claro cuando el servidor no lo ofrece. |
# The default: out through the relay of reportedip.com, so this
# host needs no mail server of its own.
notify:
email: "ops@example.org"
cooldown_hours: 24
relay: true
# Local delivery only, through postfix, exim or msmtp.
notify:
email: "ops@example.org"
cooldown_hours: 24
relay: false
# No local MTA and no relay: your own SMTP.
notify:
email: "ops@example.org"
cooldown_hours: 12
relay: false
smtp:
host: mail.example.org
port: 587
from: agent@example.org
user: agent@example.org
password: "..."
starttls: true
Ejecuta reportedip-agent doctor después de configurar esto. Su sección mail
dice si un correo puede salir realmente del host, que es una pregunta distinta de si la configuración
se puede leer. Un destinatario ausente se nombra en cada ejecución y no cuenta como fallo.
Cuándo tiene efecto un cambio
El agente lee su configuración al arrancar, no vigila el archivo y no tiene señal de recarga. El comando que necesitas depende de la parte que hayas tocado.
| Qué has cambiado | Qué lo hace efectivo |
|---|---|
mode, lists, min_entries, confidence, limit, backend | reportedip-agent sync. La sincronización construye la cadena y las reglas, así que un modo nuevo está activo al final de ella. |
thresholds, min_hits, window_minutes, web_min_hits, web_window_minutes, dedup_hours, ban, notify, log_* | systemctl restart reportedip-agent.service. Eso lo lee el demonio watch. |
Una fuente añadida a sources | systemctl restart reportedip-agent.service. |
La fuente scan añadida | Ambas cosas: el reinicio para la fuente, y reportedip-agent sync para la regla del cortafuegos que lee, que solo construye la sincronización. |
Una fuente retirada de sources | Una parada y un arranque, no un reinicio. En un host en producción un systemctl restart no bastó y el demonio siguió leyendo el archivo retirado: systemctl stop reportedip-agent.service && systemctl start reportedip-agent.service. |
El contenido de whitelist_file | Nada, cuando usas reportedip-agent whitelist add: eso escribe el archivo y el conjunto del núcleo en un paso y tiene efecto de inmediato. Editar el archivo a mano necesita un sync. |
api_key, api_url, auto_update, update_url | Nada para el siguiente sync, que es un oneshot y lee el archivo de nuevo. Reinicia el servicio watch para que la vía de informes también tome la clave. |
# The safe sequence after any edit
reportedip-agent status >/dev/null; [ $? -ne 2 ] && echo "config parses"
reportedip-agent sync
systemctl restart reportedip-agent.service
systemctl status reportedip-agent.service --no-pager
Última actualización: · Mantenido por el equipo de ReportedIP