Zprovoznění nových userů pro pure-ftpd server (s privátními adresáři) Přihlas se do WinSCP jako root.
Krok 0. – editace etc/shells - v /etc založ nový prázdný soubor s názvem ftponly - zedituj /etc/shells a dopiš řádek /bin/ftponly Tyto dva kroky zajistí, že uživatelé, které dále vytvoříme, se na BFW budou moci přihlásit pouze a výhradně z ftp klienta, tj. ne např. přes SSH (Putty,WinSCP) nebo dokonce webadmina. V celém dalším textu budu používat jednoho uživatele „filo“, samozřejmě si ho můžete přejmenovat jak chcete, případně analogicky vytvořit uživatele další.
Vysvětlení k dalším krokům Další postup jsem bohužel po laborování musel rozdělit na dvě kapitoly : 1. použití ftp serveru pouze a výhradně pro ftp přístup 2. použití ftpserveru pro ftp přístup a použití aplikace NetDrive, která přiřadí ftp adresáři písmeno jednotky, takže se pak adresář ve Windows tváří jako regulérní disk (napadá mě analogie s příkazem subst) Postup jsem musel rozdělit proto, že NetDrive odmítá poslušnost při připojování, pokud nejsou dodrženy určité podmínky (přístupová práva na adresáře v celé hierarchii stromu)
1. Varianta 1 : pouze ftp přístup Co chci : a) každý user má svůj privátní adresář, do kterého může pouze on a root b) po přihlášení usera z ftp klienta se systém automaticky nastaví do jeho privátního adresáře c) existuje společný adresář Public, do kterého mohou všichni useři d) existuje jakýsi pseudoroot adresář, z něhož už useři výše nemohou Adresářová struktura : disk2 .. ftp .. ftp_root .. public .. users .. user1 .. user2
Adresář ftp_root je je tím pseudoroot adresářem viz bod 1.5 níže. Useři tudíž uvidí maximálně adresáře „public“ a „users“, výš už nemohou. Upozornění : jste v unixu, pozor na velikost písmen při zadávání adresářů !
1.1
editace etc/passwd
udělej nový řádek kopií např. nobody:x:65534:0:nobody:/tmp:/bin/sh
a uprav na filo:x:65533:0:filo:/disk2/ftp/ftp_root/users/filo:/bin/ftponly 65533 UID .. id uživatele POZOR musí být v rámci souboru passwd jedinečné ! 0 GID .. id skupiny, nechte 0 (pro roota), jinak nebude možné přistupovat k ftp přes NetDrive) /disk2/ftp/ftp_root/users/filo domovský adresář bin/ftponly znamená, že user filo bude mít přístup pouze přes ftp (tj. ne přes ssh, telnet apod.)
soubor passwd ulož.
1.2
editace etc/shadow
udělej nový řádek kopií např nobody:*:10091:0:99999:7::: a uprav na filo:*:10091:0:99999:7:::
soubor shadow ulož
1.3 -
změna/nastavení hesla usera filo přihlas se jako root do BFW přes putty, vyskoč z menu do promptu napiš „passwd filo“ systém nabídne zadání hesla BACHA (minimum je 5 a maximum 8 znaků) , dívejte se co vám systém říká, pokud se mu zdá heslo moc jednoduché, neakceptuje ho. Doporučená kombinace je velká malá písmena a číslice ukonči putty přes winscp proveď refresh a otevři soubor etc/shadow, řádek filo:*:10091:0:99999:7::: by se měl změnit na něco takového filo:$1$$d0z0XtbppRIp6IQeUJBnW.:10091:0:99999:7::: ten tučný text je právě zadané zakryptované heslo. Pokud tam nebude, nemá smysl pokračovat.
1.4
nastavení ftp serveru pure-ftpd
zedituj soubor etc/rc.d/pkgs/rc.myftpd změň stávající řádek na /usr/sbin/myftpd -B -g /var/run/myftpd.pid -E -S 21 -l unix –j –k 95 „-B“ samostatný ftp server „-g /var/run/myftpd.pid“ .. použití myftpd.pid souboru „-E“ není povolen anonymous účet, všichni uživatelé musí být „zaregistrovaní“ „-S“ na ftp server mohou uživatelé ze všech IP adres „21“ port, na kterém běží ftp server „-l unix“ znamená, že si pureftpd bude přebírat usery z linuxu (uvedené v passwd) „-j“ znamená, že pokud pro usera při jeho prvním přihlášení nebude exitovat jeho domovský adresář, pureftpd ho vytvoří. Doporučuju ale adresáře vytvořit ručně, protože se stejně budou muset upravovat práva, viz níže. „-k 95“ nechá na ftp serveru 5% rezervu, tj. ftp disk půjde zaplnit jen z 95%
1.5
nastavení práv pro usery
Otevři WinCSP. Musí se provést 2 věci. /disk2/ftp/ftp_root/users/filo
1. adresáři /disk2/ftp/ftp_root „říct“, že bude fiktivním kořenem pro všechny usery kromě roota. Udělá se to tak, že se na nadřazeném adresáři, tj. /disk2/ftp odebere právo X pro skupinu others, což jsou všichni kromě roota. Odebrání se provede přes pravou myš. 2. adresáři /disk2/ftp/ftp_root/users/filo ”říct“, že do něj může akorát uživatel filo a nikdo jiný (root samozřejmě může) Je tedy třeba jít na daném adresáři na properties a změnit položku owner z „root“ na „filo“ a následně nechat v řádku „owner“ povoleny příznaky R,W,X, všechno ostatní zakázat.
1.6
finále ;)
zastav pure-ftpd server a znovu pusť. Zkus se přihlásit v ftp klientu jako „filo“, mělo by to všechno fachat.
Varianta 2 : ftp přístup včetně použití NetDrive Co chci : a) každý user má svůj privátní adresář XX, do kterého může pouze on a root, ale tento adresář není oproti variantě 1 zvolen hned po přihlášení a navíc je jako privátní nastaven až přes WinSCP b) po přihlášení všech userů se přejde do společného pseudoroot adresáře, z něhož výše useři nemohou c) existuje společný adresář Public, do kterého mohou všichni useři Adresářová struktura : disk2 .. ftp .. public .. users .. user1 .. user2
Adresář ftp je je tím pseudoroot adresářem viz bod 2.5 níže. Varianta 1 nelze pro NetDrive použít, protože z nějakého mi neznámého důvodu neakceptuje odebrání práv X pro skupinu Others viz bod 1.5 výše. Upozornění : jste v unixu, pozor na velikost písmen při zadávání adresářů !
2.1
editace etc/passwd
udělej nový řádek kopií např. nobody:x:65534:0:nobody:/tmp:/bin/sh
a uprav na filo:x:65533:0:filo:/disk2/ftp:/bin/ftponly 65533 UID .. 0 GID .. /disk2/ftp bin/ftponly
id uživatele POZOR musí být v rámci souboru passwd jedinečné ! id skupiny, nechte 0 (pro roota), jinak nebude možné přistupovat k ftp přes NetDrive) pseudodomovský adresář všech uživatelů znamená, že user filo bude mít přístup pouze přes ftp (tj. ne přes ssh, telnet apod.)
soubor passwd ulož.
2.2
editace etc/shadow
udělej nový řádek kopií např nobody:*:10091:0:99999:7::: a uprav na filo:*:10091:0:99999:7:::
soubor shadow ulož
2.3 -
změna/nastavení hesla usera filo přihlas se jako root do BFW přes putty, vyskoč z menu do promptu napiš „passwd filo“ systém nabídne zadání hesla BACHA (minimum je 5 a maximum 8 znaků), dívejte se co vám systém říká, pokud se mu zdá heslo moc jednoduché, neakceptuje ho. Doporučená kombinace je velká malá písmena a číslice ukonči putty ve winscp proveď refresh a pak otevři soubor etc/shadow, řádek filo:*:10091:0:99999:7::: by se měl změnit na něco takového filo:$1$$d0z0XtbppRIp6IQeUJBnW.:10091:0:99999:7::: ten tučný text je právě zadané zakryptované heslo. Pokud tam nebude, nemá smysl pokračovat.
2.4
nastavení ftp serveru pure-ftpd
zedituj soubor etc/rc.d/pkgs/rc.myftpd změň stávající řádek na /usr/sbin/myftpd -B -g /var/run/myftpd.pid -E -S 21 -l unix –j –A –k 95 „-B“ samostatný ftp server „-g /var/run/myftpd.pid“ .. použití myftpd.pid souboru „-E“ není povolen anonymous účet, všichni uživatelé musí být „zaregistrovaní“ „-S“ na ftp server mohou uživatelé ze všech IP adres „21“ port, na kterém běží ftp server „-l unix“ znamená, že si pureftpd bude přebírat usery z linuxu (uvedené v passwd) „-j“ znamená, že pokud pro usera při jeho prvním přihlášení nebude exitovat jeho domovský adresář, pureftpd ho vytvoří. Doporučuju ale adresáře vytvořit ručně, protože se stejně budou muset upravovat práva, viz níže. „-A“ – adresář, který se userovi nastaví v passwd jako pseudodomovský, je pro něho zároveň i root adresářem (výš se nedostane) „-k 95“ nechá na ftp serveru 5% rezervu, tj. ftp disk půjde zaplnit jen z 95%
2.5
nastavení práv pro usery
Nastavení kořenového adresáře pro všechny usery (vyjma roota) a nastavení práv pro uživatele filo, který má domovský adresář /disk2/ftp/users/filo Otevři WinCSP. Musí se „říct” adresáři /disk2/ftp/users/filo ”říct“, že do něj může akorát uživatel filo a nikdo jiný (root samozřejmě může vždy a všude) Je tedy třeba jít na daném adresáři na properties a změnit položku owner z „root“ na „filo“ a následně nastavit Octal na 0744.
2.6
Nastavení v FTP klientu
Jelikož je v passwd nastaven domovský adresář pro všechny usery stejný (:/disk2/ftp), možná byste chtěli, aby se konkrétní user po svém po přihlášení dostal rovnou do svého privátního adresáře. V tom případě ho musíte zadat v ftp klientu, jako je např. Total Commander, viz obrázek níže pro usera Filo
2.7
skoro finále ;)
zastav pure-ftpd server a znovu pusť. Zkus se přihlásit v ftp klientu jako „filo“, mělo by to všechno fachat a můžem se vrhnout na NetDrive
2.8
Novell NetDrive
Free utilitka Novell Netdrive umožňuje přiřadit ftp adresáři písmeno disku. Po instalaci zvolte „New site“ a poté zadejte základní údaje viz obrázek níže (jedná se o vnitřní adresu vašeho BFW)
zaškrtni „Connect at startup“ a vyplň login a heslo
Ještě neklikej na „Connect“ a zavři okno přes Exit. Dole na liště v trayi se ti objeví NetDrive ikona, pravou myší a pak Program Settings
Program Settings Záložka General a Cache:
Záložka Advanced : Nastavit, aby po startu nebyly automaticky připojeny disky, tj. ty se připojí automaticky až při konkrétním požadavku na čtení/zápis.
Vraťte se zpátky do nastavení konkrétního připojení a zvolte Advanced (viz okno níže)
Pokud chcete, aby se se virtuální disk (v tomto případě X), nastavil do privátního adresáře usera s tím, že user má možnost „vyskákat“ výše až do rootu, tak vyplňte údaje dle obrázku níže
Poznámky k NetDrive I když je to výborný free pomocník, nějaké mušky se najdou. Nedoporučuji vypínat volbu stalo se mi, že NetDrive proces běžel, ale v trayi se neobjevil. Jinak ale pracoval normálně, tj. disky připojil, jak měl. Dále nedoporučuji zapínat cache, opticky to sice urychlí přenos dat, ale nemáte jistotu, kdy tam data doputovala v kompletní podobě, což může být někdy problém, třeba při sdílení s více uživateli. Dále se mi osvědčilo nedělat Disconnect z filemanageru (průzkumník, Total Commander), ale přímo z tray ikonky NetDrive. A poslední tip : pokud něco při připojování disku nebude chodit, v trayi je položka které lze leccos zjistit.
, díky