> Prosim, muze mi nekdo strucne vysvetlit jaky je rozdil mezi aktivnim a > pasivnim FTP prenosem? Moc dekuji. Klasika je aktivni rezim. U FTP existuji dve spojeni: prvni je ridici a je to to, co vidite pri spusteni radkoveho klienta. Zadavaji se po nem prikazy. Pokud zadate 'get soubor', pak *server* otevre spojeni (server je aktivni, protoze mu zadavate prikazy) na Vas pocitac a po tomto spojeni 'dojde' objednany soubor. Pasivni rezim na to jde obracene - spojeni navazuje klient po predchozi deklaraci pozadavku. Obracene se to dela kvuli tomu, ze pokud sedite za Masquerade, tak zvenci na Vas nikdo spojeni nenavaze. Jedine, co jde, je navazovat spojeni smerem ven - a to prave vyuziva pasivni rezim. Vice informaci viz RFC (http://docs.linux.cz/) -- Aktivni i pasivni varianta: ~~~~~~~~~~~~~~~~~~~~~~~~~~ Vas klient navaze spojeni se serverem na ftp port 21. Po tomto kanalu putuji vsechny ricici prikazy jako cd atd. Jakykoli datovy vystup (list adresare, stahovany soubor) jde po druhe konexi. A v tom jak je tato konexe delana se lisi aktivni a pasivni ftp. Aktivni: ~~~~~~~ V aktivni verzi ftp server ze sveho portu 20 (ftpdata) navaze spojeni s Vasim pocitacem na portu > 1024 ktery se pred tim dohodl po ridicim spojeni a kde ceka klient na data. To ze server navazuje spojeni smerem ke klientovi delalo problemy s nastupem firewalu. Proto napriklad pro tyto spojeni existuje modul do masq. Pasivni: ~~~~~~~ Zaroven vznikla pasivni varianta. Ono druhe datove spojeni se nenavazuje ze serveru na klenta, ale z klienta na server na nektery port > 1024 opet predem domluveny v ridicim spojeni. (doufam ze jsem se nikde nesekl, pisu to z hlavy a hrabat se v knizce nemam cas, kdyztak at me nektery z kolegu opravi). -- pokud pouzivate MASQ nebo NAT tak z maskovane site v zadnem pripade neotevrete ftp s aktivnim modem. teda otevrete .. ale nic neztahnete.... xxx Se zavedenym modulem ip_masq_ftp funguje pres maskaradu i aktivni spojeni. * zkuste pasivni mod protokolu (prikaz passive radkoveho ftp klienta), on totiz ftp protokol si nese s sebou v paketech info o IP adrese serveru, na ktery klient pristupuje. No a kdyz mate neverejnou IP adresu, tak to firewall zahodi ;o) Kdyz nepomuze pasivni mod, zkuste nastavit firewall tak, aby poustel aspon port ftp-cka a pak snad * nejde o klienta za firewallem - ale server za firewallem. Cili PASV ma zcela opacny ucinek - naopak obycejny rezim by mel fungovat lepe, protoze pujde o spojeni zpoza firewallu do Internetu (coz by mohlo firewallem projit). Problemy jsou zrejme jiz s navazovani kontrolniho spojeni (chtelo by to nejako port forwarding na tom firewallu) * normalne FTP pracuje tak, ze klient se pripoji na server a server se pri otevirani pripojuje na klienta. Pasivni mod zpusobi, ze i datove spojeni jde od klienta k serveru. * Pro povolení pasivního FTP musíte mít na serveru povoleno: - odchozí spojení na porty 20, 21 Pro povolení aktivního musíte mít povoleno - odchozí spojení na port 20 + spojení přicházející z portu 21 na port > 1023 (server v aktivním módu otevírá spojení na klienta z portu 21 na port > 1023). * Aby Vam bezelo z vnitrni site FTP, mozna by melo stacit: modprobe iptable_filter modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ip_nat_ftp iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.1/24 -j SNAT --to 194.213.252.135 iptables -A FORWARD -i eth0 --state ESTABLISHED, RELATED -j ACCEPT iptables -A FORWARD -i eth1 --state ESTABLISHED, RELATED -j ACCEPT iptables -A FORWARD -i eth1 --state NEW --dport 21 -j ACCEPT * znate protokol ftp? doporucuji neco malo precist. obecne to funguje takto: 1) klient se pripoji na port 21 serveru, zada USER, PASS 2) klient alokuje vysoky port, otevre jej pro "prijem" (listen) 3) klient sdeli servru svoji IP a port, ktery otevrel v 2) (PORT x,x,x,x,p,p) 4) klient si rekne napr. o vypis adresare (LIST) 5) server se pripoji na IP a port z 3) a posle klientovi data (vypis adresare). server se VETSINOU pripojuje Z PORTU ftp_data (20) pokud klient vyzada PASiVni mod, je to takto: 2) klient rekne PASV 3) server alokuje vysoky port pro prijem (LISTEN) a sdeli jej klientovi 5) klient se pripoji na IP a port z 3) a dostane od serveru data (vypis adresare) * > Prosím o radu, pokud se chci připojit na jakýkoliv FTP server, tak mi to > píše: > > 500 Illegal PORT command Jste za maskaradou a nemate zavedeny modul ip_masq_ftp? -nebo- asi jste pripojen skrze nejaky NAT, maskaradu, ktera nepodporuje FTP spojeni (Vas klient posle povel PORT s parametrem, ktery prikazuje pouzit ip adresu jinou nez vidi server jako zdroj FTP spojeni, napriklad) zkusit pouzti pasivni rezim (PASV) * to je proto, protoze ftp pri aktivnim prenosu chova tak, ze na na ridici kanal se posle klientem pozadavek, na serveru sprava volnych portu priradi serveru docasny (neprivilegovany port) a z toho se pak ftp server snazi navazat spojeni s klientem na jeho docasny port, ktery poslal serveru v pozadavku. (klient je vlastne "serverem" a server se na nej pripojuje). passivni mod, klient bude otevirat i datovy spoj... v passivnim modu se ftp chova da se rict jako www server na portu 21. (Samozrejme obrazne receno) * No tak to se Vam zrejme nepodari bez upravy ftp serveru... BTW jedine mne napada nastavit mu direktivu passive ports na 20, ale nejsem si jist, zda je ftp serveru povoleno alokovat i privilegovany port. Kazdopadne by jste timto omezil uzivatele na 1 pripojeni k serveru. (asi urcite hloupost) Nestacilo by pak u klientu povolit nejen 20 ale pak i onen rozsah 65500-65520 ? *