mit freebsd ein ICA-Terminal bauen

E

ex-user_525

Guest
morgen,

so, nachdem das alles prächtig funktioniert mit meinem terminal und inzwischen einige im einsatz sind, will ich euch das hier mal nicht vorenthalten...

die idee war, alte rechner (P60-P166, 16-32 MB RAM, >= 1 GB HDD) als ica-terminal für unseren windows 2k server herzurichten. verwendet habe ich hierzu ein freebsd 4.8 da sich diese cd auch problemlos auf alten rechnern booten lässt ;)

die terminals sind nur noch mit einer festplatte und keinem weiteren laufwerk ausgerüstet.

wie das system installiert wird ist jedem selbst überlassen. ich habe ein freebsd grundsystem verwendet mit folgenden zusätzen (sind notwendig!)

- XFree86
- linux binärkompatibilität
- citrix ica client

anpassungen des tastaturlayouts, ... ist jedem selbst überlassen. auch die ica einstellungen will ich hier nicht näher erläutern da die von system zu system unteschiedlich sind.

für mich wichtig war, dass die ica-software nicht als root läuft sondern als eigener user. ich habe dazu den user ica angelegt.

hier die wichtigsten config-files:

/etc/rc.conf
Code:
font8x14="iso15-8x14"
font8x16="iso15-8x16"
font8x8="iso15-8x8"
kern_securelevel_enable="NO"
keymap="german.iso"
moused_enable="YES"
moused_port="/dev/cuaa0"
moused_type="microsoft"
saver="logo"
sshd_enable="YES"
ifconfig_ed0="DHCP"
linux_enable="YES"
cron_enable="NO"
inetd_enable="NO"
sendmail_enable="NONE"
rpcbind="YES"

hier eingerichtet mit deutscher tastatur und serieller maus (alte kisten ;)) alle dienster ausser sshd (verwartung) sind abgeschaltet. die ip-adresse bezieht der rechner über DHCP. da in den alten kisten bei uns realtek 8029 karten eingebaut sind, ist nur der ed0 hier aktiviert und keine weiteren treiber für ncis werden geladen.

um den user davon abzuhalten, ne lokale konsole zu bekommen, hab ich die /etc/ttys minimal geändert ;) ich habe hier alle konsolen auskommentiert.

Code:
#ttyv0  "/usr/libexec/getty Pc"         cons25  off secure
# Virtual terminals
#ttyv1  "/usr/libexec/getty Pc"         cons25  on  secure
#ttyv1  "/usr/libexec/getty Pc"         cons25  on  secure
#ttyv2  "/usr/libexec/getty Pc"         cons25  on  secure
#ttyv3  "/usr/libexec/getty Pc"         cons25  on  secure
#ttyv4  "/usr/libexec/getty Pc"         cons25  on  secure
#ttyv5  "/usr/libexec/getty Pc"         cons25  on  secure
#ttyv6  "/usr/libexec/getty Pc"         cons25  on  secure
#ttyv7  "/usr/libexec/getty Pc"         cons25  on  secure
#ttyv8  "/usr/X11R6/bin/xdm -nodaemon"  xterm   off secure

das führt dann zusätzlich dazu, dass ein umschalten vom x auf eine konsole nicht möglich ist.

nun müssen wir dem user ica nur noch sagen, dass er den ica client als x-server nehmen soll. dazu ändern wir die .xinitrc für den user ica wie folgt:

Code:
/usr/local/ICAClient/wfica -desc "terminalserver"

das wichtigste jedoch ist das nun folgende script. es läd den x-server unter dem user ica und verhindert, das der bootvorgang richtig abgeschlossen wird. durch das speichern in /usr/local/etc/rc/ica.sh wird das script automatisch beim booten geladen:

Code:
#!/bin/sh

export TERM=xterm

case "$1" in
start)
        echo
        echo "starte Citrix ICA-Client..."
        su - ica -c "/usr/X11R6/bin/startx"

        TERM=xterm
        export $TERM
        ans="XXX"
        export $ans

        until [ "$ans" = "j" ] || [ "$ans" = "n" ]
        do
                clear
                echo
                echo
                echo
                echo
                echo
                echo
                echo "     Die Verbindung zum Terminalserver wurde beendet."
                echo "     Soll eine neue Verbindung aufgebaut werden? [j]a|[n]ein"
                echo "     Bei 'nein' wird der Rechner heruntergefahren!"
                echo
                echo "     Eingabe mit <ENTER> best\xe4tigen!"
                echo
                read -p "     Antwort: " -t 3600 ans
        done

        if [ $ans = "j" ] || [ $ans = "J" ];
        then
                /usr/local/etc/rc.d/ica.sh start
        else
                echo "System wird heruntergefahren..."
                halt -p
        fi
        ;;
stop)
        exit
        ;;
esac

rechte setzen für die datei nicht vergessen ;)

beim nächsten reboot sollte nun ein voll funktionsfähiges freebsd ica terminal bereit stehen, dass über ssh ferngewartet werden kann.

optional: mit g4u ein image ziehen und beliebig oft kopieren ;)

viel spaß damit und evtl kann es ja einer mal brauchen.

cu tb.
 
Zurück
Oben