Tool für Jails: aloader.sh

Ich habe mir ein kleines Skript geschrieben, welches mir das gelegentliche Aktivieren und Deaktivieren des SSH-Servers in den Jails und das damit verbundene Öffnen und Schließen der Ports (in pf) erleichtert.

Was macht das Skript?

Das Skript startet den SSH-Dienst in der Jail, die du per Parameter angibst und lädt den entsprechenden pf-anchor. Wenn du lediglich das Skript ohne Parameter aufrufst, wird dir eine Liste der laufenden Jails angezeigt.

Wie konfiguriere ich das Skript?

Im Kopfbereich des Skriptes kannst du den Pfad zu den pf-anchor-Dateien angeben. In meinem Skript gehe ich davon aus, dass diese anchor-Dateien alle auf "_ssh" enden. Das musst du im Skript selber anpassen, wenn du das nicht haben willst. Ich finde es übersichtlicher.

Wie verwende ich das Skript?

Zunächst musst du feststellen, welche Jail überhaupt läuft und welche ID diejenige hat, auf die du zugreifen willst. Wenn du aloader.sh ohne Parameter aufrufst, wird dir dies angezeigt. Bei mir haben die anchor-Dateien folgende Syntax: "<Jailname>_ssh".

Starten des SSHD und laden der Anchor-Datei:

# sh ./aloader.sh load <ID> <JAILNAME>

Stoppen des SSHD und entladen der Anchor-Datei:

# sh ./aloader.sh unload <ID> <JAILNAME>

Hinweis: <ID> entspricht der Jail-ID (siehe Ausgabe von aloader.sh ohne Parameter).

Wie installiere ich das Skript?

Kopiere das Skript an eine geeignete Stelle, bspw. '/root', da du eh root sein musst, um das Skript auszuführen. Anschließend machst du das Skript ausführbar:

# chmod u+x aloader.sh

Wo kann ich das Skript downloaden?

Das Skript kriegst du genau hier: Download aloader.sh  

Einen Kommentar hinzufügen

Einen Kommentar hinzufügen

This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)
Code im diesem Bild:
Ihr Name(*):
Kommentar(*):
 
  • October 5, 2007, 11:26 pm - Aron

    Das ist doch alles Umständlich.

    Wie wäre es mit nem Lokalen Skript der Tunnels zum Host aufbaut über die man in die Jails kommt?

    Das hat den Vorteil das man auf der Serverseite nichts machen muss, die SSHDs nicht via NAT nach außen sichtbar sein müssen. Und man sich so keine Gedanken über die Sicherheit der SSHDs von den Jails machen muss.

    ===
    #!/bin/sh

    host="host.jailserver.foo"
    jail_hosts="jail1:2222 jail2:2223"

    for jhost in $jail_hosts
    do
    lport=$(echo $jhost | awk -F: '{print $2}')
    jhost=$(echo $jhost | awk -F: '{print $1}')
    ssh -NA24CL ${lport}:${jhost}:22 ${host} &
    done
    ===

    Danach reicht dann ein ssh -p 2222 localhost aus um ins jail1 zu gelangen.

    Nun noch Einträge in die ~/.ssh/config:
    ===
    Host jail1
    Hostname localhost
    Port 2222
    Host jail2
    Hostname localhost
    Port 2223
    ===

    nun kommen wir mit einem ``ssh jail1'' durch den Tunnel über den Host ins Jail.

    Natürlich braucht man dazu nen SSH-Agenten bzw macht einem das leben deutlich einfacher. Aber das sollte für Leute die mehr mit SSH machen eh Standard sein.

    Aron