Auto-deteksjon

Med auto-deteksjon rapporterer maskinene og nettet selv hvilke IP-adresser som er i bruk. Du kan bruke en agent på hver maskin, en innsamler i nettet – eller begge.

Slik fungerer det

Både agenten og innsamleren sender en rapport til ipmanager med POST /api/v1/agent/report over HTTPS, med en API-nøkkel i Authorization-headeren. ipmanager gjør så dette for hver adresse i rapporten:

  • Ny adresse: opprettes med status «i bruk», og kilden merkes som agent eller skanning.
  • Kjent adresse: «sist sett» oppdateres. Endret vertsnavn eller MAC-adresse oppdateres og logges i revisjonsloggen.
  • Adresse som var ledig eller frakoblet: settes til «i bruk» igjen.
  • Ingen endring: kun «sist sett» oppdateres, uten ny post i revisjonsloggen.

Hvis organisasjonen har nådd adressegrensen, opprettes ikke nye adresser. De telles som limited i svaret, mens kjente adresser fortsatt oppdateres.

AgentInnsamler
Kjøres påHver maskin som skal rapportereÉn maskin i nettet
FinnerMaskinens egne adresser, vertsnavn og MACAlle som svarer på ping, ARP-tabellen, omvendt DNS og DHCP-leieavtaler
PlattformLinux og macOS (shell), Windows (PowerShell)Python 3 uten avhengigheter, typisk på Linux
Egner seg forServere og faste maskinerSkrivere, IoT, AV-utstyr og alt der du ikke kan installere noe

1. Lag en API-nøkkel

Gå til Auto-deteksjon og API i ipmanager, og lag en ny nøkkel med tilgangen agent. En agentnøkkel kan bare sende rapporter – den kan ikke lese eller slette data. Nøkkelen vises bare én gang, så lagre den trygt. Lag gjerne én nøkkel per lokasjon eller innsamler, slik at du kan trekke tilbake en enkelt nøkkel uten å påvirke andre.

2a. Agent på Linux og macOS

Last ned og test
curl -fsSo /usr/local/bin/ipm-agent.sh https://ipmanager.no/api/v1/agent/scripts/ipm-agent.sh
chmod 755 /usr/local/bin/ipm-agent.sh

# Test
IPM_TOKEN=ipm_xxxxxxxx sh /usr/local/bin/ipm-agent.sh

Legg nøkkelen i en fil som bare root kan lese, i stedet for i crontab:

Lagre nøkkelen
mkdir -p /etc/ipmanager
echo 'IPM_TOKEN=ipm_xxxxxxxx' > /etc/ipmanager/agent.env
chmod 600 /etc/ipmanager/agent.env
Med cron
# /etc/cron.d/ipmanager – rapporter hvert 15. minutt
*/15 * * * * root . /etc/ipmanager/agent.env && IPM_TOKEN=$IPM_TOKEN sh /usr/local/bin/ipm-agent.sh >/dev/null 2>&1
Med systemd-timer
# /etc/systemd/system/ipm-agent.service
[Unit]
Description=ipmanager agent
Wants=network-online.target
After=network-online.target

[Service]
Type=oneshot
EnvironmentFile=/etc/ipmanager/agent.env
ExecStart=/bin/sh /usr/local/bin/ipm-agent.sh

# /etc/systemd/system/ipm-agent.timer
[Unit]
Description=Run ipmanager agent every 15 minutes

[Timer]
OnBootSec=2min
OnUnitActiveSec=15min
RandomizedDelaySec=60

[Install]
WantedBy=timers.target
Aktiver timeren
systemctl daemon-reload
systemctl enable --now ipm-agent.timer

2b. Agent på Windows

Last ned og test (PowerShell som administrator)
New-Item -ItemType Directory -Force C:\ProgramData\ipmanager | Out-Null
Invoke-WebRequest https://ipmanager.no/api/v1/agent/scripts/ipm-agent.ps1 -OutFile C:\ProgramData\ipmanager\ipm-agent.ps1

# Test
$env:IPM_TOKEN = 'ipm_xxxxxxxx'
powershell -NoProfile -ExecutionPolicy Bypass -File C:\ProgramData\ipmanager\ipm-agent.ps1
Planlagt oppgave hvert 15. minutt
[Environment]::SetEnvironmentVariable('IPM_TOKEN', 'ipm_xxxxxxxx', 'Machine')

schtasks /Create /TN "ipmanager agent" /RU SYSTEM /SC MINUTE /MO 15 /F `
  /TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\ProgramData\ipmanager\ipm-agent.ps1"

3. Innsamler i ditt eget nett

Innsamleren er ett Python 3-skript uten avhengigheter. Den kjøres på én maskin i nettet – en server, en virtuell maskin eller en liten Linux-boks – og fungerer som mellomledd: den ser nettet innenfra og rapporterer ut til ipmanager.

Last ned og kjør
curl -fsSO https://ipmanager.no/api/v1/agent/scripts/ipm-collector.py
python3 ipm-collector.py --help

# Sveip to nett og ta med ARP-tabellen
python3 ipm-collector.py --token ipm_xxxxxxxx --arp 10.20.0.0/24 10.20.3.0/24

Innsamleren pinger adressene i nettene du oppgir, leser maskinens ARP-tabell for å finne MAC-adresser, slår opp omvendt DNS for vertsnavn og kan lese leieavtaler fra dnsmasq og ISC DHCP. Se --help for alle valg.

Planlegg med cron
# /etc/cron.d/ipmanager-collector – hver time
0 * * * * root . /etc/ipmanager/agent.env && python3 /opt/ipmanager/ipm-collector.py --token "$IPM_TOKEN" --arp 10.20.0.0/16 >/dev/null 2>&1
ARP-tabellen inneholder bare maskiner i samme lag 2-nett som innsamleren. For nett bak en ruter får du IP og vertsnavn, men ikke MAC – med mindre du leser DHCP-leieavtaler eller kjører en innsamler i hvert nett.

4. DNS-sjekk av interne navn

Offentlige IP-adresser sjekkes automatisk fra ipmanager.no mot offentlig DNS én gang i døgnet. Interne navn – som .local eller Active Directory-DNS – kan bare slås opp innenfra. Derfor kan innsamleren sjekke dem med --dns-check, mot DNS-serveren i ditt eget nett.

Innsamleren henter de registrerte adressene med vertsnavn i nettene du oppgir, slår opp PTR-posten for hver IP og A/AAAA-posten for hvert navn, og rapporterer resultatet. ipmanager setter status OK, avvik eller mangler (PTR eller A/AAAA), og avvik vises også under Avvik. Med --no-scan hopper innsamleren over ping-sveipet og sjekker bare DNS.

Kun DNS-sjekk
IPM_TOKEN=ipm_xxxxxxxx python3 ipm-collector.py --dns-check --no-scan 10.20.0.0/16
Planlegg med cron
# /etc/cron.d/ipmanager-dns – hver natt kl. 03:15
15 3 * * * root . /etc/ipmanager/agent.env && IPM_TOKEN="$IPM_TOKEN" python3 /opt/ipmanager/ipm-collector.py --dns-check --no-scan 10.20.0.0/16 >/dev/null 2>&1

Bruker dere korte vertsnavn, kan dere angi et DNS-suffiks i ipmanager, slik at fil01 sjekkes som fil01.skole.local. Adresser uten vertsnavn får et forslag fra PTR-posten som kan tas i bruk med ett klikk.

Avvik fra rapportene

Rapportene fra agenter og innsamler brukes også til å finne avvik: duplikat IP (to MAC-adresser på samme IP i løpet av få minutter), feil MAC på en registrert IP (den registrerte MAC-en overskrives ikke), en kjent MAC på en annen IP, maskiner på adresser registrert som ledige, reserverte eller utfasede, IP-er utenfor registrerte subnett, faste adresser i DHCP-områder og endrede vertsnavn. Avvikene løses automatisk når forholdet forsvinner, og administratorene får e-post om nye kritiske avvik og advarsler.

Brannmur og nettverk

  • Agent og innsamler trenger bare utgående TCP 443 til ipmanager.no. Ingenting skal åpnes inn.
  • Innsamleren må kunne sende ICMP echo (ping) til nettene den skal sveipe. Maskiner med vertsbrannmur som blokkerer ping, blir ikke funnet med ping, men kan dukke opp via ARP eller DHCP.
  • Går utgående trafikk via en proxy, kan skriptene bruke standard proxy-variabler (HTTPS_PROXY).

Sikkerhet

  • Bruk nøkler med tilgangen agent. De kan bare rapportere, ikke lese eller slette.
  • Lagre nøkkelen i en fil som bare root eller SYSTEM kan lese, ikke i skript som sjekkes inn i versjonskontroll.
  • Siden for API-nøkler viser når hver nøkkel sist ble brukt, og fra hvilken IP. Trekk tilbake nøkler som ikke brukes.
  • Skriptene er ren tekst. Les gjennom dem før du kjører dem.

Feilsøking

SvarÅrsak
401 invalid_tokenFeil nøkkel, eller nøkkelen er trukket tilbake.
403 insufficient_scopeNøkkelen har ikke tilgangen agent.
limited > 0 i svaretOrganisasjonen har nådd adressegrensen. Nye adresser ble ikke opprettet.
Ingen nye adresser fra innsamlerenSjekk at ping er tillatt, og at nettene er skrevet i CIDR-notasjon.

Se API-dokumentasjonen for det nøyaktige formatet på rapporten.

Få oversikt over IP-adressene i dag

Gratis for opptil 100 IP-adresser. Pålogging på e-post med en gang, ingen betalingskort.