bài 8: http, ftp, smtp, pop, imapmica.edu.vn/perso/kiendt/ee4611/lec/08. http, ftp, smtp...web...

52
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

Upload: others

Post on 14-Feb-2020

30 views

Category:

Documents


0 download

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

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

Webmail

52