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 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.
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/-/|/'
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.