Master Browser Lookup

Windows Master Browser Lookup für NetBIOS-Namensinformationen und Elected Master Browser

Die von Windows-Clients freigegebenen Ordner und Drucker werden in der Netzwerkumgebung der Clients angezeigt. Bleibt die Netzwerkumgebung leer, liegt es oft beim Computer-Browser Service. Windows versucht, in der Netzwerkumgebung alle PCs eines Windows-Netzwerks anzuzeigen.

Windows Arbeitsstationsdienst

Zunächst muss sichergestellt werden, dass ein Windows-Netzwerk überhaupt richtig funktioniert. Die Windows-Dienste „Arbeitsstationsdienst“ und „Server“ müssen ausgeführt werden, und in den Eigenschaften der Netzwerkverbindung müssen die „Datei- und Druckerfreigabe“ sowie der „Client für Microsoft-Netzwerke“ aktiv sein, auch TCP/IP über NetBIOS muss aktiviert sein. Zu beachten ist das Clients die nicht in einer Domäne sind, dabei in der selben Workgroup sind, wobei WORKGROUP und ARBEITSGRUPPE unterschiedliche Gruppen sind. Wenn das alles noch nicht zum erfolg führt, sollte man den Computer im Netzwerk suchen, dieser zum Master Browser delegiert wurde.

NetBIOS Namensinformationen

Das NBTscan ist ein Programm zum Scannen von IP-Netzwerken für NetBIOS-Namensinformationen. Es sendet eine NetBIOS-Statusabfrage an jede Adresse im angegebenen Bereich und listet empfangene Informationen in für Menschen lesbarer Form auf. Für jeden antwortenden Host werden die IP-Adresse, der NetBIOS-Computername, der Benutzername und die MAC-Adresse des Computer angezeigt.

C:\> nbtscan -s: -h -v 192.168.10.0/24

Um den Master Browser in einem lokalen Netzwerk zu ermitteln, kann folgender Inhalt in einer Batchdatei angelegt werden.

@Echo Off
Title Master Browser Lookup & Color 1A
call :IsAdmin

if not [%1]==[] goto lookup
echo use: nbt [ip address range]
echo example: nbt 192.168.10.0/24
goto:eof

:lookup
nbtscan -s: -h -v %1 | find "Master Browser"
for /f "delims=" %%A in ('nbtscan -s"   " -h -v %1 ^| find "Master Browser"') do set "var=%%A"
echo .
echo Elected Master Browser on %var:~0,15%
echo .
nbtstat -A %var:~0,15%
pause

:IsAdmin
Reg.exe query "HKU\S-1-5-19\Environment"
If Not %ERRORLEVEL% EQU 0 (
 cls & echo You must have administrator rights to continue ... 
 pause & exit
)
cls
goto:eof

Mit  Copy Paste in Batchdatei nbt.bat speichern und mit Übergabe des IP-Netzwerk in der Eingabeaufforderung als Administrator ausführen, das Programm nbtscan.exe und cygwin1.dll muss im selben Verzeichnis sein, oder der Pfad zum Programm muss sich in der Suchpfad Umgebung befinden.

 Download NBTScan

Master Browser Delegierung

Oft hilft es dann wenn der PC dieser der Master Browser in seinem Netzwerk ist, neu zu starten, damit wird die Wahl zur Delegierung eines anderen Computer ausgelöst. Microsoft legt hier Prioritäten fest, durch regeln wird die Zuweisung (Election) zum Master Browser erteilt. Administratoren möchten es nicht einfach Zufallsregeln überlassen, wer Master Browser sein soll, dazu öffnet man Regedit und geht zu folgendem Schlüssel.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters

Bearbeitung des REG_SZ Schlüssel MaintainServerList und Festlegung auf FALSE oder TRUE, für deaktivieren oder aktivieren. Bei Windows XP und Server 2003 heisst der REG_SZ Schlüssel IsDomainMaster mit Wert FALSE / TRUE, und MaintainServerList mit dem Wert AUTO / NO / YES. Die Änderung tritt nicht sofort in kraft und kann bis zu 48 Minuten dauern.

Linux Samba Master Browser

Bei Linux ist die Samba Konfigurationsdatei smb.conf zuständig, in folgendem Beispiel wird ein Samba Server mit höchster Priorität zum Master Browser gewählt, geeignet in einem Netzwerk ohne Windows PDC. In Netzwerke in diesen sich ein Windows PDC befindet ist es nicht empfohlen.

[global]
    domain master = yes
    preferred master = yes
    local master = yes
    os level = 255
Computer-Browser-Service-Architecture
Abbildung: Computer Browser Service Architecture

NBTStat ist ein Befehlszeilentool für die Problembehandlung von NetBIOS-Name über TCP/IP (NetBT) Auflösungsprobleme, es gehört zum Windows Standard. Es zeigt Protokollstatistiken und aktuelle TCP/IP-Verbindungen mit NetBT.

C:\> nbtstat -A 192.168.10.73
LAN-Verbindung 1:
Knoten-IP-Adresse: [192.168.10.73] Bereichskennung: []

      NetBIOS-Namentabelle des Remotecomputers

       Name               Typ          Status
    ---------------------------------------------
    AMX3000        <00>  EINDEUTIG   Registriert
    WORKGROUP      <00>  GRUPPE      Registriert
    WORKGROUP      <1C>  GRUPPE      Registriert
    AMX3000        <20>  EINDEUTIG   Registriert
    WORKGROUP      <1B>  EINDEUTIG   Registriert
    WORKGROUP      <1E>  GRUPPE      Registriert
    ADMINISTRATOR  <03>  EINDEUTIG   Registriert

    MAC Adresse = 00-0B-AB-0B-11-8E

NetBIOS-Namentabellen Typ <00> wird in Hex ausgegeben.

<00> gibt die Domäne an zu der dieser Computer gehört
<03> Computername dem Messenger-Dienst zugeordnet
<20> Computername dem Server-Dienst zugeordnet
<1C> Internetgruppenname bei Domänencontroller registriert
<1B> Identifizieren eines Domain-Master-Browsername
<1E> Computer kann als Backup Browser in Domäne sein
<03> Benutzername aktuell an diesem Computer angemeldet
<1D> Identifiziere Segment-Master-Browsers ohne Domäne

Computer-Browser-Service

E-Mails mit fetchmail abrufen

E-Mails mit fetchmail von Server abrufen und weiterleiten

fetchmail ist ein Dienstprogramm zum Abrufen und Weiterleiten von E-Mails; das Unix Urgestein holt E-Mails von Mailservern und leitet diese an das Zustellsystem weiter. Es können die Mails dann unter Verwendung normaler E-Mail-Benutzeragenten wie etwa mutt, elm oder Mail abgerufenen werden.

Was ist fetchmail ?

Das fetchmail-Dienstprogramm kann im Daemon-Modus laufen, um ein oder mehrere Systeme in einem bestimmten Intervall wiederholt abzufragen, es werden E-Mails von Servern gesammelt die alle gängigen E-Mail-Abrufdienste unterstützen, wie POP3 und IMAP, auch unterstützt werden die ESMTP-ETRN-Erweiterung und die ODMR Protokolle.

In diesem Beitrag wird beschrieben wie fetchmail auf einem Linux Smarthost mit Postfix eingesetzt werden kann. Die E-Mails von externen Mail-Dienstanbieter werden abgerufen und den Empfänger zum Postfach Server weitergeleitet dieser vom Smarthost E-Mails empfängt. Dabei sind bei den Mailkonten keine Weiterleitungen erforderlich, und die E-Mails werden durch den Smarthost ebenfalls auf Viren und SPAM untersucht, bevor diese dem Benutzer Postfach zugestellt werden.

fetchmail Installation

Für die Installation auf CentOS 7 wird das Extras repository benötigt, falls nicht schon vorhanden.

$ wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -Uvh epel-release-latest-7*.rpm

Das fetchmail-Dienstprogramm kann aus dem CentOS Extras repository installiert werden.

$ yum -y install fetchmail

Wir erstellen die Konfigurationsdatei fetchmail für den daemon unter /etc/sysconfig.

# This file will be used to declare some vars for fetchmail
#
# Uncomment the following if you dont want localized log messages
# export LC_ALL=C

# Declare here if we want to start fetchmail. 'yes' or 'no'
START_DAEMON=yes

 Copy Paste /etc/sysconfig/fetchmail

Es wird der Daemon Init-Script erstellt, hier für ein CentOS Host auf diesem der Postfix MTA bereits läuft. Als root mit vi /etc/rc.d/init.d/fetchmaild

#!/bin/sh
# chkconfig: 35 99 00
# description: Start and stop fetchmail

. /etc/init.d/functions

start() {
  echo "Starting fetchmaild..."
  su fetchmail -s /bin/sh -c "fetchmail -vv -d 900 -a -f /etc/fetchmailrc -L /var/log/fetchmail"
  }

stop() {
  echo "Shutting down fetchmaild..."
  su fetchmail -s /bin/sh -c "fetchmail --quit"
  }

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    ;;
esac

exit 0

 Copy Paste /etc/rc.d/init.d/fetchmaild
Den Init-Script ausführbar machen.

$ chmod 0755 /etc/rc.d/init.d/fetchmaild

Die globale fetchmailrc Recource Konfiguration für den Betrieb als Daemon erstellen in /etc/fetchmailrc.

set daemon 900
set no syslog
set logfile /var/log/fetchmail
set postmaster "postmaster"
set no bouncemail
set no spambounce
set properties ""

poll mail.foo.org with proto POP3
user 'joe@foo.org' there with password 'secret' is joe.office@foo.com here options fetchall nokeep ssl smtphost localhost

 Copy Paste /etc/fetchmailrc

Für jeden Mailserver von diesem E-Mails abgerufen werden, wird eine poll Zeile erstellt. Es soll das externe Postfach von joe@foo.org beim POP3 Server mail.foo.org abgerufen werden und mit smtphost über den localhost über Postfix zum Postfach Server dem Benutzer joe.office@foo.com zugestellt werden. Damit die Protokollierung nicht in maillog statt findet, werden anstelle diese in fetchmail geloggt.

Möglichkeiten mit fetchmail

fetchmail bietet eine Reihe von syntaktischen Feinheiten, um fetchmailrc das Lesen von Dateien zu erleichtern. Zum Beispiel werden die Worte andwithhaswants, und options von fetchmail ignoriert, wie auch Satzzeichen. Während es möglich ist, Anmeldeinformationen für einen Server in einer Zeile anzugeben, werden häufige Konfigurationen über eine Reihe von verschiedenen Zeilen angegeben. fetchmail ist unempfindlich gegenüber Whitespace, außer wenn das Argument in Anführungs- und Schlusszeichen erfolgt.

fetchmail optionen

Für die Poll-Anweisung gibt es mehrere Optionen (z.B. nofetchall (default), fetchall, keep, nokeep ). Die Bedeutungen ist wie folgt:

nofetchall: Nur neue Nachrichten abrufen (Standard). Wenn nichts anderes angegeben ist (z.B. fetchallkeep ), bedeutet dies nofetchall.
fetchall: Holt alle Nachrichten, ob gesehen oder nicht.
keep: Löscht keine Nachrichten auf dem Server.
nokeep: Löscht die gelesenen Nachrichten vom Server.

Die fetchmail Benutzer und Gruppe erstellen und die rechte setzen.

$ groupadd -r fetchmail
$ useradd -r -m -g fetchmail -s /sbin/nologin fetchmail
$ chown fetchmail /etc/fetchmailrc
$ chmod 0600 /etc/fetchmailrc
$ touch /var/log/fetchmail
$ chown fetchmail:fetchmail /var/log/fetchmail
$ chmod 0600 /var/log/fetchmail

Den fetchmail daemon wird nun gestartet.

$ /etc/rc.d/init.d/fetchmaild start

Nach jeder Änderung der fetchmailrc-Konfiguration wird der systemd daemon neugestartet.

$ systemctl daemon-reload

fetchmail Testen

Überprüfen lässt sich die fetchmail Konversation zum Server mit folgendem Befehl:

$ fetchmail -vv -N --ssl -p pop3 -P 995 -ujoe@foo.org mail.foo.org

Die Konfigurationsdatei fetchmailrc testen.

$ fetchmail -v -a -k -f /etc/fetchmailrc

Den fetchmail Prozess überprüfen.

$ ps -ef | grep -v grep | grep fetchmail

Die Ausgabe kann in etwa wie folgt aussehen:

fetchma+  4126     1  0 19:19 ?        00:00:00 fetchmail -vv -d 900 -a -f /etc/fetchmailrc -L /var/log/fetchmail
root      6488  3985  0 16:25 pts/0    00:00:00 su fetchmail

Die fetchmail Protokollierung findet nun in der Datei fetchmail statt.

$ tail -f /var/log/fetchmail

Die fetchmail man page gibt zahlreiche Informationen aus.

$ man fetchmail