PuTTY SSH Port Forwarding

SSH Tunnel mit PuTTY SSH Port Forwarding

PuTTY kann mehr als nur Terminal Sessions herstellen, mit der PuTTY Option SSH Port Forwarding lassen sich auf einfache weise SSH-Tunnels initialisieren.

Nach dem PuTTY gestartet ist, trägt man unter Host Name die IP des Ziel Host, oder den Server Name ein, dies ist in der regel eine Firewall, ein Router oder ein Host mit globaler IP Adresse.

PuTTY-Configuration SSH Port forwarding

Beispiel SSH Port forwarding

Hier in unserem Beispiel wird auf dem Host 212.117.203.98, unsere PBX mit SSH Port forwarding zu einem SIP Phone hergestellt, um dieses danach über den Webbrowser zu konfigurieren, der Host kann auch ein FQDN eines DNS auflösbaren Host sein.

PuTTY SSH tunnel port forwarding

PuTTY SSH Tunnel

Im unteren Teil bei SSH wird der Punkt Tunnels ausgewählt. Danach wird der Startpunkt und der Endpunkt des Tunnels eingetragen: Source port: 8888
Destination: 172.30.10.10:80

PuTTY SSH forwarded port

Abgeschlossen wird die Aktion mit einem Klick auf Add. Damit sind die Daten des Tunnels übernommen. Die Einstellungen werden oben beim Punkt Session mit Klick auf Save Permanent gespeichert.

Mit einem Klick auf Load und Open wird die Verbindung aufgebaut. Es öffnet sich die bekannte Terminal Konsole mit der Aufforderung sich einzuloggen. Dort loggt man sich als normaler User ein, damit wird der Tunnel etabliert.

Nun öffnet man den Webbrowser und gibt folgende Localhost Adresse ein: https://127.0.0.1:8888/. Danach beginnt, wie hier in unserem Beispiel der Anmeldedialog des SIP-Phone WebGUI welches wir nun konfigurieren können. Weitere Möglichkeiten SSH-Tunnels zu nutzen, bieten sich an für Synology DS, SAN Speicher, Unix/Linux Hosts oder Mac OS X an.

Hinweis:
Auf dem Server muss die SSH-Option AllowTcpForwarding yes aktiviert sein, Default ist yes in der Server Konfigurationsdatei /etc/ssh/sshd_config eingetragen.

Static NAT

Für den Host hinter einer Firewall muss dieser über Port 22 Static NAT forward erreichbar sein.

PuTTY Übergabe Parameter

PuTTY kann mittels Übergabe zahlreicher Parameter genutzt werden.

PUTTY-Verknüpfung

Folgende Zeile als Ziel zur Verknüpfung einfügen:
„C:\Program Files (x86)\PuTTY\PUTTY.EXE“ -l jolly -pw password -4 -L 8888:172.30.10.10:80 -X :0 -load PBX

Wobei die Parameter folgendes bedeuten:
-l  der Loginname
-pw  das Passwort
-4  es soll IPv4 verwendet werden
-L  der Destination Port und die IP
-X  für X11 forwarding
-load  gespeicherte Session öffnen

Linux Beispiele für die Kommandozeile

Linux Beispiele für die Kommandozeile aus der Praxis mit 20 häufig verwendeten Kommands

Linux-Admins arbeiten oft auf der Kommandozeile. Wir zeigen die Top 20 der Tools und Utilities, die unter Linux häufig eingesetzt werden. Es soll hier kein vollständiges Verzeichnis gezeigt werden, jedoch kann es eine Starthilfe mit einigen der wichtigsten Linux-Befehle wiedergeben, für Linux Anwender und Admins.

1. ASCII-Zeichensatz übersetzen in Oktal, Dezimal und Hexadezimal.

$ man ascii
man ascii

2. Kalender in der Linux Kommandozeile ausgeben.

$ cal

Kalender mit 6 Monate und Wochennummer

$ cal -n 6 -w

3. Binärdatei hexadezimal mit VIM editieren.

$ vi datei
 :%!xxd
 ..
 :%!xxd -r
 :wq

4. Dateien vergleichen (compare files).

$ diff -w file1.txt file2.txt
2c2,3
< Jacqueline --> C. Meier
> Jacqueline Mayer

5. Inhalt in Dateien nach Zeichenketten rekursiv suchen mit find.

$ find . -type f -print0 | xargs -0 grep "mojito"

6. Datei als E-Mail versenden.

$ mail -s subject peter@foo.com < notes.txt

7. Herunterladen von mehreren URLs aus Liste.

$ cat download-urls.txt | xargs wget –c

8. Doppelte Linien entfernen mit awk.

$ awk '!($0 in array) { array[$0]; print }' temp

Zeilenausgabe von /etc/passwd mit der selben uid und gid.

$ awk -F ':' '$3==$4' /etc/passwd

9. Konvertierung von Windows/DOS (CR/LF) in Unix (LF) Format.

$ sed 's/.$//' filename
# Text Suchen und Ersetzen
$ sed -e s/Hund/Katze/g datei.txt > datei.neu
# Löscht alle Leerzeilen
$ sed '/^$/d' filename
# Löscht Spaces am Ende jeder Zeile
$ sed 's/ *$//' filename

10. Rekursive String Suche in Dateien.

$ grep -r "ramsch" *

11. Wieviele CPU hat mein Computer.

$ grep processor /proc/cpuinfo | wc -l

12. Free Memory anzeigen.

$ cat /proc/meminfo | grep MemFree
$ free -m

13. Aktive Prozesse anzeigen.

$ ps -ef
$ ps aux
$ vmstat 5 10

14. Verzeichnisbaum (tree) erstellen.

$ ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'

15. Asterisk PBX Applications ausgeben.

$ asterisk -rx "show applications" | awk '{print $1}' | sed -n -e "s/:"//p

16. Anzahl SPAM identifizierte E-Mails des MTA.

$ cat /var/log/maillog | egrep -c '(Alert\!)|(identified spam)|(reject\:)'

17. Wie lange läuft der Computer schon.

$ uptime

18. Zeit und Datum setzen.

$ date -s "Dez 12 18:30:00 2014"

19. Wer bin ich ? und was ist die effektive Nutzer-ID, UID und GID.

$ whoami
$ id

20. Liste der zuletzt eingeloggten User ausgeben.

$ last -a

Amnerkung

Es gibt viele Linux-Befehle. Deswegen ist es schwierig zu sagen, auf welche man sich konzentrieren oder mit welchen man beginnen sollte.

Kommandozeile und die Linux-Shell

Es gibt unter Linux und UNIX nicht wirklich einen Unterschied zwischen einem Befehl und einem Utility. Allerdings unterscheiden sich Linux- / UNIX-Shell-Befehle und standardmäßige UNIX- oder Linux-System-Befehle oder -Tools. Es gibt zwei Arten an Befehlen, die ein Anwender mithilfe seiner Tastatur ausführen kann. Es handelt sich hierbei um Shell-Befehle und Linux- / UNIX-Befehle.

Mehrere Linux Shells

Jede Shell (Korn, C, Bourne, Bash) bringt dabei einen eigenen Befehls-Satz mit, der in das Programm eingebaut ist. Wird der Name eines eingebauten Befehls als erstes Wort eines einfachen Kommandos verwendet, führt die Shell den Befehl direkt aus. Dazu muss sie noch nicht einmal einen neuen Prozess starten. Diese eingebauten Befehle sind notwendig, um gewisse Funktionalitäten zur Verfügung zu stellen. Es wäre sehr unbequem, sie mit separaten Utilities oder Kommandos zu realisieren. Auch wenn jede Shell-Art einen eigenen Befehls-Satz hat, sind die individuellen Shell-Befehle gleich. Hier kommt es nicht darauf an, welche Linux-Distribution oder UNIX-Variante Sie im Einsatz haben.

Linux Beispiele für Kommandozeile

Beispiele solcher Linux- und UNIX-Befehle sind df, cp und ls. Mit diesen Kommandos bekommt man gewisse Informationen oder es können diverse Aktionen mit Dateien und Ordnern auf dem System durchgeführt werden.

So funktioniert es!

Interessant ist, dass auf Posix-Systemen das Ausführen von /usr/bin/cd aus einer Shell nicht einmal das Arbeits-Verzeichnis der Shell ändert. Das liegt daran, dass man den in die Shell eingebauten cd-Befehl verwenden muss. In Posix-System-V-Systemen besitzt fast jeder eingebaute Shell-Befehl einen korrespondierenden Link auf /usr/bin. Eingebaute Befehle sind in der Shell selbst enthalten. Einige Beispiele von eingebauten Befehlen bezüglich Bash sind cd, eval, exec, exit, export und pwd. Beispiele der Bash sind alias, declare, echo und enable. So funktioniert das Ganze: Gibt man einen Befehl ein, überprüft die Shell, ob es sich um ein eingebautes Kommando handelt. Ist das der Fall, wird die Shell diesen ausführen. Sollte dem nicht so sein, wird der Befehl des Systems ausgeführt und die Shell eröffnet dafür einen neuen Prozess.

Oftmals ist ein eingebauter Befehl gleichbedeutend mit dem gleichnamigen des Systems. Zum Beispiel unterscheidet sich der echo-Befehl der Bash von /bin/echo. Beide verhalten sich aber fast identisch. Verwechselt man eingebaute Shell-Befehle mit den Linux- oder UNIX-Kommandos, die von der Shell geforkt werden, kann das Einfluss auf die entsprechenden Aufgaben haben. Deswegen ist es wichtig, den Unterschied zu verstehen.

Die mobile Version verlassen