Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Ein neues Thema erstellen Auf das Thema antworten  [ 27 Beiträge ]  Gehe zu Seite 1, 2  Nächste
  Druckansicht

  chroot
Autor Nachricht
    BeitragVerfasst: 21.06.2004 00:09 
Neuankömmling
Offline

Beiträge: 42
Registriert: 15.04.2004 16:30
Wohnort: Hamburg
Hallo,

wie erstelltman chroot ordner/rechte?

will das verzeichniss
/game-server/chroot/halflife

schützen mit chroot.

ich habe dem halflife ordner ne extra gruppe und extra benutzer zugewiesen. Ich möchte aber das der benutzer in der ssh nicht aus dem halflife ordner rauskommt, und dass das spiel keine sys datein verändern oder löschen kann. bei solchen gameserver weiß man nie was die an sicherheitslöcher und bugs haben, die angreifer ermöglichen das system zu übernehmen.

hier habe ich nichts brauchbares gefunden in der suche, und in google gibts zwar viele anleitungen aber oft wird nur beschrieben wie man apache server oder so mit chroot installiert. ich will aber nur ein verzeichnis mit chroot belegen dauerhaft.


Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 21.06.2004 02:38 
ehemaliger Moderator
ehemaliger  Moderator
Offline

Beiträge: 2161
Registriert: 13.01.2001 02:01
Wohnort: Leipzig
Hallo, also erstens müsstest du mal schauen was alles für system-libs benötigt werden (ldd ?)
Die dann in die Ordner des neuen rootdirs kopieren, dort die "/etc/ld.so.conf" ggf. ändern und "ldconfig -r /game-server/chroot/halflife" machen, um die nötigen Links und Cache zu machen.
Ggf noch devices erstellen.
Wenn der sshd im 'normalen' rootdir läuft dann dort in der passwd die shell auf "chroot /game-server/chroot/halflife" stellen (je nach shell die dann noch angeben).

Hab sowas allerdings auch nur mal bei der gentoo-installation gemacht.

antimac

________________________
Don't Panic!


Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 21.06.2004 02:52 
Neuankömmling
Offline

Beiträge: 42
Registriert: 15.04.2004 16:30
Wohnort: Hamburg
alles was dass spiel braucht ist im halflife ordner, will da jetzt nur nen chroot schutz drauf haben :-D

meinst soll in der /etc/passwd wo der benutzer steht anstatt von
lan:x:65001:100:LAN Games:/game-server/chroot/halflife:/bin/bash

ändern in

lan:x:65001:100:LAN Games:/game-server/chroot/halflife:chroot /game-server/chroot/ ?

den ordner chroot kann ich mir doch sparen, und direct dem game-server ordner nen chroot verpassen, oder?


Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 21.06.2004 03:05 
ehemaliger Moderator
ehemaliger  Moderator
Offline

Beiträge: 2161
Registriert: 13.01.2001 02:01
Wohnort: Leipzig
In der /etc/passwd m normalen Root-Verzeichnis: Ja.
Zumindest um mit ssh darauf zuzugreiffen, dann müsste allerdings noch eine shell dort sein, die dürfte dann zumindest die libc benötigen. (wenn nicht statisch gelinkt)

Um den Server direkt zu starten; "# chroot $halflifeordner $serverbinary"

antimac

________________________
Don't Panic!


Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 21.06.2004 03:11 
Neuankömmling
Offline

Beiträge: 42
Registriert: 15.04.2004 16:30
Wohnort: Hamburg
also in der passwd das /bin/bash was bei jedem benutzer steht ändern in chroot /game-server/chroot/halflife ?

ich starte den server praktisch via ini.d eintrag

der ini.d script startet dann halt in dem endsprechenden ordner mit dem endsprechenden benutzer den server.

und den teil mit den libc hab ich ncith ganz verstanden :-(


Nach oben
 Profil E-Mail senden  
 

  Re: chroot
    BeitragVerfasst: 21.06.2004 17:26 
ehemaliger Moderator
ehemaliger  Moderator
Offline

Beiträge: 1790
Registriert: 21.04.2000 01:01
Wohnort: schweiz
hi

ich bastle mir meine chrooted - umgebungen mit folgendem script:

Code:
create_chrooted_env
-----  cut  -----
#!/bin/bash

#
# Usage: ./create_chroot_env username
#

# Here specify the apps you want into the enviroment
APPS="/bin/bash /bin/ls /bin/mkdir /bin/mv /bin/pwd /bin/rm /usr/bin/id /bin/cat
/usr/bin/whoami /lib/libnss_ldap.so.2 /lib/libnss_dns.so.2
/lib/libnss_files.so.2 /usr/bin/cvs"

# Sanity check
if [ "$1" = "" ] ; then
    echo "Usage: ./create_chroot_env <chroot-directory>"
    exit
fi

HOMEDIR=$1
cd $HOMEDIR

# Create Directories no one will do it for you
mkdir home
mkdir etc
mkdir bin
mkdir usr
mkdir usr/bin

mkdir tmp
chmod 777 tmp

# Creating /dev/null
mkdir dev
mknod dev/null c 1 3

# Add some users to ./etc/passwd
grep /etc/passwd -e "^root" > etc/passwd
grep /etc/group -e "^root" -e "^staff" > etc/group

# Make simple /usr/bin/groups script
echo "#!/bin/bash" >> ./usr/bin/groups
echo "id -Gn" >> ./usr/bin/groups
chmod 755 ./usr/bin/groups

# Copy the apps and the related libs
for prog in $APPS;  do
    cp $prog ./$prog
   
    # obtain a list of related libraryes
    ldd $prog > /dev/null
    if [ "$?" = 0 ] ; then
   
        LIBS=`ldd $prog | awk '{ print $3 }'`
        for l in $LIBS; do
            mkdir ./`dirname $l` > /dev/null 2>&1
            cp $l ./$l
        done
    fi
done

# Noch n paar Sachen für Pam und ldap
cp -r /lib/security ./lib/

cp /etc/libnss-ldap.conf ./etc/
cp /etc/nsswitch.conf   ./etc/
cp /etc/pam_ldap.conf   ./etc/
cp -r /etc/pam.d   ./etc/
-----  cut  -----


=> du trägst die binaries ein, die in der chrooted-umgebung verfügbar sein sollen, und lässt das script laufen. dieses erstellt die benötigten unterverzeichnisse, kopiert alle benötigten libraries nach ./lib, etc

ob du das ganze so 1:1 verwenden kannst musst du halt schauen ...

cu

cli

edit: hmpf, wieso diese verd..... '&' da stehen weiss niemand so genau


Zuletzt geändert von cli am 21.06.2004 17:30, insgesamt 1-mal geändert.

Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 21.06.2004 17:30 
Neuankömmling
Offline

Beiträge: 42
Registriert: 15.04.2004 16:30
Wohnort: Hamburg
ich brauche kein libs oder so alles was der braucht ist scho im halflife ordner.

ich brauche auch keine zusatz verzeichnisse, will nur /game-server/chroot/halflife mit chroot verpassen.

brauch ich den unterordner chroot? ode rkann ich den auch weglassen?

habe auffn webserver suse 9.0 laufen


Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 23.06.2004 16:22 
ehemaliger Moderator
ehemaliger  Moderator
Offline

Beiträge: 1790
Registriert: 21.04.2000 01:01
Wohnort: schweiz
naja, bist du sicher dass du gar keine lib's brauchst? (=> das halflife ist statisch kompiliert?) wenn du nicht sicher bist kannst du mit
Code:
ldd /deine/halflife/binaries | awk '{ print $3 }'
schauen, ob da wirklich nix gebraucht wird.

falls du keine libraries brauchst, solltest du das zeugs eigentlich auch weglassen können ...

durch


Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 23.06.2004 16:24 
Neuankömmling
Offline

Beiträge: 42
Registriert: 15.04.2004 16:30
Wohnort: Hamburg
ich sagte doch schon 3 mal ich brauche KEINE libs.

nu weiß ich immernochnicht wie ich den blöden chroot drauf setzt


Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 23.06.2004 17:04 
ehemaliger Moderator
ehemaliger  Moderator
Offline

Beiträge: 2161
Registriert: 13.01.2001 02:01
Wohnort: Leipzig
danielhhrulez hat geschrieben:
nu weiß ich immernochnicht wie ich den blöden chroot drauf setzt


Und wir wissen nicht wo du hängst! Wo genau gibt es denn Probleme?


antimac

________________________
Don't Panic!


Zuletzt geändert von Antimac am 23.06.2004 17:23, insgesamt 2-mal geändert.

Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 23.06.2004 17:07 
Neuankömmling
Offline

Beiträge: 42
Registriert: 15.04.2004 16:30
Wohnort: Hamburg
ich will ein Half Life Ordner mit nem chroot verpassen, das wenn z.b. per ssh drin ist nicht aus dem verzeichnis rauskommt. steht aber auch ganz oben drin :D


Nach oben
 Profil E-Mail senden  
 

  Re: chroot
    BeitragVerfasst: 23.06.2004 17:28 
ehemaliger Moderator
ehemaliger  Moderator
Offline

Beiträge: 2161
Registriert: 13.01.2001 02:01
Wohnort: Leipzig
1. sshd (eigentlich login)
Dafür müsstest du für den anzumeldenden in der passwd als shell
"chroot /hier/HL-Ordner/ /hier/Shell" angeben.
Da muss natürlich dann auch eine Shell sein, sowie vielleicht ein Editor usw. (libs höchstwahrscheinlich auch).

2. hl-Server
Wenn er in einer chroot-Umgebung laufen soll, siehe oben. (oder "$ man chroot")

antimac

________________________
Don't Panic!


Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 23.06.2004 18:39 
Neuankömmling
Offline

Beiträge: 42
Registriert: 15.04.2004 16:30
Wohnort: Hamburg
ich verstehe das nicht so ganz.

soll ich mich nu auf der console (ssh) mit root einloggen oder mit lan?

soll ich chroot /usr/local/halflife/ ausführen oder soll ich in der /ect/passwd den eintag ändern?

lan:x:65001:100:LAN Games:/usr/local/halflife:/bin/bash


Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 23.06.2004 19:24 
ehemaliger Moderator
ehemaliger  Moderator
Offline

Beiträge: 2161
Registriert: 13.01.2001 02:01
Wohnort: Leipzig
Nebenbei, root-Zugang würde ich bei ssh abstellen, man hat ja su und sudo.

Ansonsten; mit "lan" einloggen, ich erklär dir mal den Ablauf (so wie ich mir das denke);
nach der shell.
Da wir den Benutzer (lan) ja nur in's HL-Server-rootverzeichnis [chroot = change root (directory)] lassen wollen steht dazu in der passwd dann "chroot /HL-Ordner/ /die/shell".
Damit wird dann 'chroot' ausgeführt welches dann die shell in dem neuen root-Verzeichnis (''/')ausführt.
Das machen wir weil wir nur Programme in dem neuen Root-Verzeichnis benutzen können.
Dort könntest du dann den hl-Server auch starten.

Zumindest eine Möglichkeit, denke ich.

Schau dich mal um was chroot ueberhaupt macht, und/oder lies die manpage, ich glaub du hast einen falschen Eindruck davon. ;)

antimac

________________________
Don't Panic!


Nach oben
 Profil E-Mail senden  
 

  
    BeitragVerfasst: 23.06.2004 19:51 
ehemaliger Moderator
ehemaliger  Moderator
Offline

Beiträge: 2161
Registriert: 13.01.2001 02:01
Wohnort: Leipzig
Hmm, geht wohl nicht so ganz, muss wohl uid-root selbst starten.

antimac

________________________
Don't Panic!


Nach oben
 Profil E-Mail senden  
 

Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 27 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


  Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
RSS-Feed
Impressum und Kontakt
Style created by phpBB3 styles , ziola alveo akuna
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Optimized by SEO phpBB
Deutsche Übersetzung durch phpBB.de