FTP - ano ito at paano ito gagawin? Mga halimbawa ng network file services: FTP at NFS

Kung matagal mo nang binabasa ang blog na ito, maaaring matandaan mo kung paano ako nagpasya na kolektahin dito ang isang paglalarawan ng mga sikat (at hindi gaanong sikat) na mga protocol ng network. Bakit ko ito kailangan, mababasa mo sa artikulong Isang medyo kumpletong paglalarawan ng SMTP protocol. Kaya nagpasya akong idagdag sa koleksyon ang FTP protocol, na malawakang ginagamit para sa paglilipat ng mga file.

1. Tayo na

Gaya ng dati, magsisimula ako kaagad sa isang halimbawa:

$ telnet example.ru 21
Sinusubukan ang 192.168.0.1...
Nakakonekta sa example.ru.
Ang karakter sa pagtakas ay "^]".
220-Welcome sa Pure-FTPd
Ikaw ay user number 5 ng 100 pinapayagan.
Ang lokal na oras ngayon ay 17:41. Port ng server: 21.
220 Madidiskonekta ka pagkatapos ng 15 minutong hindi aktibo.
USER afiskon
331 User afiskon OK. Kinakailangan ang password
PASS lamepassword
Ang 230-User afiskon ay may pangkat na access sa: mga coder
230 OK. Ang kasalukuyang pinaghihigpitang direktoryo ay /

Ang FTP server ay karaniwang tumatakbo sa port 21. Sa halimbawa sa itaas, ang mga linya na nagsisimula sa mga numero ay ipinadala ng server, ang natitira - ng kliyente. Ang mga kahilingan ng kliyente ay palaging binubuo ng isang string ng format COMMAND [mga argumento], habang ang mga tugon ng server ay maaaring maglaman ng maraming linya.

Ang una at huling mga linya ay nagsisimula sa tatlong numero na kumakatawan sa response code, na sinusundan ng isang text na paglalarawan ng tugon, na pinaghihiwalay mula sa code ng alinman sa isang puwang o isang gitling. Kung ang isang puwang ay ginagamit bilang isang delimiter, kung gayon ang linya ay ang huli sa tugon (at posibleng isa lamang), kung hindi, natanggap namin ang unang linya ng isang multi-linya na tugon. Nakita na natin ito sa isang lugar, hindi ba?

Mayroong limang pangkat ng pagtugon sa server:

Tulad ng makikita mo mula sa halimbawa, ang lahat ay nagsisimula sa server na nagpapadala ng code 220. Pagkatapos ay dapat mag-log in ang user gamit ang USER at PASS commands. Kung tama ang lahat, tutugon ang server sa una gamit ang code 331, at sa pangalawa gamit ang code 230. Para sa anonymous na pag-login (kung pinapayagan ito ng mga setting ng server), dapat mong tukuyin ang "anonymous" bilang user name, at ang iyong e-mail bilang password. Sa pagsasagawa, kadalasan ay alinman sa isang walang laman na e-mail o isang katulad [email protected].

Tulad ng nakikita mo, ang password ay ipinadala sa malinaw na teksto, kaya lubos na ipinapayong i-encrypt ang FTP na koneksyon gamit ang SSL (ito ay tinatawag na FTPS - FTP plus SSL), at mas mabuti - maglipat ng mga file sa pamamagitan ng SSH gamit ang scp, sftp o WinSCP mga kagamitan. Ang unang dalawa ay magagamit sa anumang Unix system at gumagamit ng parehong mga protocol na tumatakbo sa tuktok ng SSH upang maglipat ng mga file. Ang WinSCP ay isinulat para sa Windows at mukhang Total Commander; maaari itong gumana sa parehong lumang SCP (Secure Copy) at SFTP (SSH File Transfer Protocol), na lumitaw lamang sa SSH-2.

2. Tumingin tayo sa paligid

Ngunit may nagdala sa akin sa maling steppe. Pagkatapos maipasa ang pagpapatunay (wow, hindi ko ito malito sa awtorisasyon) Ang FTP server ay masayang isasagawa ang aming mga utos. Narito ang kanilang listahan:

Koponan Inaasahang code Paglalarawan
DELE 250 Tanggalin ang file
RMD 250 Tanggalin ang direktoryo
CWD 250 Pumunta sa direktoryo
MKD 257 Lumikha ng direktoryo
P.W.D. 257 Alamin ang kasalukuyang direktoryo
TUMIGIL 221 Tapusin ang trabaho
URI 200 Itakda ang uri ng paglipat
PORT 200 Lumipat sa active mode
PASV 227 Lumipat sa passive mode
LISTAHAN 150, 226 Kumuha ng mga nilalaman ng direktoryo
RETR 150, 226 Mag-download ng file
STOR 150, 226 Mag-upload ng file
ABOR 426,226 Kanselahin ang paglipat
RNFR 350 Piliin ang file na papalitan ng pangalan
RNTO 250 Palitan ang pangalan ng file

Dito ko inilista lamang ang mga pangunahing utos, na sapat na upang magsulat ng isang ganap na FTP client. Ang katotohanan ay sa totoong mga kondisyon, ang mga FTP server ay napakapili sa pagsuporta sa mga utos na inilarawan sa RFC959 at RFC3659. Kaya, kung nais nating makakuha ng isang talagang gumaganang aplikasyon, at hindi isang spherical na kabayo sa isang vacuum, kailangan nating limitahan ang ating sarili sa mga utos lamang mula sa ibinigay na listahan.

Ang pinakasimpleng mga utos ay QUIT, DELE, MKD, CWD at RMD. Nag-uutos lang kami at suriin ang code na ibinalik ng server. Kung ito ay katumbas ng inaasahang halaga, kung gayon ang lahat ay OK, kung hindi, pinoproseso namin ang error.

MKD ftp_test
257 "ftp_test" : Matagumpay na nalikha ang direktoryo
CWD ftp_test
250 OK. Ang kasalukuyang direktoryo ay /ftp_test
CWD..
250 OK. Ang kasalukuyang direktoryo ay /
RMD ftp_test
250 Matagumpay na naalis ang direktoryo

Kung nagsusulat ako ng isang FTP client, ang code na responsable para sa pagpapatupad ng mga utos na ito ay magiging ganito:

int code;
char * dir;
// ...
kung (code = rawcmd(250 , "RMD %s \r\n", dir))
printf("Error: %d \n", code);
iba pa
printf("Tapos na lahat! \n") ;

Medyo mas mahirap sa pag-parse ng tugon ng server sa isang command P.W.D.:

P.W.D.
257 "/ftp_test" ang iyong kasalukuyang lokasyon

Ang kasalukuyang direktoryo ay ipinadala sa tanging (huling?) na linya ng tugon ng server, na nakapaloob sa mga dobleng panipi. Kung ang buong pangalan ng kasalukuyang direktoryo ay naglalaman ng mga dobleng panipi, ang mga ito ay papalitan ng dalawang quote:

P.W.D.
257 "/ftp""test" ang iyong kasalukuyang lokasyon

Upang palitan ang pangalan ng mga file, isang pares ng mga utos ang ginagamit − RNFR at RNTO:

RNFR old_file.zip
350 Nagbibiro ka ba?
RNTO new_file.zip
250 Tapos na!

Tila, ito ay isang pag-optimize upang ang buffer kung saan binabasa ng server ang mga utos ng kliyente ay nasa pagkakasunud-sunod ng maximum na pinapayagang haba ng buong pangalan ng file, at hindi dalawang beses ang haba. Noong 1971, nang nilikha ang protocol, maaaring ito ay mahalaga.

Koponan URI nagpapahintulot sa iyo na itakda ang mode ng paglilipat ng file. Halimbawa:

URI E
Ang 200 TYPE ay EBCDIC na ngayon
URI A
Ang 200 TYPE ay ASCII na ngayon
URI I
Ang 200 TYPE ay 8-bit na binary na ngayon

Sa abot ng aking masasabi, ngayon ang utos na ito ay luma na at lahat ng data ay maaaring ligtas na maipadala sa binary format (TYPE I). Quote mula sa Wikipedia:

Ang mga unang computer ay gumamit ng isang byte-sized na machine word na format, isang double machine word, hindi isang multiple ng 8. Sila ay karaniwang multiple ng anim. Ang walong bits bawat byte ay pinagtibay sa panahon ng pagbuo ng sistema ng pagtuturo ng makina para sa IBM System/360. Ito ay naging isang internasyonal na pamantayan at mula noong unang bahagi ng 1970s Karamihan sa mga computer ay gumagamit ng mga byte na binubuo ng 8 bits at machine words sa multiple ng 8.

3. Kumilos tayo

Ang isang espesyal na tampok ng FTP protocol ay ang iba't ibang mga koneksyon ay ginagamit upang magsagawa ng mga utos at maglipat ng mga file. Ito ay karaniwang isang normal na desisyon sa disenyo. Hindi namin alam kung ano ang nakasulat sa mga file na ito, at kung ipapadala namin ang mga ito kasama ng mga utos, kailangan naming i-encode ang mga nilalaman ng file upang makilala ito mula sa mga utos. Bakit dagdagan ang dami ng trapiko at gawing kumplikado ang protocol kung maaari mo lamang buksan ang isang bagong koneksyon at ipadala ang file kung ano man?

Kapag nagtatatag ng bagong koneksyon, dapat may aktwal na kumonekta, at dapat tanggapin ng isang tao ang koneksyon. Kung ang kliyente ay nagbukas ng isang port at ang server ay kumokonekta dito, ang file transfer mode ay tinatawag na aktibo. Kung hindi, ito ay passive. Dahil sa katotohanan na maraming mga gumagamit ng Internet ngayon ang nakaupo sa likod ng NAT, kadalasang ginagamit ang passive mode. At ito ay hindi napakahusay, dahil ang bilang ng mga port sa server ay limitado.

Ang kawili-wili ay posibleng direktang maglipat ng mga file mula sa isang FTP server patungo sa isa pa. Ngunit dahil ang tampok na ito ay madalas na ginagamit sa mga pag-atake ng DDoS, ito ngayon ay hindi pinagana halos lahat ng dako.

Upang lumipat sa passive mode, gamitin ang command PASV, upang lumipat sa aktibo - PORT:

PORT 192,168,10,1,21,133
Matagumpay ang 200 PORT command
PASV
227 Pagpasok sa Passive Mode (192,168,0,1,21,216)

Tulad ng maaari mong hulaan, ang IP address at port para sa koneksyon ay naka-encode gamit ang mga numero. Sabihin nating nasa passive mode tayo at gustong magtatag ng koneksyon ng data:

$ telnet 192.168.0.1 `expr 21 \* 256 + 216`
Sinusubukan ang 192.168.0.1...
Nakakonekta sa example.ru.
Ang karakter sa pagtakas ay "^]".

Pagkatapos nito, maaari naming, halimbawa, tingnan ang mga nilalaman ng kasalukuyang direktoryo sa pamamagitan ng paggamit ng command LISTAHAN:

LISTAHAN
150 Tinanggap na koneksyon ng data
226-Mga Pagpipilian: -a -l
226 5 mga tugma sa kabuuan

Tingnan natin ang output ng telnet:

drwx------ 5 afiskon coder 512 Hul 7 11:35 .
drwx------ 5 afiskon coder 512 Hul 7 11:35 ..
drwxr--r-- 3 afiskon coder 512 Hun 6 14:30 website
drwxr-xr-x 2 afiskon coder 1024 Hul 7 00:16 log
drwxr--r-- 2 afiskon coder 512 Hun 6 14:30 tmp
Ang koneksyon ay isinara ng dayuhang host.

Ang pag-download at pag-upload ng mga file ay ginagawa sa eksaktong parehong paraan, ang mga utos lamang ang ginagamit RETR (file) At STOR (file) ayon sa pagkakabanggit. Ang RETR, STOR, at LIST na mga utos ay maaaring maantala sa kalagitnaan ng pagpapatupad gamit ang utos ABOR, bilang tugon kung saan dapat tumugon ang server ng 426 "nagambala ang paglipat", at pagkatapos ay may 226 "nagtagumpay ang pagkansela ng operasyon."

4. Konklusyon

Dito ko na siguro tatapusin ang kwento ko. Ang resulta ay 9 KB ng text kumpara sa 130 KB ng RFC959. Gamit ang artikulong ito, medyo posible na magsulat ng isang simpleng FTP client o server, sinuri ko! Ang pinakamahalagang bagay ay subukan ito para sa pagiging tugma sa maraming software hangga't maaari, dahil, tulad ng nabanggit ko na, sa mundo ng FTP, kakaunti ang mga tao na mahigpit na sumusunod sa RFC. At panghuli, tandaan ang ginintuang tuntunin na "Maging liberal sa input, mahigpit sa output."

Ang FTP protocol ay isang uri ng data transfer protocol na ginagamit para sa layunin ng pagkopya at paglipat ng mga file sa Internet at sa loob ng mga TCP network. Ang FTP ay kadalasang ginagamit upang mag-download ng mga pahina at dokumento ng iba't ibang uri sa pagho-host ng mga computer. Gumagamit ang FTP protocol ng arkitektura ng client-server at iba't ibang koneksyon sa loob ng isang network upang maglipat ng mga command at impormasyon mula sa client patungo sa server at vice versa. Ang mga gumagamit ng FTP ay pinahihintulutang magpatotoo gamit ang isang login at password, o, kung ang form na ito ay pinapayagan sa server, ang mga user ay maaaring mag-access nang hindi nagpapakilala.
Bilang karagdagan sa regular na protocol, ginagamit din ang FTPS, na isang espesyal na extension ng karaniwang FTP, na nagpapahintulot sa mga kliyente na ma-access ang server at gumamit ng mga naka-encrypt na sesyon ng paglilipat ng impormasyon. Ang diskarte na ito ay ipinatupad sa pamamagitan ng pagpapadala ng "auth tls" authentication command, na nagpapahintulot sa server na tanggapin o tanggihan ang mga koneksyon na hindi humihiling ng mga koneksyon sa TLS.

SFTP

Ang SFTP ay isang pamantayan para sa paglilipat ng impormasyon sa Internet, na nilayon para sa paglipat at pagkopya ng mga file gamit ang isang lubos na maaasahan at secure na koneksyon sa SSH (Secure Shell). Ang ganitong uri ng koneksyon ay maaaring magbigay ng access at secure na pagpapadala, na isinasagawa gamit ang pag-encrypt ng parehong pag-login at password, at ang nilalaman ng mismong pagpapadala, sa gayon pinoprotektahan ang mga password at kumpidensyal na impormasyon mula sa bukas na pagpapadala sa network.
Hindi tulad ng FTP, ang SFTP protocol, sa kabila ng mga katulad na function, ay gumagamit ng ibang data transfer protocol, at samakatuwid ang mga karaniwang kliyente ay hindi maaaring makipag-ugnayan sa mga SFTP server.

Mga tampok ng pamantayan ng FTP

Ang pamantayang ito ay isa sa mga pinakalumang protocol ng network, na nilikha 45 taon na ang nakakaraan at malawakang ginagamit sa Internet ngayon. Ang isa sa mga pinakamahalagang tampok ng protocol ay ang paggamit ng ilang mga koneksyon: isa para sa layunin ng pagpapadala ng mga control command, at iba pa para sa direktang paglilipat ng file. Sa kasong ito, maaari kang magbukas ng ilang parallel na koneksyon, na ang bawat isa ay maaaring maglipat ng data sa parehong direksyon.
Mayroong dalawang mga mode ng pagpapatakbo ng FTP, na naiiba sa paraan ng pagkakatatag ng mga koneksyon: pasibo at aktibo. Sa panahon ng aktibong mode, ang server ay nagtatatag ng isang koneksyon upang magpadala ng impormasyon sa gumagamit, at sa panahon ng passive mode, vice versa.
Ang pamantayang ito ay ginamit sa loob ng mahabang panahon at sa unang tingin ay napakasimple. Ngunit ang gayong pagiging simple ay maaaring maging mapanlinlang, dahil ang isang malaking bilang ng mga gumagamit ay maaaring makaranas ng mga problema habang nakakakuha ng access gamit ang pamantayang ito, lalo na kung ang server o gumagamit ay gumagamit ng isang firewall o NAT.

Mga tampok ng aktibong mode

Sa panahon ng aktibong mode, sinisimulan ng kliyente ang isang kontrol na koneksyon sa port ng server 21 sa pamamagitan ng pagpapadala ng command na "port", na tumutukoy sa address at port para sa paglilipat ng impormasyon. Matapos matanggap ang utos na ito, magsisimula ang server ng koneksyon mula sa sarili nitong port 20 patungo sa tinukoy na port ng user.
Ang pangunahing kawalan ng pamamaraang ito ay ang gumagamit ay dapat na may nakalaang IP address sa Internet upang gumana. Bukod pa rito, maaaring mangyari ang ilang problema kung nasa likod ng isang firewall o NAT ang kliyente.

Mga tampok ng passive mode

Upang makapagtatag ng isang passive na koneksyon, dapat ipadala ng user ang espesyal na command na "pasv" sa server. Bilang tugon sa utos na ito, nagpapadala ang server ng impormasyon tungkol sa address at port kung saan dapat magtatag ng koneksyon ang kliyente. Pagkatapos matanggap ang data na ito, kumokonekta ang user sa computer ng server at maglilipat ng impormasyon.
Kapag gumagamit ng passive mode, ganap na lahat ng mga koneksyon ay pinasimulan ng kliyente, at samakatuwid ay walang mga kinakailangan para dito. Pinapayagan ang user na gumamit ng NAT at firewall, at hindi gumamit ng dedikadong IP address. Samakatuwid, ngayon ang passive mode ay ginagamit bilang pangunahing uri ng pag-access at paglilipat ng file sa pamamagitan ng FTP sa Internet.

Mga setting kung gumagamit ng firewall

Kapag gumagamit ng firewall at aktibong mode, maaaring makaranas ang mga user ng mga isyu sa pag-access. Kung ang firewall ay na-configure upang tanggihan ang mga papasok na koneksyon na hindi sinimulan sa loob, ang server computer ay hindi makakapagtatag ng isang koneksyon at magsimulang magpadala ng impormasyon. At dahil sa ang katunayan na ang port para sa impormasyon ay isang dynamic na uri, ang ilang mga paghihirap ay lumitaw kapag nagse-set up ng firewall. Ang pinakamahusay na pagpipilian sa kasong ito ay upang ipahiwatig ang hanay ng mga port na ginamit at ayusin ang isang espesyal na pagpapahintulot sa panuntunan ng firewall para sa kanila.
Kung gumagamit ka ng passive mode, ang server computer ay nagpapatakbo ng panganib na makatagpo ng katulad na kumplikado.

Sa kasong ito, maaari kang gumamit ng katulad na solusyon - tukuyin sa mga opsyon ang isang tiyak na hanay ng mga port na ginamit at lumikha ng isang espesyal na panuntunan para sa hanay na ito.

Configuration kapag gumagamit ng NAT
Maaaring subaybayan ng ilang modernong pagpapatupad ng NAT ang control channel ng isang FTP na koneksyon at palitan ang panloob na address ng isang panlabas para sa normal na paglilipat ng data. Bilang karagdagan, ang mga FTP server ay may kakayahang tumukoy ng panlabas na port na dapat lumabas sa control session.
Kadalasan, para sa normal na paglilipat ng file sa pamamagitan ng FTP sa pamamagitan ng NAT, ang pagpapasa ng port 21 ay sapat na upang ipatupad ang isang control session, pati na rin ang pagtukoy at pagpapasa ng isang hanay ng mga dynamic na address na ginagamit para sa paglipat ng data sa Internet.

FTP (File Transfer Protocol protocol ng paglilipat ng file ) ay isang karaniwang protocol na idinisenyo para sa paglilipat ng mga file sa mga TCP network, na binuo sa isang arkitektura ng client-server at paggamit ng iba't ibang mga koneksyon sa network upang maglipat ng mga command at data sa pagitan ng client at server.

Ang server ay nagbibigay ng access sa kliyente sa data (karaniwang mga file at direktoryo) sa kliyente nang hindi nagpapakilala o pagkatapos ng pagpapatunay, kung saan ang pag-login at password ay ipinadala sa malinaw na teksto. Maaari mong gamitin ang SSH protocol upang i-encrypt ang iyong login, password, at ipinadalang data.

Ang protocol ay medyo simple; gumagamit ito ng iba't ibang mga koneksyon sa TCP para sa mga utos at para sa ipinadalang data. Kadalasan ito ay 21 port para sa mga control command at 20 para sa paghahatid ng data (kung hindi man, ito ay maaaring iba). Pagkatapos magtatag ng koneksyon sa TCP sa port 21, ang komunikasyon sa pagitan ng FTP client at ng server ay nangyayari gamit ang medyo simpleng mga text command.

Alinsunod sa RFC 959, ang Control Flow Server (21 port) ay tumutugon sa tatlong-digit na ASCII status code na may opsyonal na text message.

Mayroong 2 operating mode ng FTP protocol: aktibo at passive.

Sa aktibong mode, lumilikha ang kliyente ng koneksyon sa kontrol ng TCP sa server sa port 21 at ipinapadala ang IP address nito at isang di-makatwirang numero ng port ng kliyente sa server, at pagkatapos ay maghihintay hanggang sa magsimula ang server ng koneksyon sa TCP sa address at numero ng port na ito.

Sa passive mode, ginagamit ng kliyente ang control flow (TCP port 21) para magpadala ng PASV command sa server, at pagkatapos ay matanggap ang IP address at port number nito mula sa server, na pagkatapos ay ginagamit ng client para magbukas ng data stream mula sa isang arbitrary na port ng kliyente sa natanggap na address at port.

Ang pag-alam sa mga operating mode ng FTP ay nakakatulong kung kailangan mong kumonekta sa isang FTP server o i-access ito sa isang network na nakatago sa likod ng NAT at/o protektado ng isang firewall, na, gaya ng maaari mong hulaan, ay hindi karaniwan. Kung ang kliyente ay hindi maaaring tumanggap ng mga papasok na koneksyon sa isang arbitrary na port, ang server ay dapat na i-configure sa passive mode, pagkatapos ay ang mga papasok na koneksyon sa kliyente ay hindi kinakailangan, ngunit ang server ay dapat na handa na tumanggap ng mga papasok na koneksyon sa mga paunang natukoy na port. Ang aktibong mode ay angkop para sa isang server na ang administrator ay hindi handang tumanggap ng mga papasok na koneksyon sa mga port maliban sa 21, ngunit sa kasong ito ang kliyente ay makakakonekta lamang kung ito mismo ay tumatanggap ng mga papasok na koneksyon. Kaya sa anumang kaso, ang isang tao ay kailangang magbukas ng mga karagdagang port.

Apat na representasyon ng data ang maaaring gamitin sa panahon ng paghahatid:

    ASCII - ginagamit para sa teksto.

    Image mode (binary) - Ang nagpapadalang device ay nagpapadala ng bawat file byte sa pamamagitan ng byte, at ang tatanggap ay nag-iimbak ng byte stream sa oras na matanggap.

    EBCDIC - Ginagamit para maglipat ng plain text sa pagitan ng mga host sa EBCDIC encoding.

    Lokal na mode - nagbibigay-daan sa dalawang computer na may magkaparehong mga setting na magpadala ng data sa kanilang sariling format nang hindi nagko-convert sa ASCII.

Maaaring isagawa ang paglilipat ng data sa alinman sa tatlong mga mode:

    Stream mode - ipinapadala ang data bilang tuluy-tuloy na stream, na nagpapalaya sa FTP mula sa pagsasagawa ng anumang pagproseso.

    Block mode - Hinahati ng FTP ang data sa ilang mga bloke (block ng header, bilang ng mga byte, field ng data) at pagkatapos ay ipinapadala ang mga ito sa TCP.

    Compression mode—na-compress ang data gamit ang isang algorithm.

Gumagamit ang FTP ng login at password para sa pagpapatunay upang magbigay ng access. Ang username ay ipinadala sa server gamit ang USER command, at ang password ay ipinadala kasama ang PASS command. Kung ang impormasyong ibinigay ng kliyente ay tinanggap ng server, pagkatapos ay magpapadala ang server ng imbitasyon sa kliyente at magsisimula ang session. Ang pag-login at password ay ipinadala sa malinaw na teksto, kaya ang pamamaraang ito ay hindi matatawag na ligtas. Ang isang FTP server ay maaari ding magbigay ng anonymous na access sa data, iyon ay, para sa lahat, nang hindi humihingi ng login at password.
May mga extension at pamamaraan para sa secure na paglipat ng data at pagpapatunay, halimbawa: FTPS SFTP FTP sa SSH.

Magbibigay ako ng isang halimbawa ng isang FTP session kasama ang aking mga komento. Narito ang output ng mga utos (sa control channel lamang, siyempre) na ipinadala ng FTP client sa server at ang mga tugon ng server nang walang mga pagdadaglat (papalitan ko ang ilang mga parameter ng mga asterisk, halimbawa ang password para sa mga kadahilanang pangseguridad):

Katayuan: - ito ay isang mensahe mula sa FTP client kapag nakikipagpalitan ng mga utos sa FTP "manual" hindi mo makikita ang mga mensaheng ito. Tugon: - ito ang mga tugon ng FTP server Command: - ito ang mga utos na ipinapadala ng kliyente sa server (sa manual mode ay ipapasok mo ang mga ito mula sa keyboard).

S tatus: Kumokonekta sa 37.140.*.* ...
Katayuan: Nakakonekta sa 37.140.*.*. Naghihintay ng welcome message...
Tugon: 220 (vsFTPd 2.2.2) - kaya, kumatok kami sa port 21 37.140.*.* at sinabi nila sa amin na gumagana ang vsFTPd doon
Utos: USER ********* - magpadala ng username
Tugon: 331 Mangyaring tukuyin ang password. - tinanggap ang username
Utos: PASS ******** - ipadala ang password
Tugon: 230 Matagumpay ang pag-log in. - tinanggap ang password
Utos: SYST - "At anong OS ang mayroon ka?" tanong namin
Tugon: 215 Uri ng UNIX: L8 - "at ito na" ang sagot ng server
Utos: FEAT - ano ang maaari mong gawin, server?
Tugon: 211-Mga Tampok: - at eto naman :)
Tugon: EPRT
<... Не будем оглашать весь список...>
Tugon: UTF8
Tugon: 211 Wakas - natapos na ng server ang paglilista ng mga function
Command: OPTS UTF8 ON - makipag-usap sa amin sa UTF-8 encoding
Tugon: 200 Laging nasa UTF8 mode. - walang tanong
Katayuan: Nakakonekta - Kami ang bumubuhay sa koneksyon.
Utos: PWD - ipakita sa amin ang gumaganang direktoryo
Tugon: 257"/" - on! ito ang pangalan ng gumaganang direktoryo (mayroon kaming /)
Utos: URI A - ngunit itatakda muna natin ang mode ng pagtatanghal ng data
- OK
Utos: PASV - at hilingin na pumunta sa passive mode
Tugon: 227 Pagpasok sa Passive Mode (37,140,192,202,249,140). - nakatanggap ng listahan ng mga port
Utos: LIST - bigyan ako ng isang listahan ng mga nilalaman ng direktoryo

- sa puntong ito natanggap namin ang talaan ng mga nilalaman sa pamamagitan ng channel ng data
Utos: URI A
Tugon: 200 Lumipat sa ASCII mode.
Status: Kinukuha ang listahan ng direktoryo...
Utos: CWD www - baguhin ang gumaganang direktoryo sa www
Tugon: 250 na Direktoryo ay matagumpay na nabago. -sagot ng "ok"
Utos: PWD - muling hilingin ang gumaganang direktoryo
Tugon: 257 "/www" - ngayon siya ay /www
Utos: URI A - at pagpili ng data presentation mode
Tugon: 200 Lumipat sa ASCII mode.
Utos: PASV - muli sa passive mode
Tugon: 227 Pagpasok sa Passive Mode (37,140,192,202,252,174).
Utos: LIST - humiling ng talaan ng mga nilalaman ng catalog
Tugon: 150 Narito ang listahan ng direktoryo.
Tugon: 226 Directory send OK.
Status: Matagumpay ang listahan ng direktoryo - natanggap namin ang talaan ng mga nilalaman at ngayon
Status: Sinisimulan ang pag-download ng /www/google8f2c0456e362dfaa.html - gusto naming i-download ang file
Utos: URI A - para dito pipiliin namin muli ang uri
Tugon: 200 Lumipat sa ASCII mode.
Utos: PASV - at mode ng paglilipat ng data
Tugon: 227 Pagpasok sa Passive Mode (37,140,192,202,254,190).
Command: RETR google8f2c0456e362dfaa.html - at sabihin: “Ibigay ito sa file”
Tugon: 150 Pagbubukas ng koneksyon ng data ng BINARY mode para sa google8f2c0456e362dfaa.html (53 bytes).
Tugon: 226 Kumpleto na ang paglipat. - at ngayon ang file ay natanggap sa pamamagitan ng data channel
Katayuan: Matagumpay ang pag-download
Status: Kinukuha ang listahan ng direktoryo...
<... Пропустим некоторые повторяющиеся действия...>
Utos: MKD fff - at dito gumawa kami ng folder
Tugon: 257 "/www/moop-nz.ru/02-uslugi/fff" nilikha
Utos: RNFR /www/moop-nz.ru/02-uslugi/fff - at gusto naming palitan ang pangalan ng fff folder
Tugon: 350 Ready for RNTO.
Utos: RNTO /www/moop-nz.ru/02-uslugi/eee - sa eee folder
Tugon: 250 Rename matagumpay. - matagumpay ang operasyon
<... Пропустим некоторые повторяющиеся действия...>
Utos: RMD /www/moop-nz.ru/02-uslugi/eee/ - tanggalin ang naunang ginawang folder
Tugon: 250 Alisin ang operasyon ng direktoryo na matagumpay. - lahat ay gumana
Katayuan: Nakakonekta
Status: Simula sa pag-upload ng C:\12345\12345 001.jpg - simulan ang pag-upload ng file sa server
<... Пропустим некоторые повторяющиеся действия...>
Panuto: URI I
Tugon: 200 Lumipat sa Binary mode.
Utos: PASV
Tugon: 227 Pagpasok sa Passive Mode (37,140,192,202,243,234).
Utos: STOR 12345 001.jpg - sa pagkakataong ito ipinapadala namin ang file sa server
Tugon: 150 Ok na magpadala ng data.
Tugon: 226 Kumpleto na ang paglipat.
Katayuan: Matagumpay ang pag-upload
Status: Kinukuha ang listahan ng direktoryo...
Utos: URI A
Tugon: 200 Lumipat sa ASCII mode.
Utos: PASV
Tugon: 227 Pagpasok sa Passive Mode (37,140,192,202,251,25).
Utos: LIST
Tugon: 150 Narito ang listahan ng direktoryo.
Tugon: 226 Directory send OK.
Status: Matagumpay ang listahan ng direktoryo
Utos: DELE /www/moop-nz.ru/02-uslugi/12345 001.jpg - at tanggalin ito sa wakas
Tugon: 250 Matagumpay na operasyon ang pagtanggal.

Ang mga tao ay lumikha ng maraming FTP server at kliyente (pagkatapos ng lahat, ang protocol ay nasa paligid mula noong 1971).

Mayroong mga espesyal na programa na gumagana bilang isang FTP client, tulad ng: FileZilla, gFTP, cURL, lftp at marami pang iba, ngunit ngayon halos anumang browser ay maaaring gumana bilang isang FTP client (Mozilla Firefox, Konqueror, Opera, Yandex.Browser, Google Chrome , Internet Explorer, atbp.) o file manager (Midnight Commander, Krusader, GNOME Commander, Konqueror, Nautilus, Dolphin, FAR Manager, Total Commander, Windows Explorer, atbp.), kaya hindi na kailangang gumamit ng mga espesyal na programa (bagaman ako minsan gumamit ng gFTP).

Upang mai-set up ang iyong FTP server na may kagustuhan at pagpapatunay, kakailanganin mo ng isang espesyal na programa na magsisilbing isang server. Mayroon ding maraming ganoong mga programa, kabilang ang: vsftpd, ProFTPD, Pure-FTPd, glFTPd, oftpd, Serv-U File Server at marami pang iba.

Tila na sa pangkalahatan ay malinaw kung ano ang FTP at kung ano ang kailangan nito.

  • Bumalik
  • Pasulong
  • Telemetry sa Windows 10. Huwag paganahin ito, huwag paganahin ito, makukuha mo pa rin ang pinakamahusay na solusyon
  • Pumunta ka. Nagawa ng computer na talunin ang kampeon ng tatlong beses na European champion sa larong Go
  • Bagong "mga regalo" mula sa Microsoft - "katatagan" at "pagkapribado"

    Ang sikat na korporasyon sa mundo ay muling nasiyahan sa amin sa balita: Pagkatapos ng paglabas ng susunod na patch, ang built-in na tool sa pag-encrypt na Bitlocker ay tumigil sa paggana, at ang Microsoft ay hindi...

Ang FTP (File Transfer Protocol) ay isang karaniwang protocol na idinisenyo para sa paglilipat ng mga file sa mga TCP network (halimbawa, sa Internet). Ang FTP ay kadalasang ginagamit upang mag-download ng mga web page at iba pang mga dokumento mula sa isang pribadong development device patungo sa mga pampublikong hosting server.

Ang protocol ay binuo sa isang client-server architecture at gumagamit ng iba't ibang mga koneksyon sa network upang maglipat ng mga command at data sa pagitan ng client at server. Maaaring mag-authenticate ang mga user ng FTP sa pamamagitan ng pagpasa ng username at password sa malinaw na text, o, kung pinapayagan ito ng server, maaari silang kumonekta nang hindi nagpapakilala. Maaari mong gamitin ang SSH protocol para sa mga secure na paglilipat na nagtatago (naka-encrypt) ng login at password at nag-e-encrypt din ng nilalaman.

Ang isang medyo kapansin-pansin na tampok ng FTP protocol ay ang paggamit nito ng maramihang (kahit doble) na koneksyon. Sa kasong ito, ang isang channel ay ang control channel, kung saan ang mga command ay ipinapadala sa server at ang mga tugon nito ay ibinalik (karaniwan ay sa pamamagitan ng TCP port 21), at sa pamamagitan ng iba ay nangyayari ang aktwal na paghahatid ng data, isang channel para sa bawat paghahatid. Samakatuwid, sa loob ng isang session sa pamamagitan ng FTP protocol, maaari kang maglipat ng ilang mga file nang sabay-sabay, at sa parehong direksyon. Para sa bawat channel ng data, binuksan ang sarili nitong TCP port, ang bilang nito ay pinili ng server o ng kliyente, depende sa transmission mode.

Ang FTP protocol ay may binary transfer mode, na binabawasan ang overhead ng trapiko at binabawasan ang oras ng komunikasyon kapag naglilipat ng malalaking file. Ang HTTP protocol ay kinakailangang nangangailangan ng pag-encode ng binary na impormasyon sa text form, halimbawa gamit ang Base64 algorithm.

Kapag nagsimula ng trabaho sa pamamagitan ng FTP protocol, ang kliyente ay pumapasok sa isang session, at ang lahat ng mga operasyon ay isinasagawa sa loob ng balangkas ng session na ito (sa madaling salita, naaalala ng server ang kasalukuyang estado). Ang HTTP protocol ay hindi "naaalala" ang anuman - ang gawain nito ay magbigay ng data at kalimutan ito, kaya ang pag-alala sa estado kapag gumagamit ng HTTP ay isinasagawa sa pamamagitan ng mga pamamaraan na panlabas sa protocol.

Gumagana ang FTP sa layer ng aplikasyon ng modelo ng OSI at ginagamit upang maglipat ng mga file gamit ang TCP/IP. Upang gawin ito, ang isang FTP server ay dapat na tumatakbo at naghihintay ng mga papasok na kahilingan. Maaaring makipag-ugnayan ang computer ng kliyente sa server sa port 21. Ang koneksyon na ito (kontrol na daloy) ay nananatiling bukas para sa tagal ng session. Ang pangalawang koneksyon (data stream) ay maaaring mabuksan alinman sa pamamagitan ng server mula sa port 20 hanggang sa port ng kaukulang kliyente (aktibong mode), o ng kliyente mula sa anumang port patungo sa port ng kaukulang server (passive mode), na kung saan ay kinakailangan upang ilipat ang data file. Ginagamit ang control flow upang patakbuhin ang session - halimbawa, ang pagpapalitan ng mga command at password sa pagitan ng client at server gamit ang isang tulad ng telnet na protocol. Halimbawa, ililipat ng "RETR filename" ang tinukoy na file mula sa server patungo sa kliyente. Dahil sa dalawang-port na istrukturang ito, ang FTP ay itinuturing na isang out-of-band protocol, kumpara sa in-band HTTP.

Koneksyon at paglilipat ng data

Ang protocol ay tinukoy sa RFC 959. Ang server ay tumugon sa control flow na may tatlong-character na ASCII status code na may opsyonal na text message. Halimbawa, "200" (o "200 OK") ay nangangahulugan na ang huling utos ay matagumpay na naisakatuparan. Ang mga numero ay kumakatawan sa sagot na code, at ang teksto ay kumakatawan sa paglilinaw o kahilingan. Ang kasalukuyang pagpapadala sa stream ng data ay maaaring maantala ng isang interrupt na mensahe na ipinadala sa control flow.

Ang FTP ay maaaring gumana sa aktibo o passive mode, ang pagpili kung saan ay tumutukoy kung paano itinatag ang koneksyon. Sa aktibong mode, ang kliyente ay lumilikha ng isang TCP control na koneksyon sa server at ipinapadala ang kanyang IP address at isang arbitrary na client port number sa server, at pagkatapos ay maghihintay hanggang ang server ay magsimula ng isang TCP na koneksyon sa address at port number na ito. Kung sakaling ang kliyente ay nasa likod ng isang firewall at hindi makatanggap ng isang papasok na koneksyon sa TCP, maaaring gamitin ang passive mode. Sa mode na ito, ang client ay gumagamit ng control flow para magpadala ng PASV command sa server, at pagkatapos ay natatanggap ang IP address at port number nito mula sa server, na pagkatapos ay ginagamit ng client para magbukas ng data flow mula sa isang arbitrary client port papunta sa natanggap na address at port. Ang parehong mga mode ay na-update noong Setyembre 1998 upang suportahan ang IPv6. Sa oras na ito, higit pang mga pagbabago ang ginawa sa Passive Mode, na ina-upgrade ito sa Enhanced Passive Mode.

Kapag nagpapadala ng data sa isang network, maaaring gamitin ang apat na representasyon ng data:

    ASCII - ginagamit para sa teksto. Ang data ay, kung kinakailangan, iko-convert mula sa representasyon ng character sa nagpapadalang host sa "eight-bit ASCII" bago ipadala, at (muli, kung kinakailangan) sa representasyon ng character sa tatanggap na host. Bilang resulta, ang mode na ito ay hindi angkop para sa mga file na naglalaman ng higit pa sa simpleng teksto.

    Image mode (karaniwang tinatawag na binary) - ipinapadala ng nagpapadalang device ang bawat byte ng file ayon sa byte, at iniimbak ng tatanggap ang byte stream sa oras na matanggap.

    Ang suporta para sa mode na ito ay inirerekomenda para sa lahat ng pagpapatupad ng FTP.

    EBCDIC - ginagamit upang maglipat ng plain text sa pagitan ng mga host sa EBCDIC encoding.

Kung hindi, ang mode na ito ay katulad ng ASCII mode.

Lokal na mode - nagbibigay-daan sa dalawang computer na may magkaparehong mga setting na magpadala ng data sa kanilang sariling format nang hindi nagko-convert sa ASCII.

    Para sa mga text file, ibinibigay ang iba't ibang mga format ng pamamahala at mga setting ng istraktura ng talaan. Ang mga tampok na ito ay idinisenyo upang gumana sa mga file na naglalaman ng Telnet o ASA formatting.

    Maaaring isagawa ang paglilipat ng data sa alinman sa tatlong mga mode:

    Stream mode - ipinapadala ang data bilang tuluy-tuloy na stream, na nagpapalaya sa FTP mula sa pagsasagawa ng anumang pagproseso. Sa halip, ang lahat ng pagproseso ay ginagawa ng TCP.

Ang end-of-file indicator ay hindi kailangan maliban sa paghihiwalay ng data sa mga talaan.

Block mode - Hinahati ng FTP ang data sa ilang mga bloke (block ng header, bilang ng mga byte, field ng data) at pagkatapos ay ipinapadala ang mga ito sa TCP.

Compression mode - ang data ay na-compress gamit ang isang algorithm (karaniwan ay sa pamamagitan ng pag-encode ng mga haba ng serye).Pagpapatunay

Ginagamit ng FTP authentication ang karaniwang username/password scheme para magbigay ng access. Ang username ay ipinadala sa server gamit ang USER command, at ang password ay ipinadala kasama ang PASS command. Kung ang impormasyong ibinigay ng kliyente ay tinanggap ng server, pagkatapos ay magpapadala ang server ng imbitasyon sa kliyente at magsisimula ang session. Ang mga gumagamit ay maaaring, kung sinusuportahan ng server ang tampok na ito, mag-log in nang hindi nagbibigay ng mga kredensyal, ngunit ang server ay maaari lamang magbigay ng limitadong pag-access para sa mga naturang session.

Anonymous- FTP

Lalo na para sa FTP protocol na gumana sa pamamagitan ng mga firewall, isang NAT extension na tinatawag na NAT-PT (rfc2766) ang ginawa, na nagpapahintulot sa mga papasok na koneksyon na maisalin mula sa server patungo sa client sa pamamagitan ng NAT. Sa panahon ng naturang koneksyon, pinapalitan ng NAT ang ipinadalang data mula sa kliyente, na nagpapahiwatig sa server ng totoong address at port kung saan maaaring kumonekta ang server, at pagkatapos ay i-broadcast ang koneksyon mula sa server mula sa address na ito patungo sa kliyente patungo sa address nito. Sa kabila ng lahat ng mga hakbang at inobasyon na ginawa upang suportahan ang FTP protocol, sa pagsasagawa, ang NAT-PT function ay karaniwang hindi pinagana sa lahat ng mga router at router upang makapagbigay ng karagdagang seguridad laban sa mga banta ng virus.

Anonymousat pag-bypass sa mga firewall

Ang FTP ay karaniwang naglilipat ng data kapag may koneksyon sa pagitan ng server at ng kliyente, pagkatapos ipadala ng kliyente ang utos ng PORT. Lumilikha ito ng problema para sa parehong NAT at mga firewall, na hindi pinapayagan ang mga koneksyon mula sa Internet patungo sa mga panloob na host. Para sa NAT, ang isang karagdagang problema ay ang representasyon ng mga IP address at mga numero ng port sa PORT command ay tumutukoy sa IP address at port ng panloob na host, sa halip na ang pampublikong IP address at port ng NAT. Mayroong dalawang mga diskarte sa problemang ito. Ang una ay ang FTP client at FTP server ay gumagamit ng PASV command, na humihiling ng koneksyon ng data na itinatag mula sa client patungo sa server. Ang pangalawang diskarte ay upang baguhin ang PORT command values ​​para sa NAT gamit ang gateway sa application layer.

Suporta sa web browser

Maaaring kunin ng karamihan sa mga regular na web browser ang mga file na matatagpuan sa mga FTP server, bagama't maaaring hindi nila sinusuportahan ang mga extension ng protocol tulad ng FTPS. Kapag ang isang FTP address ay tinukoy sa halip na isang HTTP address, ang magagamit na nilalaman sa malayong server ay ipinakita nang katulad sa iba pang nilalaman ng web. Ang isang fully functional na FTP client ay maaaring patakbuhin sa Firefox bilang isang extension ng FireFTP.

Kaligtasan

Ang FTP ay hindi idinisenyo upang maging isang secure na protocol (lalo na sa mga pamantayan ngayon) at may maraming mga kahinaan sa seguridad. Noong Mayo 1999, ibinuod ng mga may-akda ng RFC 2577 ang mga kahinaan sa sumusunod na listahan ng mga isyu:

    Mga nakatagong pag-atake (mga bounce attack)

    Spoof attacks

    Mga pag-atake ng brute force

    Packet capture, sniffing

    Proteksyon ng username

    Pagnanakaw ng port

Hindi mai-encrypt ng FTP ang trapiko nito, ang lahat ng mga pagpapadala ay malinaw na teksto, kaya ang mga username, password, utos at data ay mababasa ng sinumang makakasagap sa packet sa network. Ang problemang ito ay karaniwan para sa maraming mga detalye ng Internet Protocol (kabilang ang SMTP, Telnet, POP, IMAP) na binuo bago ang paglikha ng mga mekanismo ng pag-encrypt tulad ng TLS at SSL. Ang karaniwang solusyon sa problemang ito ay ang paggamit ng "secure", TLS-protected na bersyon ng mga vulnerable protocol (FTPS para sa FTP, TelnetS para sa Telnet, atbp.) o isa pa, mas secure na protocol, gaya ng SFTP/SCP, na ibinigay kasama ng karamihan sa Secure Mga pagpapatupad ng Shell protocol .

LigtasPagpapatunay

Mayroong ilang mga paraan para sa secure na paglilipat ng file, sa isang pagkakataon o iba pang tinatawag na "Secure FTP": FTPS, SFPS, FTP sa SSH.

Ang tahasang FTPS ay isang extension sa pamantayan ng FTP na nagpapahintulot sa mga kliyente na hilingin na i-encrypt ang session ng FTP. Ito ay ipinatupad sa pamamagitan ng pagpapadala ng "AUTH TLS" na utos. Ang server ay may kakayahang payagan o tanggihan ang mga koneksyon na hindi humihiling ng TLS. Ang extension ng protocol na ito ay tinukoy sa RFC 4217. Ang implicit na FTPS ay isang legacy na pamantayan para sa FTP na nangangailangan ng paggamit ng SSL o TLS na koneksyon. Ang pamantayang ito ay dapat na gumamit ng iba't ibang mga port mula sa normal na FTP.

Ang SFTP, o "SSH File Transfer Protocol", ay hindi nauugnay sa FTP, maliban na naglilipat din ito ng mga file at may katulad na hanay ng mga command para sa mga user. Ang SFTP, o secure na FTP, ay isang program na gumagamit ng SSH (Secure Shell) upang maglipat ng mga file. Hindi tulad ng karaniwang FTP, ine-encrypt nito ang parehong mga utos at data, na pumipigil sa mga password at sensitibong impormasyon na maipadala nang hayagan sa network. Ang SFTP ay katulad ng functionality sa FTP, ngunit dahil gumagamit ito ng ibang protocol, hindi maaaring makipag-ugnayan ang mga karaniwang FTP client sa SFTP server at vice versa.

Pagpapatunaysa pamamagitan ngSSH(HindiSFTP)

Ang FTP sa SSH (hindi SFTP) ay tumutukoy sa pagsasanay ng pag-tunnel ng isang regular na session ng FTP sa isang koneksyon sa SSH. Dahil gumagamit ang FTP ng maraming koneksyon sa TCP, ang pag-tunnel sa SSH ay lalong mahirap. Kapag sinubukan ng maraming SSH client na magtatag ng tunnel para sa control channel (ang orihinal na koneksyon ng client-server sa port 21), tanging ang channel na ito ang mapoprotektahan; kapag naglilipat ng data, ang FTP software sa magkabilang dulo ay magtatatag ng mga bagong koneksyon sa TCP (mga channel ng data) na lalampas sa koneksyon sa SSH at sa gayon ay mawawalan ng integridad.

Kung hindi, ang software ng SSH client ay kailangang magkaroon ng ilang kaalaman sa FTP upang masubaybayan at maisulat muli ang mga mensahe ng daloy ng kontrol ng FTP at awtomatikong magbukas ng mga bagong pag-redirect para sa daloy ng data ng FTP.

Ang FTP sa SSH ay minsang tinutukoy bilang secure na FTP; ngunit hindi ito dapat malito sa iba pang mga pamamaraan tulad ng SSL/TLS (FTPS). Ang iba pang paraan ng paglilipat ng file gamit ang SSH at hindi nauugnay sa FTP ay SFTP at SCP; sa bawat isa sa kanila, ang parehong mga kredensyal at data ng file ay palaging protektado ng SSH protocol.

Ang FXP (File eXchange Protocol) ay isang paraan upang direktang maglipat ng mga file sa pagitan ng dalawang FTP server nang hindi dina-download ang mga ito sa iyong computer. Sa isang FXP session, ang kliyente ay nagbubukas ng dalawang FTP na koneksyon sa dalawang magkaibang server, na humihiling ng file sa unang server, na tumutukoy sa IP address ng pangalawang server sa PORT command.

Ang isang walang alinlangan na bentahe ng pagsuporta sa pamantayan ng FXP ay ang mga end user na nagnanais na kumopya ng mga file mula sa isang FTP server patungo sa isa pa ay hindi na napapailalim sa mga limitasyon ng bandwidth ng kanilang sariling koneksyon sa Internet. Hindi na kailangang mag-download ng file para sa iyong sarili at pagkatapos ay i-upload ito sa isa pang FTP server. Kaya, ang oras ng paglilipat ng file ay nakasalalay lamang sa bilis ng koneksyon sa pagitan ng dalawang malalayong FTP server, na sa karamihan ng mga kaso ay malinaw na mas mataas kaysa sa "user".

Ang FXP ay nagsimulang gamitin ng mga umaatake upang atakehin ang ibang mga server: ang PORT command ay tumutukoy sa IP address at port ng inaatakeng serbisyo sa computer ng biktima, at ang RETR/STOR command ay nag-a-access sa port na ito sa ngalan ng FTP server, at hindi ang umaatake. machine, na naging posible na magsagawa ng malakihang pag-atake ng DDoS gamit ang maraming FTP server nang sabay-sabay, o i-bypass ang sistema ng seguridad ng computer ng biktima kung umaasa lamang ito sa pag-verify ng IP ng kliyente at ang FTP server na ginamit para sa pag-atake ay matatagpuan sa isang pinagkakatiwalaang network o gateway. Bilang resulta, tinitingnan na ngayon ng halos lahat ng server na ang IP address na tinukoy sa PORT command ay tumutugma sa IP address ng FTP client at, bilang default, ipinagbabawal ang paggamit ng mga third party na IP address doon. Samakatuwid, ang paggamit ng FXP ay hindi posible kapag nagtatrabaho sa mga pampublikong FTP server.

Mga Pangunahing Utos

    ABOR - I-abort ang paglilipat ng file

    CDUP - Baguhin ang direktoryo sa isang mas mataas.

    CWD - Baguhin ang direktoryo.

    DELE - Tanggalin ang isang file (DELE filename).

    EPSV - Ipasok ang pinahabang passive mode.

    Ginagamit sa halip na PASV.

    LIST - Nagbabalik ng listahan ng mga file sa isang direktoryo.

    Ang listahan ay ipinadala sa pamamagitan ng koneksyon ng data.

    MDTM - Ibinabalik ang oras ng pagbabago ng file.

    MKD - Lumikha ng isang direktoryo.

    NLST - Nagbabalik ng listahan ng mga file sa isang direktoryo sa mas maikling format kaysa LIST.

    Ang listahan ay ipinadala sa pamamagitan ng koneksyon ng data.

    NOOP - Walang laman na operasyon

    PASV - Ipasok ang passive mode. Ibabalik ng server ang address at port kung saan kailangan mong kumonekta upang mangolekta ng data. Ang paglipat ay magsisimula kapag ang mga sumusunod na command ay ipinasok: RETR, LIST, atbp.

    PORT - Ipasok ang aktibong mode. Halimbawa PORT 12,34,45,56,78,89. Hindi tulad ng passive mode, ang server mismo ay kumokonekta sa kliyente upang maglipat ng data.

    PWD - Ibinabalik ang kasalukuyang direktoryo.

    QUIT - Idiskonekta

    REIN - I-reinitialize ang koneksyon

    RETR - I-download ang file. Ang RETR ay dapat maunahan ng isang PASV o PORT command.

    RMD - Tanggalin ang direktoryo

    RNFR at RNTO - Palitan ang pangalan ng file. RNFR - kung ano ang papalitan ng pangalan, RNTO - kung ano ang papalitan ng pangalan.

    SIZE - Ibinabalik ang laki ng file

    STOR - Mag-upload ng file. Ang STOR ay dapat na unahan ng isang PASV o PORT command.

    SYST - Ibinabalik ang uri ng system (UNIX, WIN, ...)

TYPE - Itakda ang uri ng paglilipat ng file (binary, text)

USER - Username para mag-log in sa server

Ang FTP protocol ay ginamit sa mahabang panahon at sa unang tingin ay napakasimple. Gayunpaman, ang pagiging simple na ito ay maliwanag at marami ang nagsisimulang makaranas ng mga problema sa pagtatatag ng isang koneksyon sa FTP, lalo na kapag ang server o kliyente ay nasa likod ng isang firewall o NAT Samakatuwid, ngayon ay pag-uusapan natin ang tungkol sa mga tampok ng FTP protocol sa iba't ibang mga mode.

Ang FTP protocol ay ang pinakalumang network protocol (nilikha noong 1971), ngunit gayunpaman ay malawakang ginagamit hanggang ngayon. Ang isang mahalagang tampok ng protocol ay ang paggamit nito ng ilang mga koneksyon: isa para sa mga control command, ang iba ay para sa data. Bukod dito, maraming mga koneksyon para sa paglipat ng data ay maaaring mabuksan, sa bawat isa kung saan ang mga file ay maaaring ilipat sa parehong direksyon. Ito ay sa tampok na ito na ang isang bilang ng mga problema ay nauugnay.

Depende sa paraan ng pagtatatag ng isang koneksyon para sa paglipat ng data, ang aktibo at passive na mga mode ng pagpapatakbo ng FTP ay nakikilala. Sa aktibong mode, ang server mismo ay nagtatatag ng koneksyon ng data sa kliyente, sa passive mode, vice versa. Tingnan natin ang mga mode na ito nang mas detalyado.

Isa pang mahalagang punto: kung magpapasa ka ng mga port para sa ilang FTP server, pagkatapos ay sa bawat isa sa kanila dapat mong tukuyin ang sarili nitong hanay ng mga dynamic na port at ipasa sa parehong mga numero ng panlabas na interface ng port. Bakit? Dahil ang numero ng port ay ipinadala ng server sa control command at walang alam tungkol sa pagpapasa, kung ang numero ng port na ipinadala ng server ay hindi tumutugma sa numero ng port sa panlabas na interface, kung gayon ang kliyente ay hindi makakapagtatag ng isang koneksyon. Habang ang control port at ang active mode port ay maaaring ipasa sa anumang panlabas na port.

Umaasa kami na ang artikulong ito ay makakatulong sa iyo na mas maunawaan ang mekanismo ng FTP protocol at sinasadyang lapitan ang proseso ng pagsasaayos at diagnostic.