Packetbeat接口检测
Packetbeat interface detection
我正在使用 Packbeat 监控网络流量,以使用 ELK 进行类似 SIEM 的设置。我想将其推送到大量机器,但设置需要在 packetbeat.yml.
中手动识别
是否有人能够编写脚本来选择合适的接口来监控 packetbeat?
我把它放在一起了——它使用了 3 个单独的 .yml
ConfigTemplate.yml 其中包含 packetbeat.yml 减去接口的其余部分。
Interfaces.yml 用于写入接口的临时文件。
packetbeat.yml 这是 packetbeat 将使用的最终配置文件。
python 脚本应该与配置 .yml 一起位于 packetbeat 目录中
唯一的限制是它需要在主机上 python - 下一阶段是看看它是否可以用 powershell 完成。
希望这对其他人有帮助!欢迎任何改进!
import subprocess
devices = subprocess.check_output(["powershell.exe", "(./packetbeat.exe devices).count"])
devicesCount = int(devices.decode('utf-8'))
print(devicesCount)
deviceCount = range(devicesCount)
with open('ConfigTemplate.yml', 'r') as original: data1 = original.read()
with open('Interfaces.yml', 'w') as modified:
for i in deviceCount:
modified.write("packetbeat.interfaces.device: " + str(i)+ "\n" )
with open('Interfaces.yml', 'r') as original: data2 = original.read()
with open('Packetbeat.yml', 'w') as modified2: modified2.write("# ================== Set listening interfaces ==================" +"\n"+ data2 + "\n" + data1 + "\n")
Powershell 版本 -
$count = (C:\path\to\packetbeat.exe - devices).count
$line = ''
for($i=0; $i -le ($count-1); $i++){
$line +="packetbeat.interfaces.device:"+" $i `r`n"
}
$line | Out-File -FilePath "C:\path\to\packetbeat\Interfaces.yml"
$configTemplate = Get-Content -Path "C:\path\to\packetbeat\ConfigTemplate.yml"
$interfaces = Get-Content -Path "C:\path\to\packetbeat\Interfaces.yml"
$interfaces + "`r`n" + $configTemplate | Out-File -FilePath "C:\path\to\packetbeat\packet.yml"
我正在使用 Packbeat 监控网络流量,以使用 ELK 进行类似 SIEM 的设置。我想将其推送到大量机器,但设置需要在 packetbeat.yml.
中手动识别是否有人能够编写脚本来选择合适的接口来监控 packetbeat?
我把它放在一起了——它使用了 3 个单独的 .yml
ConfigTemplate.yml 其中包含 packetbeat.yml 减去接口的其余部分。
Interfaces.yml 用于写入接口的临时文件。
packetbeat.yml 这是 packetbeat 将使用的最终配置文件。
python 脚本应该与配置 .yml 一起位于 packetbeat 目录中
唯一的限制是它需要在主机上 python - 下一阶段是看看它是否可以用 powershell 完成。
希望这对其他人有帮助!欢迎任何改进!
import subprocess
devices = subprocess.check_output(["powershell.exe", "(./packetbeat.exe devices).count"])
devicesCount = int(devices.decode('utf-8'))
print(devicesCount)
deviceCount = range(devicesCount)
with open('ConfigTemplate.yml', 'r') as original: data1 = original.read()
with open('Interfaces.yml', 'w') as modified:
for i in deviceCount:
modified.write("packetbeat.interfaces.device: " + str(i)+ "\n" )
with open('Interfaces.yml', 'r') as original: data2 = original.read()
with open('Packetbeat.yml', 'w') as modified2: modified2.write("# ================== Set listening interfaces ==================" +"\n"+ data2 + "\n" + data1 + "\n")
Powershell 版本 -
$count = (C:\path\to\packetbeat.exe - devices).count
$line = ''
for($i=0; $i -le ($count-1); $i++){
$line +="packetbeat.interfaces.device:"+" $i `r`n"
}
$line | Out-File -FilePath "C:\path\to\packetbeat\Interfaces.yml"
$configTemplate = Get-Content -Path "C:\path\to\packetbeat\ConfigTemplate.yml"
$interfaces = Get-Content -Path "C:\path\to\packetbeat\Interfaces.yml"
$interfaces + "`r`n" + $configTemplate | Out-File -FilePath "C:\path\to\packetbeat\packet.yml"