K.inc Tec Blog

Mein kleines EDV Logbuch

Exchange Health Checker

Den aktuellen Exchange Health Checker gibt es imme rhier:

https://aka.ms/ExchangeHealthChecker

Debian Linux – Dateiänderungen überwachen

Über das Paket inotifywait können Änderungen an kompletten Verzeichnisbäumen überwacht werden.

Debian Linux – Zeichenkodierung einstellen

dpkg-reconfigure locales

Wenn das Kommando nicht auf Anhieb funktioniert (weil die Pakete bereits installiert sind), dann folgende Pakete nachinstallieren:

apt-get install locales language-env

Ob es geklappt hat sieht man mit dem Kommando

locale

In der Ausgabe müsste nun der neue Zeichensatz hinterlegt sein.

Wenn das nicht funktioniert, bitte vor der Konfiguration der locales noch die ENV Variable LC_ALL exportieren, mit der gewünschten locale:

export LC_ALL="de_DE.UTF-8"
dpkg-reconfigure locales

Debian Linux – Mails über Terminal senden

Es gibt hierzu mehrere Methoden. Ich konzentriere mich hierbei auf die wohl gängiste Methode per mailutils.

Ubuntu LTS Update 22.04 DNS Probleme

Zuerst einmal muss ich loswerden, dass mich Ubuntu langsam richtig aufregt. Ich rate davon ab sowas als Produktivserver zu nutzen. Da gibt es meiner Meinung nach bessere Alternativen, wie Debian oder CentOS, die weitaus stabiler laufen.

PostgresSQL Superuser Passwort zurücksetzen

Der Superuser für Postgres heißt postgres. Das Passwort kann zurückgesetzt werden, indem man die Authentifizierungsmethode in der Konfigdatei ändert.

PowerShell XML bearbeiten

Hier am Beispiel einer iManage Konfig-Datei, bei der das Debug-Log aktiviert wird.

$XMLPath = join-path $env:APPDATA "iManage\Work\Configs\logconfig.xml"
$XMLOUTPath = join-path $env:LOCALAPPDATA "iManage\Work\Configs\logconfig.xml"

$xmlDoc = [System.Xml.XmlDocument](Get-Content $XMLPath);

$xmldoc.configuration.log4net.logger.level.value = "DEBUG"

$xmlDoc.Save($XMLOUTPath);

PowerShell Mail senden

Authentifiziertes Senden

$MailFrom = "absender@domain.de"
$MailTo = "empfaenger@domain.de"
$Username = "Benutzername@domain.de"
$Password = "Password"
$SmtpServer = "mail.domain.de"
$SmtpPort = "25"
$MessageSubject = "Mail Betreff"
$Message = New-Object System.Net.Mail.MailMessage $MailFrom,$MailTo
$Message.IsBodyHTML = $true
$Message.Subject = $MessageSubject
$Message.Body = @'
<!DOCTYPE html>
<html>
<head>
</head>
<body>
Testnachricht
</body>
</html>
'@
$Smtp = New-Object Net.Mail.SmtpClient($SmtpServer,$SmtpPort)
$Smtp.EnableSsl = $true
$Smtp.Credentials = New-Object System.Net.NetworkCredential($Username,$Password)
$Smtp.Send($Message)

Attachments können wie folgt hinzugefügt und entfernt werden:

$Message.Attachments.Add("C:\test.txt")
$Message.Attachments.Add("C:\test.txt")

# Über Index entfernen
$Message.Attachments.RemoveAt("0")
$Message.Attachments.RemoveAt("1")

Header können mit folgendem Befehl hinzugefügt werden:

$Message.Headers.Add("X-Test-Header","Daten")

Anonymes Senden

Mit folgender einfachen Funktion kann man über Powershell emails anonym, also ohne Benutzeraccount, an einen Mailserver senden. Bitte vorher die Empfänger, das From und den Mailserver anpassen.

function Send-Mail($subject, $body="", $attachments="", $highpriority=$false)
{
$msgTo = @("rcp1@domain.de", "rcp2@domain.de")
$msgFrom = "$($env:computername)@domain.de"

$mailServer = ""

$utf8 = New-Object System.Text.utf8encoding

$anonUsername = "anonymous"
$anonPassword = ConvertTo-SecureString -String "anonymous" -AsPlainText -Force
$anonCredentials = New-Object System.Management.Automation.PSCredential($anonUsername,$anonPassword)

if ($highpriority -and $attachments.length -gt 0) {
    send-mailmessage -to $msgTo -from $msgFrom -subject $subject -body $body -smtpServer $mailServer -credential $anonCredentials -encoding $utf8 -priority High -Attachments $attachments
}
elseif ($attachments.length -gt 0) {
    send-mailmessage -to $msgTo -from $msgFrom -subject $subject -body $body -smtpServer $mailServer -credential $anonCredentials -encoding $utf8 -Attachments $attachments
}
elseif ($highpriority) {
    send-mailmessage -to $msgTo -from $msgFrom -subject $subject -body $body -smtpServer $mailServer -credential $anonCredentials -encoding $utf8 -priority High
}
else {
    send-mailmessage -to $msgTo -from $msgFrom -subject $subject -body $body -smtpServer $mailServer -credential $anonCredentials -encoding $utf8 
}
}

Anmerkungen:

Das Script baut eine anonyme Verbindung mit dem Mailserver auf. Der Mailserver benötigt hierzu also einen EmpfangsConnector (MS Exchange), der anonyme Verbindungen von dem Host erlaubt, auf dem das Script ausgeführt wird.

Powershell S-FTP Upload

Man kann mit der WinSCP Assembly über PowerShell ganz einfach SFTP-Uploads durchführen. WinSCP hat dazu eine gute Doku, die auch zeigt, wie man die Assembly als COM Objekt nutzt und wie man Ressourcen zu einem .NET Projekt hinzufügt und in eine temporäre Datei entpackt:

https://winscp.net/eng/docs/library_install#downloading

Event Log – Wichtige Abfragen

Konfiguration

Wichtig ist, dass die Logs auch verfügbar sind, wenn man sie braucht. Das geht entweder über die Retention Policy pro Server und Log oder über eine SIEM-Lösung (Security Information and Event Management). Ein SIEM-Client schickt dabei alle relevanten Logs an einen zentralen Server. Ähnlich wie bei Remote Syslog. Ein SIEM kann normalerweise auch Syslogs direkt empfangen und verarbeiten.

Retention Policy

Um hier alle Logs nach einer Vorgabe zu konfigurieren, sollte man die Retention Policy per PowerShell Script ausrollen. Anleitung hierfür folgt.

SIEM

Abschnitt folgt.

Wer hat Software installiert?

im Application Log nach dem Event 11707 filtern:

Seite 2 von 24

Präsentiert von WordPress & Theme erstellt von Anders Norén