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 SSH

SSH tunnel

Tunnel

Port forward

 

Categories
Linux

Check file consistency after copying

Same also works for md5sum etc …

Categories
CUPS Linux Printer

Print from command line

List all printers

Change into directories and print the files

 

If the document type/mime type is not supported check /etc/mailcap.

Necessary package for Fedora is cups-client.

Categories
Linux

SELinux: convert denial to policy

Create a policy .te file by using the following command as an example.

Now follow HOWTO: Build a SELinux Policy and activate it

Categories
CentOS Linux

HOWTO: Build a SELinux Policy and activate it

Build the policy according to

  1. https://www.centos.org/docs/5/html/Deployment_Guide-en-US/sec-sel-building-policy-module.html
  2. https://wiki.gentoo.org/wiki/SELinux/Tutorials/Creating_your_own_policy_module_file
  3. https://wiki.centos.org/HowTos/SELinux

The package selinux-policy-devel is required.

 

Categories
Linux RAM Raspberry Pi Server Swap

Raspberry Pi – SWAP erweitern

  1. Vorwort
  2. Swap erweitern

    1. Auf dem Pi einloggen
    2. Sich root-Rechte geben
    3. Die Datei “/etc/dphys-swapfile” öffnen und bearbeiten
    4. Setup und AKtivierung des Swap

1 Vorwort

Der RAM eines (Stand: 21.10.2014) aktuellen Raspberry Pi (B+) ist 512MB groß.

Je nach Anwendung(-en) kann der Pi an seine Grenzen geraten. Dass er trotzdem so stabil wie möglich weiter läuft sollte man also den Swap erweitern (Standard müsste 100MB sein).

Bei meinem Pi benutze ich einen 16GB Speicher – das ist für meine Zwecke mehr als genug. Also kann ich auch den Swap großzügig vergrößern.

2 Swap erweitern

2.1 Auf dem Pi einloggen

Das kann man entweder per SSH oder direkt “vor Ort” machen.

2.2 Sich root-Rechte geben

Entweder man loggt sich als root-User ein oder man führt jeden Befehl mit dem vorangestellten “sudo” aus

2.3 Die Datei “/etc/dphys-swapfile” öffnen und bearbeiten

Die Datei “/etc/dphys-swapfile” mit

öffnen und folgende Zeile einfügen (überschreiben):

2.4 Setup und AKtivierung des Swap

Anschließend folgt ein Setup der Swap-Datei und das aktivieren des Swap.

Der Swap sollte nun on-the-fly geändert werden und ihr solltet somit einen größeren Spielraum beim RAM zur Verfügung haben.

Categories
Allgemein Linux Raspberry Pi Server

Raspberry Pi – Raspbian installieren

Nachdem ich gelesen habe, dass der nächste Raspberry Pi (Version 2) frühestens 2017 kommen solle. Meine Hoffnung wurde zerschmettert und somit habe ich mir einen Raspberry Pi B+ (B Plus) zugelegt.

Edit: Mittlerweile ist er ja bereits erschienen, groß geändert hat sich an der Vorgehensweise allerdings nichts.

Hier eine kleine Anleitung zur Installation eines Raspbian. Die Vorgehensweise müsste sich allerdings auch auf die anderen Betriebssysteme übertragen lassen.

  1. Benötigte Materialien
  2. Vorbereitung
  3. Betriebssystem installieren
  4. Abschluss

1 Benötigte Materialien

  • Einen Raspberry Pi B+ (wobei diese Anleitung auch auf alle Vorgänger zutreffen dürfte)
  • Eine Flash-Speicherkarte (je nach Version)
    • Raspberry Pi B+ => microSD
    • Vorgänger des B+ => SD
  • Eine Stromversorgung für den Pi
  • Für die Erstinstallation einen Monitor / Fernseher mit HDMI-Anschluss (Composite sollte auch funktionieren)
  • Eine USB-Tastatur
  • Einen Internetzugang

2 Vorbereitung

Zur Vorbereitung werden wir erst einmal das Betriebssystem herunterladen. Das macht man am Besten durch die offizielle Quellen. Die heruntergeladene Datei wird entpackt, dadurch hat man dann eine .img Datei.

Diese .img Datei kann man nun mit dem Win32 Disk Imager auf die (micro-)SD-Karte spielen.

Dazu startet man den Disk Imager, wählt den entsprechenden Pfad zur .img Datei aus, wählt das richtige Device (Gerät, Laufwerksbuchstabe) aus und sobald man sich vergewissert hat, dass alle Angaben korrekt sind, drückt man auf den Button “Write“.

Dadurch wird das Image auf die (micro-)SD-Karte geschrieben.

!!! Bevor die Stromversorgung des Pi hergestellt wird

Nachdem das Betriebssystem erfolgreich auf die (micro-)SD-Karte geschrieben wurde kann es in den dafür vorgesehenen Slot geschoben werden. Anschließend noch das Internetkabel, die Tastatur und den Monitor / Fernseher anschließen.

Nachdem man sich vergewissert hat, dass alles richtig angeschlossen und vorbereitet ist, kann die Stromversorgung des Pi hergestellt werden.

3 Betriebssystem installieren

Beim ersten Systemstart wird eine Vorkonfiguration vorgenommen – das kann etwas dauern.

Das Betriebssystem zu installieren ist durch die geführte Installation recht simpel.
Im Grunde kann man einfach die Punkte nacheinander abarbeiten. Das, was nicht benötigt wird, kann ausgelassen werden.

Empfehlen würde ich den SSH-Server. Dadurch reichen dem Pi ein Netzwerkkabel und die Stromversorgung zum Betrieb.

4 Abschluss

Ich kann verstehen, die Euphorie ist groß.
Deshalb: Es fehlt, um per SSH auf den Pi zugreifen zu können, nur noch eine Information: die IP-Adresse des Pi.

Die IP-Adresse wird am einfachsten mittels

Die Ausgabe davon sollte in etwa so aussehen:

Mit der IP-Adresse kann nun mittels SSH auf den Pi zugegriffen werden und das System auf den aktuellsten Stand gebracht werden.
Bekannterweise mit:

und

Der Pi sollte nun den eigenen Ansprüchen angepasst werden. Empfehlenswert ist natürlich noch die Firewall zu konfigurieren!