Initialer Import der Synology Scripts
This commit is contained in:
Executable
+108
@@ -0,0 +1,108 @@
|
||||
---
|
||||
- name: Netzwerk Scan ARP + NMAP CSV
|
||||
hosts: localhost
|
||||
gather_facts: false
|
||||
|
||||
vars:
|
||||
dns_server:
|
||||
- "192.168.1.230"
|
||||
lokales_netz:
|
||||
- "192.168.1.0/24"
|
||||
|
||||
entfernte_netze:
|
||||
- "9.99.0.0/24"
|
||||
- "9.99.10.0/24"
|
||||
- "9.99.20.0/24"
|
||||
- "9.99.30.0/24"
|
||||
- "9.99.40.0/24"
|
||||
- "9.99.50.0/24"
|
||||
- "9.99.60.0/24"
|
||||
- "9.99.70.0/24"
|
||||
|
||||
csv_datei: "/mnt/scripte/NETWORK-SCAN/netzwerk_scan_combined.csv"
|
||||
|
||||
|
||||
tasks:
|
||||
|
||||
####################################################
|
||||
# ARP Scan lokales Netzwerk
|
||||
####################################################
|
||||
|
||||
- name: ARP Scan lokales Netz
|
||||
ansible.builtin.command:
|
||||
cmd: "sudo arp-scan {{ item }}"
|
||||
loop: "{{ lokales_netz }}"
|
||||
register: arp_ergebnis
|
||||
|
||||
|
||||
- name: ARP Daten sammeln
|
||||
ansible.builtin.set_fact:
|
||||
hosts_liste: "{{ hosts_liste | default([]) + [ {
|
||||
'ip': item.split()[0],
|
||||
'mac': item.split()[1],
|
||||
'hersteller': item.split()[2:] | join(' ')
|
||||
} ] }}"
|
||||
loop: "{{ arp_ergebnis.results | map(attribute='stdout_lines') | flatten }}"
|
||||
when:
|
||||
- item.split() | length >= 2
|
||||
- item.split()[0] is match('^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+$')
|
||||
|
||||
|
||||
####################################################
|
||||
# NMAP Scan entfernte Netzwerke
|
||||
####################################################
|
||||
|
||||
- name: NMAP Scan entfernte Netze
|
||||
ansible.builtin.command:
|
||||
cmd: "nmap -sn {{ item }}"
|
||||
loop: "{{ entfernte_netze }}"
|
||||
register: nmap_ergebnis
|
||||
|
||||
|
||||
- name: NMAP IPs hinzufügen
|
||||
ansible.builtin.set_fact:
|
||||
hosts_liste: "{{ hosts_liste | default([]) + [ {
|
||||
'ip': item | regex_replace('.*for ', ''),
|
||||
'mac': 'unbekannt',
|
||||
'hersteller': 'unbekannt'
|
||||
} ] }}"
|
||||
loop: >-
|
||||
{{
|
||||
nmap_ergebnis.results
|
||||
| map(attribute='stdout_lines')
|
||||
| flatten
|
||||
}}
|
||||
when:
|
||||
- "'Nmap scan report for' in item"
|
||||
|
||||
|
||||
####################################################
|
||||
# Hostnamen suchen
|
||||
####################################################
|
||||
|
||||
- name: Hostnamen über zentralen DNS abfragen
|
||||
ansible.builtin.shell:
|
||||
cmd: "dig @{{ dns_server }} -x {{ item.ip }} +short | sed 's/\\.$//'"
|
||||
loop: "{{ hosts_liste }}"
|
||||
register: hostname_ergebnis
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
|
||||
|
||||
####################################################
|
||||
# CSV schreiben
|
||||
####################################################
|
||||
|
||||
- name: CSV erstellen
|
||||
ansible.builtin.copy:
|
||||
dest: "{{ csv_datei }}"
|
||||
content: |
|
||||
IP : HOSTNAME : MAC ADRESSE : HERSTELLER
|
||||
{% for host in hosts_liste %}
|
||||
{{ host.ip }} : {{ hostname_ergebnis.results[loop.index0].stdout | trim | default('unbekannt', true) }} : {{ host.mac }} : {{ host.hersteller }}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
- name: Ergebnis anzeigen
|
||||
ansible.builtin.debug:
|
||||
msg: "Scan fertig: {{ csv_datei }}"
|
||||
Reference in New Issue
Block a user