Portál AbcLinuxu, 12. května 2025 13:23

Dotaz: SFTP chroot do domovskeho adresare

31.8.2012 12:21 tuxmartin | skóre: 39 | blog: tuxmartin | Jicin
SFTP chroot do domovskeho adresare
Přečteno: 405×
Odpovědět | Admin
Ahoj,

snazim se vyresit chroot uzivatelu. Uzivatele musi mit pristup pouze na SFTP. Vychazel jsem z navodu Jak nahradit FTP pomocí SFTP a zamknout uživatele, ale tam uzivatel nemuze zapisovat do sveho home adresare. Musi se mu udelat napr. /home/uzivatel/zapisovatelny. To se mi nelibi:-/

Rad bych, aby uzivatele v /home nevideli ostatni uzivatele - pouze prava X bez R. Jenze kdyz udelam chroot /home tak pak uzivatel nemuze cd /home/pokus

Tak jsem to poresil pomoci mount bind:
root@tux:~# tail /etc/ssh/sshd_config 
Compression yes
Subsystem   sftp    internal-sftp

Match group sftponly
    ChrootDirectory     /var/ssh-chroot
    ForceCommand        internal-sftp
    X11Forwarding       no
    AllowTcpForwarding  no

root@tux:~# cat /etc/passwd | grep pokus
pokus:x:1003:1003:Pokus SFTP,,,:/home/pokus:/bin/false

root@tux:~# cat /etc/fstab | grep ssh
/home	/var/ssh-chroot/home	bind	bind	0	0

root@tux:~# cat /etc/group | grep sftponly
sftponly:x:1004:pokus

root@tux:~# ls -lh /var/ssh-chroot/
celkem 4,0K
drwxr-x--x 6 root root 4,0K srp 29 22:39 home

root@tux:~# ls -lh /var/ssh-chroot/home/
celkem 16K
drwx------ 23 martin  martin  4,0K srp 27 15:50 martin
drwx------  3 pokus   pokus   4,0K srp 31 11:57 pokus
Kdyz se uzivatel pripoji ve Windows pres WinSCP, tak ho to hodi do jeho /home/pokus, kdyz ale prejde o uroven vys, tak mu to logicky hodi chybu (nema R pro /home) a nemuze se dostat zpet do sveho home.

V ubuntu se pri pripojeni automaticky zobrazuje adresar / - takze to taky nejde.

Jedine co by slo je dat /home prava 755 (+R), to si ale nechavam jako posledni nouzovou moznost - nechci aby uzivatel videl seznam vsech uzivatelu.

Jak to resite?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

31.8.2012 12:40 ewew | skóre: 40 | blog: ewewov_blog
Rozbalit Rozbalit vše Re: SFTP chroot do domovskeho adresare
Odpovědět | | Sbalit | Link | Blokovat | Admin

Chroot môžeš urobiť aj priamo do domovských adresárov. Myslím, že je na to zástupný znak, ktorý to umožni.Podľa dokumentácie je to %h

Možnosti ako zamädziť login užívateľa je viac. Môžeš použiť pam moduly, libpam-chroot. Pri libpam-chroot je nutné vypnúť PrivilegeSeparation. Ďalej je možné nahodiť balíček scponly. V dokumentácii k ssh je pisané ak chceš použiť chroot, tak tam musíš mať povolené zariadenia a spúštanie.

V /etc/fstab máš urobení bind na home adresáre. Ak by si chcel oddeliť užívateľov, tak by si musel definovať pre každého užívateľa. nehovorím, že nie je to možné ošetriť, ale vyžadovalo by to bežiaci skript s právami roota, alebo cez sudo.

Podľa mňa by bola lepšia verzia uzavrieť celý ssh a sftp do chrootu a potom nejakým skriptom prenášať data do home adresárov. Inými slovami by bol daný server odizolovaní od zvyšku systému.

Na zvýšenie bezpečnosti je samozrejme nutné zabezpečiť základ systému.

Root v linuxe : "Root povedal, linux vykona."
31.8.2012 21:59 vasek
Rozbalit Rozbalit vše Re: SFTP chroot do domovskeho adresare
Odpovědět | | Sbalit | Link | Blokovat | Admin
SFTP chroot se z principu nedělá na domovských adresářích (kvůli možné eskalaci oprávnění). Také je potřeba, aby uživatel v SFTP chrootu neměl jiný přístup do systému (např. je hloupost omezovat uživatele z internetu a v domácí síti mu povolit standardní ssh login - také možná eskalace oprávnění). Já bych to vyřešil tak, že by měl každý uživatel "vlastní home adresář". A to v tomto smyslu: v /etc/passwd definován třeba jako /home/pokusny, ve skutečnosti by ale jeho adresář byl /home/pokusny/home/pokusny. Do té první části by se chrootoval (adresář by patřil uživateli root), díky jeho domovskému adresáři by se automaticky zalogoval do /home/pokusny uvnitř chrootu /home/pokusny tj. reálně /home/pokusny/home/pokusny.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.