Kirjoittaja Aihe: SFTP-palvelin chroot tilassa  (Luettu 9970 kertaa)

T.M

  • Käyttäjä
  • Viestejä: 172
    • Profiili
SFTP-palvelin chroot tilassa
« : 07.10.05 - klo:11.11 »
Tarkoituksena asentaa ubuntuun sftp-palvelu vierailevalle käyttäjälle jolloin käyttäjä ei pääse seikkailemaan ssh-yhteydellä koneeseen konsolitilassa.

Myöskään sftp:llä ei pääse kuin chroot-hakemistoon.

Oletuksena on että sshd on asennettu ja koneeseen pääsee ssh:lla.
Toimitaan root-käyttäjän oikeuksin asennusta tehdessä esim. sudo bash käskyllä.

#Lisätään ensin vieras käyttäjä järjestelmään komentorivillä

useradd -s /bin/bash vieras

#Annetaan salasana vieras käyttäjälle
passwd vieras

Testaa että pääset ssh:lla koneeseen sisälle esim. ssh vieras@localhost käskyllä
Muokkaa sshd-asetuksia jotta koneeseen ei pääse kuin halutuilla käyttäjätunnuksilla

nano /etc/ssh/sshd_config
#Lisää alla oleva rivi esim. seuraavaan malliin
AllowUsers omatunnus1 vieras omatunnus2


#Poistu editorista ja käynnistä sshd-uudelleen
/etc/init.d/sshd restart

#Kokeile että sftp-toimii normaalisti vieras käyttäjällä.
#esim. sftp vieras@koneennimi
#Tämän jälkeen asennetaan rssh-shell

apt-get install rssh

#Itse jouduin ajamaan tämän jälkeen vielä reconfiguren koska install-ohjelma ei kysynyt SUID bit:n asetusta helpper skriptiin

dpkg-reconfigure rssh

#Vastaa alkukysymykseen OK ja sen jälkeen kysytään
If you plan to use chroot jails for the users using rssh, the program /usr/bin/rssh_chroot_helper has to be installed with the SUID bit set, with the root as user.

Huom !!!! Tähän vastataan YES

#Lisätään /usr/bin/rssh shells tiedostoon
# editoidaan shelss tiedostoa
nano /etc/shells

Lisää viimeisen rivin jälkeen
/usr/bin/rssh

Talleta ja poistu

#Muutetaan vieras käyttäjän shelli

usermod -s /usr/bin/rssh vieras

#Tehdään hakemisto johon halutaan että vieras käyttäjä rajoittuu. Itse tein näin

mkdir /chroot

#Vaihdetaan hakemisto
cd /usr/share/doc/rssh/examples/

#Puretaan chroot-skripti ja annetaan ajo-oikeudet
gunzip mkchroot.sh.gz
chmod u+x mkchroot.sh

#Alla oleva käsky luo chrootin vaatimat tiedosto /chroot kansioon

./mkchroot.sh /chroot

#Luodaan kotihakemisto vieras käyttäjälle ja annetaan käyttäjäoikeudet
mkdir /chroot/home
mkdir /chroot/home/vieras
chown -R vieras.users /chroot/home/vieras

#Poista chrootin etc/passwd tiedosto jotta
#vieras käyttäjä ei saa udeltua systeemin käyttäjätunnuksia
#En tiedä miksi chroottiin passwd-tiedosto kopioidaan sillä sisäänkirjautuessa käytetään kuitenkin
#virallisen systeemin /etc/passwd:tä. Tämä on bugi-mutta #siitä viis.

rm -rRf /chroot/etc/passwd

#Editoidaan /etc/rssh.conf tiedostoa
nano /etc/rssh.conf tiedosta
#alla on esimerkki omastani
# This is the default rssh config file
logfacility = LOG_USER
#allowscp
allowsftp
#allowcvs
#allowrdist
#allowrsync
# set the default umask
umask = 022
chrootpath = "/chroot"

#spaces in the path must be quoted...
#user=rudy:011:00001:"/usr/local/chroot dir" # scp with chroot
user=vieras:011:00010:"/chroot" # sftp with chroot
#rssh.conf tiedosto loppuu


#Editoidaan vieras-käyttäjän kotihakemiston polku
usermod -d /chroot/home/vieras vieras

#Käynnistä vielä varuilta sshd-uudelleen
/etc/init.d/ssh restart

Tämän jälkeen voit kokeilla joltain muulta koneelta kirjautumista vaikka komentoriviltä
sftp vieras@koneennimi











« Viimeksi muokattu: 07.10.05 - klo:11.22 kirjoittanut T.M »