OPNsense per Script konfigurieren
Hallochen Gemeinde!
Gibt es eine Möglichkeit, die Konfiguration von OPNsense für die Firewall (Aliases, Gruppen und Regeln) per Script zu automatisieren?
Was ich in der Dokumentation gefunden habe, ist, das auf die Konfiguration per API über HTTPS zugegriffen werden kann. Dort ist beispielsweise das Kommando addItem für den Controller Alias benannt. Jedoch gibt es keine weitergehenden Angaben, wie über dieses Kommando ein neuer Alias angelegt werden kann. Dasselbe gilt für das Kommando import.
Wie komme ich hier weiter? Gibt es alternative Möglichkeiten, letztlich die config.xml gezielt zu "manipulieren"?
Vielen Dank für Euren Input und viele Grüße
HansDampf06
Gibt es eine Möglichkeit, die Konfiguration von OPNsense für die Firewall (Aliases, Gruppen und Regeln) per Script zu automatisieren?
Was ich in der Dokumentation gefunden habe, ist, das auf die Konfiguration per API über HTTPS zugegriffen werden kann. Dort ist beispielsweise das Kommando addItem für den Controller Alias benannt. Jedoch gibt es keine weitergehenden Angaben, wie über dieses Kommando ein neuer Alias angelegt werden kann. Dasselbe gilt für das Kommando import.
Wie komme ich hier weiter? Gibt es alternative Möglichkeiten, letztlich die config.xml gezielt zu "manipulieren"?
Vielen Dank für Euren Input und viele Grüße
HansDampf06
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 8154438154
Url: https://administrator.de/forum/opnsense-per-script-konfigurieren-8154438154.html
Ausgedruckt am: 21.12.2024 um 16:12 Uhr
3 Kommentare
Neuester Kommentar
Servus,
Powershell Beispiel um für Hosts einen Alias anzulegen (addItem)
Und hier noch ein Beispiel für die Import-Methode für Aliases (import)
Grüße Uwe
Was ich in der Dokumentation gefunden habe, ist, das auf die Konfiguration per API über HTTPS zugegriffen werden kann. Dort ist beispielsweise das Kommando addItem für den Controller Alias benannt. Jedoch gibt es keine weitergehenden Angaben, wie über dieses Kommando ein neuer Alias angelegt werden kann. Dasselbe gilt für das Kommando import.
Du musst die Daten per JSON an die API übergeben, welche Daten benötigt werden steht in den XML-Models für die Aliase hier.Powershell Beispiel um für Hosts einen Alias anzulegen (addItem)
# api key
$key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# api secret
$secret = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
# url
$url = 'https://my.OPNsense.intern'
# ------------------
# create basic auth info
$authinfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $key,$secret)))
# create body for new alias
$body = @{
alias = @{
enabled = 1
name = 'MyTestAlias'
type = 'host'
description = "Mein Test Alias"
content = "1.1.1.1`n2.2.2.2"
}
} | ConvertTo-Json -Depth 100 -Compress
# post request
Invoke-RestMethod -Uri "$url/api/firewall/alias/addItem" -Method Post -ContentType 'application/json' -Body $body -Headers @{Authorization = "Basic $authinfo"}
Und hier noch ein Beispiel für die Import-Methode für Aliases (import)
# api key
$key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# api secret
$secret = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
# url
$url = 'https://my.OPNsense.intern'
# ------------------
# create basic auth info
$authinfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $key,$secret)))
# create import body for multiple aliases
$body = [ordered]@{
data = [ordered]@{
aliases = [ordered]@{
alias = [ordered]@{
'MyTestAlias1' = [ordered]@{
enabled = 1
name = 'MyTestAlias1'
type = 'host'
content = "1.1.1.1`n2.2.2.2"
categories = ''
description = "Mein Test Alias 1"
}
'MyTestAlias2' = [ordered]@{
enabled = 1
name = 'MyTestAlias2'
type = 'host'
content = "3.3.3.3`n4.4.4.4"
categories = ''
description = "Mein Test Alias 2"
}
}
}
}
} | ConvertTo-Json -Depth 100 -Compress
Invoke-RestMethod -Uri "$url/api/firewall/alias/import" -Method Post -ContentType 'application/json' -Body $body -Headers @{Authorization = "Basic $authinfo"}
Grüße Uwe