FTP felhasználó átirányítása egy központi helyről egy alszerverre.
Üdvözletem!
Van három Debian alapú linuxos szerverem, ebből egy központi és a többi alszerver. Az alszerverek rendelkeznek egy PureFTPd nevű FTP szerverrel.
Az FTP autentikáció az alszervereken unix user alapon történik, viszont a központi szerveren egy adatbázisban (MySQL) megtalálható, hogy melyik user melyik alszerverhez tartozik (IP cím).
Azt szeretném elérni, hogy a felhasználóknak ne kelljen az alszerverek IP címeit külön-külön beírniuk, hanem egy központi címről belehessen csatlakozni (pl.: ftp.akarmi.hu).
Tehát:
-----
1. Becsatlakozás az "ftp.akarmi.hu" címre.
2. Felhasználói név bekérése.
3. Felhasználói név alapján eldöntjük, hogy hova tartozik a felhasználó és valahogy átirányítjuk a megfelelő alszerverre + elküldjük a felhasználói nevet, hogy ne kelljen újra megadni.
4. A kapcsolat átirányítva, bekérjük a jelszót.
5. A kapcsolat létrejött, mehet a munka.
----
Nos találtam egy "FTP relay" nevezetű kis programit az sf-en, ami egy kis fejlesztéssel jól működne. A problémám csak az, hogy hogyan irányítsam át konkrétan a kapcsolatot a másik szerverre, hogy ne a központi szerver közvetítésével menjenek át az adatok?
Íme a kód:
http://sourceforge.net/projects/ftprelay/
Egyébként leginkább ezt PHP segítségével szeretném megvalósítani, így ezért is írtam a PHP fórumra.
Eddig az alábbi kulcsszavakra keresgéltem, kevés sikerrel:
- ftp route
- ftp routing
- ftp relay
- ftp user redirect
- ftp nat
Ha esetleg valakinek volna ötlete, hogy merre felé kezdjek indulni, kérem írja meg.
Köszönöm!
■ Van három Debian alapú linuxos szerverem, ebből egy központi és a többi alszerver. Az alszerverek rendelkeznek egy PureFTPd nevű FTP szerverrel.
Az FTP autentikáció az alszervereken unix user alapon történik, viszont a központi szerveren egy adatbázisban (MySQL) megtalálható, hogy melyik user melyik alszerverhez tartozik (IP cím).
Azt szeretném elérni, hogy a felhasználóknak ne kelljen az alszerverek IP címeit külön-külön beírniuk, hanem egy központi címről belehessen csatlakozni (pl.: ftp.akarmi.hu).
Tehát:
-----
1. Becsatlakozás az "ftp.akarmi.hu" címre.
2. Felhasználói név bekérése.
3. Felhasználói név alapján eldöntjük, hogy hova tartozik a felhasználó és valahogy átirányítjuk a megfelelő alszerverre + elküldjük a felhasználói nevet, hogy ne kelljen újra megadni.
4. A kapcsolat átirányítva, bekérjük a jelszót.
5. A kapcsolat létrejött, mehet a munka.
----
Nos találtam egy "FTP relay" nevezetű kis programit az sf-en, ami egy kis fejlesztéssel jól működne. A problémám csak az, hogy hogyan irányítsam át konkrétan a kapcsolatot a másik szerverre, hogy ne a központi szerver közvetítésével menjenek át az adatok?
Íme a kód:
http://sourceforge.net/projects/ftprelay/
Egyébként leginkább ezt PHP segítségével szeretném megvalósítani, így ezért is írtam a PHP fórumra.
Eddig az alábbi kulcsszavakra keresgéltem, kevés sikerrel:
- ftp route
- ftp routing
- ftp relay
- ftp user redirect
- ftp nat
Ha esetleg valakinek volna ötlete, hogy merre felé kezdjek indulni, kérem írja meg.
Köszönöm!
Nem lehet megfordítani a
Úgy értem: egy ftp szerver és a szükséges területeket sambával, NFS-en stb. éri el és tolja a user alá?
Jó is, meg nem is.
Bár ha jól értelmezem az NFS lényegét, akkor ugyanúgy a központi szerver küldi tovább az alszerverek felé az anyagot oda-vissza, így terhelve a sávszélességét, akár csak az FTP relay amit belinkeltem.
Így valóban felejtős az
Több megoldás is van
Hálózati szinten azért nem tudod megoldani, mert ahhoz az infóhoz, hogy a user milyen szerveren van, csak a protokoll kibontása után jutsz. PHP-ban ezt ugyan meg lehet valósítani, de nem túl alkalmas rá.
Üdv
János
Szerintem rövidre zárom a
Mivel elég macerás lenne valóban felvenni/törölni/módosítani DNS record-ba az új usereknek az elérésüket, ezért a szervergép kap konkrét subdomain nevet, amire majd lehet csatlakozni (ez a név egyébként se változik majd sűrűn). A dolog már csak az ügyfél kiértesítése lesz, hogy hol található az FTP szervere. De ez még odébb lesz.
Lényegében a protokoll kibontás megtörtént, még a felhasználó név értékét is áttudtam venni.. csak az átirányításnál bukott meg a dolog, mivel ahogy néztem az FTP természeténél fogva nem tud szerver oldalról küldeni a kliens felé egy új kapcsolat indítását más szerver felé. Szóval ez rossz irány volt.
DNS szerkesztés
Bind esetében valóban nehézkes lehet (bár ott sem reménytelen), de ha nincs túl sok usered/DNS bejegyzésed, akkor szóbajöhet a dnsmasq is, ő a /etc/hosts-ból szedi a címeket és nem kell pl. verziószámozással meg hasonlókkal szórakozni.
Miért is?
ftp IN NS fogep.tedomained.hu.
Ha több száz kilométer van a szervereid között, akkor nem akarsz FTP proxyzni, mert inged-gatyád kifizeted a sávszélességre, ugyanis 3x lesz kiszámlázva: egyszer, amikor bejön a főgépedre, egyszer amikor kijön belőle, egyszer pedig a célgépen.
Eddig még igazából bind-el
Való igaz, hogy ebben az esetben nem jó a proxy-s megoldás, sem anyagilag, sem erőforrásban, se sehogy :).
Összességében, akkor egy variáció maradt:
Elkezdem bütykölni a PowerDNS-t kíváncsi vagyok rá mit tud, de eddig fórum postok alapján csak jót hallottam róla.
Köszönöm a segítségetek!
Van hozzá mysql backend, de
Tényleg
Teszteltük
Más: ha már FTP szervert építesz, a ProFTPd-nek van egy SFTP modulja, amivel SSH csatornán keresztül lehet feltölteni. Próbáld meg leszoktatni a jónépet az FTP-ről, mert szar is és insecure is.
Nos ennek örülök. Egyébként
Elvileg a PureFTPd is tudja az SSH-s dolgot, csak úgy kell fordítani. Meg nekem valamiért sokkal szimpatikusabb, mint a ProFTPd. Egyébként nem elég szimplán TLS?
Mert...
Én ha tehetném, az FTP-t kompletten kitiltanám a rendszereimből.
Első az irány, aztán a részletek.
Jobban belegondolva, még nem vagyok biztos benne, hogy melyik FTP szervert válasszam. A ProFTPd SSH modulja valóban csábító, de teszteléseket kell végeznem, hogy melyik használható jobban. Egyesek szerint a vsftpd is jó választás lenne.
A kérdésem: Van-e bevált FTP szerver, amiről bárki azt mondhatja: biztonságos, stabil és gyors?
Pro
Köszönöm!