Ivo Hazmuk wrote on 2019/05/14 21:33:

Horší je to s povolením SFTP s chrootem.

1) Nainstaluj si scponly shell a do /etc/shells přidej cestu k scponly. Nejspíš "/usr/local/bin/scponly".

scponly neni potreba pro chrootovane SFTP. To zajistuje samotne openssh tim "internal-sftp" a jako shell se pouzije /usr/bin/false

2) V /etc/group musíš mít skupinu "ftp":
ftp:*:14:

Tohle mi prijde dost matouci - zakazat uzivateli FTP v /etc/ftpusers a pritom ho mit ve skupine ftp.

Ja bych si tu skupinu pojmenoval treba "sftponly"

3) V /etc/master.passwd potřebuješ:
ftp-user:tady=je=hash=hesla:1246:14::0:0:temporary FTP account:/ftp/ftp-user:/usr/local/bin/scponly

Kdyz uz se resi prechod z FTP na SFTP, tak bych doporucil pouzit SSH klice a ne hesla.

Bud globalne, nebo v sekci Match nastavit
    PasswordAuthentication no
    ChallengeResponseAuthentication no

YMMV

5) Musíš nastavit správně domovský adresář:
mkdir /ftp/ftp-user
cd /ftp
chown root:ftp ftp-user
cd ftp-user
mkdir files
chown ftp-user files

Tady by bylo asi dobre zminit, co a proc se nastavuje.
Vsechny komponenty cesty k cilovemu domovskemu adresari musi byt vlastnene rootem a nesmi byt zapisovatelne nikym jinym. (viz man sshd_config, sekce ChrootDirectory) Teprve podslozky toho home mohou byt vlastnene a zapisovatelne tim uzivatelem, co se tam hlasi. Coz pro nektere uzivatele muze byt dost matouci, ze nemohou zapsat do vlastniho homediru. To je holt dan za ten sftp chroot.

Tzn. /ftp/ i /ftp/ftp-user/ - pokud nekdo nekdy zmeni nastaveni, napriklad ze povoli zapis nejakou jinou skupinou, tak to prestane fungovat a prihlaseni na ten sftp only ucet nepujde.

Práva mám potom takto:
stroj: # pwd
/ftp
stroj: # ls -lRa ftp-user
total 6
drwxr-x--x  3 root  ftp    512 Oct 25  2018 .
drwxr-xr-x  7 root  wheel  512 May 13 14:52 ..
drwxrwxrwx  2 ftp-user  ftp    512 Apr 19 13:47 files

ftp-user/files:
total 4
drwxrwxrwx  2 ftp9  ftp  512 Apr 19 13:47 .
drwxr-x--x  3 root  ftp  512 Oct 25  2018 ..

Pak bych tam pridal adresar /ftp/ftp-user/.ssh/ kam se pak vlozi authorized_keys, aby se uzivatel mohl prihlasovat klicem a ne heslem.

A stoji jeste ze zvazeni, jestli chces nechat uzivatele, aby si sami spravovali klice, nebo ne. Pokud bys jim to nechtel povolit, tak slozka /ftp/ftp-user/.ssh/ muze patrit taky rootovi a nepovolit tam nikomu jinemu zapis, pak vlozit klice /ftp/ftp-user/.ssh/authorized_keys a je to.

Mirek
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem