Categories
Linux Network Server Shell

Get WAN IP address via shell

Sometimes one needs to get the WAN IP address via shell.

#!/bin/sh

set -e
set -u

C_DIG="$(which dig)"

DEBUG=0

while [[ ${#} -gt 0 ]]; do
    KEY="${1}"

    case "${KEY}" in
        -d|--debug)
            DEBUG=1
            shift
        ;;
    esac
done

QUERY_TYPE="A"
DIG_OPTIONS="+short"

DNS_SERVER="resolver1.opendns.com"
QUERY_VALUE="myip.opendns.com"

# short version: dig @resolver1.opendns.com A myip.opendns.com +short
IP_ADDRESS="$(${C_DIG} @${DNS_SERVER} ${QUERY_TYPE} ${QUERY_VALUE} ${DIG_OPTIONS})"
RC=${?}

# if the IP address could be successfully retrieved by querying OpenDNS echo it and exit
if [ ${RC} -eq 0 ]; then
    if [ ${DEBUG} -eq 1 ]; then
        echo "Server queried: OpenDNS"
    fi

    echo "${IP_ADDRESS}"

    exit 0
fi

DNS_SERVER="ns1-1.akamaitech.net"
QUERY_VALUE="whoami.akamai.net"

# short version: dig @ns1-1.akamaitech.net A whoami.akamai.net +short
IP_ADDRESS="$(${C_DIG} @${DNS_SERVER} ${QUERY_TYPE} ${QUERY_VALUE} ${DIG_OPTIONS})"
RC=${?}

# if the IP address could be successfully retrieved by querying Akamai echo it and exit
if [ ${RC} -eq 0 ]; then
    if [[ "${DEBUG}" == "-d" ]]; then
        echo "Server queried: Akamai"
    fi

    echo "${IP_ADDRESS}"

    exit 0
fi

DNS_SERVER="ns1.google.com"
QUERY_VALUE="o-o.myaddr.l.google.com"
QUERY_TYPE="TXT"

# short version: dig @ns1.google.com TXT o-o.myaddr.l.google.com +short
IP_ADDRESS="$(${C_DIG} @${DNS_SERVER} ${QUERY_TYPE} ${QUERY_VALUE} ${DIG_OPTIONS})"
RC=${?}

# if the IP address could be successfully retrieved by querying Google echo it and exit
if [ ${RC} -eq 0 ]; then
    if [[ "${DEBUG}" == "-d" ]]; then
        echo "Server queried: Google"
    fi

    echo "${IP_ADDRESS}"

    exit 0
fi

exit 1

Source

This has been taken from https://unix.stackexchange.com/a/81699 and put into a small script to provide some kind of failover if one service might not be available.

Categories
Linux Network Netzwerk

SNMP tools

SNMP-Walk with translated OIDs

to prevent translation of OIDs: -On

 

Categories
Linux Network Netzwerk

Connecting to UDP socket

 

Categories
CentOS Network Security

NetworkManager disable MAC randomization

The NetworkManager automatically changes the MAC address of the WiFi adapter every time it searches for / connects to a network.

This does not come in handy if you have a MAC filter active …

To disable the MAC address randomization create the file

/etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf

with the content

 

Categories
CIFS Linux Mount Network Netzwerk SSH Windows

Windows-Freigabe unter Linux einbinden (Kommandozeile)

Heute wollen wir eine Windows-Freigabe unter Linux (Debian, Ubuntu) einbinden.

  1. Die benötigten Pakete installieren
  2. Der Aufbau
  3. Beispiel

1. Die benötigten Pakete installieren

In diesem Fall ist es nur eines, nämlich “cifs-utils”.

2. Der Aufbau

Möchte man eine Freigabe dauerhaft einbinden, so nutzt man am Besten die Filesystem-Tabelle. Diese kann man mit dem gewünschten Editor folgendermaßen aufrufen:

Hier trägt man in dieser Reihenfolge (getrennt jeweils durch ein Leerzeichen) ein:

  1. file system (NETBiosname, IP-Adresse und Freigabenamen)
  2. mount point (lokaler Mount-Punkt)
  3. type (in unserem Fall “cifs”)
  4. options (Charset, Benutzerdaten etc.)
  5. dump (ob ein Backup des Laufwerks mittels “dump” erstellt werden soll – 0 für kein Backup, alles Andere für ein Backup)
  6. pass (Priorität zur Überprüfung des Laufwerkes mittels “fsck” – 0 für keine Überprüfung, 1 für hohe Priorität, 2 für niedrigere Priorität)

3. Beispiel

  1. Die IP-Adresse unseres Windows-Rechners ist “192.168.115.10” und der Freigabename “share”.
  2. Der Mount-Punkt ist “/mnt/network/computername/share”
  3. type ist in unserem Fall, wie schon erwähnt, “cifs”
  4. Die options werden sein “credentials”, “uid”, “iocharset” und “sec”
  5. dump wird in unserem Fall “0” sein – wir möchten in diesem Fall kein Backup
  6. pass wird in unserem Fall auch “0” sein – wir möchten in diesem Fall keine Überprüfung

So sieht die fertige Zeile dann im Endeffekt aus:

//192.168.115.10/share /mnt/network/computername/share cifs credentials=/root/.smbcredentials,uid=1000,iocharset=utf8,sec=ntlm 0 0

Für die in Punkt 4 angegebene Option “credentials” müssen wir noch

ausführen und

username=INSERT YOUR USERNAME OF THE WINDOWS MACHINE
password=INSERT THE PASSWORD

einfügen.

Hat man das getan kann man mit dem Befehl

alles in der Datei /etc/fstab aufgeführten Mounts einbinden.

Es könnten Fehler auftreten, wenn das Betriebssystem die “sec”-Option nicht unterstützen sollte (den Wert). In einem solchen Fall könnte man “ntlm” durch “ntlmv2” ersetzen.