Chuyên đề SCNA xây dựng mạng tin cậy (Building Trusted Networks)

pdf 46 trang phuongnguyen 5490
Bạn đang xem 20 trang mẫu của tài liệu "Chuyên đề SCNA xây dựng mạng tin cậy (Building Trusted Networks)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfchuyen_de_scna_xay_dung_mang_tin_cay_building_trusted_networ.pdf

Nội dung text: Chuyên đề SCNA xây dựng mạng tin cậy (Building Trusted Networks)

  1. Chuyên đề SCNA Xây Dựng Mạng Tin Cậy Building Trusted Networks Mẫn Thắng | manvanthang@gmail.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.
  2. Building Trusted Networks 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 Mẫn Thắng | manvanthang@gmail.com 1
  3. Building Trusted Networks 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 Mẫn Thắng | manvanthang@gmail.com 2
  4. Building Trusted Networks 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 Mẫn Thắng | manvanthang@gmail.com 3
  5. Building Trusted Networks 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 Mẫn Thắng | manvanthang@gmail.com 4
  6. Building Trusted Networks 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 Mẫn Thắng | manvanthang@gmail.com 5
  7. Building Trusted Networks 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ị. Mẫn Thắng | manvanthang@gmail.com 6
  8. Building Trusted Networks 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: Mẫn Thắng | manvanthang@gmail.com 7
  9. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 8
  10. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 9
  11. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 10
  12. Building Trusted Networks 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, Mẫn Thắng | manvanthang@gmail.com 11
  13. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 12
  14. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 13
  15. Building Trusted Networks 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: Mẫn Thắng | manvanthang@gmail.com 14
  16. Building Trusted Networks Hình 6 – Mô hình triển khai mạng tin cậy Tên máy Domai Hệ điều Tên đầy đủ Địa chỉ IP Vai trò tính n hành Domain 10.0.10.1 / Windows Controller, RootCA rootca.uit.vm 8 Server 2003 DNS server, Root CA 10.0.10.2 / Windows Subordinate SubCA subca.uit.vm 8 Server 2003 CA 10.0.10.3 / Windows Registration RA ra.uit.vm 8 Server 2003 Authority uit.vm winclient1.uit.v 10.0.10.4 / WinClient1 Windows XP Máy trạm m 8 10.0.20.1 / Windows SSL Website DMZW dmzw.uit.vm 8 Server 2003 Email Server 10.0.30.1 / Ubuntu LinRootCA linrootca.uit.vm Root CA 8 Server 10.10 10.0.30.2 / Ubuntu LinClient1 linclient1.uit.vm Máy trạm 8 11.10 Bảng 1 – Yêu cầu chuẩn bị triển khai Mẫn Thắng | manvanthang@gmail.com 15
  17. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 16
  18. Building Trusted Networks 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 Mẫn Thắng | manvanthang@gmail.com 17
  19. Building Trusted Networks 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 Mẫn Thắng | manvanthang@gmail.com 18
  20. Building Trusted Networks 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 Mẫn Thắng | manvanthang@gmail.com 19
  21. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 20
  22. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 21
  23. Building Trusted Networks 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 Mẫn Thắng | manvanthang@gmail.com 22
  24. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 23
  25. Building Trusted Networks 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à winuser1@uit.vm. 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. Mẫn Thắng | manvanthang@gmail.com 24
  26. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 25
  27. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 26
  28. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 27
  29. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 28
  30. Building Trusted Networks 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: A simple SSL site This is a secure website This site is protected via SSL. 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ỉ 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. Mẫn Thắng | manvanthang@gmail.com 29
  31. Building Trusted Networks 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 đó. Mẫn Thắng | manvanthang@gmail.com 30
  32. Building Trusted Networks 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ỉ (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 Mẫn Thắng | manvanthang@gmail.com 31
  33. Building Trusted Networks 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 Mẫn Thắng | manvanthang@gmail.com 32
  34. Building Trusted Networks 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ỉ 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ỉ 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. Mẫn Thắng | manvanthang@gmail.com 33
  35. Building Trusted Networks 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ỉ Mọi thông tin, tài liệu cần thiết để sử dụng nó có tại trang chủ 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 Mẫn Thắng | manvanthang@gmail.com 34
  36. Building Trusted Networks 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à: 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 Mẫn Thắng | manvanthang@gmail.com 35
  37. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 36
  38. Building Trusted Networks Hình 28 – Import client certificate vào trình duyệt web 12 Truy cập vào địa chỉ để 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 Mẫn Thắng | manvanthang@gmail.com 37
  39. Building Trusted Networks 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ỉ 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: linclient1@uit.vm - 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 Mẫn Thắng | manvanthang@gmail.com 38
  40. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 39
  41. Building Trusted Networks 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ỉ 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. Mẫn Thắng | manvanthang@gmail.com 40
  42. Building Trusted Networks 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 Mẫn Thắng | manvanthang@gmail.com 41
  43. Building Trusted Networks 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. Mẫn Thắng | manvanthang@gmail.com 42
  44. Building Trusted Networks 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 Mẫn Thắng | manvanthang@gmail.com 43
  45. Building Trusted Networks 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ỉ 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 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 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 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) Mẫn Thắng | manvanthang@gmail.com 44
  46. Building Trusted Networks 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à linuser1@uit.vm và winuser3@uit.vm 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 winuser3@uit.vm 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 linuser1@uit.vm 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.  Mẫn Thắng | manvanthang@gmail.com 45