FTP
SFTP
WEB DAV
BÀI 8 NGÀY 8.8.2006 SN THEO SÁCH KS TRN VIT AN
FTP LÀ GÌ ? :
FTP là File Protocol , là phương pháp thông thường để truyn các Files gia 2 máy tính được
kết ni Internet.Web Server chy 1 chương trình SERVER FTP ngoài phn mm Web
Server.
Bn cn 1 Software gi là FTP Client trên máy tính ( Cute FTP chng hn ) để
chuyn các Files lên Server FTP.
Dreamweaver cũng có sn FTP Client .Mt trong nhng khuyết đim ca FTP là : Nó
là 1 giao thc không có s bo mt cài sn . Tt c thông tin đều b l ra rõ ràng : Tên
người dùng – Password – và chính các Files.
File Transfer Protocol
Bách khoa toàn thư m Wikipedia
Bn vào xem trang Web để hiu thêm v FTP
http://vi.wikipedia.org/wiki/FTP
i h ng t ướ FTP)
B c t i: ướ menu, tìm ki mế
FTP ho c file transfer protocol th ng đ c dùng đ trao đ i h s qua m ng l iườ ượ ơ ướ
truy n thông dùng giao th c TCP/IP (ch ng h n nh ẳạưInternet - m ng ngo i b - ho c
intranet - m ng n i b ). Ho t đ ng c a FTP c n có hai máy tính, m t máy ch và m t máy
khách). Máy ch FTP, dùng ch y ph n m m cung c p d ch v FTP, g i là trình ch , l ng
nghe yêu c u v d ch v c a các máy tính khác trên m ng l i. ướ Máy khách ch y ph n
m m FTP dành cho ng i s d ng d ch v , g i là trình khách, thì kh i đ u m t liên k t ườ ế
v i máy ch . M t khi hai máy đã liên k t v i nhau, máy khách có th x lý m t s thao tác ế
v t p tin, nh t i t p tin lên máy ch , t i t p tin t máy ch xu ng máy c a mình, đ i tên ư
c a t p tin, ho c xóa t p tin máy ch v.v. Vì giao th c FTP là m t giao th c chu n công
khai, cho nên b t c m t công ty ph n m m nào, hay m t l p trình viên nào cũng có th
vi t trình ch FTP ho c trình khách FTP. H u nh b t c m t n n t ng h đi u hành máyế ư
tính nào cũng h tr giao th c FTP. Đi u này cho phép t t c các máy tính k t n i v i m t ế
1
m ng l i có n n TCP/IP, x lý t p tin trên m t máy tính khác trên cùng m t m ng l i ướ ướ
v i mình, b t k máy tính y dùng h đi u hành nào (n u các máy tính y đ u cho phép sế
truy c p c a các máy tính khác, dùng giao th c FTP). Hi n nay trên th tr ng có r t nhi u ườ
các trình khách và trình ch FTP, và ph n đông các trình ng d ng này cho phép ng i dùng ườ
đ cượ
B giao th c TCP/IP T ng Các giao th c ng d ng DNS, ENRP, FTP, HTTP, IMAP,
IRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, TELNET, BitTorrent, … Phiên ASAP, SMB,
Giao v n SCTP, TCP, UDP, DCCP, IL, RTP, RUDP, … M ng IPv4, IPv6, … Liên k tế
Ethernet, Wi-Fi, Token ring, MPLS, PPP, …
M c l c
1 Khái quát
2 M c đích c a giao th c FTP
3 Nh ng phê bình v giao th c FTP
4 Nh ng v n đ v b o an khi dùng FTP
5 Các mã h i âm c a FTP
6 FTP n c danh
7 D ng th c c a d li u
8 FTP và các trình duy t
9 FTP trên n n SSH
10 Các tham chi uế
11 Xem thêm
o11.1 Các giao th c t ng t nh FTP ươ ư
o11.2 Ph n m m
12 Liên k t ngoàiế
o12.1 H ng d n h c / T ng quanướ
Khái quát
FTP th ng ch y trên hai ườ c ng, 20 và 21, và ch ch y riêng trên n n c a TCP. Trình ch FTP l ng
nghe các yêu c u d ch v t nh ng k t n i vào máy c a các trình khách FTP, trên c ng 21. Đ ng ế ườ
k t n i trên c ng 21 này t o nên m t dòng truy n đi u khi n, cho phép các dòng l nh đ cế ượ
chuy n qua trình ch FTP. Đ truy n t i t p tin qua l i gi a hai máy, chúng ta c n ph i có m t
k t n i khác. Tùy thu c vào ch đ truy n t i đ c s d ng, trình khách ( ch đ năng đ ng -ế ế ượ ế
active mode) ho c trình ch ( ch đ b đ ng - ế passive mode) đ u có th l ng nghe yêu c u k t ế
n i đ n t đ u kia c a mình. Trong tr ng h p k t n i ch đ năng đ ng, (trình ch k t n i ế ườ ế ế ế
v i trình khách đ truy n t i d li u) , trình ch ph i tr c tiên đóng k t vào c ng 20, tr c khi ướ ế ướ
liên l c và k t n i v i trình khách. Trong ch đ b đ ng, h n ch này đ c gi i t a, và vi c đóng ế ế ế ượ
k t tr c là m t vi c không c n ph i làm.ế ướ
Trong khi d li u đ c truy n t i qua ượ dòng d li u , dòng đi u khi n đ ng im. Tình tr ng này gây
ra m t s v n đ , đ c bi t khi s l ng d li u đòi h i đ c truy n t i là m t s l ng l n, ượ ượ ượ
đ ng truy n t i ch y thông qua nh ng ườ b c t ng l a ườ . B c t ng l a là d ng c th ng t đ ng ườ ườ
ng t các phiên giao d ch sau m t th i gian dài im l ng. Tuy t p tin có th đ c truy n t i qua hoàn ượ
thi n, song dòng đi u khi n do b b c t ng l a ng t m ch truy n thông gi a quãng, gây ra báo ườ
l i.
M c đích c a giao th c FTP
M c đích c a giao th c FTP, nh đ c phác th o trong b n ư ượ RFC, là:
2
1. Khuy n khích vi c dùng chung t p tin (nh ch ng trình ng d ng vi tính ho c d li u)ế ư ươ
2. Khuy n khích vi c s d ng máy tính xa m t cách gián ti p / ng m ng m (ế ế implicit).
3. Che đ y s khác bi t v h th ng l u tr t p tin gi a các ư máy ch, h u cho ng i dùng ườ
không c n ph i quan tâm đ n nh ng s khác bi t riêng t c a chúng. ế ư
4. Truy n t i d li u m t cách đáng tin c y và có hi u qu cao.
Nh ng phê bình v giao th c FTP
1. M t kh u và n i dung c a t p tin đ c truy n qua đ ng dây th d ng ượ ườ văn b n th ng ườ
(clear text), và vì v y chúng có th b ch n và n i dung b ti t l cho nh ng k nghe tr m. ế
Hi n nay, ng i ta có nh ng c i ti n đ né tránh đ c nh c đi m này. ườ ế ượ ượ
2. C n ph i có nhi u k t n i TCP/IP: m t dòng dành riêng cho vi c đi u khi n k t n i, m t ế ế
dòng riêng cho vi c truy n t p tin lên, truy n t p tin xu ng, ho c li t kê th m c. Các ư
ph n m m b c t ng l a c n ph i đ c cài đ t thêm nh ng lôgic m i, đ có th l ng ườ ượ ế ườ
tr c đ c nh ng k t n i c a FTP.ướ ượ ế
3. Vi c thanh l c giao thông FTP bên trình khách, khi nó ho t đ ng ch đ năng đ ng, dùng ế
b c t ng l a, là m t vi c khó làm, vì trình khách ph i tùy ng m m t ườ c ng m i đ ti p ế
nh n đòi h i k t n i khi nó x y ra. V n đ này ph n l n đ c gi i quy t b ng cách ế ượ ế
chuy n FTP sang dùng ch đ b đ ng. ế
4. Ng i ta có th l m d ng tính năng y quy n, đ c cài đ t s n trong giao th c, đ saiườ ượ
khi n ếmáy ch g i d li u sang m t c ng tùy ch n m t máy tính th ba. Xin xem thêm
v FXP.
5. FTP là m t giao th c có tính trì tr r t cao ( high latency). S trì tr gây ra do vi c, nó b t
bu c ph i gi i quy t m t s l ng l n các dòng l nh kh i đ u m t phiên truy n t i. ế ượ
6. Ph n nh n không có ph ng pháp đ ki m ch ng tính toàn v n c a d li u đ c truy n ươ ượ
sang. N u k t n i truy n t i b ng t gi a l ng ch ng thì không có cách gì, trong giao th c,ế ế ư
giúp cho ph n nh n bi t đ c r ng, t p tin nh n đ c là hoàn ch nh hay còn v n còn thi u ế ượ ượ ế
sót. S h tr bên ngoài, nh vi c dùng ki m tra t ng ư MD5, ho c dùng ki m đ d tu n ư
hoàn (cyclic redundancy checking) là m t vi c c n thi t. ế
Nh ng v n đ v b o an khi dùng FTP
FTP là m t ph ng pháp truy n t p tin có truy n th ng phi b o an (không an toàn), vì theo nh ươ ư
b n thi t k g c đ c t c a FTP, không có cách nào có th truy n t i d li u d i hình th c m t ế ế ướ
mã hóa đ c. nh h ng này có nghĩa là, ph n l n các cài đ t c a m ng l i truy n thông, tênượ ưở ướ
ng i dùng, m t kh u, dòng l nh FTP và t p tin đ c truy n t i, đ u có th b ng i khác trênườ ượ ườ
cùng m t m ng l i, "ng i" ho c quan sát, dùng ph n m m ướ phân tích giao th c (protocol
analyzer) (ho c còn g i là "d ng c ng i d li u", ti ng Anh là "sniffer"). Nên chú ý r ng đây là ế
v n đ th ng th y các giao th c c a Internet đ c thi t k tr c khi ườ ượ ế ế ướ SSL (Secure Sockets
Layer) ra đ i (t m d ch là giao th c "t ng k t n i b o m t"), nh ế ư HTTP, SMTPTelnet. Gi i
pháp th ng th y, đ i v i v n đ này, là dùng ườ SFTP (Secure Shell File Transfer Protocol - t m
d ch là "giao th c truy n t p tin dùng trình bao b o m t"), m t giao th c d a trên n n c a SSH,
ho c trên FTPS (FTP over SSL). SFTP là FTP đ c c ng thêm ch c năng mã hoá d li u c a ượ SSL
ho c TLS (Transport Layer Security - t m d ch là "B o m t t ng giao v n").
Các mã h i âm c a FTP
Xin xem thêm: Danh sách toàn b các mã h i âm c a trình ch FTP .
Mã h i âm c a trình ch FTP ch đ nh hi n tr ng c a trình, sau khi đã ho t đ ng, b ng giá tr c a
con s trong v trí c a nó. Nghĩa c a nh ng con s và v trí có th đ c l c gi i nh sau: ượ ượ ư
3
1xx: H i âm s b tích c c. Đ ngh thao tác đã b t đ u kh i hành, song ch ng trình còn ơ ươ
ph i đ i m t thông đi p h i âm n a, tr c khi đ ngh thao tác đ c ti n hành. ướ ượ ế
2xx: H i âm hoàn thành tích c c. Đ ngh thao tác đã hoàn thành. Trình khách có th ti p ế
t c g i dòng l nh m i sang.
3xx: H i âm trung gian tích c c. Dòng l nh đã đ c thao tác và x lý thành công, song trình ượ
ch còn ph i đ i m t dòng l nh khác n a, tr c khi toàn b đ ngh đ c gi i quy t. ướ ượ ế
4xx: H i âm ph quy t t m th i. Dòng l nh không đ c thao tác và x lý, song trình khách ế ượ
có th g i yêu c u sang m t l n n a, vì s th t b i trong vi c x lý dòng l nh đ u tiên ch
là t m th i.
5xx: H i âm ph quy t toàn ph n. Dòng l nh không đ c x lý, và trình khách không nên ế ượ
g i l i yêu c u y thêm m t l n nào n a.
x0z: S th t b i x y ra vì l i trong cú pháp.
x1z: Thông đi p tr l i là h i âm c a m t yêu c u v tin t c.
x2z: Thông đi p tr l i là h i âm v tin t c liên quan đ n liên k t ( ế ế connection).
x3z: Thông đi p tr l i là h i âm liên quan đ n tr ng m c và quy n h n. ế ươ
x4z: Không rõ.
x5z: Thông đi p tr l i là h i âm liên quan đ n h th ng t p tin. ế
FTP n c danh
Nhi u máy ch ch y trình ch FTP cho phép cái g i là "FTP n c danh". B trí này cho phép ng i ườ
dùng truy nh p vào máy ch mà không c n có tr ng m cươ . Tên ng i dùng c a truy c p n c danhườ
th ng là hai ch 'n c danh' ho c m t ch 'ftp' mà thôi. Tr ng m c này không có m t kh u. Tuyườ ươ
ng i dùng th ng b đòi h i ph i kèm đ a ch th đi n t c a mình vào, thay th cho m t kh u,ườ ườ ư ế
hòng giúp ph n m m xác minh ng i dùng, song th t c xác minh th ng là r t s sài và h u nh ườ ườ ơ ư
không có - tùy thu c vào trình ch FTP đang đ c dùng và s cài đ t c a nó. ượ Internet Gopher đã
đ c đ ngh tr thành m t hình th c thay th c a FTP ượ ế n c danh.
D ng th c c a d li u
Có hai ch đ đ c dùng đ truy n t i d li u qua m ng l i truy n thông:ế ượ ướ
1. Ch đ ế ASCII
2. Ch đ ế Nh phân
Hai ch đ này khác nhau trong cách chúng g i d li u. Khi m t t p tin đ c truy n dùng ch đế ượ ế
ASCII, m i m t ch , m i con s , và m i ký t đ u đ c g i trong d ng mã ASCII. Máy nh n tin ượ
l u tr chúng trong m t t p tin văn b n th ng, d i d ng th c thích h p (ch ng h n, m t máyư ườ ướ
dùng Unix s l u tr nó trong d ng th c c a Unix, m t máy dùng Macintosh s l u tr nó trong ư ư
d ng th c c a Mac). Vì th , khi ch đ ế ế ASCII đ c dùng trong m t cu c truy n t i d li u, ph nượ
m m FTP s t cho r ng các d li u đ c truy n g i có d ng th c ượ văn b n th ng ườ (plain text),
và l u tr trên máy nh n theo d ng th c c a máy. Chuy n đ i gi a các d ng th c ư văn b n th ng ườ
bao g m vi c, thay th mã k t dòng và mã k t t p tin, t nh ng mã t đ c dùng máy ngu n, ế ế ế ượ
sang nh ng mã t đ c dùng máy đích, ch ng h n m t máy dùng h đi u hành Windows, nh n ượ
m t t p tin t m t máy dùng h đi u hành Unix, máy dùng Windows s thay th nh ng ch xu ng ế
dòng (carriage return) b ng m t c p mã, bao g m mã xu ng dòng và mã thêm hàng ( carriage
return and line feed pairs). T c đ truy n t i t p tin dùng mã ASCII cũng nhanh h n m t chút, vìơ
bit hàng cao nh t c a m i byte c a t p tin b b [1].
G i t p tin dùng ch đ nh phân khác v i cái trên. Máy g i t p tin g i t ng bit m t sang cho máy ế
nh n. Máy nh n l u tr dòng bit, y nh nó đã đ c g i sang. N u d li u không ph i d ng th c ư ư ượ ế
văn b n th ng, thì chúng ta ph i truy n t i chúng ch đ nh phân, n u không, d li u s b ườ ế ế
thoái hóa, không dùng đ c.ượ
4
Theo nh cài đ t s n, ph n l n các trình khách FTP dùng ch đ ư ế ASCII khi kh i công. M t s
trình khách FTP xét nghi m tên và n i dung c a t p tin đ c g i, đ xác đ nh ch đ c n ph i ượ ế
dùng.
FTP và các trình duy t
Đa s các trình duy t web (web browser) g n đây và trình qu n lý t p tin (file manager) có th k t ế
n i vào các máy ch FTP, m c dù chúng có th còn thi u s h tr cho nh ng m r ng c a giao ế
th c, nh ư FTPS ch ng h n. Đi u này cho phép ng i dùng thao tác các t p tin t xa, thông qua k t ườ ế
n i FTP, dùng m t giao di n quen thu c, t ng t nh giao di n trong máy c a mình (ví d li t kê ươ ư
danh sách c a các t p tin c a máy xa trông gi ng nh ph n li t kê c a máy mình, đ ng th i các ư
thao tác sao b n t p tin (copy), đ i tên, xóa, v.v.. đ c x lý nh là chúng trong máy mình v y). ượ ư
Ph ng pháp làm là thông qua FTP ươ URL, dùng d ng th c ftp(s) ://<đ a ch c a máy ch FTP > (ví
d : ftp.gimp.org). Tuy không c n thi t, song m t kh u cũng có th g i kèm trong URL, ví d : ế
ftp(s)://<tên ng i dùngườ >:<m t kh u >@<đ a ch c a máy ch FTP >:<s c ng >. Đa s các trình
duy t web đòi h i truy n t i FTP ch đ b đ ng, song không ph i máy ch FTP nào cũng thích ế
ng đ c. M t s ượ trình duy t web ch cho phép t i t p tin xu ng máy c a mình mà không cho
phép t i t p tin lên máy ch .
FTP trên n n SSH
"FTP trên n n c a SSH" ám ch đ n m t k thu t "đào h m" cho m t phiên giao d ch dùng giao ế
th c FTP bình th ng, thông qua m t k t n i dùng giao th c ườ ế SSH.
Vì FTP (m t giao th c khá b t th ng, d a trên n n c a giao th c TCP/IP, mà hi n nay ng i ta ườ ườ
v n còn dùng) s d ng nhi u k t n i ế TCP, cho nên vi c đi ng m d i n n c a SSH là m t vi c ướ
khó khăn. Đ i v i đa s các trình khách c a SSH, khi "k t n i đi u hành" (k t n i kh i đ u gi a ế ế
máy khách t i máy ch , dùng c ng 21) đ c thi t l p, SSH ch có th b o v đ c đ ng k t n i ượ ế ượ ườ ế
này mà thôi. Khi vi c truy n t i d li u x y ra, trình FTP m t trong hai đ u, s thi t l p m t ế
k t n i TCP m i ("đ ng d n d li u") và k t n i này s b qua k t n i c a SSH, làm cho nóế ườ ế ế
không còn đ c h ng tính ượ ưở tin c n (confidentiality), s b o v tính toàn v n (integrity protection)
c a d li u, ho c nh ng tính năng khác mà SSH có.
N u trình khách FTP đ c cài đ t dùng ch đ b đ ng, và k t n i v i m t máy ch dùng giaoế ượ ế ế
di n SOCKS, là giao di n mà nhi u trình khách SSH có th dùng đ ti n c vi c đi ng m, vi c ế
dùng các đ ng k t n i c a FTP, trên các k t n i c a SSH, là m t vi c có th làm đ c.ườ ế ế ượ
N u không, các ph n m m trình khách SSH ph i có ki n th c c th v giao th c FTP, giám sátế ế
và vi t l i các thông đi p trong k t n i đi u khi n c a FTP, t đ ng m các đ ng truy n t i dế ế ườ
li u cho FTP. Phiên b n 3 c a trình SSH (do công ty ph n m m Communications Security Corp.
s n xu t) là m t ví d đi n hình, h tr nh ng kh năng nói trên [2].
"FTP trên n n c a SSH" còn đôi khi đ c g i là ượ FTP b o an (secure FTP). Chúng ta không nên
nh m cái này v i nh ng ph ng pháp b o an FTP, nh SSL/TLS hay còn g i ươ ư FTPS. Nh ng
ph ng pháp đ truy n t i các t p tin khác, dùng SSH, không có liên quan đ n FTP, bao g mươ ế
SFTP (SSH file transfer protocol - giao th c truy n t i t p tin dùng SSH ) ho c SCP (Secure copy -
sao chép b o an) - trong c hai cái này, toàn b cu c h i tho i (xác minh ng i dùng và truy n t i ườ
d li u) đ u luôn luôn đ c b o v b ng giao th c SSH. ượ
Các tham chi uế
Giao th c đ c ượ tiêu chu n hoá trong RFC 0959 b i t ch c IETF nh sau:ư
5