Add files via upload
A script that gets the version of the agent. Query if there is local_internal_options.conf, if it does not exist, create the file. If the agent version is equal to 3.1 or higher, add to the file: # Wazuh Command Module - If it should accept remote commands from the manager wazuh_command.remote_commands=1 Regardless of the version, add to the file: # Logcollector - If it should accept remote commands from the manager logcollector.remote_commands=1 Finally, restart the agent.
This commit is contained in:
parent
8fe61c17ce
commit
990a56cdf4
154
configure_commands_wazuh_agent.ps1
Normal file
154
configure_commands_wazuh_agent.ps1
Normal file
@ -0,0 +1,154 @@
|
||||
#------------------------- Gather parameters --------------------------#
|
||||
|
||||
param (
|
||||
[switch]$Elevated,
|
||||
[switch]$help
|
||||
)
|
||||
|
||||
#------------------------- Gather parameters --------------------------#
|
||||
|
||||
# ------------------------- Common functions ------------------------- #
|
||||
|
||||
# Restart agent service
|
||||
function restartAgent {
|
||||
$service="OssecSvc"
|
||||
$status= (Get-Service $service).status
|
||||
|
||||
if($status -eq "Running"){
|
||||
Restart-Service $service -Force
|
||||
}
|
||||
elseif($status -eq "Stopped"){
|
||||
Start-Service $service
|
||||
}
|
||||
}
|
||||
|
||||
# Get agent version
|
||||
|
||||
function getVersion
|
||||
{
|
||||
$version = ""
|
||||
$version_path = "$($path)\VERSION"
|
||||
if (Test-Path $version_path) {
|
||||
$version_path = "$($path)\VERSION"
|
||||
} else {
|
||||
$version_path = "$($path)\VERSION.txt"
|
||||
}
|
||||
|
||||
foreach($line in Get-Content "$($version_path)") {
|
||||
if ($line -like '*v2.*'){
|
||||
$version = "v2"
|
||||
}
|
||||
if ($line -like '*v3.*'){
|
||||
if ($line -like '*v3.0.*'){
|
||||
$version = "v3.0"
|
||||
} else{
|
||||
$version = "v3"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($wazuh_version -eq ""){
|
||||
"The agent version could not be obtained."
|
||||
Exit
|
||||
} else{
|
||||
return $version
|
||||
}
|
||||
}
|
||||
|
||||
# Agent configuration
|
||||
function confAgent
|
||||
{
|
||||
|
||||
"Updating local_internal_options.conf file..."
|
||||
|
||||
$local_conf_path = "$($path)\local_internal_options.conf"
|
||||
$local_conf_path
|
||||
if (Test-Path $local_conf_path) {
|
||||
"local_internal_options.conf already exists. Proceeding with the changes. "
|
||||
} else{
|
||||
"Creating local_internal_options.conf"
|
||||
New-Item "$($path)\local_internal_options.conf" -ItemType file
|
||||
Add-Content "$($path)\local_internal_options.conf" -value "# local_internal_options.conf`r`n
|
||||
#`r`n
|
||||
# This file should be handled with care. It contains`r`n
|
||||
# run time modifications that can affect the use`r`n
|
||||
# of OSSEC. Only change it if you know what you`r`n
|
||||
# are doing. Look first at ossec.conf`r`n
|
||||
# for most of the things you want to change.`r`n
|
||||
#`r`n
|
||||
# This file will not be overwritten during upgrades.`r`n"
|
||||
}
|
||||
|
||||
|
||||
if ($wazuh_version -eq "v3") {
|
||||
$contain_output = Select-String -Path "$($path)\local_internal_options.conf" -pattern wazuh_command.remote_commands
|
||||
|
||||
if ($contain_output -ne $null) {
|
||||
(Get-Content "$($path)\local_internal_options.conf") -replace('wazuh_command.remote_commands.*', 'wazuh_command.remote_commands=1') | Set-Content "$($path)\local_internal_options.conf"
|
||||
} else {
|
||||
Add-Content "$($path)\local_internal_options.conf" -value "# Wazuh Command Module - If it should accept remote commands from the manager`r`nwazuh_command.remote_commands=1`r`n"
|
||||
}
|
||||
}
|
||||
|
||||
$contain_output = Select-String -Path "$($path)\local_internal_options.conf" -pattern 'logcollector.remote_commands'
|
||||
|
||||
if ($contain_output -ne $null) {
|
||||
(Get-Content "$($path)\local_internal_options.conf") -replace('logcollector.remote_commands.*', 'logcollector.remote_commands=1') | Set-Content "$($path)\local_internal_options.conf"
|
||||
} else {
|
||||
Add-Content "$($path)\local_internal_options.conf" -value "# Logcollector - If it should accept remote commands from the manager`r`nlogcollector.remote_commands=1`r`n"
|
||||
}
|
||||
}
|
||||
|
||||
# Usage function
|
||||
function Usage
|
||||
{
|
||||
"
|
||||
/\__/\
|
||||
/ \ WAZUH agent - Windows deploy
|
||||
\ \ / / Site: http://www.wazuh.com
|
||||
\ VV /
|
||||
\__/
|
||||
USE: ./configure_commands_wazuh_agent.ps1 [options]
|
||||
-help: usage information.
|
||||
Examples:
|
||||
./configure_commands_wazuh_agent.ps1
|
||||
"
|
||||
}
|
||||
|
||||
# ------------------------- Common functions ------------------------- #
|
||||
|
||||
#------------------------- Analyze parameters -------------------------#
|
||||
|
||||
if(($help.isPresent)) {
|
||||
Usage
|
||||
Exit
|
||||
}
|
||||
|
||||
#------------------------- Analyze parameters -------------------------#
|
||||
|
||||
#------------------------- Main workflow --------------------------#
|
||||
|
||||
# Opening powershell as Administrator
|
||||
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
|
||||
Write-Host "This script requires Administrator privileges"
|
||||
Exit
|
||||
}
|
||||
|
||||
|
||||
$path = "C:\Program Files (x86)\ossec-agent\"
|
||||
if (Test-Path $path) {
|
||||
$path = "C:\Program Files (x86)\ossec-agent\"
|
||||
} else {
|
||||
$path = "C:\Program Files\ossec-agent\"
|
||||
}
|
||||
|
||||
# Get agent version
|
||||
$wazuh_version = getVersion
|
||||
"Agent version: $wazuh_version"
|
||||
# Configure agent
|
||||
confAgent
|
||||
|
||||
# Restart agent
|
||||
restartAgent
|
||||
|
||||
#------------------------- Main workflow --------------------------#
|
||||
Loading…
Reference in New Issue
Block a user