46
Chuyên đề SCNA Xây Dựng Mạng Tin Cậy Building Trusted Networks Mẫn Thắng | [email protected] http://manthang.wordpress.com HCM, 05/2012 Trong chuyên đề này, chúng ta sẽ được ôn lại và vận dụng kiến thức của nhiều chuyên đề trước của khóa học SCNA trong việc xây dựng và triển khai một mạng tin cậy. Ta cũng đi qua các bước cài đặt và cấu hình hai mạng nhỏ Windows và Linux có sử dụng chứng chỉ số để đảm bảo an toàn cho các phiên truyền thông như duyệt web, gửi email.

Building trusted networks (manthang)

Embed Size (px)

Citation preview

Page 1: Building trusted networks (manthang)

Chuyên đề SCNA

Xây Dựng Mạng Tin Cậy Building Trusted Networks

Mẫn Thắng | [email protected]

http://manthang.wordpress.com

HCM, 05/2012

Trong chuyên đề này, chúng ta sẽ được ôn lại và vận dụng kiến thức của nhiều chuyên đề

trước của khóa học SCNA trong việc xây dựng và triển khai một mạng tin cậy.

Ta cũng đi qua các bước cài đặt và cấu hình hai mạng nhỏ Windows và Linux có sử dụng

chứng chỉ số để đảm bảo an toàn cho các phiên truyền thông như duyệt web, gửi email.

Page 2: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

1

Mục lục

Danh sách hình _______________________________________________________________________ 2

Danh sách bảng_______________________________________________________________________ 3

Lời nói đầu____________________________________________________________________________ 4

1. Giới thiệu về mạng tin cậy ______________________________________________________ 5

1.1 Sự cần thiết của mạng tin cậy ________________________________________________ 5

1.2 Các yêu cầu và thành phần của mạng tin cậy _________________________________ 7

2. Cơ bản về hạ tầng khóa công khai _____________________________________________ 10

1.3 Các thành phần của PKI _____________________________________________________ 10

1.4 Các kiến trúc triển khai PKI __________________________________________________ 11

3. Xây dựng và triển khai một mạng tin cậy _____________________________________ 14

1.5 Mô hình và yêu cầu chuẩn bị ________________________________________________ 14

1.6 Các bước thực hiện _________________________________________________________ 16

1.6.1 Xây dựng Windows Domain ______________________________________________ 16

Bước 1-1: Tạo domain đầu tiên trong một forest mới_____________________________________ 16

Bước 1-2: Cấu hình DNS __________________________________________________________________ 17

Bước 1-3: Cài đặt Enterprise Root CA _____________________________________________________ 18

1.6.2 Cấu hình Enterprise CA ___________________________________________________ 19

Bước 2-1: Cấu hình Enterprise Root CA ___________________________________________________ 19

Bước 2-2: Cấu hình Certificate Template _________________________________________________ 20

Bước 2-3: Chỉnh sửa Default GPO ________________________________________________________ 21

Bước 2-4: Tạo các user trong domain _____________________________________________________ 23

Bước 2-5: Cấu hình đăng nhập với smartcard ____________________________________________ 24

Bước 2-6: Tham gia Domain ______________________________________________________________ 25

Bước 2-7: Cài đặt Enterprise Subordinate CA _____________________________________________ 25

Bước 2-8: Cấu hình Enterprise Subordinate CA ___________________________________________ 26

Bước 2-9: Cài đặt RA ______________________________________________________________________ 28

Page 3: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

2

Bước 9-10: Cài đặt IIS và tạo một website ________________________________________________ 29

Bước 2-11: Cấu hình SSL cho website _____________________________________________________ 30

1.6.3 Thiết lập Linux CA ________________________________________________________ 34

Bước 3-1: Cài đặt EJBCA __________________________________________________________________ 34

Bước 3-2: Tạo và cấp chứng chỉ cho máy trạm Linux _____________________________________ 38

1.6.4 Tạo Cross Trust ___________________________________________________________ 40

Bước 4-1: Trusting Linux Root CA _________________________________________________________ 40

Bước 4-2: Trusting Windows Root CA _____________________________________________________ 42

Bước 4-3: Kiểm tra trust___________________________________________________________________ 44

1.6.5 Bảo mật email ____________________________________________________________ 44

Bước 5-1: Cài đặt và cấu hình mail server Mdeamon _____________________________________ 44

Bước 5-2: Cấu hình các email client ______________________________________________________ 45

4. Tổng kết ________________________________________________________________________ 45

5. Tài liệu tham khảo _____________________________________________________________ 45

DANH SÁCH HÌNH

Hình 1 – Các lớp phòng thủ ngoại vi của mạng .............................................................................................. 5

Hình 2 – Mô hình mạng Extranet điển hình........................................................................................................ 6

Hình 3 – Kiến trúc Single CA....................................................................................................................................... 11

Hình 4 – Kiến trúc Hierarchical PKI ......................................................................................................................... 12

Hình 5 – Kiến trúc Mesh PKI........................................................................................................................................ 13

Hình 6 – Mô hình triển khai mạng tin cậy......................................................................................................... 15

Hình 7 – Tạo domain đầu tiên trong một forest mới ................................................................................ 17

Hình 8 – Tạo các A record ............................................................................................................................................ 17

Hình 9 – Cài đặt Enterprise Root CA ..................................................................................................................... 18

Hình 10 – Thêm mới các Certificate Template ............................................................................................... 19

Hình 11 – Thiết lập CRL publication interval ................................................................................................... 20

Hình 12 – Cấu hình Certificate Template ........................................................................................................... 21

Hình 13 – Chỉnh default GPO để máy tính trong domain tự động xin và nhận chứng chỉ

......................................................................................................................................................................................................... 22

Page 4: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

3

Hình 14 – Chỉnh default GPO để tự động khóa máy tính khi người dùng rút smartcard 22

Hình 15 – Tạo các domain user ................................................................................................................................ 23

Hình 16 – Thiết lập khi người dùng đăng nhập phải có smartcard................................................. 24

Hình 17 – Thực hiện join các máy vào domain .............................................................................................. 25

Hình 18 – Cài đặt Enterprise Subordinate CA ................................................................................................. 26

Hình 19 – Cấu hình Enterprise Subordinate CA............................................................................................. 27

Hình 20 – Cài đặt RA ........................................................................................................................................................ 28

Hình 21 – Tạo một website.......................................................................................................................................... 30

Hình 22 – Tạo một file yêu cầu cấp chứng chỉ cho website ................................................................. 31

Hình 23 – Gửi yêu cầu cấp và tải về chứng chỉ cho website................................................................. 32

Hình 24 – Cài đặt chứng chỉ SSL cho website................................................................................................. 32

Hình 25 – Bắt buộc người dùng truy cập webiste qua SSL ................................................................... 33

Hình 26 – Kiểm tra việc truy cập website qua SSL....................................................................................... 34

Hình 27 – Cài đặt EJBCA ................................................................................................................................................ 36

Hình 28 – Import client certificate vào trình duyệt web .......................................................................... 37

Hình 29 – Trang chủ quản lý EJBCA sau khi cài đặt xong....................................................................... 37

Hình 30 – Tạo end entity trong EJBCA................................................................................................................. 38

Hình 31 – Tải về chứng chỉ cho máy trạm Linux ........................................................................................... 39

Hình 32 – Import chứng chỉ của máy trạm Linux vào trình duyệt web......................................... 40

Hình 33 – Tải về máy Windows chứng chỉ của Linux Root CA............................................................ 41

Hình 34 – Import chứng chỉ của Linux Root CA trong Default GPO ............................................... 41

Hình 35 – Kiểm tra các máy Windows trong domain đã tin cậy chứng chỉ của Linux Root

CA .................................................................................................................................................................................................. 42

Hình 36 – Export chứng chỉ của Windows Root CA ................................................................................... 43

Hình 37 – Import chứng chỉ của Windows Root CA................................................................................... 43

DANH SÁCH BẢNG

Bảng 1 – Yêu cầu chuẩn bị triển khai ................................................................................................................... 15

Page 5: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

4

LỜI NÓI ĐẦU

Đây là chuyên đề cuối cùng trong loạt chuyên đề của giáo trình SCNA, nó là sự

tổng hợp các kiến thức đã được giới thiệu trong các nhóm trước. Nội dung của chuyên

đề này chủ yếu đi thẳng vào việc xây dựng và triển khai một môi trường tin cậy giữa hai

mạng nhỏ là Windows và Linux. Nhưng trước tiên ta cần tìm hiểu lại các khía cạnh của

mạng tin cậy bao gồm: nó là gì? nó có cần thiết không? Các thành phần của nó? Sau đó

kiến thức cơ bản về hạ tầng khóa công khai (PKI) là hệ thống cung cấp các dịch vụ cho

mạng tin cậy cũng sẽ được đề cập. Phần cuối cùng sẽ trình bày các bước cài đặt và cấu

hình một mạng tin cậy dựa trên một mô hình với các yêu cầu cụ thể.

CẢM ƠN

Cố gắng và thành quả này xin dành tới người thân thương nhất, Yel PA.

Cuppy Security, manthang

Page 6: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

5

1. GIỚI THIỆU VỀ MẠNG TIN CẬY

1.1 Sự cần thiết của mạng tin cậy

Nhiều năm trước đây và cả bây giờ, vẫn còn nhiều người có khái niệm chưa đầy đủ và

chuẩn xác về an toàn mạng. Họ cho là chỉ cần mua về một sản phẩn firewall nào đó,

thay đổi một vài cấu hình cho nó và coi như mạng của họ đã trở nên an toàn. Nếu tổ

chức của họ quan tâm nhiều hơn đến bảo mật mạng, một hệ thống phát hiện/ngăn

chặn xâm nhập (IDS/IPS) cùng với hệ thống anti-virus sẽ được triển khai thêm.

Các thành phần đó (IDS/IPS, firewall, antivirus) cùng nhau tạo nên một hệ thống bảo vệ

vững chắc cho ngoại vi của mạng. Mặc dù vậy chúng vẫn là chưa đủ để đáp ứng các yêu

cầu kết nối an toàn cho một thế giới mạng phức tạp như ngày nay.

Hình 1 – Các lớp phòng thủ ngoại vi của mạng

An toàn mạng ngày nay có thể được định nghĩa như là việc đảm bảo an toàn (bao gồm

sự bí mật, tính toàn vẹn và độ sẵn sàng) cho các phiên truyền thông trên mạng và bảo

vệ ngoại vi của mạng. Khi mà các mạng bên ngoài thường không đáng tin cậy thì các

công cụ và kỹ thuật trên vẫn rất quan trọng nhưng chúng chỉ có thể giúp kiểm soát,

sàng lọc các lưu lượng mạng vào và ra mạng nội bộ của tổ chức. Dưới đây, chúng ta sẽ

xem xét những thách thức và mục tiêu mà thực tế một doanh nghiệp ngày nay thường

gặp phải để từ đó thấy được việc phòng thủ ngoại vi cho mạng thôi là chưa đủ.

Doanh nghiệp có nhiều khách hàng ở các châu lục, đất nước, vùng miền khác nhau. Mỗi

khách hàng cần có khả năng trao đổi thông tin với doanh nghiệp một cách nhanh nhất

có thể. Một cách để đạt được điều này là cung cấp cho họ một kết nối trực tiếp vào

Page 7: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

6

mạng doanh nghiệp. Điều này có nghĩa rằng các khách hàng cũng như các nhà cung

cấp, đối tác cần truy cập tới các thông tin không chỉ ở dạng công khai, như website, mà

còn là các thông tin ở dạng bí mật của doanh nghiệp. Những thông tin bí mật này được

lưu trữ bên trong hệ thống mạng của doanh nghiệp thay vì nằm trên các máy chủ công

cộng như webserver.

Hình 2 – Mô hình mạng Extranet điển hình

Đến đây ta cần đặt ra các câu hỏi: những người dùng bên ngoài tổ chức đó cụ thể là

những ai và làm sao để tin cậy được các kênh truyền thông của họ? Các kênh truyền

thông tin cậy, an toàn luôn là một yêu cầu cần thiết. Vì vậy mà cần có cơ chế để đảm

bảo không ai có thể đọc trộm được những thông tin bí mật trên kênh truyền. Và cũng

cần có biện pháp để chắc rằng không ai có thể giả dạng là một người dùng có quyền

truy cập hợp pháp vào mạng của tổ chức. Giải quyết được các câu hỏi trên chính là ta

đã hình thành được cái gọi là mạng tin cậy rồi.

Tóm lại, mạng tin cậy cần đạt được các mục tiêu sau:

Có khả năng thiết lập được các kênh truyền thông an toàn giữa 2 điểm đầu cuối

bất kỳ, như giữa các nhân viên, khách hàng và đối tác.

Có khả năng nhận dạng được bất kỳ yêu cầu kết nối, truy cập nào là hợp lệ hay

không hợp lệ.

Có khả năng xác thực người dùng, thiết bị.

Page 8: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

7

1.2 Các yêu cầu và thành phần của mạng tin cậy

Khi thực hiện chuyển dịch từ một mạng hướng phòng thủ sang mạng tin cậy thì cần

đáp ứng một vài dịch vụ/yêu cầu bảo mật thiết yếu sau:

Nhận dạng

Xác thực

Cấp phép

Bảo mật

Toàn vẹn

Không thể chối từ

Nếu không có khả năng đảm bảo tất cả các dịch vụ trên vận hành chính xác trong mạng

thì không thể thiết lập được một mạng tin cậy một cách đầy đủ. Còn trong các mạng

hướng phòng thủ thì chú trọng tới các dịch vụ sau mà thôi: bí mật, toàn vẹn và xác thực.

Dưới đây sẽ bàn thêm về 6 dịch vụ trên.

Nhận dạng (Identification) là bước đầu tiên trong quá trình xác thực, một đối tượng sẽ

cung cấp một vài dữ liệu dùng để nhận dạng nó (như tên người dùng, mật khẩu, mã

PIN, vân tay,…) cho dịch vụ xác thực.

Xác thực (Authentication) là quá trình xác định xem ai hoặc thứ gì đó có thực sự là người

(hoặc là thứ) mà nó tuyên bố hay không. Hay nói cách khác, đây là việc xác minh nhận

dạng của một người, một thiết bị, một chương trình… nào đó.

Cấp phép (Authorization) là quá trình xác định xem đối tượng (đã được xác thực) được

phép làm những gì. Bước này thường xảy ra sau bước xác thực ở trên.

Bảo mật (Confidentiality) là việc đảm bảo tính bí mật, chỉ để những người được cấp

phép mới có thể đọc được thông tin mang tính riêng tư.

Toàn vẹn (Integrity) là việc đảm bảo tính chính xác và tin cậy của thông tin, và bất kỳ sự

thay đổi trái phép nào tới thông tin sẽ được phát hiện và ngăn chặn.

Chống chối từ (Non-repudiation) là việc đảm bảo rằng đối tượng đã gửi đi thông điệp

không thể phủ nhận việc gửi đó và ngược lại, đối tượng đã nhận được thông điệp cũng

không thể phủ nhận là chưa biết đến thông điệp đó.

Để triển khai những dịch vụ trên thì cần tới các công nghệ cốt lõi sau:

Page 9: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

8

Mật mã

Chứng thực mạnh

Chữ ký số

Chứng chỉ số

Các công nghệ này gắn kết với nhau để cùng xây dựng nên một mạng tin cậy.

Mật mã

Đây là thành phần có vai trò rất quan trọng, là trái tim của bất cứ mạng tin cậy nào. Nó

giúp đảm bảo bảo mật và toàn vẹn cho các thông điệp, cũng như nhận dạng và xác

thực các đối tượng tham gia vào phiên truyền thông. Về cơ bản, mật mã được phân làm

2 loại chính: mã hóa đối xứng và mã hóa bất đối xứng.

Loại mã hóa đối xứng thường được gọi là mật mã khóa bí mật và cả hai bên đều sử

dụng cùng một khóa để mã hóa và giải mã thông tin. Các thuật toán mã hóa đối xứng

phổ biến như 3DES, AES, RC5.

Còn loại mã hóa bất đối xứng còn được gọi là mật mã khóa công khai và cần sử dụng

một cặp khóa để mã hóa và giải mã. Nếu mã hóa bằng khóa thứ nhất (gọi là khóa công

khai) thì chỉ có thể giải mã bằng khóa thứ hai (gọi là khóa bí mật) và ngược lại. DSA,

RSA, Diffie-Hellman là ví dụ về các thuật toán mã hóa bất đối xứng nổi tiếng.

Ngoài ra trong mật mã còn có kỹ thuật băm một chiều (one-way hash) là một hàm nhận

vào một thông điệp có chiều dài bất kỳ và tạo ra một chuỗi có chiều dài cố định được

gọi là giá trị băm. Ví dụ, giá trị mà giải thuật băm MD5 tạo ra luôn là 128-bit, với SHA-1

là 160-bit. Hàm băm một chiều làm việc mà không cần sử dụng bất kỳ khóa nào và đặc

biệt, từ kết quả băm cuối cùng thì rất khó (thường không thể) lần ngược lại thông điệp

gốc ban đầu. Nó thường được dùng để kiểm tra tính toàn vẹn của thông điệp, tập tin.

Chứng thực mạnh

Để thỏa mãn yêu cầu này, hệ thống chứng thực cần phải sử dụng ít nhất 2 trong 3 yếu

tố sau:

Thứ mà bạn biết (something you know): mật khẩu hoặc mã PIN là ví dụ điển hình cho

phương thức chứng thực phổ biến nhất này. Cách này thì rẻ tiền, dễ triển khai nhưng có

nhược điểm là nếu ai đó biết được bí mật này thì họ có thể đạt được quyền truy cập vào

hệ thống.

Page 10: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

9

Thứ mà bạn có (something you have): ví dụ cho phương thức chứng thực này là thẻ

ATM, thẻ thông minh, thẻ truy cập, phù hiệu v.v… Hạn chế của cách này là những vật đó

có thể bị mất hoặc đánh cắp và bị ai đó lạm dụng để truy cập trái phép vào hệ thống.

Đặc điểm duy nhất trên cơ thể bạn (something you are): là cách nhận diện dựa trên

thuộc tính vật lý duy nhất của một người như võng mạc mắt, dấu vân tay. Phương pháp

chứng thực này hiệu quả vì khó giả mạo hay sao chép nhưng lại mắc tiền để triển khai.

Các phương pháp chứng thực 2 yếu tố (two-factor authentication) trong thực tế thường

thấy như sự kết hợp giữa mật khẩu với thẻ truy cập hoặc thẻ thông minh với sinh trắc

học mang lại sự tin cậy, an toàn hơn chỉ là sử dụng tên người dùng và mật khẩu để

đăng nhập vào hệ thống. Các kỹ thuật trong mật mã cũng được ứng dụng rộng rãi vào

các phương thức xác thực như Kerberos, RADIUS, CHAP, NTLM, v.v…

Chữ ký số

Được tạo ra sử dụng kết hợp giữa hàm băm và mật mã khóa công khai để đảm bảo tính

toàn vẹn, giúp xác thực nguồn gốc của thông điệp và đồng thời bên gửi không thể chối

từ việc đã tạo ra thông điệp đó. Nó là một giá trị băm của thông điệp được mã hóa

bằng khóa bí mật của bên gửi rồi được đính kèm với thông điệp gốc. Bên nhận sẽ dùng

khóa công khai của bên gửi để giải mã phần chữ ký ra được giá trị băm của thông điệp

rồi đối chiếu với giá trị mà nó thu được từ việc thực hiện lại hàm băm trên thông điệp

gốc. Nếu hai giá trị đó giống nhau thì bên nhận có thể tin cậy được rằng thông điệp

không bị thay đổi và nó chỉ được gửi từ bên sở hữu khóa công khai ở trên.

Chứng chỉ số

Là một tập tin giúp chắc chắn rằng khóa công khai thuộc về một thực thể nào đó như

người dùng, tổ chức, máy tính và điều này được xác minh bởi một bên thứ ba đáng tin

cậy thường gọi là CA (Certificate Authorities). Chứng chỉ số chứa các thông tin nhận

dạng về thực thể như tên, địa chỉ, khóa công khai (cùng nhiều thông tin khác) và được

ký số bởi khóa bí mật của CA.

Cuối cùng, tất cả 6 dịch vụ và 4 công nghệ nói trên được cung cấp và triển khai bởi một

hạ tầng khóa công khai (Public Key Infrastructure - PKI) làm nền tảng cho các mạng tin

cậy mà chúng ta sẽ cùng tìm hiểu trong phần 2 của chuyên đề này.

Page 11: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

10

2. CƠ BẢN VỀ HẠ TẦNG KHÓA CÔNG KHAI

Dựa trên nền tảng của mật mã khóa công khai, PKI là một hệ thống bao gồm phần

mềm, dịch vụ, chuẩn định dạng, giao thức, quy trình, chính sách để giúp đảm bảo an

toàn, tin cậy cho các phiên truyền thông.

PKI đáp ứng các yêu cầu về xác thực, bảo mật, toàn vẹn, chống chối từ cho các thông

điệp được trao đổi.

1.3 Các thành phần của PKI

Ngoài các thành phần cơ bản đã được đề cập ở phần 1 là chứng chỉ số, chữ ký số và

mật mã. PKI còn được tạo nên bởi các thành phần chức năng chuyên biệt sau:

Certificate Authority

Registration Authority

Certificate Repository và Archive

Security Server

PKI-enabled applications và PKI users

Certificate Authority (CA): là một bên thứ được tin cậy có trách nhiệm tạo, quản lý, phân

phối, lưu trữ và thu hồi các chứng chỉ số. CA sẽ nhận các yêu cầu cấp chứng chỉ số và

chỉ cấp cho những ai đã xác minh được nhận dạng của họ.

Registration Authority (RA): đóng vai trò trung gian giữa CA và người dùng. Khi người

dùng cần chứng chỉ số mới, họ gửi yêu cầu tới RA và RA sẽ xác nhận tất cả các thông tin

nhận dạng cần thiết trước khi chuyển tiếp yêu cầu đó tới CA để CA thực hiện tạo và ký

số lên chứng chỉ rồi gửi về cho RA hoặc gửi trực tiếp cho người dùng.

Certificate Repository và Archive: có 2 kho chứa quan trọng trong kiến trúc của PKI. Đầu

tiên là kho công khai lưu trữ và phân phối các chứng chỉ và CRL (chứa danh sách các

chứng chỉ không còn hiệu lực). Cái thứ 2 là một cơ sở dữ liệu được CA dùng để sao lưu

các khóa hiện đang sử dụng và lưu trữ các khóa hết hạn, kho này cần được bảo vệ an

toàn như chính CA.

Security Server: là một máy chủ cung cấp các dịch vụ quản lý tập trung tất cả các tài

khoản người dùng, các chính sách bảo mật chứng chỉ số, các mối quan hệ tin cậy

(trusted relationship) giữa các CA trong PKI, lập báo cáo và nhiều dịch vụ khác.

Page 12: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

11

PKI-enabled applications và PKI users: bao gồm các người dùng sử dụng các dịch vụ của

PKI và các phần mềm có hỗ trợ cài đặt và sử dụng các chứng chỉ số như các trình duyệt

web, các ứng dụng email chạy phía máy khách.

1.4 Các kiến trúc triển khai PKI

Tùy vào các yêu cầu, quy mô và khả năng của từng tổ chức mà có thể chọn triển khai

một trong 3 mô hình PKI phổ biến sau:

Hierarchical PKI

Mesh PKI

Single CA

Single CA

Hình 3 – Kiến trúc Single CA

Đây là mô hình PKI cơ bản nhất phù hợp với các tổ chức nhỏ trong đó chỉ có một CA

cung cấp dịch vụ cho toàn hệ thống và tất cả người dùng đặt sự tin cậy vào CA này. Mọi

thực thể muốn tham gia vào PKI và xin cấp chứng chỉ đều phải thông qua CA duy nhất

này. Mô hình này dễ thiết kế và triển khai nhưng cũng có các hạn chế riêng. Thứ nhất là

ở khả năng co giãn – khi quy mô tổ chức được mở rộng, chỉ một CA thì khó mà quản lý

và đáp ứng tốt các dịch vụ. Hạn chế thứ hai là CA này sẽ là điểm chịu lỗi duy nhất, nếu

nó ngưng hoạt động thì dịch vụ bị ngưng trệ. Cuối cùng, nếu nó bị xâm hại thì nguy hại

tới độ tin cậy của toàn bộ hệ thống và tất cả các chứng chỉ số phải được cấp lại một khi

CA này được phục hồi.

Trust List

Nếu có nhiều CA đơn lẻ trong tổ chức nhưng lại không có các trust relationship giữa các

CA được tạo ra thì bằng cách sử dụng trust list người dùng vẫn có thể tương tác với tất

cả các CA. Lúc này các người dùng sẽ duy trì một danh sách các CA mà họ tin cậy. Các

CA mới về sau có thể dễ dàng được thêm vào danh sách. Phương thức này tuy đơn giản

nhưng cũng sẽ tốn thời gian để cập nhật hết các CA cho một lượng lớn người dùng,

Page 13: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

12

mặt khác nếu một CA nào đó bị thỏa hiệp thì không có một hệ thống cảnh báo nào báo

cho những người dùng mà tin cậy CA đó biết được sự cố này.

Hierarchical PKI

Đây là mô hình PKI được áp dụng rộng rãi trong các tổ chức lớn. Có một CA nằm ở cấp

trên cùng gọi là root CA, tất cả các CA còn lại là các Subordinate CA (gọi tắt là sub. CA)

và hoạt động bên dưới root CA. Ngoại trừ root CA thì các CA còn lại trong đều có duy

nhất một CA khác là cấp trên của nó. Hệ thống tên miền DNS trên Internet cũng có cấu

trúc tương tự mô hình này.

Hình 4 – Kiến trúc Hierarchical PKI

Tất cả các thực thể (như người dùng, máy tính) trong tổ chức đều phải tin cậy cùng một

root CA. Sau đó các trust relationship được thiết lập giữa các sub. CA và cấp trên của

chúng thông qua việc CA cấp trên sẽ cấp các chứng chỉ cho các sub. CA ngay bên dưới

nó. Lưu ý, root CA không trực tiếp cấp chứng chỉ số cho các thực thể mà chúng sẽ được

cấp bởi các sub. CA. Các CA mới có thể được thêm ngay dưới root CA hoặc các sub. CA

cấp thấp hơn để phù hợp với sự thay đổi trong cấu trúc của tổ chức. Sẽ có các mức độ

tổn thương khác nhau nếu một CA nào đó trong mô hình này bị xâm hại.

Trường hợp một sub. CA bị thỏa hiệp thì CA cấp trên của nó sẽ thu hồi chứng chỉ đã cấp

cho nó và chỉ khi sub. CA đó được khôi phục thì nó mới có thể cấp lại các chứng chỉ mới

cho người dùng của nó. Cuối cùng, CA cấp trên sẽ cấp lại cho nó một chứng chỉ mới.

Page 14: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

13

Nếu root CA bị xâm hại thì đó là một vấn đề hoàn toàn khác, toàn bộ hệ thống PKI sẽ

chịu ảnh hưởng. Khi đó tất cả các thực thể cần được thông báo về sự cố và cho đến khi

root CA được phục hồi và các chứng chỉ mới được cấp lại thì không một phiên truyền

thông nào là an toàn cả. Vì thế, cũng như single CA, root CA phải được bảo vệ an toàn ở

mức cao nhất để đảm bảo điều đó không xảy ra và thậm chí root CA có thể ở trạng thái

offline – bị tắt và không được kết nối vào mạng.

Mesh PKI

Nổi lên như một sự thay thế chính cho mô hình Hierarchical PKI truyền thống, thiết kế

của Mesh PKI giống với kiến trúc Web-of-Trust trong đó không có một CA nào làm root

CA và các CA sẽ có vai trò ngang nhau trong việc cung cấp dịch vụ. Tất cả người dùng

trong mạng lưới có thể tin cậy chỉ một CA bất kỳ, không nhất thiết hai hay nhiều người

dùng phải cùng tin một CA nào đó và người dùng tin cậy CA nào thì sẽ nhận chứng chỉ

do CA đó cấp.

Hình 5 – Kiến trúc Mesh PKI

Các CA trong mô hình này sau đó sẽ cấp các chứng chỉ cho nhau. Khi hai CA cấp chứng

chỉ cho nhau thì một sự tin cậy hai chiều được thiết lập giữa hai CA đó. Các CA mới có

thể được thêm vào bằng cách tạo các mối tin cậy hai chiều giữa chúng với các CA còn

lại trong mạng lưới.

Vì không có một CA duy nhất làm cấp cao nhất nên sự tổn hại khi tấn công vào mô hình

này có khác so với hai mô hình trước đó. Hệ thống PKI không thể bị đánh sập khi chỉ

một CA bị thỏa hiệp. Các CA còn lại sẽ thu hồi chứng chỉ mà chúng đã cấp cho CA bị

xâm hại và chỉ khi CA đó khôi phục hoạt động thì nó mới có khả năng cấp mới các

chứng chỉ cho người dùng rồi thiết lập trust với các CA còn lại trong mạng lưới.

Page 15: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

14

Trên đây là tổng quan các vấn đề trong PKI, còn nhiều nội dung khác về hạ tầng này mà

không tiện đề cập do sẽ vượt ra khỏi trọng tâm của chuyên đề. Ở phần tiếp theo sẽ

trình bày việc xây dựng và triển khai một môi trường tin cậy giữa hai mạng nhỏ

Windows và Linux để giúp các máy trạm trao đổi thông tin một cách an toàn.

3. XÂY DỰNG VÀ TRIỂN KHAI MỘT MẠNG TIN CẬY

Đây là phần tổng hợp và áp dụng các kiến thức từ các chuyên đề trước như

Cryptography and Data Security, Secure Email, Planning A Trusted Network, v.v…

Chúng ta sẽ từng bước xây dựng hai mạng nhỏ là Windows và Linux, cả hai đều cần tới

các chứng chỉ số nếu muốn truy cập tài nguyên hay trao đổi thông điệp. Sau đó sẽ thiết

lập tin cậy chéo (cross-trust) giữa hai mạng này và cấu hình một máy chủ email để cho

phép các máy trạm ở hai mạng truyền nhận email trong một môi trường an toàn. Dưới

đây là các mục tiêu cụ thể:

Triển khai các CA trong cả 2 mạng Windows và Linux

Cấu hình cấu trúc phân cấp CA trên Windows

Cấu hình CA trên Linux

Thiết lập cross-trust giữa các CA trong mạng Windows và Linux

Triển khai và cấu hình email server và các email client để trao đổi email an toàn

giữa 2 mạng Windows và Linux

1.5 Mô hình và yêu cầu chuẩn bị

Để đạt được các mục tiêu ở trên, trong bài thực hành này cần chuẩn bị 7 máy. Mô hình

mạng logic và các yêu cầu chuẩn bị cho từng máy như sau:

Page 16: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

15

Hình 6 – Mô hình triển khai mạng tin cậy

Tên máy

tính Tên đầy đủ

Domai

n Địa chỉ IP

Hệ điều

hành Vai trò

RootCA rootca.uit.vm

uit.vm

10.0.10.1 /

8

Windows

Server 2003

Domain

Controller,

DNS server,

Root CA

SubCA subca.uit.vm 10.0.10.2 /

8

Windows

Server 2003

Subordinate

CA

RA ra.uit.vm 10.0.10.3 /

8

Windows

Server 2003

Registration

Authority

WinClient1 winclient1.uit.v

m

10.0.10.4 /

8 Windows XP Máy trạm

DMZW dmzw.uit.vm 10.0.20.1 /

8

Windows

Server 2003

SSL Website

Email Server

LinRootCA linrootca.uit.vm 10.0.30.1 /

8

Ubuntu

Server 10.10 Root CA

LinClient1 linclient1.uit.vm 10.0.30.2 /

8

Ubuntu

11.10 Máy trạm

Bảng 1 – Yêu cầu chuẩn bị triển khai

Page 17: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

16

1.6 Các bước thực hiện

1.6.1 Xây dựng Windows Domain

Trong phần này, ta sẽ tạo một Windows domain (uit.vm) có tích hợp DNS. Sau đó, cấu

hình cho các máy không tham gia vào Windows domain này gồm LinRootCA,

LinClient1, DMZW cũng nằm trong DNS namespace là uit.vm.

Windows domain uit.vm sẽ có một domain controller là máy Root CA và 3 member

server là các máy SubCA, RA, DMZW cùng với một client là máy WinClient1.

Hai máy Linux là LinRootCA và LinClient1 cũng sẽ tham gia vào DNS domain của uit.vm,

vì thế tên đầy đủ của chúng lần lượt là linrootca.uit.vm và linclient1.uit.vm.

Cho mục đích thử nghiệm nên ở đây giả định rằng cả 7 máy đều cùng lớp mạng là

10.x.x.x / 255.0.0.0. Phiên bản hệ điều hành chạy cũng như vai trò của từng máy được

liệt kê ở bảng trên.

Bước 1-1: Tạo domain đầu tiên trong một forest mới

Thực hiện tại máy RootCA

1 Đăng nhập bằng tài khoản quản trị.

2 Thiết lập Preferred DNS Server là địa chỉ IP của chính nó (10.0.10.1).

3 Vào Start | Run, chạy lệnh dcpromo để khởi chạy trình cài đặt Active

Directory. Sau đó làm theo các hướng dẫn để cài đặt máy RootCA làm

Domain Controller cho một domain mới (uit.vm) trong một forest mới.

4 Khởi động lại máy để hoàn tất.

Page 18: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

17

Hình 7 – Tạo domain đầu tiên trong một forest mới

Bước 1-2: Cấu hình DNS

Thực hiện tại máy RootCA

1 Vào Administrative Tools | DNS.

2 Tạo một Reverse Lookup Zone cho domain uit.vm.

3 Bật tùy chọn Allow Dynamic Updates cho cả 2 zone Forward và Reverse.

4 Tạo các A record và PTR record cho các máy LinRootCA, DMZW, LinClient1.

5 Sử dụng lệnh nslookup để kiểm tra hoạt động của DNS.

Hình 8 – Tạo các A record

Page 19: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

18

Cài đặt CA

Kế tiếp ta sẽ bổ sung vào domain một thành phần quan trọng là Enterprise Root CA. Tới

giai đoạn này, giả định là các chính sách cần thiết cho hoạt động của PKI đã được tạo và

chấp thuận, và các máy chủ quan trọng trong hạ tầng đã được kiện toàn bảo mật.

Bước 1-3: Cài đặt Enterprise Root CA

Thực hiện tại máy RootCA

1 Tạo một thư mục C:\labcerts để lưu trữ chứng chỉ số và thông tin về các CA để

người dùng trong mạng có thể đọc được.

2 Vào Add Remove Programs và chạy Add/Remove Windows Components

rồi chọn cài đặt gói Certificate Services.

3 Làm theo các hướng dẫn, lưu ý chọn tùy chọn Enterprise Root CA, đặt CA

name là UIT Root CA, chỉ định mục Store Configuration Information In A

Shared Folder là đường dẫn C:\labcerts và giữ nguyên mặc định các tùy chọn

còn lại.

4 Chờ cho quá trình cài đặt hoàn tất.

Hình 9 – Cài đặt Enterprise Root CA

Page 20: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

19

1.6.2 Cấu hình Enterprise CA

Trong phần này, ta sẽ cấu hình cho Enterprise Root CA bao gồm:

CRL publication interval: khoảng thời gian mà sau đó CA sẽ cập nhật danh sách

các chứng chỉ không còn hiệu lực (CRL).

Certificate template: các mẫu chứng chỉ được tạo sẵn.

Default GPO: thiết lập để các máy tham gia vào domain tự động nhận được

chứng chỉ

Domain user: tạo các tài khoản người dùng

Hierarchical PKI: tạo cấu trúc CA phân cấp với sự có mặt của một Sub. CA và

một RA.

Bước 2-1: Cấu hình Enterprise Root CA

Thực hiện tại máy RootCA

1 Vào Administrative Tools | Certification Authority.

2 Mở rộng nhánh UIT Root CA và nhấn phải chuột lên mục Certificate

Templates rồi chọn New | Certificate Template to Issue

3 Trong cửa sổ Enable Certificate Templates, chọn 2 cái là Smartcard User và

Enrollment Agent rồi nhấn OK.

4 Trở lại cửa sổ Certificate Authority, nhấn phải chuột lên mục Revoked

Certificates và chọn Properties. Sau đó đổi mục CRL publication interval là

1 giờ. Nhấn OK.

5 Đóng cửa sổ CA MMC để hoàn tất.

Hình 10 – Thêm mới các Certificate Template

Page 21: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

20

Hình 11 – Thiết lập CRL publication interval

Certificate Templates

Các chứng chỉ mẫu đã được Microsoft xây dựng sẵn và ta đã vừa kích hoạt thêm 2 loại

chứng chỉ (Smartcard User và Enrollment Agent) ở bước trên. Tuy nhiên, để người dùng

hay máy tính có thể nhận được các chứng chỉ dựa trên những mẫu chứng chỉ thì các đối

tượng đó cần có được các quyền read và enroll thích hợp.

Bước 2-2: Cấu hình Certificate Template

Thực hiện tại máy RootCA

1 Vào Administrative Tools | Active Directory Users and Computers.

2 Trong domain uit.vm, tạo 1 group tên Enrollers, giữ nguyên mục Group

scope là Global và mục Group type là Security.

3 Vào Administrative Tools | Active Directory Sites and Services.

4 Nhấn phải chuột lên domain uit.vm và chọn View | Show Services Node.

Sau đó duyệt đến mục Services | Public Key Services | Certificate

Templates.

5 Ở khung bên phải sẽ hiện ra danh sách các chứng chỉ mẫu, nhấn đúp vào

dòng Enrollment Agent. Tại cửa sổ Properties mới hiện ra, chọn tab

Security, rồi nhấn Add và thêm vào group Enrollers (vừa tạo ở trên) và gán

thêm quyền enroll cho nhóm này (ngoài quyền read đã được chọn sẵn).

6 Làm tương tự như bước 5 cho mẫu chứng chỉ Smartcard User.

7 Đóng hết cửa sổ MMC để hoàn tất.

Page 22: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

21

Hình 12 – Cấu hình Certificate Template

Group Policy Objects (GPO)

Thông qua GPO các máy như domain controller, domain member có thể tự động nhận

về các chứng chỉ của chúng khi chúng tham gia (join) vào domain. Cũng nhờ GPO mà ta

có thể điều khiển việc một máy sẽ phản ứng như thế nào nếu thẻ thông minh

(smartcard) của một người dùng đã đăng nhập nào đó bị rút ra khỏi thiết bị đọc thẻ.

Bước 2-3: Chỉnh sửa Default GPO

Thực hiện tại máy RootCA

1 Mở Active Directory Users and Computers.

2 Nhấn phải chuột lên domain uit.vm và chọn Properties. Cửa sổ mới hiện ra,

chọn tab Group Policy rồi chọn Default Domain Policy và nhấn Edit.

3 Cửa sổ GPO Editor hiện ra, duyệt đến nhánh Computer Configuration |

Windows Settings | Security Settings | Public Key Polices | Automatic

Certificate Requests Settings. Ở khung bên phải, nhấn phải chuột và chọn

New | Automatic Certificate Request.

4 Một cửa sổ mới hiện ra, nhấn Next. Trong danh sách Certificate templates,

chọn Computer rồi nhấn Next và cuối cùng nhấn Finish. Sau đó, làm tương

tự đối với mẫu chứng chỉ dành cho Domain Controller.

Page 23: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

22

5 Trở lại cửa sổ GPO Editor, duyệt đến nhánh Computer Configuration |

Windows Settings | Security Settings | Security Options. Ở khung bên

phải, nhấn đúp chuột vào dòng Interactive logon: Smart card removal

behavior.

6 Ở cửa sổ mới hiện ra, đánh dấu kiểm vào mục Define this policy setting và

chọn Lock Workstation và nhấn OK.

7 Đóng hết cửa sổ để hoàn tất.

Hình 13 – Chỉnh default GPO để máy tính trong domain tự động xin và nhận chứng chỉ

Hình 14 – Chỉnh default GPO để tự động khóa máy tính khi người dùng rút smartcard

Page 24: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

23

End Entities – Người dùng

Trong phần này, ta sẽ tạo và cấu hình cho các domain user - là các thực thể đầu cuối

(end entity) trong toàn bộ cấu trúc phân cấp CA mà sẽ tham gia vào hạ tầng PKI.

Bước 2-4: Tạo các user trong domain

Thực hiện tại máy RootCA

1 Mở Active Directory Users and Computers.

2 Tạo mới 5 user có Logon name là: enroller1, winuser1, winuser2, winuser3,

winuser4 và tất cả đều thuộc nhóm Domain Users, riêng tài khoản enroller1

còn nằm trong nhóm Enrollers.

Hình 15 – Tạo các domain user

Đăng nhập với smartcard

Với mẫu chứng chỉ Smartcard User cộng với các quyền hạn được cấu hình hợp lý thì

một CA có thể cấp chứng chỉ được lưu trong smartcard cho người dùng. Sau đó nó có

thể được dùng để đăng nhập, bảo mật cho email, hay mã hóa hệ thống file bằng EFS.

Việc yêu cầu người dùng phải có smartcard để đăng nhập vào domain là một biện pháp

chứng thực mạnh (gồm 2 yếu tố là mật khẩu và smartcard) giúp tăng cường độ tin cậy

cho mạng.

Page 25: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

24

Bước 2-5: Cấu hình đăng nhập với smartcard

Thực hiện tại máy RootCA

1 Mở Active Directory Users and Computers.

2 Nhấn đúp vào tài khoản winuser1 để mở cửa sổ Properties của nó.

3 Tại tab General, mục E-mail để là [email protected]. Tại tab Dial-in, chọn

Allow access cho mục Remote Access Permission. Qua tab Account, bên

dưới danh sách Account options chọn mục Smart card is required for

interactive logon, sau đó nhấn OK.

4 Làm tương tự từ bước 2 và 3 cho tài khoản winuser2.

Hình 16 – Thiết lập khi người dùng đăng nhập phải có smartcard

End Entities – Máy tính

Ở bước 2-3, ta đã cấu hình GPO để các máy tính (gồm cả domain controller) trong

mạng sẽ tự động nhận được các chứng chỉ khi chúng thực hiện tham gia vào domain.

Bây giờ, ta sẽ cấu hình để các máy đang nằm trong Workgroup tham gia domain. Sau

đó vào CA để kiểm tra xem các máy đó đã nhận được chứng chỉ hay chưa.

Page 26: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

25

Bước 2-6: Tham gia Domain

Thực hiện tại các máy RA, SubCA, Winclient1 và DMZW

1 Đăng nhập bằng tài khoản quản trị.

2 Thiết lập Preferred DNS Server là địa chỉ IP của máy RootCA (10.0.10.1).

3 Thực hiện việc join máy vào domain uit.vm (sử dụng tài khoản Administrator

trên máy RootCA).

4 Khởi động lại máy để hoàn tất.

Hình 17 – Thực hiện join các máy vào domain

Tạo cấu trúc phân cấp CA

Trong phần này ta sẽ tạo cấu trúc phân cấp theo mô hình Hierarchical PKI cho domain

uit.vm. Với máy rootca.uit.vm làm Root CA, máy subca.uit.vm làm Subordinate CA và

máy ra.uit.vm làm RA.

Bước 2-7: Cài đặt Enterprise Subordinate CA

Thực hiện tại máy SubCA

1 Đăng nhập vào domain uit.vm bằng tài khoản thuộc cả 2 nhóm Enterprise

Admins và Domain Admins (ở đây là tài khoản Administrator).

2 Tạo một thư mục tại C:\labcert.

3 Mở Add/Remove Windows Components và cài đặt gói Certificate Services.

Page 27: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

26

4 Làm theo các hướng dẫn, lưu ý chọn tùy chọn Enterprise Subordinate CA,

đặt CA name là UIT Sub CA, chỉ định mục Store Configuration Information

In A Shared Folder là đường dẫn C:\labcerts, Parent CA là máy RootCA và

giữ nguyên mặc định các tùy chọn còn lại.

5 Chờ cho quá trình cài đặt hoàn tất.

Hình 18 – Cài đặt Enterprise Subordinate CA

Cấu hình Subordinate CA

Các Sub. CA trong cấu trúc phân cấp không nhất thiết phải có cấu hình giống với Root

CA và thực ra, nó có sự khác biệt như thời hạn hiệu lực của chứng chỉ mà nó cấp luôn

nhỏ hơn của Root CA và điều này có thể được kiểm soát tại Root CA.

Bước 2-8: Cấu hình Enterprise Subordinate CA

Thực hiện tại máy SubCA

1 Đăng nhập vào domain với tài khoản quản trị.

2 Vào Administrative Tools | Certification Authority.

3 Mở rộng nhánh UIT Sub CA và nhấn phải chuột lên mục Certificate

Templates rồi chọn New | Certificate Template to Issue.

4 Trong cửa sổ Enable Certificate Templates, chọn 2 cái là Smartcard User và

Enrollment Agent rồi nhấn OK.

Page 28: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

27

5 Trở lại cửa sổ Certificate Authority, nhấn phải chuột lên mục Revoked

Certificates và chọn Properties. Sau đó đổi mục CRL publication interval là

1 giờ. Nhấn OK.

6 Nhấn chuột phải lên UIT Sub CA và chọn Properties.

7 Trên tab General, nhấn nút View Certificate để xem các thông tin chứa trong

chứng chỉ của máy SubCA. Xác nhận rằng thời hạn hiệu lực (Valid from … to

…) của nó nhỏ hơn so với chứng chỉ của Root CA.

8 Đóng hết các cửa sổ để hoàn tất.

Hình 19 – Cấu hình Enterprise Subordinate CA

Cài đặt RA

Các chức năng của RA thì đơn giản hơn là CA, nó không có quyền tạo hoặc quản lý các

chứng chỉ mà đơn giản làm trung gian giữa các end entity và CA. Nó nhận và chuyển

tiếp các yêu cầu tới cho CA. Sau đó nó nhận phản hồi từ CA và gửi trả lời đó lại cho end

entity. Có thể coi RA là client-side của CA và trong Windows nó cũng được nhắc tới như

là Web Enrollment Support.

Page 29: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

28

Bước 2-9: Cài đặt RA

Thực hiện tại máy RA

1 Đăng nhập vào domain bằng tài khoản quản trị.

2 Mở Add/Remove Windows Components và chọn cài gói Application

Server (chọn cài luôn thành phần ASP.NET). Sau đó cài tiếp gói Certificate

Services (lưu ý, nhấn Details và chỉ chọn cài mục Certificate Services Web

Enrollment Support).

3 Làm theo hướng dẫn của trình cài đặt, lưu ý Browse đến mục UIT Sub CA để

RA sẽ làm trung gian giữa máy SubCA và các end entity.

4 Chờ cho quá trình cài đặt hoàn tất.

Hình 20 – Cài đặt RA

SSL Website

Kế tiếp, ta sẽ tạo và cấu hình một webiste có sử dụng SSL. Điều này giúp đảm bảo an

toàn cho người dùng và CA thực hiện quá trình yêu cầu và cấp chứng chỉ qua giao diện

web. Ở đây có thể sử dụng default Website (tự động được tạo ra khi cài IIS) tuy nhiên

việc cài đặt CA đã đặt virtual directory của nó ngay dưới default Website. Vì thế, ta cần

tạo một website thay thế và cấu hình các thuộc tính của nó để hỗ trợ SSL để không làm

ảnh hưởng tới cài đặt của default Website.

Page 30: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

29

Bước 9-10: Cài đặt IIS và tạo một website

Thực hiện tại máy DMZW

1 Đăng nhập vào domain bằng tài khoản quản trị.

2 Mở Add/Remove Windows Components và chọn cài đặt gói Application

Server.

3 Tạo một thư mục tại C:\inetpub\sslweb, trong đó tạo một file sslweb.html có

nội dung sau:

<html>

<head>

<title> A simple SSL site </title>

</head>

<body>

<H1> This is a secure website </H1>

<P> This site is protected via SSL. </P>

</body>

</html>

4 Vào Administrative Tools | IIS Manager. Nhấn phải chuột lên Default Web

Site và chọn Stop.

5 Tạo mới một website có các cài đặt sau:

- Mục Web Site Description: sslweb

- Giữ nguyên các thiết lập IP address và listening port

- Mục Web site home directory page: C:\inetpub\sslweb

- Giữ nguyên các thiết lập access permission

- Chọn file sslweb.html làm trang chủ của website

6 Thử truy cập vào địa chỉ http://dmzw.uit.vm và xác nhận nội dung file

sslweb.html được hiển thị. Lưu ý, nếu gặp thông báo xác thực thì đăng nhập

bằng tài khoản quản trị domain hoặc nếu muốn bỏ qua việc xác thực thì vào

Properties của website, qua tab Directory Security, mục Authentication

and access control nhấn Edit, sau đó bỏ chọn mục Integrated Windows

authentication.

Page 31: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

30

Hình 21 – Tạo một website

Bước 2-11: Cấu hình SSL cho website

Thực hiện trên nhiều máy tính

1 Trong IIS Manager, thực hiện Stop với website sslweb.

2 Trong Properties của sslweb, chọn tab Directory Security và tại mục Secure

communications nhấn Server Certificate.

3 Trình cài đặt hiện ra, lần lượt chọn hoặc thiết lập như sau:

- Nhấn Create A New Certificate

- Nhấn Prepare The Request Now, But Send It Later

- Name là sslweb, Bit Length là 1024

- Organization là DMZW Sites, Organizational Unit là sslweb

- Common Name là sslweb.dmzw.uit.vm

- Country là Vietnam, State là Ho Chi Minh, City là Bien Hoa

- File chứa nội dung yêu cầu cấp chứng chỉ tên là sslwebreq.txt được lưu ở ổ

C:\

4 Mở file C:\sslwebreq.txt và copy toàn bộ nội dung trong đó.

Page 32: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

31

Hình 22 – Tạo một file yêu cầu cấp chứng chỉ cho website

5 Truy cập vào địa chỉ http://ra.uit.vm/certsrv (sử dụng tài khoản quản trị

domain nếu được hỏi xác thực).

6 Tại giao diện Microsoft Certificate Services -- UIT Sub CA, lần lượt chọn

lựa hoặc thiết lập như sau:

- Nhấn Request a certificate

- Nhấn Submit an advanced certificate request

- Nhấn Submit a certificate request by using a base-64-encoded CMC or

PKCS #10 file,...

- Paste nội dung của file sslwebreq.txt vào khung Saved Request và mục

Certificate Template chọn Web Server rồi nhấn Submit.

- Chọn DER Encoded và nhấn Download CA certificate.

- Lưu file tại C:\sslwebcert.cer

Page 33: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

32

Hình 23 – Gửi yêu cầu cấp và tải về chứng chỉ cho website

7 Vào Properties của website sslweb, quay lại mục Secure communications,

nhấn Server Certificate rồi lần lượt:

- Chọn Process The Pending Request And Install The Certificate

- Chọn chứng chỉ vừa tải về nằm ở C:\sslwebcert.cer

Hình 24 – Cài đặt chứng chỉ SSL cho website

Page 34: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

33

8 Dưới Secure Communications, nhấn Edit rồi đánh dấu vào mục Require

Secure Channel và Require 128-bit Encryption.

Hình 25 – Bắt buộc người dùng truy cập webiste qua SSL

9 Qua tab Web Site và nhập 443 vào ô SSL Port. Nhấn OK.

10 Thực hiện Start với website sslweb.

11 Từ máy DMZW hoặc 1 máy khác trong mạng, truy cập vào địa chỉ

http://dmzw.uit.vm. Ta sẽ nhận được thông báo là trang này bắt buộc phải

truy cập qua HTTPS.

12 Thay bằng địa chỉ https://dmzw.uit.vm. Ta sẽ thấy Security Alert thông báo là

Common name (trường Subject) trong chứng chỉ là sslweb.dmzw.uit.vm không

khớp với tên miền trong địa chỉ là dmzw.uit.vm. Chọn Proceed để tiếp tục

truy cập.

Page 35: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

34

Hình 26 – Kiểm tra việc truy cập website qua SSL

1.6.3 Thiết lập Linux CA

Trong phần này, để triển khai hạ tầng PKI CA trên nền Linux ta sẽ sử dụng phần mềm

mã nguồn mở EJBCA thay cho trong sách là công cụ CAtool đã quá cũ và không còn

được hỗ trợ.

Giới thiệu

Được xây dựng trên nền công nghệ JEE, EJBCA là một PKI CA mạnh mẽ, ổn định, hiệu

suất cao và độc lập nền tảng, đáp ứng nhu cầu triển khai một hạ tầng PKI đầy đủ cho

các tổ chức vừa và lớn.

Tham khảo thêm các tính năng của nó tại địa chỉ http://www.ejbca.org/features.html

Mọi thông tin, tài liệu cần thiết để sử dụng nó có tại trang chủ http://www.ejbca.org/,

sau đây là các bước cài đặt và cấu hình.

Bước 3-1: Cài đặt EJBCA

Thực hiện tại máy LinRootCA

Page 36: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

35

1 Đăng nhập với tài khoản root.

2 Mở một cửa sổ Termnial là ejbca.

3 Copy 2 bộ cài là jboss-5.1.0.GA-jdk6.zip (JBoss Application Server) và

ejbca_4_0_9.zip (EJBCA) vào thư mục /root. Địa chỉ tải về 2 gói này là:

http://ncu.dl.sourceforge.net/project/ejbca/ejbca4/ejbca_4_0_9/ejbca_4_0_9.zip

http://nchc.dl.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-

jdk6.zip

4 Cài đặt các gói phần mềm cần thiết bằng lệnh

#apt-get install openjdk-6-jdk ant ant-optional unzip ntp

(lưu ý, cần có kết nối Internet để tải các gói này về).

5 Giải nén 2 bộ cài ở trên

#unzip jboss-5.1.0.GA-jdk6.zip

#unzip ejbca_4_0_9.zip

6 Cấu hình để EJBCA có thể tìm thấy JBoss

#echo "appserver.home=/home/user/jboss-5.1.0.GA" >>

ejbca_4_0_9/conf/ejbca.properties

7 Build và deploy EJBCA cho JBoss

#cd ejbca_4_0_9

#ant bootstrap

8 Mở một cửa sổ Termnial mới là jboss và khởi chạy JBoss

#jboss-5.1.0.GA/bin/run.sh

9 Trở lại cửa sổ ejbca và chạy lệnh sau để khởi tạo CA

#ant install

Tới đây, khi được hỏi cung cấp các thông số, ta nhập vào như sau:

- CA name: Linux Root CA

- CN=LinRootCA, O=UIT, C=VN

- httpsserver hostname: linrootca.uit.vm

Page 37: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

36

Hình 27 – Cài đặt EJBCA

Và chấp nhận tất cả các cài đặt mặc định còn lại. Sau đó, chạy tiếp lệnh:

#ant deploya

10 Trở lại cửa sổ jboss và khởi động lại JBoss

#ctrl-c

#jboss-5.1.0.GA/bin/run.sh

11 Client certificate dùng để xác thực người dùng SuperAdmin khi truy cập vào

trang quản trị EJBCA là file nằm ở

/home/root/ejbca_4_0_9/p12/superadmin.p12.

Ta sẽ Import nó vào trình duyệt web với mật khẩu bảo vệ ở đây là ejbca.

Page 38: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

37

Hình 28 – Import client certificate vào trình duyệt web

12 Truy cập vào địa chỉ https://linrootca.uit.vm:8443/ejbca để kiểm tra việc cài

đặt EJBCA đã thành công.

Hình 29 – Trang chủ quản lý EJBCA sau khi cài đặt xong

Page 39: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

38

Bước 3-2: Tạo và cấp chứng chỉ cho máy trạm Linux

Thực hiện tại máy LinClient1

1 Truy cập vào địa chỉ https://linrootca.uit.vm:8443/ejbca. Tại nhóm

Miscellaneous, chọn Administration.

2 Tại nhóm RA Functions, chọn Add End Entity.

3 Khung bên phải, nhập vào các thông tin sau:

- End entity profile: EMPTY

- Username: linclient1

- Password: thangmv90

- Email address: [email protected]

- CN, Common name: LinClient1

- O, Organization: UIT

- C, Country: VN

- Certificate profile: ENDUSER

- CA: Linux Root CA

- Token: P12 file

Rồi nhấn Add

Hình 30 – Tạo end entity trong EJBCA

Page 40: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

39

4 Chọn Public Web để trở về trang chủ của EJBCA.

5 Tại mục Enroll, chọn Create Browse Certificate, khung bên phải đăng nhập

với Username là linclient1 và Password là thangmv90.

6 Tại trang EJBCA Token Certificate Enrollment, mục Options chọn:

- Key length: 1024 bits (hoặc cao hơn nếu muốn).

- Certificate profile: ENDUSER.

Rồi nhấn OK. Sau đó lưu chứng chỉ (file có tên linclient1.p12) tại Desktop.

Hình 31 – Tải về chứng chỉ cho máy trạm Linux

7 Thực hiện Import chứng chỉ vừa tải về ở trên vào trình duyệt với, với mật

khẩu bảo vệ là thangmv90.

Page 41: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

40

Hình 32 – Import chứng chỉ của máy trạm Linux vào trình duyệt web

1.6.4 Tạo Cross Trust

Môi trường mạng tin cậy yêu cầu các loại mạng khác nhau phải có khả năng tin cậy lẫn

nhau. Trong phần này, ta sẽ tạo cross trust cho 2 mạng là Windows và Linux để Root CA

ở mạng này sẽ tin cậy Root CA ở mạng kia.

Bước 4-1: Trusting Linux Root CA

Thực hiện tại máy RootCA

1 Đăng nhập vào domain với quyền quản trị

2 Mở trình duyệt web Internet Explorer và thực hiện như bước 11 của mục Bước

3-1 để import client certificate dùng để truy cập vào trang quản trị của EJBCA.

3 Truy cập vào địa chỉ https://linrootca.uit.vm:8443/ejbca, mục Retrieve ta nhấn

vào Fetch CA certificates.

4 Tại trang Fetch CA & OCSP certificates, nhấn vào Download to Internet

Explorer rồi chọn lưu chứng chỉ về máy. Thử mở thì sẽ thấy chứng chỉ này của

Linux Root CA chưa được tin cậy. Giờ ta sẽ cài nó vào kho Trusted Root

Certification Authorities của Windows.

Page 42: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

41

Hình 33 – Tải về máy Windows chứng chỉ của Linux Root CA

5 Mở Default GPO của domain uit.vm và duyệt tới nhánh Computer

Configuration | Windows Settings | Security Settings | Public Key Polices

| Trusted Root Certification Authorities.

6 Nhấn chuột phải chọn Import rồi làm theo hướng dẫn. Để cập nhật ngay

GPO này tới tất cả các máy trong domain để chúng cũng tin tưởng Linux Root

CA, ta vào Start | Run và chạy lệnh gpupdate /force.

Hình 34 – Import chứng chỉ của Linux Root CA trong Default GPO

Page 43: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

42

7 Thử sao chép chứng chỉ của LinuxRootCA qua máy WinClient1 và mở nó, ta sẽ

thấy chứng chỉ này đã được tin cậy.

Hình 35 – Kiểm tra các máy Windows trong domain đã tin cậy chứng chỉ của Linux Root

CA

Bước 4-2: Trusting Windows Root CA

Thực hiện trên 2 máy LinRootCA và RootCA

1 Tại máy RootCA, vào Certificates MMC, duyệt tới nhánh Trusted Root

Certification Authorities và thực hiện Export chứng chỉ của UIT Root CA.

Sau đó sao chép nó sang máy LinRootCA.

Page 44: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

43

Hình 36 – Export chứng chỉ của Windows Root CA

2 Tại máy LinRootCA, truy cập vào trang quản lý của EJBCA và vào mục

Administration.

3 Dưới mục CA Functions, vào Edit Certificate Authorities rồi nhấn nút

Import CA certificate… Sau đó tìm đến chứng chỉ của Windows Root CA ở

trên và thực hiện Import.

Hình 37 – Import chứng chỉ của Windows Root CA

Page 45: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

44

Kiểm tra trust

Trong phần này ta sẽ từ máy trạm Linux kết nối tới SSL website đã tạo ở bước 9-10. Ở

lần truy cập đầu thì có cảnh báo Security Alert do chứng chỉ của Sub. CA cấp cho

webserver chưa được tin cậy. Sau đó ta sẽ cấu hình để trình duyệt web trên máy Linux

tin tưởng Sub. CA và kiểm tra việc truy cập suôn sẻ trong lần thứ 2.

Bước 4-3: Kiểm tra trust

Thực hiện tại máy LinClient1

1 Truy cập vào địa chỉ http://dmzw.uit.vm và nhận được thông báo là bắt buộc

phải dùng HTTPS

2 Truy cập lại bằng https://dmzw.uit.vm thì nhận được cảnh báo đối với website

này do chứng chỉ của Sub. CA chưa được tin cậy.

3 Kết nối đến http://ra.uit.vm và thực hiện tải về và import chứng chỉ của UIT

Sub CA vào trình duyệt.

4 Sau đó kết nối lại đến https://dmzw.uit.vm và chấp nhận Security Warning do

subject trong chứng chỉ không khớp với domain trong địa chỉ.

5 Giờ có thể truy cập an toàn tới SSL website.

1.6.5 Bảo mật email

Trong phần này ta sẽ thực hiện cài đặt và cấu hình một mail server cung cấp dịch vụ thư

điện tử cho các máy trạm trong cả 2 mạng Windows và Linux. Ở đây, các người dùng sẽ

phải sử dụng chứng chỉ số nhận được từ các CA để đảm bảo việc trao đổi email được an

toàn, tức là có thể xác nhận người gửi là ai cũng như là nội dung thư đều được mã hóa.

Triển khai mail server

Ta sẽ cài đặt phần mềm Mdeamon (phiên bản miễn phí) chạy trên máy DMZW để thử

nghiệm trong mô hình này. Sau đó ta cũng sẽ cấu hình các tài khoản người dùng trên

đây. Cuối cùng ta sẽ thiết lập trong các email client trên Windows và Linux để người

dùng có thể sử dụng chữ ký số và mã hóa để cho email.

Bước 5-1: Cài đặt và cấu hình mail server Mdeamon

Thực hiện trên máy DMZW (đăng nhập vào môi trường local với quyền admin)

Page 46: Building trusted networks (manthang)

Mẫn Thắng | [email protected]

Building Trusted Networks

45

1 Cài đặt Mdeamon với domain name là uit.vm và IMAP/POP3 server là

dmzw.uit.vm

(chi tiết các bước có trong video)

2 Tạo 2 tài khoản email cho mạng Linux là [email protected][email protected]

Bước 5-2: Cấu hình các email client

Thực hiện trên máy WinClient1

1 Đăng nhập vào domain bằng tài khoản winuser3 (vì ở trên winuser1 và

winuser2 khi đăng nhập phải có smartcard nên không có điều kiện thử

nghiệm với 2 tài khoản này).

2 Chạy chương trình Outlook Express và thiết lập tài khoản email

[email protected] kết nối tới mail server là dmzw.uit.vm.

3 Gửi yêu cầu và nhận chứng chỉ số từ Sub. CA cho tài khoản email của

winuser3.

Thực hiện trên máy LinClient1

1 Chạy chương trình Thunderbird và thiết lập tài khoản email [email protected]

kết nối tới mail server là dmzw.uit.vm

2 Import public key của winuser3 vào Thunderbird.

Thực hiện trao đổi email có chữ ký và mã hóa giữa 2 tài khoản này.

(Chi tiết các bước vui lòng tham khảo video minh họa).

4. TỔNG KẾT

Trong chuyên đề này, chúng ta đã được ôn lại và vận dụng kiến thức của nhiều chuyên

đề trước trong việc xây dựng và triển khai một mạng tin cậy.

Ta cũng đã tìm hiểu đã xây dựng được 2 mạng nhỏ Windows và Linux mà có sử dụng

chứng chỉ số để đảm bảo an toàn cho các phiên truyền thông như duyệt web, gửi email.

5. TÀI LIỆU THAM KHẢO

Giáo trình SCNA Enterprise Solutions Study Guide, NXB Element K, năm 2004.

--- ---