bài 8: http, ftp, smtp, pop, imapmica.edu.vn/perso/kiendt/ee4611/lec/08. http, ftp, smtp...web...
TRANSCRIPT
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Bài 8: HTTP, FTP, SMTP, POP, IMAP
1
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
HTTP (HyperText Transfer Protocol)
2
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Khái niệm
HTTP vs HTML HTTP: giao thức truyền thông giữa server và client web
HTML: ngôn ngữ trình bày, thể hiện nội dung trên các trình duyệt web
HTTP Hoạt động theo mô hình client/server, đáp ứng truy vấn
Giao thức TCP
HTTPS HTTP over SSL/TLS
3
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
URI, URL
Uniform Resource Identifier, Uniform Resource Locator
Chuỗi ký tự xác định tài nguyên mạng và cách thức lấy về
Có tính duy nhất
Cấu trúc: foo://[email protected]:8110/some/folder.xyz?what=this&who=bob#middle
VD: http://my-web-site.com/my/page.html
ftp://daddy.com/folder/doc.zip
mailto:[email protected]
file:///home/user/file.txt
tel:1-888-555-5555
http://example.com/resource?foo=bar#fragment
4
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
HTTP URL
http://host:port/path/resource?query#hash
Các thành phần
host: địa chỉ server
port: cổng của dịch vụ (bỏ qua nếu dùng cổng mặc định 80)
path: đường dẫn
resource: tên tài nguyên (file)
query: truy vấn
hash: bookmark tới vị trí cụ thể trong trang web
Có thể dùng đường dẫn tương đối nếu trỏ tới tài nguyên
trên cùng host
5
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Truy vấn của client
Cấu trúcGET /docs/index.html HTTP/1.1(các dòng header…)(dòng trắng)
VDGET /docs/index.html HTTP/1.1Host: www.nowhere123.comAccept: image/gif, image/jpeg, */*Accept-Language: en-us, fr, viAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0;
Windows NT 5.1)(dòng trắng)
6
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Các phương thức HTTP (HTTP methods)
GET: nhận dữ liệu từ máy chủ về client
POST: client gửi dữ liệu cho máy chủ
PUT: tạo hoặc cập nhật tài nguyên trên server
PATCH: sửa đổi một phần tài nguyên trên server
DELETE: xoá tài nguyên trên server
HEAD: tương tự GET nhưng chỉ nhận header mà
không nhận dữ liệu
OPTIONS: cung cấp thông tin về các phương thức
mà server hỗ trợ
7
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Các phiên bản HTTP
HTTP/1.0 (1995)
Đóng & thực hiện lại kết nối với từng request
HTTP/1.1 (1997)
Giữ kết nối sau khi trả lời với một thời gian nhất định
Cho phép chỉ nhận một phần dữ liệu của tài nguyên
Header “Host” là bắt buộc trong truy vấn→ cho phép host nhiều site trên cùng server
Cơ chế cache (không cần gửi lại dữ liệu nếu tài nguyên chưa thay đổi so với lần truy cập trước)
HTTP/2.0
Dữ liệu dạng nhị phân
Tăng khả năng nén dữ liệu
Truyền thông không đồng bộ→ server xử lý những request nhanh trước
8
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Một số request header
Host: Site được truy cập khi server có thể host đồng
thời nhiều site khác nhau (còn gọi là host ảo – virtual
host)
Accept: Loại và định dạng tài nguyên mà client có
thể nhận (cấu trúc MIME: loại/định dạng)
Accept-Language: Ngôn ngữ mà client có thể nhận
Accept-Encoding: Dạng mã hoá, gồm cả chuẩn
nén dữ liệu
User-Agent: Thông tin về client cho server (thường
dùng để xác định trình duyệt)
9
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Tài nguyên web
Có thể là
Trang web (HTML)
Text
Hình ảnh (JPEG, GIF, PNG,…), âm thanh (MPEG,
OGG,…), video (MPEG, WebM,…)
Dữ liệu (XML, JSON, text,…)
Javascript, CSS
Tài liệu (PDF)
Bất kỳ tài nguyên gì
Client và server xác định loại tài nguyên và định
dạng bằng chuẩn MIME
10
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Phản hồi của server
Cấu trúcHTTP/1.1 200 OK(các dòng header…)(dòng trắng)(nội dung)
VDHTTP/1.1 200 OKDate: Sun, 18 Oct 2009 08:56:53 GMTServer: Apache/2.2.14 (Win32)Last-Modified: Sat, 20 Nov 2004 07:16:26 GMTContent-Length: 44Content-Type: text/html
<html><body><h1>It works!</h1></body></html>
11
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Status code
1xx: Phản hồi thông tin
2xx: Thành công
200: OK
3xx: Chuyển tiếp đến URL khác
301: Tài nguyên đã chuyển
4xx: Lỗi do client
403: Không có quyền truy cập
404: URL không tồn tại
5xx: Lỗi do server
500: Lỗi không xác định
503: Dịch vụ đang dừng
12
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Một số response header
Server: Thông tin về server
Content-Length: Độ dài phần dữ liệu (số byte)
Content-Type: Loại và định dạng tài nguyên (MIME)
Expires: Thời gian lưu cache
13
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
VD xem thông tin truy vấn HTTP trong Chrome
14
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
VD dùng telnet để truy cập HTTP
Request: Trong Windows Command Prompt:
telnet www.mica.edu.vn 80
{Ctrl+]}
set localecho
{Enter}
GET /perso/kiendt/EE4611/ HTTP/1.1
Host: www.mica.edu.vn
{Enter}
15
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
VD dùng telnet để truy cập HTTP (tiếp)
Response
HTTP/1.1 200 OK
Date: Fri, 16 Nov 2018 01:08:40 GMT
Server: Apache/2.4.18 (Ubuntu)
Last-Modified: Fri, 07 Sep 2018 06:43:59 GMT
ETag: "4b5-57542551c4c1c"
Accept-Ranges: bytes
Content-Length: 1205
Vary: Accept-Encoding
Content-Type: text/html
(nội dung)
16
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Công nghệ web
17
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Vai trò của HTTP ngày nay
HTTP vốn ban đầu chỉ được thiết kế cho WWW (đọc thông tin, tìm tài nguyên)→ web tĩnh
Hiện nay HTTP trở thành cơ sở quan trọng cho các mô hình truyền thông, phát triển ứng dụng, phân phối dịch vụ
Thiết kế và cài đặt đơn giản
Khả năng bảo mật tốt (HTTPS)
Không bị chặn bởi các tường lửa → không cần mở thêm cổng trên gateway
Dễ dàng mở rộng và tích hợp thêm tính năng
Các phần mềm server có tính ổn định cao
Hệ sinh thái (công cụ, ngôn ngữ lập trình, thư viện, cộng đồng phát triển,...) lớn và phong phú, đa dạng
18
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Ứng dụng web (web apps)
Internet phổ biến và được sử dụng
mọi nơi, với tốc độ đường truyền
ngày càng cao
Trình duyệt được cung cấp các tính
năng ngày càng mạnh (Web 2.0)
HTML5, CSS3, AJAX, REST, đồ hoạ
(canvas, WebGL, SVG), truy cập phần
cứng (camera, định vị, notification),...
19
➔Web trở thành một trong những nền tảng phát triển ứng
dụng quan trọng (bên cạnh/kết hợp với các nền tảng
server, desktop, mobile)
Không cần cài đặt → đơn giản khi sử dụng, hạn chế rủi ro bảo mật
VD: Google Maps, Gmail, MS Office 365, web games,...
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
SOA (Service Oriented Architecture)
Phân phối phần mềm theo mô hình
đóng gói có nhiều hạn chế
Tương thích thiết bị người dùng kém →
chi phí phát triển phần mềm
Cập nhật tính năng, vá lỗi
Kiểm soát hoạt động của người dùng
Đánh giá trải nghiệm và ý kiến người dùng
20
➔Mô hình hướng dịch vụ (SOA)
Cung cấp dịch vụ thay vì ứng dụng
Một dịch vụ có thể cho người dùng cuối, hoặc cho các dịch vụ
khác
Các yếu tố (4P): Process, Pratice, People, Platform
VD: bản đồ, thanh toán, lưu trữ, xác thực, AI, quảng cáo, phân tích
người dùng,…
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Web Services
Mô hình dịch vụdựa trên HTTP XML, JSON, RPC,
SaaS, REST, SOAP
Khả năng đăng kývà tìm kiếm dịchvụ
Liên kết lỏng giữacác dịch vụ (loose coupling) → độclập trong sửdụng dịch vụ
Web API
21
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Mô hình hoạt động của web server
22
BROWSER
Client Machine
WEB SERVER
Opera
ting S
yste
m
Reception
Request
Analyzer
Access
Control
Resource
Handler
Transaction
Log
Server Machine
Request
Response
CGI
Process 1
CGI
Interface…
CGI
Process 2
CGI
Process 3
CGI
Process N…
CGI Process Pool
Opera
ting S
yste
m A
bstra
ctio
n L
ayer
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Kiến trúc điển hình của một dịch vụ web
23
Web Browser(Firefox, Chrome, IE,
Edge, Safari,…)
Database(MySQL, MSSQL,…)
Internet
Local
Area
Network
Web Script(PHP, ASP, JSP,…)
Web Server(Apache, IIS, Tomcat,
nginx,…)
Server Machine
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Các web server thông dụng
24
Web server HĐH Ngôn ngữ
Apache Linux, Windows PHP, Perl, Python
IIS Windows .NET,
nginx Linux PHP, Perl, Python
NodeJS Linux, Windows JavaScript
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Thiết lập và vận hành
Web Server sử dụng Apache
25
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Apache
LAMP (Linux, Apache, MySQL, PHP)
Ưu điểm
Mã nguồn mở, miễn phí
Tương thích nhiều ngôn ngữ, HĐH
Đa luồng
Quản trị linh hoạt (.htaccess)
Reverse proxy
26
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Thiết lập Apache + PHP
Cài đặt:
https://www.apachelounge.com/download/
https://windows.php.net/download/ (chọn bản Thread Safe)
Thêm vào Apache\conf\httpd.conf PHPIniDir "C:\PHP"
AddHandler application/x-httpd-php .php
LoadModule php7_module "C:\PHP\php7apache2_4.dll"
27
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Giới thiệu PHP
PHP
Một ngôn ngữ rất phổ biến để lập trình web
Ngôn ngữ dạng script khá gần với C
Không sử dụng con trỏ hay địa chỉ
Nguyên tắc hoạt động:
Sinh ra mã HTML của trang web bằng các hàm print(), echo()
Chạy trực tiếp không qua biên dịch
Mã lệnh PHP nằm trong thẻ
<?php
// ...
?>
28
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Ví dụ một PHP script
<?php
$title = 'Tiêu đề trang web';
$logo_img = 'logo.jpg';
?>
<html>
<head>
<title><?php print($title); ?></title>
</head>
<body>
<p>Nội dung</p>
<img src="<?php print($logo_img); ?>" />
</body>
</html>
29
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Một số khái niệm của PHP
Biến:
Dùng dấu $ trước tên, không cần khai báo, không có kiểu
cố định
$x = 100;
$x = 'Value: ' . $x;
Mảng:
for ($i=0; $i<10; $i++)
$a[$i] = 20*$i;
Chuỗi ký tự: dùng '...' hoặc "..."
$s1 = '$100';
$s2 = "Price: $s1"; // = "Price: $100"
print('<b>' . $s2 . '</b>');
30
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Tham số của trang web với phương thức GET
Khái niệm:
Tương tự như việc các
chương trình có tham
số từ dòng lệnh, các
trang web cũng có các
tham số được cho ở
URL
31
PHP cho phép sử dụng các tham số này thông qua mảng
$_GET (với chỉ số là tên của tham số)
Ví dụ:
print('ID: ' . $_GET['ID'] . '<br/>' .
'Name: ' . $_GET['Name'] . '<br/>' .
'Sex: ' . $_GET['Sex']);
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
FTP (File Transfer Protocol)
32
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Giới thiệu
Là giao thức truyền tải file
Hoạt động theo cơ chế đáp ứng câu lệnh
Sử dụng 2 cổng TCP
Một cổng cho các lệnh điều khiển (mặc định: 21)
Một cổng để truyền dữ liệu (mặc định: 20)
Hai chế độ kết nối: Active (chủ động), Passive (bị động)
Chế độ truyền thông: ASCII, binary (nhị phân)
33
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Chế độ Active
Client kết nối từ cổng n tới cổng 21 của server
Client gửi lệnh port để báo server kết nối tới cổng n+1
Server kết nối từ cổng 20 tới cổng n+1 của client đểtruyền dữ liệu
34
ClientServer
20 21 1026 1027
1
2
3
4
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Chế độ Passive
Client kết nối từ cổng n tới cổng 21 của server
Client gửi lệnh pasv, server trả lời báo cổng dữ liệu m
Client kết nối từ cổng n+1 tới cổng m của server đểtruyền dữ liệu
35
ClientServer
20 21 1026 1027
1
2
2024
3
4
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Active vs Passive
36
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Một số lệnh FTP ? / help: hiện danh sách các lệnh
![command]: mở shell/thực thi lệnh của shell trên client
open host [port]: mở kết nối tới server
quit: thoát, kết thúc phiên làm việc
ascii / binary: chuyển sang chế độ truyền thông ascii/nhị phân
cd remote-path: chuyển thư mục trên server
pwd: hiển thị thư mục hiện thời trên server
dir: xem danh sách file/thư mục
lcd [local-path]: hiển thị/chuyển thư mục trên client
get remote-file [local-path]: tải file về client
mget remote-file [local-path]: tải nhiều file
put local-file [remote-path]: gửi file lên server
mput local-file [remote-path]: gửi nhiều file
delete remote-path: xoá file trên server
rmdir remote-path: xoá thư mục trên server
rename remote-path new-name: đổi tên file trên server
37
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
VD kết nối FTP bằng Windows Explorer
38
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
VD kết nối FTP bằng lệnh ftp
39
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Các giao thức liên quan
TFTP (Trivial FTP)
Giao thức FTP được đơn giản hoá
Dùng cho môi trường ít nhiễu, khoảng cách ngắn
Thường dùng trong các thiết bị mạng (router, bios) để
gửi/nhận các file cấu hình
UDP cổng 69
SFTP (Secured FTP)
Giao thức FTP hoạt động trên SSL/TLS
40
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
SMTP, POP3, IMAP4
41
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
SMTP (Simple Mail Transfer Protocol)
Giao thức giúp gửi email
Giao thức thiết kế đơn giản, dựa trên FTP
Mã hoá ASCII 7 bit
Nhược điểm:
Bảo mật kém
42
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Các vai trò
User Agents (UA): đóng gói
dữ liệu email
Mail Transfer Agents (MTA):
chuyển email qua Internet
43
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Mô hình truyền thông
44
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Kết nối client/server
45
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
VD một phiên kết nối Transaction Initiation and Sender Identification
S: HELO sjsu.eduR: 250 Hello sjsu.eduS: MAIL FROM:<[email protected]>R: 250 Ok
2. Recipient Identification S: RCPT TO:<[email protected]>R: 250 Ok
3. Mail Transfer S: DATAR: 354 End data with <CR><LF>.<CR><LF>S: <The message data>S:.R: 250 Ok, message accepted for delivery: queued as 12345S: QUITR: 221 Bye
46
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
SMTP & bảo mật
47
SMTP
NO
AUTHENTICA
TION
NO
CONFIDENTI
ALITY
NO INTEGRITY
No
authentication for
receiver or
sender
No Hash
Funtion
implemented to
ensure integrity
Data transferred
in plain text
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Cơ chế xác thực
48
Mail Server
Certificate
Authority
Yahoo Google
Hotmail
My SMTP
Server
Message+Certificate
Issue Certificates
Issue Certificate
Issue Certificate
Message
Accepted
Not A
ccep
ted
Cache
Yahoo CA
Hotmail CA
Message
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Nhận email: POP3, IMAP4
Người dùng truy cập email sau khi đã nhận về
server
49
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
POP3, IMAP4
POP3
Chỉ một chiều
server → client
Email sau khi nhận
được lưu ở client
IMAP4
Đồng bộ email hai
chiều client
server
Email được lưu trữ
trên server
50
EE4611: An ninh và quản trị mạng – HK2 2019/2020
PGS.TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
MIME (Multipurpose Internet Mail Extensions)
51