Thứ Ba, 11 tháng 1, 2011

Một số thuật ngữ về mạng

AAL: (ATM Adaptation Layer). Một phần của các giao thức chuẩn ATM.
ABR:. Available Bit Rate, một tham số cho dịch vụ trong ATM mà không bảo đảm cho tốc độ.
. Area Border Router, một quy ước trong OSPF cho một bộ định tuyến để thông tin liên lạc với vùng khác.
ACK: Viết tắt của từ Acknowledgement
ACK implosion: Để chỉ môt vấn đề mà có thể xảy ra với giao thức mutilcast đáng tin cậy, trong đó có nhiều ACK đi ngược trở về nguồn.
AH: (Authentication Header).Một phần đầu được sử dụng bởi IPsec để đảm bảo việc xác minh nguồn gốc của datagram.
ANSNET:.Một mạng diện rộng mà đã hình thành nên backbone của Internet cho đến năm 1995.
ARP: (Address Resolution Protocol). Giao thức TCP/IP được sử dụng để liên kết động một địa chỉ IP cấp cao vào một địa chỉ phần cứng cấp thấp.
AS: (Autonomous System). Một tập hợp cac bộ định tuyến và các mạng thuộc về một đơn vị quản trị và hợp tác chặt chẽ với nhau để nhân bản thông tin về khả năng đi đến các mạng (và thông tin định tuyến) giữa chúng với nhau, sử dụng giao thức cổng nội.
ASN-1: (Abstract Syntax Notation - 1). Giao thức chuẩn ISO được sử dụng bởi SNMP để thể hiện các thông điệp.
ATM: (Asynchronous Transfer Mode). Một kỹ thuật mạng định hướng kết nối mà sử dụng những cell nhỏ có kích thước cố định ở mức thấp nhất. ATM có ưu điểm về khả năng hỗ trợ dữ liệu thoại và video.
ATM Adaptation Layer (ALL):. Một trong số các giao thức được định nghĩa cho ATM để xác định cách một chương trình ứng dụng gửi và nhận thôgn tin qua mạng ATM.
ATMARP: Giao thức mà một máy sử dụng cho việc giải địa chỉ khi gửi IP qua mạng ATM.
AUI: Bộ kết nối đươc sử dung cho Ethernet dây dày.
BGP: ( Border Gateway Protocol)
Một kỹ thuật cổng ngoại chủ yếu, được sử dụng trong Internet.
BootTP: (BootStrap Protocol), một giao thức máy tính sử dụng để lấy thông tin khởi động từ server, bao gồm địa chỉ IP của nó.
CBT: (Core Based Tress)
Giao thức định tuyến multicast do nhu cầu điều khiển mà xây dựng nên cây dùng chung.
CGI: (Common Gateway Interface)
Một kỹ thuật mà server sử dụng để tạo trang Web tự động khi nhận được yêu cầu.
CIDR: (Classless Inter-Domain Routing)
Là chuẩn xác định các chi tiết của cả hai việc định địa chỉ không phân lớp cũng như mô hình định tuyến tương ứng.
COPS: (Common Open Policy Service)
Giao thức được sử dụng với RSVP để kiểm chứng xem lời yêu cầu có thoả mãn các chính sách ràng buộc.
DHCP: (Dynamic Host Configuration Protocol)
Một giao thức mà máy sử dụng để lấy dược tất cả thông tin cấu hình cần thiết, bao gồm cả địa chỉ IP.
DNS: (Domain Name System)
Hệ cơ sở dữ liệu phân bố trực tuyến được sử dụng để ánh xạ các tên máy thông dụng đối với con người thành các địa chỉ IP.
DVMRP: (Distance Vector multicast Routing Protocol)
Một giao thức được sử dụng để nhân bản các tuyến đường multicast.
EGP: (Exterior Gateway Protocol)
Một thuật ngữ áp dụng cho giao thức nào được sử dụng bởi bộ định tuyến trong một hệ tự quản để thông báo khả năng đi đến mạng cho ho bộ định tuyến trong hệ tự quản khác.
FIN: Một segment TCP đặc biệt được dùng để đóng một kết nối.
FTP: (File Transfer Protocol)
Chuẩn TCP/IP, giao thức cấp cao cho việc truyền tập tin từ máy này đến máy khác.

Căn bản về SSI trên Apache

Using Server Side Includes
Trong khi các file HTML chuẩn dùng cho lưu giữ các trang rất tốt, thì khả năng tạo ra một số nội dung động của nó cũng rất đáng hoan nghênh. Lấy ví dụ, đưa thêm vào một footer hay một header vào tất cả các file, hoặc là đưa vào thông tin về tài liệu ví như thời gian sửa đổi gần nhất một cách tự động. Điều này có thể thực hiện bằng CGI được, nhưng nó lại đòi hỏi những kĩ năng lập trình hoặc viết mã kịch bản mà vấn đề đó thì không hề đơn giản. Đối với những trang tài liệu động đơn giản thì chúng ta có một giải pháp thay thế khác: đó là các nội dung đưa vào từ máy chủ (SSI). Bài này là một trong loạt bài về SSI do chúng tôi biên soạn, với các mức độ khác nhau về cú pháp. Nếu các bạn muốn theo dõi về chủ đề này xin đến với Diễn dàn Công nghệ thông tin VN http://cnttvn.cjb.net/

SSI cho phép bạn gắn kèm một số câu lệnh đặc biệt vào trong chính trang HTML. Khi mà server đọc một tài liệu có chứa SSI, nó sẽ tìm kiếm các câu lệnh này và thực hiện các hành động cần thiết. Ví dụ, có một câu lệnh SSI thực hiện chức năng nhập vào thời gian sửa đổi gần nhất của tài liệu. Khi server đọc được một file có dòng lệnh này trong đó, nó sẽ thay thế dòng lệnh bằng thời gian thích hợp.
Apache có chứa một tập hợp các câu lệnh SSI dựa theo một số câu lệnh có trong máy chủ NCSA cộng với nhiều câu lệnh mở rộng khác. Điều này được thực hiện với the includes module (mod_includes). (Bạn có thể hiểu là một chương trình có chức năng tổng hợp)

Telling Apache to Use SSI
Theo mặc định thì máy chủ không hơi đâu mà đi tìm trong các file HTML xem có các câu lệnh SSI hay không. Điều này làm giảm tốc độ mọi lần truy cập đến một file HTML. Để sử dụng SSI bạn cần báo cho Apache biết là các tài liệu nào thì có chứa các câu lệnh SSI.

Một cách để làm được điều này là dùng một file có phần mở rộng đặc biệt. Thường thì người ta dùng .shtml, và nó có thể được lên cấu hình (configured) cùng với cái directive tức cái lời hướng dẫn này:

AddHandler server-parsed .shtml
AddType text/html shtml

Chỉ thị AddHandler bảo cho Apache biết cách xử lý mọi file .shtml như là một loại mà có chứa các câu lệnh SSI. Chỉ thị AddType thì thực hiện cái điều là làm cho các nội dung được xử lý ấy được đánh dấu như là HTML để trình duyệt hiển thị nó một cách chính xác.

Một phương pháp thay thế khác để thông báo cho server biết file nào là có chứa các câu lênh SSI là sử dụng cái gọi là XBitHack. Cái này liên quan đến việc thiết lập the execute bit mà tôi tạm dịch là bit thực thi trên các file HTML. Bất cứ một file này có loại nội dung (content type) là text/html (ví dụ có phần mở rộng là .html) và có chứa một tập hợp bit thực thi thì sẽ được kiểm tra xem có chứa các câu lệnh SSI hay không. Để làm điều này thì cần phải đưa vào chỉ thị XBitHack .

Trong cả hai phương pháp thì server cũng cần phải được lên cấu hình để cho phép dùng các câu lệnh SSI. Điieù này đượct hực hiện với chỉ thị Options Includes , cái này cần được đặt trong hoặc là tệp tin toàn cục mang tên access.conf (the global access.conf) hoặc là tệp tin địa phương .htaccess (local .htaccess) (mặc dầu là cái thứ hai bắt buộc phải được enabled bằng chỉ thị AllowOverride Options). Bởi vì một số câu lệnh SSI cho phép dùng các chương trình thực thi mà có thể mang tới rủi ro về vấn đề security, nên có một giải pháp thay thế tùy chọn, IncludesNOExec cho phép các câu lệnh SSI đều thực hiện được ngoại trừ những câu lệnh nào thực thi một chương trình.

SSI Commands
Tất cả các câu lệnh SSI được lưu giữ trong file HTML bằng các kí hiệu ghi chú của HTML. Một câu lệnh SSI bình thường trông giống như thế này:

Trong trường hợp này câu lệnh là flastmod, nó có nghĩa là đưa ra thông tin là thời gian sửa đổi gần nhất của file đó. Các đối số (argument) xác định cụ thể file đó là "this.html" (đây là tên của file có chứa câu lệnh này). Toàn bộ phần viết ra câu lệnh, mà được chứa trong kí hiệu đánh dấu phần chú thích ãe được thay thế bằng kết quả của câu lệnh này.

Nói chung thì tất cả các câu lệnh đều có cái format tức cái công thức như sau:

trong đó arg1, arg2, vân vân là các cái tên của các đối số và value1, value2 vân vân là các giá trị của các đối số đó. Trong ví dụ về flastmod, đối số là 'file' và giá trị của nó là 'this.html'. Thường thì các câu lệnh có thể nhận các tên của đối số khác nhau. Ví dụ, flastmod có thể được trao cho một URL với đối số là virtual, để lấy được thời gian của lần sửa đổi gần nhất từ server. Ví dụ:

để nhận được thời gian sửa đổi gần nhất của trang chủ trên server đó (điều này là hữu ích nếu như trang được truy cập đó có thể có một tên khác, ví dụ là như thế).

Bên cạnh flastmod, có các câu lệnh SSI làm chức năng là lấy kích thước (size) của một file hay một URL, các nội dung của một biến (được máy chủ truyền vào trong), các nội dung của một file khác hay URL khác, hoặc kết quả của việc chạy một local file tức là một tệp tin trong nội bộ site. Những câu lệnh này được nêu ra trong NCSA tutorial về vấn đề server side includes.

Khi các câu lệnh SSI được thực thi, một số các biến môi trường ('environment variables') được thiết lập. Điều này hàm chứa các biến CGI (REMOTE_HOST etc), và thêm một số cái nữa, như là DOCUMENT_NAME và LAST_MODIFIED. Các biến này có thể là thông tin đầu ra (output) với câu lệnh echo (do vậy cách tốt hơn để lấy ra thời gian sửa đổi gần nhất của file hiện thời sẽ là ).

Extended SSI
Apache mở rộng ngôn ngữ SSI chuẩn (NCSA-compatible) một cách đáng kể. Một số mở rộng gồm có:

Các biến trong các câu lệnh: Apache cho phép các biến được dùng trong bất cứ một câu lệnh SSI nào. Ví dụ, thời gian sửa đổi gần nhất của tài liệu hiện thời có thể lấy ra với
Thiết lập các biến: câu lệnh set có thể được dùng bên trong SSI để thiết lập các biến.
Các điều kiện: các câu lệnh SSI if, else, elif và endif có thể được dung để đưa các phần của file vào dựa trên các kiểm tra mang tính điều kiện. Ví dụ, biến $HTTP_USER_AGENT có thể được kiểm tra để xem loại của trình duyệt và thông tin đầu ra bằng các mã HTML khác nhau tùy thuộc vào các khả năng của trình duyệt ấy.

Các ví dụ
Đây là một số ví dụ dùng SSI:
Displaying document information
Mã sau đây đặt thời gian sửa đổi gần nhất lên trang đó:
Last modified:

Adding a footer to many documents
Hãy đặt đoạn mã sau đây xuống tận cùng của mỗi trang tài liệu:

Hide links from external users
Dùng câu lệnh if và biến REMOTE_ADDR CGI để xem xét xem liệu người sử dụng đó có ở trong vùng nội bộ hay không (the local domain):
internal Documents
(Trong đó 1.2.3 là phần đầu (prefix) của địa chỉ IP của the local domain).

Thứ Bảy, 8 tháng 1, 2011

Các khái niệm cơ bản về Internet :

Các khái niệm cơ bản Internet
Địa chỉ IP được chia thành 4 số giới hạn từ 0 - 255. Mỗi số được lưu bởi 1 byte -> IP có kích thước là 4byte, được chia thành các lớp địa chỉ. Có 3 lớp là A, B, và C. Nếu ở lớp A, ta sẽ có thể có 16 triệu điạ chỉ, ở lớp B có 65536 địa chỉ. Ví dụ: Ở lớp B với 132.25,chúng ta có tất cả các địa chỉ từ 132.25.0.0 đến 132.25.255.255. Phần lớn các địa chỉ ở lớp A llà sở hữu của các công ty hay của tổ chức. Một ISP thường sở hữu một vài địa chỉ lớp B hoặc C. Ví dụ: Nếu địa chỉ IP của bạn là 132.25.23.24 thì bạn có thể xác định ISP của bạn là ai. ( có IP là 132.25.x.)
IP thể hiện điều gì:
Trên mạng Internet nó sẽ xác định chính bạn. Khi kết nối vào mạng thì IP của bạn là duy nhất trên thế giới. Tuy nhiên số này chưa hẳn là cố định. Nếu bạn vào mạng qua một ISP thì số IP của bạn sẽ thay đổi ở các lần bạn kết nối.
Một người biết IP của bạn thì có thể lần ra vị trí của bạn. Nghĩa là khi có IP thì biết được địa chỉ của ISP rồi biết được thông tin của bạn. Trên thực tế, IP cho biết về máy tính được sử dụng để vào mạng chứ không cho biết thông tin về người sử dụng, trừ khi IP của bạn là cố định hoặc sử dụng account của riêng bạn.
Sự khác nhau giữa logic (hostname) và một địa chỉ IP:
Đơn giản chỉ bởi vì việc gọi tên, ví dụ http://k.domaindlx.com/clairsang/www.tungxeng.nt.ms/default.htm sẽ dễ hơn nhiều đối với việc phải gọi 202.32.156.14. Tuy vậy, có một sự khác biệt quan trọng giữa 2 điều này. IP là số để xác định thiết bị (device) còn hostname là một mối liên kết giữa 1 từ khoá và một số IP. Một địa chỉ IP có thể có nhiều hostname khác nhau nhưng một hostname thì chỉ có một IP liên kết với nó.
IP spoofing là gì:
Một số IP có mục đích để xác định một thiết bị duy nhất trên thế giới. Vì vậy trên mạng một máy chủ có thể cho phép một thiết bị khác trao đổi dữ liệu qua lại mà không cần kiểm tra máy chủ.
Tuy nhiên có thể thay đổi IP của bạn, nghĩa là bạn có thể gởi một thông tin giả đến một máy khác mà máy đó sẽ tin rằng thông tin nhận được xuất phát từ một máy nào đó (tất nhiên là không phải máy của bạn). Bạn có thể vượt qua máy chủ mà không cần phải có quyền điều khiến máy chủ đó. Điều trở ngại là ở chỗ những thông tin phản hồi từ máy chủ sẽ được gởi đến thiết bị có IP mà chúng ta đã giả mạo. Vì vậy có thể bạn sẽ không có được sự pảhn hồi những thông tin mà mình mong muốn. Có lẽ điều duy nhất mà spoof IP có hiệu quả là khi bạn cần vượt qua firewall, trộm account và cần dấu thông tin cá nhân!
Cổng ảo là gì? (Virtual Port)
Cổng ảo là 1 số tự nhiên đựợc gói ở trong TCP(Tranmission Control Protocol) và UDP(User Diagram Protocol) header (hiện có lẽ bạn còn xa lạ với 2 từ này, chúng tôi sẽ đề cập sau). Như mọi nguòi đã biết, Windows có thể chạy nhiều chương trình 1 lúc, mỗi chương trình này có 1 cổng riêng dùng để truyền và nhận dữ liệu. Ví dụ 1 máy có địa chỉ IP là 127.0.0.1 chạy WebServer, FTP_Server, POP3 server, etc, những dịch vụ này đều đuọc chạy trên 1 IP address là 127.0.0.1, khi một gói tin được gửi đến làm thế nào máy tính của chúng ta phân biệt được gói tin này đi vào dịch vụ nào WebServer hay FTP server hay SMTP ? Chính vì thế Port xuất hiện. Mỗi dịch vụ có 1 số port mặc định, ví dụ FTP có port mặc định là 21, web service có port mặc định là 80, POP3 là 110, SMTP là 25 vân vân.... Người quản trị mạng có thể thay đổi số port mặc định này, nếu bạn ko biết số port trên một máy chủ, bạn ko thể kết nối vào dịch vụ đó được. Chắc bạn đã từng nghe nói đến PORT MAPPING nhưng có lẽ chưa biết nó là gì và chức năng thế nào. Port mapping thực ra đơn giản chỉ là quá trình chuyển đổi số port mặc định của một dịch vụ nào đó đến 1 số khác. Ví dụ Port mặc định của WebServer là 80, nhưng thỉnh thoảng có lẽ bạn vẫn thấy http://www.xxx.com:8080 , 8080 ở đây chính là số port của host xxx nhưng đã đuợc nguòi quản trị của host này "map" từ 80 thành 8080.
RFC là gì?
RFC là viết tắt của Request For Comment, là tập hợp những tài liệu về kiến nghị, đề xuất và những lời bình luận liên quan trực tiếp hoặc gián tiếp đến công nghệ, nghi thức mạng INTERNET. Các tài liệu RFC đựợc chỉnh sửa, thay đổi đến khi tất cả các kỹ sư thành viên của IETF(Internet Engineering Task Force) đồng ý và duyệt, sau đó những tài liệu này được xuất bản và được công nhận là 1 chuẩn, nghi thức cho Internet. Tài liệu RFC nổi tiếng và làm tạo được tiếng vang lớn nhất là tài liệu RFC số 822 về Internet Email bởi Dave Crocker.
Trang chủ của RFC: http://www.ietf.org/rfc.html
DNS là gì? Tại sao ta lại dùng DNS, DNS làm việc ra sao, tên miền là gì, etc...?
DNS là viết tắt của Domain Name System. Một máy chủ DNS đợi kết nối ở cổng số 53, có nghĩa là nếu bạn muốn kết nối vào máy chủ đó, bạn phải kết nối đến cổng số 53. Máy chủ chạy DNS chuyển hostname bằng các chữ cái thành các chữ số tương ứng và ngược lại. Ví dụ: 127.0.0.1 --> localhost và localhost--->127.0.0.1
Hệ thống "tên đến địa chỉ" (name-to-address) được dùng trước đây khi DNS chưa ra đời, đây thực chất là 1 file trên server. Cấu tạo của 1 file này là 1 table với "hostname" và địa chỉ IP tương ứng, file này được cập nhật và bảo quản bởi Standford Reserch Institute Network Information Center (SRI-NIC). Vài lần 1 tuần, tổ chức này lại cập nhật nội dung file này. Những nguòi quản trị mạng nếu cần sẽ download file này xuống để dùng cho local DNS. Dần dần, số lượng của các trang web trên internet ngày càng nhiều. Cách cũ dùng "name-to-address" trở nên thiếu hiệu quả và tốn thời gian --> DNS ra đời. DNS ko phụ thuộc vào bất cứ 1 server riêng rẽ nào, DNS được phân phát cho nguòi dùng dưới dạng 1 file cơ! sở dữ liệu, file này được giũ trên khắp các DNS server trên toàn thế giới. Mỗi DNS server đều tự tìm kiếm một DNS cao hơn khi nhân được yêu cầu về 1 host nào đó ko có trong cơ sở dữ liệu trên máy mình
Máy chủ DNS (DNS Server)
DNS server là 1 máy tính bình thường có thể PC(/MAC) chạy UNIX hoặc nhân bản của Unix (Linux,etc..) và chay một chương trình quản lý domain name gọi là BIND (Berkely Internet Name Domain). DNS server có thể chạy các hệ điều hành khác như Windows, MacOS nhưng thường thì *nix hay được chọn hơn cả vì unix có tính bảo mật cao hơn và cho phép lượng truy cập lớn hơn.
Chương trình quản lý DNS được thiết kế chia làm 2 phần, phần thứ nhất là 1 "daemon" nghe ở cổng 53 đợi kết nối. Phần thứ 2 là để gửi yêu cầu lên một DNS cao hơn nếu local database ko có thông tin mà máy khách yêu cầu. Phần thứ nhất (daemon) trả lời trình duyệt web mỗi khi nhận được yêu cầu. Ví dụ, khi bạn mở Internet Explorer và đánh vào www.hackervn.org, trình duyệt của bạn sẽ gửi yêu cầu đến 1 máy chủ có dịch vụ DNS gần nhất để tìm IP của www.hackervn.org vì trình duyệt của bạn cần biết IP máy chủ hiện đang lưu trữ trang web www.hackervn.org. Máy chủ DNS ở ISP của bạn sẽ tìm trong cơ sở dữ liệu, nếu ko tìm thấy địa chỉ IP cho www.hackervn.org máy chủ chạy DNS này sẽ chuyển sang phần thứ 2 là đưa yêu cầu của máy khách đến 1 máy chủ DNS cao cấp hơn, nhiều dữ liệu hơn để giải quyết.
Định dạng cây của DNS (tree formation)
Một khi DNS server ko thể tìm thấy số IP tương ứng cho 1 hostname trong cơ sở dữ liệu của mình, server đó sẽ gửi yêu cầu đến 1 DNS server khác cao hơn 1 bậc, và DNS server này sẽ lặp lại quá trinh mà DNS server dưới đã làm để tìm địa chỉ IP của 1 host nào đó. Nếu DNS server này vẫn ko tìm thấy thì yêu cầu sẽ lại được gửi đến 1 DNS server khác cao hơn nữa và quy trình này sẽ được tiếp tục cho đến khi nào ra kết quả. Kết quả của yêu cầu này chỉ có thể là "Tìm Thấy" hoặc "Ko tìm thấy". :-) . Đến thời điểm này, chắc bạn đã hình dung ra được cấu trúc của các DNS server như thế nào rồi? N? u chưa, hãy nhìn vào ví dụ dưới đây:
Ví dụ nhà cung cấp internet của bạn là FPT. Trang web đặt trên máy chủ của FPT là www.fpt.vn. Mặc định, DNS server sẽ là dns.fpt.vn. Bây giờ bạn muốn truy cập www.hackervn.org. dns.fpt.vn sẽ tìm thông tin về host này ở trong cơ sở dữ liệu trên máy chủ DNS ở FPT xem ai đó đã gửi thông tin truy cập về host này chưa. Nếu điạ chỉ hackervn ko được tìm thấy ở "local database" hoặc trong bộ nhớ, dns.fpt.vn sẽ đưa yêu cầu này đến 1 DNS server cao cấp hơn, ở đây s? là "dns.vn". DNS server này quản lý tất cả các trang có đuôi .vn. Tuy nhiên server này có thể ko có địa chỉ này trong cơ sở dữ liệu nhưng có thể có vì có thể ai đó đã truy cập trang này. Nếu ở đây vẫn ko tìm thấy host/ip cần tìm, DNS server này cuối cùng phải gửi request đến DNS server lớn nhất quản lý tất cả các domain gọi là ".root". Máy chủ chạy .root DNS này là một máy tính rất mạnh, và cơ sở dữ liệu của .root này bao gồm tất cả các loại domain trên toàn thế giới. như .com , .net , .mil, .co.uk, vân vân.....

Kiến thức cơ bản hack

Tìm hiểu về FTP :
Giới thiệu
FTP là chữ viết tắt của File Transfer Protocol - Giao thức truyền file. FTP là một giao thức truyền file trên mạng dựa trên chuẩn TCP nên rất đáng tin cậy!
Một số lệnh phổ biến của FTP
Sau đây là danh sách một số lệnh thường dùng kèm theo hướng dẫn mà bạn cần biết!
ascii
chuyển sang chế độ truyền file theo dạng văn bản
Binary
chuyển sang chế độ truyền file theo dạng nhị phân
cd [directory]
chuyển vào thư mục directory
Cdup
chuyển lên thư mục cấp trên một cấp
close
ngắt kết nối với máy chủ
del [remote-file]
xóa 1 file trên máy chủ
dir [remote-directory|file]
liệt kê nội dung của thư mục hoặc danh sách các file trên máy chủ
help [command]
cho biết hướng dẫn về lệnh command
local-directory]
đặt lại thư mục làm việc trên client là local-directory
ls [remote-directory|file] [-la]
liệt kê nội dung của thư mục hoặc danh sách các file trên máy chủ; tham số -la sẽ liệt kê tất cả có kèm theo mô tả về quyền
mdelete [remote-files]
xóa nhiều file trên máy chủ
mget [remote-files]
download các files trên máy chủ về
mkdir
tạo thư mục có tên directory-name
mput [local-files]
upload các files lên máy chủ
open host [port]
kết nối đến máy chủ FTP có hostname là host và đang chạy dịch vụ FTP ở cổng port
put [remote-file]
upload local-file lên máy chủ với tên mới là remote-file nếu được
pwd
cho biết thư mục đang làm việc hiện thời
quit
thoát
recv [local-file]
nhận remote-file trên máy chủ và lưu trên máy tính với tên local-file nếu được
rename [from] [to]
đổi tên file hoặc thư mục from thành to
rmdir directory-name
xóa thư mục có tên directory-name
send local-file [remote-file]
gởi local-file từ máy tính lên máy chủ với tên mới là remote-file nếu được
status
cho biết trạng thái của phiên làm việc hiện tại
syst
cho biết hệ điều hành của máy chủ
user user-name [password] [account]
login vào với tên là user-name, mật khẩu là password, tài khoản là account
?
gọi hướng dẫn
Các ví dụ
Để dễ hiểu, các bạn hãy xem các ví dụ sau:(tôi sử dụng các này để upload mấy file lên website đó, không cần dùng các chương trình FTP mạnh như WS_FTP Pro, FTPNet, CuteFTP, AbsoluteFTP, ...!) Tôi lưu trang web cần tải lên server trong c:\website! Bây giờ tôi sẽ tải nó lên!

C:\website>ftp myftpsrv // kết nối đến máy chủ myftpsrv
Connected to myftpsrv.
User (ftpsrv:(none)): dt
331 User name okay, need password.
Password:
230 User logged in, proceed.
ftp> pwd // cho biết thư mục hiện tại đang làm việc!
257 "/home/dt" is current directory.
ftp> status // xem trạng thái hiện tại
Type: ascii; Verbose: On ; Bell: Off ; Prompting: On ; Globbing: On
Debugging: Off ; Hash mark printing: Off . // ascii=1
ftp> cd www // chuyển vào thư mục www
250 Directory changed to /home/dt/www
ftp> put index.html // upload file index.html lên server
200 PORT Command successful.
150 Opening ASCII mode data connection for index.html.
226 Transfer complete.
ftp: 2095 bytes sent in 0.00Seconds 2095000.00Kbytes/sec.
ftp> mkdir tools // tạo thư mục /home/dt/www/tools
257 "/home/dt/www/tools" directory created.
ftp> cd tools // chuyển vào thư mục tools
250 Directory changed to /home/dt/www/tools
ftp> lcd c:\website\tools // thay đổi lại local directory = c:\website\tools
Local directory now C:\website\tools.
ftp> bin // chuyển sang chế độ truyền file nhị phân
200 Type set to I.
ftp> mput *.* // upload tất cả các file trong c:\website\tools lên server, vào /home/www/tools/
mput test.zip? y
200 PORT Command successful.
150 Opening BINARY mode data connection for test.zip.
226 Transfer complete.
ftp: 10168 bytes sent in 0.06Seconds 169.47Kbytes/sec.
mput test.exe? y
200 PORT Command successful.
150 Opening BINARY mode data connection for test.exe.
226 Transfer complete.
ftp: 54625 bytes sent in 0.11Seconds 496.59Kbytes/sec.
ftp> ls -la // liệt kê nội dung của /home/www/tools
200 PORT Command successful.
150 Opening ASCII mode data connection for /bin/ls.
drwxr--r-- 1 dt group 0 Sep 30 14:13 .
drwxr--r-- 1 dt group 0 Sep 30 14:13 ..
-rwxr--r-- 1 dt group 54625 Sep 30 14:14 test.exe
-rwxr--r-- 1 dt group 10168 Sep 30 14:14 test.zip
226 Transfer complete.
ftp: 247 bytes received in 0.00Seconds 247000.00Kbytes/sec.
ftp> del test.exe // tôi lỡ tay upload lên file test.exe, bây giờ tôi cần phải xóa nó
250 DELE command successful.
ftp> cd .. // chuyển lên thư mục cấp trên
250 Directory changed to /home/dt/www
ftp> mkdir cgi-bin2 // tạo thư mục mới
257 "/home/dt/www/cgi-bin2" directory created.
ftp> rename cgi-bin2 cgi-bin // tôi đã nhập vào sai mất rồi, bây giờ phải đổi tên lại thôi!
350 File or directory exists, ready for destination name
250 RNTO command successful.
ftp> cd cgi-bin // chuyển vào thư mục cgi-bin
250 Directory changed to /home/dt/www/cgi-bin
ftp> lcd c:\website\cgi-bin // đặt lại local directory!
Local directory now C:\website\cgi-bin.
ftp> ascii // chuyển sang chế độ truyền file văn bản vì tôi cần upload một số file .cgi + .pl
200 Type set to A.
ftp> put test.cgi // upload file test.cgi
200 PORT Command successful.
150 Opening ASCII mode data connection for test.cgi.
226 Transfer complete.
ftp: 222 bytes sent in 0.00Seconds 222000.00Kbytes/sec.
ftp> ls -la // xem nội dung của /home/www/cgi-bin
200 PORT Command successful.
150 Opening ASCII mode data connection for /bin/ls.
drwxr--r-- 1 dt group 0 Sep 30 14:16 .
drwxr--r-- 1 dt group 0 Sep 30 14:16 ..
-rwxr--r-- 1 dt group 222 Sep 30 14:17 test.cgi
226 Transfer complete.
ftp: 182 bytes received in 0.00Seconds 182000.00Kbytes/sec.
ftp> site chmod 755 test.cgi // đặt quyền 755(wrxx-xr-x) cho file test.cgi
ftp> ls -la // tôi liệt kê lại thư mục cgi một lần nữa
200 PORT Command successful.
150 Opening ASCII mode data connection for /bin/ls.
drwxr-xr-x 1 dt group 0 Sep 30 14:16 .
drwxr-xr-x 1 dt group 0 Sep 30 14:16 ..
-rwxr-xr-x 1 dt group 222 Sep 30 14:17 test.cgi
226 Transfer complete.
ftp: 182 bytes received in 0.00Seconds 182000.00Kbytes/sec.
ftp> bye // tất cả đã xong, bây giờ tôi có thể ngắt kết nối được rồi!
221 Goodbye!

C:\website>

Hi vọng là bạn hiểu được ví dụ trên!

Nói thêm về FTP

Làm thế nào để kết nối với một máy chủ FTP qua một proxy-server, chẳng hạn như Wingate? Chỉ cần ftp đến proxy-server này và gõ vào như dạng sau, user@host[:port]. Ví dụ máy tôi đang chạy Wingate-FTP ở cổng 21 và Serv-U FTP-Server v2.5i ở cổng 2121, tôi có thể kết nối đến Serv-U FTP-Server v2.5i qua Wingate-FTP như sau:

C:\>ftp localhost
Connected to dt.
220 WinGate Engine FTP Gateway ready
User (dt:(none)): dt@localhost:2121
331 User name okay, need password.
Password:
230 User logged in, proceed.
ftp>

Okay, bây giờ tôi upload và download file như bình thường được rồi!

Hack với FTP

Đôi khi FTP cũng cho biết một số thông tin rất quan trọng! Bạn dễ dàng đoán được hệ điều hành của máy chủ FTP! Hãy xem các ví dụ sau:

C:\>ftp localhost
Connected to dt.
220 dt Microsoft FTP Service (Version 1.0).
User (dt:(none)): anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230-Windows 95 FTP Service.
230 Anonymous user logged in as anonymous.

Yeah! Chắc ăn là server này là PWS chạy trên Windows!

Nếu như admin vô hiệu hóa dòng quảng cáo trên thì sao!? Vẫn còn cách khác! Bạn login vào và phát lệnh syst như sau:

ftp> literal syst
215 Windows_NT version 4.10

Hình như hệ điều hành của máy chủ là Win9.x hoặc WinNT thì phải!
(Nếu bạn đang chạy Linux* thì chỉ cần gõ syst).