Chroot SFTP, noFTP, noSCP, noSSH

Miroslav Lachman 000.fbsd at quip.cz
Wed May 15 00:19:40 CEST 2019


Jozef Drahovsky wrote on 2019/05/14 23:53:
> Dňa 14.05.2019 o 21:33 Ivo Hazmuk napísal(a):
> 
>> Ahoj,
>>
>> Dne 14.5.2019 v 19:38 Jozef Drahovsky napsal(a):
>>> ale nedari sa mi rozbehat uzivatela ktory, by mal len SFTP s chroot
>>
>> toto jsem řešil nedávno. Je to trochu opruz, ale jde to.
>>
>>
>>
>> 1) Nainstaluj si scponly shell a do /etc/shells přidej cestu k 
>> scponly. Nejspíš "/usr/local/bin/scponly".
>>
> Nainstaloval  som scponly a funguje u vsetkych userov ktorym som v 
> passwd zmenil shell na /usr/local/bin/scponly
> Pokus o SSH ihned ukonci
> SFTP ide a aj proces ma ID z passwd daneho usera
> 
> Ale chroot sa mi zatial rozbehnut nepodarilo
> aj som prekompiloval scponly aj zaskrtol ze chcem chroot
> aj sa vytovrilo okrem /usr/local/bin/scponly
> aj /usr/local/sbin/scponlyc a uviedol som ho v passwd
> 
> Ked ho uvediem v passwd u daneho uzivatela tak sa neprihlasim a v logu 
> je chybova hlaska
> "chroot dir not owned by root: /web/userxy"
> 
> Zda sa mi, ze som nepochpil tvoju poznamku o nastaveni domovskeho adresara.
> Tam je viazane na uzivatela root a skupinu ftp?
> odkial berie adresu pre chroot z passwd alebo od inakadial?

Koukam, ze jsem ten svuj predchozi e-mail mel moc dlouho rozepsany a uz 
jsi narazil...

Takze pro poradek jeste jednou - vsechny komponenty cesty k tomu 
homediru musi byt vlastnene rootem a nesmi byt zapisovatelne jinym 
uzivatelem / jinou skupinou. Tzn. nemuzes tam udelat treba chown 
root:skupina1 a pak chmod g+w ... to ti hodi prave tu chybu, cos poslal.

Pokud mas v sshd_config napriklad tohle:

Match Group sftponly
     ChrootDirectory %h
     ForceCommand internal-sftp
     (a tady ty dalsi restikce)

Tak ChrootDirectory %h znamena, ze se za to %h doplni homedir toho 
uzivatele, tak jak ho ma uvedeny v passwd.
Cilova cesta musi existovat a jak jsem psal, musi cela vcetne toho 
homediru patrit rootovi!
Tam teprve udelas podslozku, kam bude uzivatel zapisovat a nahravat 
svoje weby. Takze to muze byt treba takhle

Vytvoris si uzivatele "example.com", kteremu nastavis home 
"/web/example.com"

mkdir -p /web/example.com/public/
chown root:wheel /web/
chown root:wheel /web/example.com/
chown example.com /web/example.com/public/
chmod 0755 /web/
chmod 0755 /web/example.com/

Do toho home "/web/example.com/" se provede SFTP chroot.
Po prihlaseni uzivatel uvidi slozku "public", kam nahraje obsah sveho webu.
V konfiguraci Apache VirtualHostu pak pouzijes DocumentRoot 
/web/example.com/public

Pokud ma ten SFTP account slouzit k necemu jinemu, nez k publikaci webu, 
tak tuhle cast o Apache muzes ignorovat. :)

Mirek


More information about the Users-l mailing list