Portál AbcLinuxu, 10. května 2025 07:05

Dotaz: FTP + Active Directory

20.2.2011 18:45 Matěj Vaňátko | skóre: 19 | Brno
FTP + Active Directory
Přečteno: 579×
Odpovědět | Admin
Zdravím pánové.

Chci se zeptat, potřeboval bych udělat z Linuxu FTP server, ale takový, aby kdyby uživatel měl zadaný email v Active Directory, aby se mu automaticky vytvořil i FTP účet a FTP prostor se jménem jeho emailu v AD. Je to vůbec možné ???
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.2.2011 20:09 NN
Rozbalit Rozbalit vše Re: FTP + Active Directory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi bych pouzil ldapsearch, nebo podobnou utilitu a obalil to skriptem co dodela konto a adresar a cele to rotoval v cronu, zalezi co znamena to "kdyby"..

NN
20.2.2011 20:39 Matěj Vaňátko | skóre: 19 | Brno
Rozbalit Rozbalit vše Re: FTP + Active Directory
Stačilo by, aby se složka vytvořila v tu chvíli, pokud by se chtěl uživatel přihlásit ke svému FTP účtu. Nemusela by se tvořit ihned po přidání položky e-mail do AD..
21.2.2011 08:52 ubuntak
Rozbalit Rozbalit vše Re: FTP + Active Directory
To bys musel nasadit nejaky script, ktery pri prihlaseni zkontroluje zda dany adresar pro ucet jiz existuje-coz ftp server (vsftpd, propftpd) neumi. Takze jedine reseni je udelat automatizovany script, tak aby se kazdych treba 5 minut koukl do ldap databaze a porovnal ucty, ktere existuji s adresari.
21.2.2011 13:37 VSi | skóre: 28
Rozbalit Rozbalit vše Re: FTP + Active Directory
pureftpd umí pro autentizaci volat libovolný externí program, kterému předá parametry a očekává výstup v definovaném formátu. Mám takhle udělaný perl skript, který uživatele ověřuje proti LDAPu (search, auth bind) a kontroluje pomocné parametry (zda uživatel má na FTP přístup). Většina FTP serverů umí sice ověřování proti LDAPu, ale většinou se speciálním schematem, nebo to není moc konfigurovatelné ...

Takže stejně by to šlo udělat i pro AD. Co se týče zakládání adresářů, tak buď budete mít "virtuální" uživatele (práva řeší ftp server, všichni přistupují pod stejným systémovým účtem) a adresáře může zakládat přímo login skript. Nebo lze udělat další skript pro vytvoření příslušného adresáře, který bude moci přihlašovací skript volat přes sudo, pokud ujistí neexistenci adresáře.
21.2.2011 16:20 Matěj Vaňátko | skóre: 19 | Brno
Rozbalit Rozbalit vše Re: FTP + Active Directory
No jak to tak vidim, tak si udělám nějaký tvořící a mazací script a budu si těch cca 300 uživatelů udržovat ručně.. Je to do školy a žáci tak často nepřicházejí a neodcházejí. Myslel jsem, že to půjde jako u postfixu + dovecotu.. tam se jim mailová schránka vytvoří při prvním e-mailu co příjde i s jejich oprávněními a nemusim na to vůbec šáhnout. Jenom když mažu složky
21.2.2011 16:29 VSi | skóre: 28
Rozbalit Rozbalit vše Re: FTP + Active Directory
Myslel jsem, že to půjde jako u postfixu + dovecotu.. tam se jim mailová schránka vytvoří při prvním e-mailu co příjde i s jejich oprávněními a nemusim na to vůbec šáhnout. Jenom když mažu složky.
No vždyť takhle by to šlo udělat i s tím FTP. Jen všechny vaše požadavky asi přímo nesplní žádný linuxový FTP server. pomocí pureftpd + jednoduchého skriptu to lze udělat. Viz http://download.pureftpd.org/pub/pure-ftpd/doc/README.Authentication-Modules
21.2.2011 16:37 Matěj Vaňátko | skóre: 19 | Brno
Rozbalit Rozbalit vše Re: FTP + Active Directory
Ok. Díky. Mrknu na to. Já vim, že v linuxu jde skoro všechno, jen se trochu snažit. Jen jsem se chtěl zeptat, jestli už nějaký FTP server nemá podobnou funkci v sobě.
23.2.2011 23:02 Matěj Vaňátko | skóre: 19 | Brno
Rozbalit Rozbalit vše Re: FTP + Active Directory
A poradil byste mi prosím jak na ten script ? V linuxu jsem zatím nijak extra nescriptoval, takže to je pro mě španělská vesnice. Asi to bude něco na způsob toho, že si vyberu uživatele z AD, a pěkně u každého zkontroluju přítomnost jeho FTP složky na linuxu a popřípadě ji vytvořím. Jenže vůbec netuším, jak toho dosáhnout. Hlavně jak pracovat s LDAP na AD, abych si vybral všechny potřebné údaje. Algoritmus práce mi problém nedělá. Jen to tam nějak "nasekat" :D

Díky moc
24.2.2011 13:06 hates
Rozbalit Rozbalit vše Re: FTP + Active Directory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkuste proFTPd ma moduly pro propojeni s LDAP. Dotazy do LDAPu (AD) muzete konfigurovat dle potreby, popripade pokud se nemuzete pripojit z FTP primo do AD a mel by jste problem nakonfigurujete na stejnem stroji LDAP server v modu proxy a ten vam zpristupni data z AD. Pri prvnim zalogovani na FTP vam proFTPd automaticky adresar vytvori.
24.2.2011 16:51 Matěj Vaňátko | skóre: 19 | Brno
Rozbalit Rozbalit vše Re: FTP + Active Directory
Jasný. Princip chápu. Ale nevim syntaxi LDAP dotazů, jaký balíček na ně potřebuji apod.. Jestli byste někdo věděl o nějaké wiki na LDAP příkazy, docela by mi to pomohlo.. Něco jako jsou seznamy příkazů třeba na MySQL.

Díky mnohokrát.
24.2.2011 18:02 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
Rozbalit Rozbalit vše Re: FTP + Active Directory
na tu konfiguraci to nepotrebujete. dotaz potrebujete pouze pro kontrolu a na to se pouziva ldapsearch, a jako posledni parametr mu zadavate takzvany filter, podle ktereho ma prohledavat strom. ProFTPd ma v sobe na toto konfiguracni veci kam zadate pouze strom, ve kterem ma prohledavat, a jake klice ma z nej pozadovat. LDAP dotaz si nasledne slozi a zajisti sam pri prihlasovani uzivatelu.

Kouknete na toto vlakno, ktere to resi.

http://forums.proftpd.org/smf/index.php?PHPSESSID=98c88093fbc0e85e59f52477ee2f930f&/topic,1737.0.html

vas bude zajimat hlavne tato cast konfiguraku
<IfModule mod_ldap.c>
    AuthOrder mod_ldap.c
    LDAPAttr uid uid
    LDAPAttr cn cn
    LDAPAttr uidNumber uidNumber
    LDAPAttr gidNumber gidNumber
    LDAPAttr homeDirectory unixHomeDirectory 
    LDAPServer x.x.x.x  y.y.y.y # your ad server IPs
    LDAPDNInfo "CN=binduser,cn=group,dc=domain,dc=parent,dc=com" "pass"
    LDAPAuthBinds on
    LDAPDoAuth on "ou=ftpOU,dc=domain,dc=parent,dc=com" "sAMAccountName=%u"
    LDAPDoGIDLookups on "ou=ftpOU,dc=domain,dc=parent,dc=com" "(cn=%v)(objectclass=top;group)" "(&(gidNumber=%v)(objectClass=group))" "(&(memberUid=%v)(objectclass=group))"
    #you need to include all 5 arguments to get this to work. if you can find somewhere that is documented point it out. i lost a lot of time on that.
RequireValidShell off
UseFtpUsers off
PersistentPasswd off
</IfModule>
a radek s klicem
LDAPDoAuth           - je filtr pro nalezeni prihlasovaciho jmena
LDAPDoGIDLookups     - je filtr pro ziskani dalsich informaci o uzivateli
24.2.2011 18:04 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
Rozbalit Rozbalit vše Re: FTP + Active Directory
tak ty klice jsem poplet to je filtr pro presnejsi vyhledavani uzivatele ve strome
24.2.2011 18:13 hates | skóre: 30 | blog: Jak_jsem_se_dostal_k_linuxu
Rozbalit Rozbalit vše Re: FTP + Active Directory
Odpovědět | | Sbalit | Link | Blokovat | Admin
a pokud budete chtit otestovat rucne zda konkretniho uzivatele opravdu dostanete z AD je na to nejlepsi vyuzit ldapsearch a pouzit jej nasledovne
ldapsearch -h IP_AD_SERVERU -x -w SuperTajneHesloDo_AD -D \
"cn=admin,dc=o2hosting,dc=local" -b "ou=ftpOU,dc=domain,dc=parent,dc=com" \
"(cn=%v)(objectclass=top;group)" "(&(gidNumber=%v)(objectClass=group))" \
"(&(memberUid=%v)(objectclass=group))"
toto jsou filtry a %v nahradite potrebnymi udaji, filtry si musite seskladat sam podle toho jake mate atributy v AD. V konfiguraku proftpd samozrejme nechate %v jako promennou, jelikoz ji proftpd doplni a dotaz zasle do AD.
(cn=%v)(objectclass=top;group)
(&(gidNumber=%v)(objectClass=group))
(&(memberUid=%v)(objectclass=group))
ldapsearch je utilita v baliku ldap-utils
24.2.2011 21:50 Matěj Vaňátko | skóre: 19 | Brno
Rozbalit Rozbalit vše Re: FTP + Active Directory
Díky moc. Přesně něco v tomto smyslu jsem potřeboval. To už si nastuduju v dokumentaci, to snad problém nebude. Jak to tady zkouším, tak by to snad mohlo do zítra i fungovat :-) Aspoň se zase člověk naučí něco novýho
24.2.2011 22:46 Matěj Vaňátko | skóre: 19 | Brno
Rozbalit Rozbalit vše Re: FTP + Active Directory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Už mi to sice funguje, jako dotaz používám toho
ldapsearch -x -h 192.168.9.11 -D "administrator@domena.local" -w SuperTajneHeslo -b "ou=zaci,ou=users,ou=OA,dc=domena,dc=local" -s sub mail

Dotaz proběhne Ok, a vyhodí přesně tohle:
# 8a1neffo, zaci, Users, OA, domena.local
dn: CN=8a1neffo,OU=zaci,OU=Users,OU=OA,DC=domena,DC=local
mail: 8a1neffo@domena.cz

Můžu se ještě naposledy zeptat, jak z toho vytáhnu jen to "8a1neffo" ? Zkoušel jsem to pomocí GREP a reg. výrazu "[ ][[:alnum:]]*", ale ten mi v linuxu nějako nemaká. Nevěděl byste někdo, jaký výraz tam použít na výběr jenom tohoto a případně to uložit do proměnné ?

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.