xây dựng hệ thống mạng trên ubuntu

102
1 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính TRÍCH YẾU Đề tài đồ án chuyện ngành của chúng tôi là : xây dựng hệ thống mạng ubuntu bao gồm LDAP servre, Web Server , Mail Server , DNS , DHCP , File Server , Firewall . Qua vi ệc nghiên cứu các tài liệu về Ubuntu và thực hành các bài lab , chúng tôi đã xây dựng được một hệ thống mạng cơ bản với LDAP Server làm cơ sở dữ liệu cho các dịch vụ khác như SAMBA , MAIL ,WEB .v.v trong môi trường quản lý tập trung trên hệ điều hành Ubuntu .

Upload: luvjoonie

Post on 29-Nov-2015

160 views

Category:

Documents


15 download

DESCRIPTION

Cách xây dựng hệ thống mạng trên hđh Ubuntu. Cách xây dựng hệ thống mạng trên ubuntu

TRANSCRIPT

Page 1: xây dựng hệ thống mạng trên Ubuntu

1 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

TRÍCH YẾU Đề tài đồ án chuyện ngành của chúng tôi là : xây dựng hệ thống mạng ubuntu bao gồm LDAP servre, Web Server , Mail Server , DNS , DHCP , File Server , Firewall . Qua việc nghiên cứu các tài liệu về Ubuntu và thực hành các bài lab , chúng tôi đã xây dựng được một hệ thống mạng cơ bản với LDAP Server làm cơ sở dữ liệu cho các dịch vụ khác như SAMBA , MAIL ,WEB .v.v trong môi trường quản lý tập trung trên hệ điều hành Ubuntu .

Page 2: xây dựng hệ thống mạng trên Ubuntu

2 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

TRÍCH YẾU .......................................................................................................................................................... 1 LỜI CẢM ƠN ........................................................................................................................................................ 5 PHÂN CÔNG TRONG NHÓM .............................................................................................................................. 6 GIỚI THIỆU .......................................................................................................................................................... 7

PHẦN LÝ THUYẾTPHẦN 1: LDAP ................................................................................................................. 8 I. Giới Thiệu : .................................................................................................................................................... 9 II. Tổng quát về LDAP : ............................................................................................................................... 10 III. CẤU TRÚC LDAP : ................................................................................................................................ 11 1. Cấu Trúc Cây Thư Mục Trong Hệ Điều Hành dòng Unix .............................................................................. 11 2. Directory Servive .......................................................................................................................................... 11 3. LDAP Directory ........................................................................................................................................... 12 4. Distinguished Name ...................................................................................................................................... 12 5. LDAP Schema .............................................................................................................................................. 12 6. Object class .................................................................................................................................................. 13 7. LDIF ............................................................................................................................................................ 13 8. LDAP là một giao thức hướng thông điệp...................................................................................................... 13

PHẦN 2: SAMBA SERVER ............................................................................................................................ 16 I. Giới thiệu Samba: ......................................................................................................................................... 16 II. Giới Thiệu NFS (Network File System) :.................................................................................................. 17 III. Cấu hình và khởi động dịch vụ Samba ...................................................................................................... 17 IV. SAMBA và LDAP : ................................................................................................................................. 21

PHẦN 3: MAIL SERVER ................................................................................................................................ 22 I. Một số thuật ngữ : ......................................................................................................................................... 22 1. MTA ( Mail Transfer Agent ) : ...................................................................................................................... 22 2. MDA ( Mail Delivery Agent ) : ..................................................................................................................... 22 3. MUA ( Mail User Agent ) : ........................................................................................................................... 22 4. SMTP ( Simple Mail Transfer Protocol ) : ..................................................................................................... 22 5. POP3 ( Post Office Protocol 3 ) : .................................................................................................................. 23 6. IMAP (Internet Message Access Protocol) : .................................................................................................. 23 II. Quá trình gửi và nhận 1 email như thế nào :.............................................................................................. 23 III. Postfix : ................................................................................................................................................... 24 1. Giới Thiệu : .................................................................................................................................................. 24 2. Cấu trúc của Postfix : .................................................................................................................................... 24 a. Thành Phần của Postfix : ............................................................................................................................... 24 b. Messages vào hệ thống Postfix như thế nào: .................................................................................................. 25 c. The Postfix Queue : ...................................................................................................................................... 27 d. Mail Delivery : ............................................................................................................................................. 27 e. Tracing a Message Through Postfix :............................................................................................................ 29 3. Postfix với LDAP : ....................................................................................................................................... 31 IV. DOVECOT : ............................................................................................................................................ 31 1. Giới Thiệu : .................................................................................................................................................. 31 2. Cơ bản về cấu hình dovecot : ........................................................................................................................ 31 3. Dovecot và LDAP :....................................................................................................................................... 33 a. Password lookups: ........................................................................................................................................ 34 b. Authentication binds : ................................................................................................................................... 35

PHẦN 4 : FIREWALL ..................................................................................................................................... 36 I. FireWall là gì : .............................................................................................................................................. 36 II. Phân Loại Firewall : ................................................................................................................................. 36 1. Firewall cứng : Là những firewall được tích hợp trên Router. ........................................................................ 36 2. Firewall mềm: Là những Firewall được cài đặt trên Server. ........................................................................... 36 III. Tại sao cần Firewall ? .............................................................................................................................. 37 IV. IPTABLE FRIWALL: ............................................................................................................................. 37 1. Giới thiệu : ................................................................................................................................................... 37 2. Cấu Trúc Iptable : ......................................................................................................................................... 37

Page 3: xây dựng hệ thống mạng trên Ubuntu

3 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

3. Trình tự xử lý gói tin của iptables : ................................................................................................................ 38 PHẦN 5 : DNS SERVER ................................................................................................................................. 41

I. Giới Thiệu: ................................................................................................................................................... 41 II. The Reverse Zone File : ........................................................................................................................... 41 III. Master (Primary) Name Servers : ............................................................................................................. 41 IV. Slave (Secondary) Name Servers :............................................................................................................ 42 V. Stealth (a.k.a. DMZ or Split) Name Server : ............................................................................................. 43

PHẦN 6: WEB SEVER (APACHE) ................................................................................................................. 45 I. Giới Thiệu : .................................................................................................................................................. 45 1. Mô Hình Hoạt Động: .................................................................................................................................... 46 2. Địa Chỉ URL : .............................................................................................................................................. 46 II. Giới Thiệu Về APACHE : ........................................................................................................................ 46 1. Tổng Quan :.................................................................................................................................................. 46 III. APACHE VÀ LDAP : ............................................................................................................................. 47 1. The Authentication Phase : ............................................................................................................................ 48 2. The Authorization Phase : ............................................................................................................................. 48 3. The Require Directives : ............................................................................................................................... 49 a. Require ldap-user : ........................................................................................................................................ 49 b. Require ldap-group : ..................................................................................................................................... 50 c. Require ldap-dn: ........................................................................................................................................... 51 d. Require ldap-attribute : ................................................................................................................................. 51 e. Require ldap-filter : ....................................................................................................................................... 52

PHẦN 7 : DHCP .............................................................................................................................................. 53 I. Vai Trò Của DHCP Trong Một Hệ Thống Mạng : ......................................................................................... 53 1. DHCP là gì : ................................................................................................................................................. 53 2. DHCP làm việc như thế nào: ......................................................................................................................... 53 II. Bổ Sung Và Cấp Phép Cho Dịch Vụ DHCP Hoạt Động : .......................................................................... 53 1. Tại sao sử dụng dịch vụ DHCP: .................................................................................................................... 53 2. Địa chỉ IP động đặc biệt là gì ? ...................................................................................................................... 53 3. Cách thức cấp phát địa chỉ IP động : .............................................................................................................. 53 III. Cấu Hình Phạm Vi Cấp Phát Của Dịch Vụ DHCP: ................................................................................... 54 1. Phạm vi cấp phát DHCP là gì : ...................................................................................................................... 54 2. Tại sao phải sử dụng phạm vi cấp phát DHCP?.............................................................................................. 54 IV. Cấu hình địa chỉ DHCP giành sẵn (Reservations) và các tùy chọn của DHCP: .......................................... 54 1. Địa chỉ DHCP dành sẵn là gì? ....................................................................................................................... 54 2. Một dải địa chỉ IP dành sẵn bao gồm có các thông tin sau : ............................................................................ 54 3. Tùy chọn DHCP là gì? .................................................................................................................................. 54 4. Tại sao phải sử dụng tùy chọn DHCP? .......................................................................................................... 54 5. Một số tùy chọn chung của DHCP: ............................................................................................................... 54 V. CẤU HÌNH DHCP DHCP Relay Agent: .................................................................................................. 55 1. DHCP relay agent là gì? ................................................................................................................................ 55 2. Tại sao phải sử dụng DHCP relay agent: ....................................................................................................... 55 VI. Phương thức hoạt động của dịch vụ DHCP: .............................................................................................. 55

I. Chuẩn bị : ..................................................................................................................................................... 59 II. Cài đặt và cấu hỉnh LDAP và SAMBA server........................................................................................... 59 III. Cấu hình client Winodws Xp và Windows 7 vào hệ thống SAMBA: ......................................................... 74 1. Tạo user trên SAM PDC : ............................................................................................................................. 74 2. Join windows Xp SP2 : ................................................................................................................................. 75 3. Join Windows 7 : .......................................................................................................................................... 77

PHẦN 2 : MAIL SERVER VÀ DNS SERVER ................................................................................................. 79 I. Cài đặt và cấu hình DNS: .............................................................................................................................. 79 1. Cài đặt : ........................................................................................................................................................ 79 2. Cấu hình DNS server : .................................................................................................................................. 79 II. Cài đặt và cấu hình Mail server với Postfix và Dovecot : .......................................................................... 81

Page 4: xây dựng hệ thống mạng trên Ubuntu

4 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

1. Cài đặt : ........................................................................................................................................................ 81 2. Cấu hình : .................................................................................................................................................... 83

PHẦn 4: FTP VÀ FIREWALL ......................................................................................................................... 89 I. FTP : ............................................................................................................................................................ 89 1. Giới thiệu : ................................................................................................................................................... 89 2. Cài đặt : ........................................................................................................................................................ 89 3. Cấu hình Proftpd với LDAP : ........................................................................................................................ 90 II. FIREWALL:............................................................................................................................................ 91 1. Giới thiệu : ................................................................................................................................................... 91 2. Cấu hình NAT : ............................................................................................................................................ 91 3. NAT inbound cho web server : ...................................................................................................................... 93

PHẦN 5: WEB SERVER ................................................................................................................................. 94 1. Cài Đặt : ....................................................................................................................................................... 94

PHẦN 6 : CẤU HÌNH DHCP ........................................................................................................................... 98

Page 5: xây dựng hệ thống mạng trên Ubuntu

5 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

LỜI CẢM ƠN

Nhóm chúng em xin chân thành cảm ơn thầy Lưu Thanh Trà và anh Lê Hữu Tài , giảng viên phụ trách hướng dẫn đồ án hướng ngành của chúng em . Thầy Trà và anh Tài đã giúp chúng em về lý thuyết cũng như thực thành để chúng em hoàn thành được đồ án này .

Page 6: xây dựng hệ thống mạng trên Ubuntu

6 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHÂN CÔNG TRONG NHÓM

Công Việc Chịu trách nhiệm

Đọc và nghiên cứu tài liệu Hiệu-Hậu-Công

Thực hành Cấu hình LDAP Server , SAMBA server Mailserver , file server

Hiệu

Thực hành Cấu hình DHCP , Firewall Hậu

Thực hành cấu hỉnh DNS, WEB server Công

Viết và Chỉnh Báo Cáo Hiệu-Hậu-Công

Page 7: xây dựng hệ thống mạng trên Ubuntu

7 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

GIỚI THIỆU

Ubuntu là một hệ điều hành mã nguồn mở xây dựng xung quanh nhân Linux , được cộng đồng cùng phát triển. Hệ điều hành Ubuntu có đầy đủ chức năng của một hệ điều hành hiện đại, hoạt động tốt trên máy tính để bàn, máy tính xách tay và hệ thống máy chủ. Tuy ra đời chưa lâu, nhưng hệ điều hành này đang có những bước tiến nhảy vọt, sức lan toả rất lớn, hiện đang được sử dụng rất rộng rãi trên thế giới và đang dần dần phổ biến ở Việt Nam.

Lịch sử của Ubuntu bắt đầu từ tháng Tư năm 2004, khi Mark Shuttleworth tập hợp một nhóm các nhà phát triển phần mềm mã nguồn mở để tạo ra một hệ điều hành mới. Với quyết tâm hiện thực hoá những ý tưởng, các lập trình viên này đặt tên nhóm là Warthogs và cùng nhau làm việc trong sáu tháng để cho ra đời phiên bản thể hiện khái niệm của hệ điều hành mới. Họ lấy tên nhóm đặt cho phiên bản Ubuntu đầu tiên này, Warty Warthog.

Dựa trên nền tảng chắc chắn của bản phân phối Debian, cùng với những nguyên tắc về thời gian phát hành, chương trình GNOME để quản lý giao diện Desktop, và một cam kết mạnh mẽ về sự tự do, chỉ trong vòng ba năm, Ubuntu đã phát triển một cộng đồng lên đến mười hai ngìn thành viên và số lượng người dùng ước tính đến hơn tám triệu (tháng Bảy năm 2007).

Những năm gần đây Ubuntu được biết đến như một hệ điều hành thân thiên trong môi trường Desktop nhưng các phiên bản server của Ubuntu cũng phát triển mạnh, qua đây chúng tôi xin được triển khai một hệ thống mạng cơ bản dựa trên các nên tảng Ubuntu, tạo ra một trường Domain tương tác giữa người dùng windows là Linux được quản lý tập trung , chia sẽ nguồn tài nguyên đồng thời xây dựng hệ thông email trong mạng.

Page 8: xây dựng hệ thống mạng trên Ubuntu

8 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN LÝ THUYẾT

Page 9: xây dựng hệ thống mạng trên Ubuntu

9 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN 1: LDAP

I. Giới Thiệu : LDAP viết tắt Lightweight Directory Access Protocol (tiếng Việt có thể gọi là: giao thức truy cập nhanh các dịch vụ thư mục) là một chuẩn mở rộng cho phương thức truy cập thư mục, hay là một ngôn ngữ để LDAP server và client sử dụng để giao tiếp với nhau.

Các tính chất của LDAP:

Đây là một giao thức hướng thông điệp.

Là một giao thức tìm, truy nhập các thông tin dạng thư mục trên server.

Nó là một giao thức Client/Server dùng để truy cập dịch vụ thư mục, dựa trên dịch vụ thư mục X500.

LDAP chạy trên TCP/IP hoặc những dịch vụ hướng kết nối khác.

Là một mô hình thông tin cho phép xác định cấu trúc và đặc điểm của thông tin trong thư mục.

Là một không gian tên cho phép xác định cách các thông tin được tham chiếu và tổ chức

Một mô hình các thao tác cho phép xác định các tham chiếu và phân bố dữ liệu

Là một giao thức mở rộng, được định nghĩa nhiều phương thức mở rộng cho việc truy cập và update thông tin trong thư mục.

Là một mô hình thông tin mở rộng.

Vì LDAP tổ chức dữ liệu theo thư mục phân cấp nên có tính mô tả cao, được tối ưu cho việc tìm kiếm.

LDAP được so sánh với lightweight vì sử dụng gói tin overhead thấp, được xác định chính xác trên lớp TCP (vì X.500 là một giao thức ứng dụng và chứa nhiều thứ hơn như network header được bao quanh các gói tin ở mỗi layer trước khi nó

Page 10: xây dựng hệ thống mạng trên Ubuntu

10 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

chuyển đi trong mạng). Mặt khác LDAP được coi là lightweight vì đã lược bỏ rất nhiều phương thức ít được dùng của X.500.

Ở đây chúng ta cần tránh hiểu nhầm từ "thư mục" như trên Windows là folder hay directory, đó là thư mục theo nghĩa hẹp để quản lý hệ thống tệp tin. Từ thư mục trong LDAP mang ý nghĩa rộng hơn, nó bao hàm các cấu trúc dữ liệu dạng liệt kê theo thư mục (hay mục lục) - một "từ khoá" của dân thư viện nhằm ám chỉ cách thức sắp xếp dữ liệu để tiện truy xuất nhất.

OpenLDAP là 1 mô hình quản lý tập trung không thể thiếu đối với admin về

open source, nó tương đương với AD bên Windows Server 2003 vì đều dựa

trên chuẩn X.500 và X.509 về quản lý mạng trên mô hình logical phân cấp.

II. Tổng quát về LDAP : Một cách tổng quát mà nói, LDAP thường phân chia theo O (Organisation -

tổ chức) và các OU (Organisation Unit - phân bộ). Trong các OU có thể có những OU con và trong các OU có các CN (Common Name), những nhóm giá trị này thường được gọi là DN (Distinguished Name - tên gọi phân biệt). Mỗi giá trị chứa trong LDAP thuộc dạng tên:giá trị, thường được gọi là LDAP Attribute (viết tắt là

Page 11: xây dựng hệ thống mạng trên Ubuntu

11 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

attr, mỗi attr được nhận diện như một LDAP Object. Những điểm ở trên hình thành một cái gọi là LDAP schema và có tiêu chuẩn thống nhất giữa các ứng dụng phát triển LDAP. Đây là lý do LDAP được ưa chuộng cho công tác lưu trữ và tích hợp với các cơ phận authentication / authorisation vì chúng có thể được dùng giữa các LDAP system (bất kể công ty sản xuất) miễn sao các cty sản xuất tuân thủ đúng tiêu chuẩn chung.

LDAP đóng vai trò rất quan trọng trong việc ứng dụng SSO (single sign on). Điều này có nghĩa là một người đăng nhập vào một hệ thống, người ấy có thể truy cập đến các servers / services / tài nguyên... cho phép mà không cần phải xác thực lại. Thử hình dung việc logon mail.yahoo.com, sau đó có thể nhảy đến yahoo 360, yahoo mailing list.... mà không cần phải xác thực tài khoản nữa. Thử hình dung yahoo sẽ có những dịch vụ khác và mỗi yahoo account chỉ cần chứa ở 1 nơi và các dịch vụ để dùng chung một LDAP chứa account để xác thực người dùng. Thử hình dung yahoo có 1000 servers và 1000 /etc/passwd file để bảo trì ). Ngoài ra, LDAP được tạo ra đặc biệt cho hành động "đọc". Bởi thế, xác thực người dùng bằng phương tiện "lookup" LDAP nhanh, hiệu suất, ít tốn tài nguyên, đơn giản hơn là query 1 user account trên CSDL.

III. CẤU TRÚC LDAP : 1. Cấu Trúc Cây Thư Mục Trong Hệ Điều Hành dòng Unix

Một thư mục là danh sách các thông tin về các đối tượng, được sắp xếp một cách chi tiết về mỗi đối tượng. Trong máy tính, thư mục là một cơ sở dữ liệu đặc biêt để lưu trữ thông tin về các đối tượng. Thư mục thường được đọc nhiều hơn là update và ghi

Hệ thống tập tin của Unix được tổ chức theo một hệ thống phân bậc tương tự cấu trúc của một cây thư mục, bao gồm 1 thân thẳng đứng và các cành lớn chiã ra. Bậc cao nhất của hệ thống tập tin là thư mục gốc, được ký hiệu bằng vạch chéo “/” (root directory). Đối với các hệ điều hành Unix và Linux tất các thiết bị kết nối vào máy tính đều được nhận ra như các tập tin, kể cả những linh kiện như ổ điã cứng, các phân vùng điã cứng và các ổ USB, chẳng hạn.

2. Directory Servive Đây là một loại service cụ thể nằm trong client hoặc server.Tuy nhiên một

số người thường nhầm lẫn Directory service giống như một database. Tuy giữa hai cái có một số chức năng giống nhau như hỗ trợ tìm kiếm dữ liệu và chứa các file cấu hình hệ thống nhưng Directory service được hitết kế để lấy dữ liệu nhiều hơn là ghi còn Database cung cấp khả năng đọc và ghi dữ liệu liên tục.

Page 12: xây dựng hệ thống mạng trên Ubuntu

12 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

3. LDAP Directory Thành phần cơ bản của LDAP directory là ENTRY, đây là nơi chứa toàn bộ

thông tin của một đối tượng. Mỗi entry có một tên đặc trưng gọi là DN (Distinguished Name)

Mỗi entry là tập hợp của các thuộc tính, từng thuộc tình này mô tả một nét đặc trưng tiêu biểu của một đối tượng. Mỗi thuộc tính có kiểu một hay nhiều giá trị, kiểu của thuộc tính mô tả loại thông tin được chứa, giá trị là dữ liệu thực sự.

Hình ảnh thể hiệm sự liên quan giữa Entry và Attribute

4. Distinguished Name Distinguished Name (DN) là tên của một entry trong LDAP. DN chỉ ra

cách bạn có thể tham chiếu đến các entry trên thư mục, hai entru khsc nhau trên thư mục có hai DNs khác nhau. Tên của một entry LDAP được hình thành bằng cách nối tất cả các tên của từng entry cấp trên (cha) cho đến khi trở lên root, giống như đường dẫn cảu hệ thống tập tin.

Ví dụ: uid=John, ou=people, dc=abc, dc=com

5. LDAP Schema Thiết lập các mô tả những loại data nào được lưu trữ giúp quản lý một cách

nhất quán về chất lượng của data và giảm sự trùng lắp data. LDAP Schema chứ những thông tin sau:

Những thuộc tính yêu cầu. Những thuộc tính được phép. So sánh các thuộc tính đó như thế nào. Giới hạn những thuộc tính gì có thể lưu trữ. Những thuộc tính gì thì bị cấm lưu trữ hay sao lưu.

Page 13: xây dựng hệ thống mạng trên Ubuntu

13 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

6. Object class Đây là công cụ dùng để nhóm các thông tin lại với nhau. Objectclass cung

cấp những thông tin sau: Thuộc tính yêu cầu. Thuộc tính được phép. Dễ dàng lấy được nhóm thông tin.

Entry bắt buộc phải có objectclass và có thể có nhiều objectclass. Các objectclass theo chuẩn LDAP là: Groups in the directory, Locations, Organizations in the directory, People in the directory.

7. LDIF Được viết tắt từ LDAP Interchange Format. Được sử dụng để thêm dữ liệu

mới vào trong directory hoặc thay đổi dữ liệu đã cũ. Đây là một chuẩn định dạng file text lưu trữ những thông tin cấu hình LDAP và nội dung thư mục.

Thông thường một file LDIF sẽ theo dạng sau: Mỗi tập entry khác nhau được phần cách bởi một dòng trắng. Tên thuộc tính được sắp theo giá trị. Một tập các chỉ dẫn cú pháp để làm sao xử lý được thông tin.

Dữ liệu trong file LDIF tuân theo luật trong schema của LDP Directory. Vì vậy mọi thành phần được thêm vào hoặc thay đổi trong directory sẽ được kiểm tra lại trong schema để đảm bảo sự chính xác.

8. LDAP là một giao thức hướng thông điệp Client sẽ tạo một thông điệp (LDAP Message) chứa yêu cầu và gửi nó đến

cho server. Khi nhận được thông điệp server sẽ xử lý yêu cầu của client sau đó gửi trả cho client cũng bằng một thông điệp LDAP

Ví dụ: khi Client muốn tìm kiếm trên thư mục, client sẽ tạo LDAP tìm kiếm và gửi thông điệp cho server. Khi nhận được thông điệp server sẽ tiến hành tìm kiếm trong cơ sở dữ liệu và gửi kết quả bằng một thông điệp LDAP.

Page 14: xây dựng hệ thống mạng trên Ubuntu

14 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Hình ảnh mô phỏng thao tác tìm kiếm theo hướng thông điệp của LDAP

Client được phép phát ra nhiều thông điệp yêu cầu đồng thời cùng một lúc. Trong LDAP, message ID dùng để phân biệt các yêu cầu của client và kết quả trả về của server. Việc cho phép nhiều thông điệp cùng xử lý đồng thời này làm cho LDAP linh động hơn các giao thức khác.

Ví dụ: giao thức HTTP với mỗi yêu cầu từ client phải được trả lời trước khi một yêu cầu khác gửi đi, một HTTP client program như web browser muốn tải cùng một lúc nhiều file thì web browser phải thực hiện mở từng kết nối cho từng file

Trong khi LDAP quản lý tất cả thao tác trên một kết nối.

Page 15: xây dựng hệ thống mạng trên Ubuntu

15 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Hình ảnh các thông điệp được xử lý đồng thời của LDAP

Page 16: xây dựng hệ thống mạng trên Ubuntu

16 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN 2: SAMBA SERVER

I. Giới thiệu Samba: Các hệ thống Linux sử dụng giao thức TCP/IP trong kết nối mạng, trong

khi đó hệ điều hành của Microsoft sử dụng một giao thức kết nối mạng khác – giao thức Server Message Block (SMB), giao thức này sử dụng NetBIOS để cho phép các máy tính chạy Windows chia sẻ các tài nguyên với nhau trong mạng cục bộ. Để kết nối tới các mạng lớn, bao gồm cả những hệ thống Unix, Microsoft phát triển Common Internet File System (CIFS), CIFS vẫn sử dụng SMB và NetBIOS cho mạng Windows. Có một phiên bản của SMB được gọi là Samba, Samba cho phép các hệ thống Unix và Linux kết nối tới mạng Windows. Các hệ thống Unix/Linux có thể sử dụng các tài nguyên trên hệ thống Windows, đồng thời nó cũng chia sẻ tài nguyên trên hệ thống cho máy tính Windows.

Gói phần mềm Samba có chứa hai daemon dịch vụ và nhiều chương trình tiện ích. một daemon là smbd cung cấp các dịch vụ tập tin và in ấn cho các hệ thống khác có hỗ trợ SMB. Một daemon là nmbd cung cấp chức năng phân giải tên NetBIOS và hỗ trợ dịch vụ duyệt thư mục.

Samba cung cấp bốn dịch vụ chính: dịch vụ chia sẻ tập tin và máy in, xác thực và cấp phép, phân giải tên và thông báo dịch vụ. Daemon SMB, smbd, cung cấp các dịch vụ chia sẻ tập tin và máy in, cũng như xác thực và cấp phép cho những dịch vụ này. Điều này có nghĩa là người dùng trên mạng có thể dùng chung các tập tin và máy in. Người dùng có thể điều khiển truy nhập tới những dịch vụ này bằng cách yêu cầu người dùng phải nhập mật mã truy nhập, Điều khiển truy nhập có thể được thực hiện ở hai chế độ : chế độ dùng chung (share mode) và chế độ người dùng (user mode). Chế động dùng chung sử dụng một mật mã truy nhập tài nguyên chung cho nhiều người dùng . Chế độ người dùng cung cấp cho mỗi tài khoản người dùng mật mã truy nhập tài nguyên khác nhau. Vì lý do phải quản lý mật mã truy nhập, Samba có sử dụng tập tin /etc/samba/smbpassword để lưu trữ các mật mã truy nhập người dùng.

Để cấu hình và truy nhập một hệ thống Samba và Linux, người dùng cần thực hiện các thủ tục chính sau:

Cấu hình dịch vụ và khởi động dịch vụ Samba. Khai báo tài khoản sử dụng Samba. Truy nhập dịch vụ Samba.

Các tập tin cấu hình dịch vụ: /etc/samba/smb.conf Tập tin cấu hình của Samba /etc/samba/smbpasssword Chứa mật mã truy nhập của người dùng /etc/samba/smbusers Chứa tên hiệu cho các tài khoản của Samba

Page 17: xây dựng hệ thống mạng trên Ubuntu

17 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Các tiện ích của dịch vụ Samba smbadduser Tạo tài khoản Samba. smbpasswd Thay đổi thông tin tài khoản Samba. smbclient Truy nhập dịch vụ SMB smbstatus Theo dõi tình trạng kết nối hiện hành.

II. Giới Thiệu NFS (Network File System) : Network File System - NFS do công ty Sun Microsystems tạo ra với mục

đích dùng để chia sẻ các tập tin và thư mục giữa những hệ điều hành UNIX. Với NFS, khi một tập tin hoặc thư mục được dùng chung, nó gần như trở thành một phần hệ thống của người dùng thay vì có mặt trên máy ở xa. Ví dụ nếu người dùng có một máy Linux chứa đầy hệ thống tập tin gồm các trò chơi thì NFS sẽ cho phép người dùng thiết lập hệ thống tập tin game này để nó xuất hiện trên máy của người dùng như là một phần cấu trúc thư mục chuẩn. Mỗi khi truy cập khu vực chứa game, người dùng sẽ đi qua mạng để đến máy khác nhưng nhờ có NFS nên chẳng có gì khó khăn (ngoại trừ những chậm trễ về thời gian).

NFS có thể sử dụng cho nhiều kiểu mạng khác nhau nhưng thực tế nó được thiết kế để làm việc với TCP/IP và hiện nay NFS vẫn được sử dụng phổ biến trên các mạng TCP/IP. Do nhiều người ưa chuộng nên NFS đã hình thành trên các hệ điều hành khác để có thể dùng chung thư mục trên các mạng đa chủng loại.

Bên trong hệ điều hành Linux và UNIX, NFS sẽ hoạt động ở chế độ ngang hàng. Điều này có nghĩa máy tính của người dùng có vai trò như một máy khách của dịch vụ NFS trên một máy khác và là máy phục vụ cho những máy khác trên mạng hoặc đồng thời đóng cả hai vai trò.

Nhiều người thích dùng dịch vụ NFS phục vụ cho công việc kinh doanh nh-ưng họ ngại lập cấu hình NFS cho hệ thống Linux ở nhà vì cho rằng tiến trình lập cấu hình sẽ rối rắm, phức tạp và phải nắm vững nhiều kiến thức về các hệ điều hành. Chính vì lý do này nên nhiều người không màng quan tâm đến NFS. Điều này thật đáng tiếc vì NFS là một trong những dịch vụ hiệu quả nhất do TCP/IP cung cấp Ghi chú:

Một vài sản phẩm mới hơn như Visionfs có thể làm cho việc cài đặt và sử dụng các trình điều khiển trên mạng trở nên dễ dàng hơn. Mặc dầu, đây là những sản phẩm mang tính thương mại nhưng chúng có thể khả dụng đối với Linux.

III. Cấu hình và khởi động dịch vụ Samba Daemon của dịch vụ Samba sử dụng tập tin cấu hình /etc/samba/smb.conf.

Tập tin này được chia thành hai phần chính: một phần dành cho những lựa chọn toàn cục của dịch vụ và phần còn lại dành cho khai báo tài nguyên được đưa lên mạng dùng chung. Các lựa chọn toàn cục được khai báo ở phần đầu tập tin cấu hình. Trong mỗi phần có chứa một hay nhiều nhóm. Mỗi nhóm (ngoại trừ nhóm

Page 18: xây dựng hệ thống mạng trên Ubuntu

18 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

[global]) chứa các khai báo về một tài nguyênn được hia sẻ. Một nhóm được bắt đầu bởi tên nhóm (share_name, được đặt trong cặp dấu ngoặc vuông []), tiếp theo sau là các khai báo tham số của nhóm, mỗi khai báo tham số nằm trên một dòng và có dạng như sau: name=value(chú ý là tên của nhóm và tham số không phân biệt chữ thường và chữ hoa), những dòng nào được bắt đầu bởi ký tự ‘;’ hoặc ‘#’ là những dòng ghi chú.

Trong tập tin smb.conf có ba nhóm đặc biệt được khai báo sẵn là [global], [homes] và [printers]

Các tham số xác định các thuộc tính của nhóm. Nhóm [global] có thể chứa mọi tham số. Một số tham số chỉ có thể được khai báo trong nhóm [global]. Một số tham số có thể được sử dụng trong bất kỳ nhóm nào. Và một số tham số chỉ cho phép khai báo trong các nhóm bình thường.

Nhóm [global] Các tham số trong nhóm này được áp dụng một cách toàn cục cho toàn dịch

vụ, đồng thời, một số tham số trong nhóm này cũng là các tham số mặc định của các nhóm không khai báo tường minh. Nhóm này phải được đặt tại phần đầu trong tập tin cấu hình /etc/samba/smb.conf. Một số tham số cơ bản trong nhóm [global] cần được cấu hình bao gồm: workgroup

Chỉ ra tên của nhóm (workgroup) muốn hiển thị trên mạng. Trên Windows, tên này được hiển thị trong cửa sổ Network Neighborhood. host allow

Chỉ ra những địa chỉ mạng hay địa chỉ máy được truy nhập tới dịch vụ Samba. Các địa chỉ trong danh sách được viết cách nhau một khoảng trắng. encrypt passwords

Giá trị mặc định là yes. Với tham số này, Samba sẽ thực hiện mã hoá mật mã để tương thích được với cách mã hóa của windows. Trong trường hợp không mã hóa mật mã, người dùng chỉ có thể sử dụng dịch vụ Samba giữa các máy Linux với nhau hoặc người dùng phải cấu hình lại máy tính Windows nếu muốn sử dụng dịch vụ Samba trên Linux.

smb passwd file Nếu encrypt passwords=yes, tham số này sẽ xác định tập chứa mật mã đã

được mã hóa. Mặc định là /etc/samba/smbpasswd username map

Chỉ ra tập tin chứa các tên hiệu (alias) cho một tài khoản hệ thống. mặc định là /etc/samba/smbusers printcap file

Cho phép Samba nạp các mô tả máy in từ tập tin printcap. Giá trị mặc định là /etc/printcap security

Page 19: xây dựng hệ thống mạng trên Ubuntu

19 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Khai báo này xác định cách thức các máy tính “trả lới” dịch vụ Samba. Mặc định tham số này có giá trị là user, giá trị cần sử dụng khi kết nối tới các máy tính windows.

Thí dụ về các khai báo trong phần [global] như sau: [global] #workgroup = ten mien hoac ten nhom workgroup = SMB-GROUP # chi cho cac may trong mang cuc bo truy nhap host allow = 172.16.10. 127.0.0.1 # yeu cau Samba su dung mot tap tin nhat ky rieng cho moi may truy nhap log file = /var/log/samba/%m.log #che do bao mat security = user #ma hoa mat ma de tuong thich voi Windows encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd #nguoi dung Unix co the su dung nhieu ten truy nhap SMB. username map = /etc/samba/smbusers

Nhóm [homes] Nhóm [homes] xác định các điều khiển mặc định cho truy nhập thư mục

chủ của người dùng thông qua giao thức SMB bởi người dùng từ xa. Khi có yêu cầu kết nối, Samba sẽ thực hiện kiểm tra các nhóm hiện có, nếu nhóm nào đáp ứng được yêu cầu, nhóm đó sẽ được sử dụng. Nếu không đáp ứng được yêu cầu, tên nhóm được yêu cầu sẽ đựơc coi như tên tài khoản người dùng và tìm kiếm trong tập tin chứa mật mã của Samba. Nếu tên tài khoản này tồn tại ( và đúng mật mã) một tài nguyên sẽ được tạo ựa trên nhóm [homes]

Thí dụ về các khai báo trong nhóm [homes] như sau:

[homes] comment = Home Directories browseable = no writeable = yes

Chú ý: Trường hợp không có khai báo tham số path trong nhóm [homes], đường dẫn sẽ được gán tới thư mục chủ của người dùng. Nếu trong nhóm này có khai báo cho phép guest được truy nhập, tất cả các thư mục chủ của người dùng đều cho phép mọi người tự do truy nhập. Nhóm [printers] Tương tự như nhóm [homes] nhưng dành riêng cho máy in. Khi có yêu cầu kết nối. Samba sẽ thực hiện kiểm tra các nhóm hiện có, nếu nhóm nào đáp ứng được yêu cầu, nhóm đó sẽ được sử dụng. Nếu không đáp ứng được

Page 20: xây dựng hệ thống mạng trên Ubuntu

20 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

yêu cầu, nhưng nhóm [homes] tồn tại nó sẽ được xử lý như mô tả ở trên. Mặt khác, tên nhóm được yêu cầu cũng được xử lý như một tên của máy in và Samba thực hiện tìm kiếm tập tin printcap tương ứng để xác định xem tên nhóm được yêu cầu có hợp lệ không. Nếu hợp lê, một tài nguyên dùng chung sẽ được dựa trên nhóm [ printers]. Thí dụ về các khai báo trong nhóm [printers] như sau: [printers] comment = All Printers path = /var/spool/samba browserable = no public = yes printable = yes

Ngoài ba nhóm đặc biệt đựơc nêu trên, để thực hiện tạo các nguyên dùng chung khác, người dùng cần thực hiện tạo thêm các nhóm khai báo thông tin về tài nguyên này. Các nhóm dành cho các tài nguyên dùng chung, như là các thư mục trên hệ thống, thường được đặt sau nhóm [homes] và [printers] và có thể đặt tên bất kỳ. Các tham số thường được khai báo trong các nhóm khai báp tài nguyên dùng chung trong tập tin cấu hình /etc/samba/smb.conf bao gồm : comment Mô tả tuỳ ý cho tài nguyên được đưa lên mạng dùng chung path Chỉ ra đường dẫn đến thư mục trên hệ thống tập tin mà tài nguyên dùng chung tham chiếu tới. public Có giá trị là yes hoặc no. Nếu là public = yes, Samba cho phép mọi người dùng đều có thể truy nhập tài nguyên dùng chung đó. browseable Có giá trị là yes hoặc no. Nếu là browseable = yes, thì thư mục được dùng chung sẽ được nhìn thấy ở trên mạng. Giá trị mặc định là yes valid users Danh sách những người dùng được quyền truy nhập tài nguyên dùng chung. Tên người dùng được cách nhau bởi khoảng trắng hoặc ký tự ‘,’. Tên nhóm được đứng trước bởi ký tự ‘@’ invalid users Danh sách những người dùng không được quyền truy nhập tài nguyên dùng chung. Tên người dùng được cách nhau bởi khoảng trắng hoặc ký tự ‘,’. Tên nhóm được đứng trước bởi ký tự ‘@’ writeable Có giá trị là yes hoặc no. Nếu là writeable = yes người dùng được phép ghi vào thư mục dùng chung.

Page 21: xây dựng hệ thống mạng trên Ubuntu

21 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

write list Xác định danh sách người dùng/nhóm có quyền ghi tới thư mục dùng chung. Trong trường hợp chỉ ra tên nhóm, trước tên nhóm phải là một ký tự ‘@’. printable Có giá trị là yes hoặc no. Nếu là printable=yes người dùng được phép truy nhập đến dịch vụ in. create mask Thiết lập quyền trên thư mục/tập tin được tạo trong thư mục được dùng

chung. Giá trị mặc định là 0744

Thí dụ dưới đây là các khai báo để thực hiện đưa một tài nguyên có tên dùng chung là mydoc (thư mục trên hệ thống là /home/shired) cho hai tài khoản allan, piter và các tài nguyên thuộc nhóm staff được phép truy nhập:

[mydoc] path=/home/shired public=no valid users = allan piter @staff writable = yes create mask = 0766

Chú ý: Thư mục được đưa lên mạng dùng chung phải cung cấp quyền tương ứng cho người dùng Các tham số được chỉ ra ở nhóm tài nguyên được dùng chung sẽ có hiệu lực thay thế các tham số được thiết lập ở nhóm [global] Trong tập tin smb.conf có thể sử dụng một số biến thay thế như %m – tên NetBIOS của máy client, %Samba- tên dịch vụ hiện hành (nếu có), %u – tên người dùng hiện hành (nếu có)… Thí dụ : “path = /home/%u” sẽ được phiên dịch là “path=/ymp/foo” nếu tài khoản foo thực hiện truy nhệp. Khởi động dịch vụ Samba Sau mỗi lần thay đổi nội dung tập tin /etc/samba/smb.conf, người dùng cần khởi động lại dịch vụ Samba để cập nhật lại cấu hình mới. Để khởi động lại dịch vụ Samba, người dùng thi hành lệnh sau: # /etc/rc.d/init.d/smb restart | start | stop

IV. SAMBA và LDAP : SAMBA có thể sử dụng lưu trữ thông tin đăng nhập của user , printer , objectsfiles .. ở 1 trong 3 dạng ,và được định nghĩa bằng khóa “passdb backend”:

A flat text file : A trivial database (tdb) file An LDAP directory service

Page 22: xây dựng hệ thống mạng trên Ubuntu

22 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN 3: MAIL SERVER

I. Một số thuật ngữ : Trước tiên , chúng ta tìm hiểu 1 số thuật ngữ như sau :

1. MTA ( Mail Transfer Agent ) : MTA ( Mail Transfer Agent) là thành phần chuyển nhận mail. Khi các email được gởi đến từ MUA, MTA có nhiệm vụ nhận diện người

gởi và người nhận từ thông tin đóng gói trong phần header của thư và điền các thông tin cần thiết vào header.

Sau đó MTA chuyển thư cho MDA để chuyển đến hộp thư ngay tại MTA, hoặc chuyển cho Remote MTA.

Một phần hay cả bức thư có thể phải viết lại tại các MTA trên đường đi. SMTP là ngôn ngữ của MTAs Một số phần mềm là MTA : Postfix, Exim, Mdaemon, Exchange Server,

Sendmail, Qmail

2. MDA ( Mail Delivery Agent ) : MDA (Mail Delivery Agent) là một chương trình được MTA sử dụng để

đẩy thư vào hộp thư của người dùng. Hộp thư của người dùng có thể dùng định dạng Mailbox hay Maildir.

MDA có khả năng lọc thư, định hướng thư,… MTA được tích hợp với một MDA hoặc một vài MDA. Một số MDA là : Maildrop, Promail, Dovecot…

3. MUA ( Mail User Agent ) : MUA là chương trình quản lý thư đầu cuối cho phép người dùng có thể đọc

viết là lấy thư về từ MTA. MUA có thể lấy thư từ Mail server về để xử lý thông qua các giao thức

IMAP , POP3… Chuyển thư cho một MUA khác thông qua MTA. Cung cấp giao diện cho người dùng tương tác với thư. Các phần mềm MUA thông dụng: Microsoft Outlook, Netscape, Pine,…

4. SMTP ( Simple Mail Transfer Protocol ) : SMTP là thủ tục được phát triển ở mức ứng dụng trong mô hình 7 lớp OSI. SMTP sử dụng cổng 25 của TCP SMTP không hỗ trợ các thư không phải dạng văn bản. SMTP hổ trợ thêm 2 thủ tục khác hổ trợ cho việc lấy thư là POP3 và

IMAP4 SMTP đòi hỏi là MUA và MTA đều phải dùng giao thức SMTP

Page 23: xây dựng hệ thống mạng trên Ubuntu

23 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

5. POP3 ( Post Office Protocol 3 ) :

POP (Post Office Protocol) là một trong 2 giao thức phổ biến để lấy thư từ máy chủ (server mail) về MUA .

POP được phát triển năm 1984 và được nâng cấp lên thành POP3 vào năm 1988 (được sử dụng phổ biến hiện nay).

POP3 kết nối trên nền TCP/IP để đến máy chủ thư điện tử (sử dụng cổng mặc định 110). Người dùng điền username và password. Sau khi xác thực đầu client sẽ sử dụng các lệnh của POP3 để lấy hoặc xoá thư.

POP3 làm việc với chế độ offline, nghĩa là thư được lấy về MUA sẽ bị xoá trên server

6. IMAP (Internet Message Access Protocol) :

IMAP là một giao thức để nhận thư từ server. IMAP được phát triển vào năm 1986 bởi đại học Stanford và nâng cấp lên

IMAP2 vào năm 1987. IMAP4 là bản phổ biến hiện nay, nó được chuẩn hoá vào năm 1994. IMAP sử dụng cổng 143 của TCP IMAP hổ trợ hoạt động ở chế độ online, offline hoặc disconnect IMAP cho phép người dùng thao tác như : tập hợp các thư từ máy chủ, tìm

kiếm và lấy thư hay chuyển thư từ thư mục này sang thư mục khác hoặc xoá thư trên máy chủ.

IMAP cho phép lấy thư về MUA mà không xóa trên máy chủ.

II. Quá trình gửi và nhận 1 email như thế nào :

Page 24: xây dựng hệ thống mạng trên Ubuntu

24 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Hình 1- quá trình gửi 1 email Trong hình 1 khi 1 E-mail Client [email protected] soạn 1 email bằng các

chương trình MUA gửi đến user E-mail Client [email protected] do thì MDA của domain sẽ vận chuyển tới MTA domain a.de và kiểm tra cái policy và nếu phù hợp thì MTA domain a.de sẽ nhận lá mail này. Bước tiếp theo, MTA của domain a.de sẽ truy vấn DNS để tìm ra bản ghi MX Record của domain b.de. Bản ghi trỏ về IP nào nơi đó là MTA của domain b.de . Sau khi nhận được kết quả trả về từ DNS thì MTA của domain a.de sẽ telnet vào MTA của domain b.de bằng port SMTP(25) để send mail.

Quá trình HELO\EHLO, check policies (PTR, SPF, Blacklist...) diến ra. Khi đã passed qua, MTA của domain b.de sẽ nhận lá mail đó và chuyển cho MDA của domain b.de. MDA của domain b.de tiếp nhận và chuyển cho End-Users của domain b.de. . End-Users [email protected] của domain b.de sẽ dùng MUA để nhận và đọc mail.

III. Postfix : 1. Giới Thiệu :

Postfix - Mail Transfer Agent (MTA) là một phần mềm mã nguồn mở (miễn phí) dùng để gửi nhận email.

Nó được phát hành dưới Giấy phép Công cộng IBM 1,0 đó là một phần mềm miễn phí cấp giấy phép.

Postfix được viết bởi Wietse Venema trong thời gian ở tại trung tâm Nghiên cứu Thomas J. Watson (IBM), và tiếp tục được tích cực phát triển ngày hôm nay. Postfix lần đầu tiên được phát hành vào giữa năm 1999.

Ưu điểm của Postfix : Nhanh chóng, dễ dàng để quản lý, an toàn và được sử dụng rộng rãi.

2. Cấu trúc của Postfix : a. Thành Phần của Postfix : Cấu trúc của Postfix hoàn toàn khác với với các “hệ thống nguyên khối” như

Sendmail, mà theo truyền thống thì người dùng sử dụng duy nhất 1 chương trình lớn để quản lý email messages. Postfix chia nhỏ công việc ra thành cách chức năng riêng biệt và được 1 chương trình cá nhân thực thi, hoàn toàn không liên quan tới các tiến trình khác. Hầu hết các chương trình đó dạng daemons, nghĩa là chạy ở chế độ background trong hệ thống. the master daemons được khởi động đầu tiên, và nó sẽ gọi các chương trình liên quan khi cần thiết. Master daemons luôn hiện diện và nó lấy thông tin cấu hình khi khởi động từ 2 file main.cf và master.cf.

Nhìn chung thì ta có thể nói cấu trúc của Postfix như sau : nhận messages (receives messages), đưa vào hàng đợi (queue them); và cuối cùng là chuyển chúng đi (delivery them). ở mỗi một bước như vậy sẽ được 1 tập hợp các chương

Page 25: xây dựng hệ thống mạng trên Ubuntu

25 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

trình của postfix làm việc riêng biệt, ta xem hình 2 đế nhìn rõ 3 nhiệm vụ của postfix.

Hình 2 – Tổng quan cấu trúc của postfix

b. Messages vào hệ thống Postfix như thế nào: Messages vào hệ thống Postfix với 4 cách như sau : 1 Messages được chấp nhận khi đến từ localy ( được gửi từ user trên cùng 1

máy tính ). 1 Message có thể được chấp nhận khi vận chuyển thông qua network 1 Message có thể được Postfix chấp nhận khi thông qua 1 phương thức như

resubmitted để forwarding đến 1 địa chỉ khác. Postfix tạo ra messages khi nó phải gửi thông báo không chuyển được

messages hay hoãn messages.

Local Email Submission : Các thành phần Postfix làm việc với nhau bằng cách ghi và đọc thông tin từ

hàng đợi ( queue ) của Postfix. Queue manager có trách nhiệm quản lý thông tin , quản lý messages trong hàng đợi ( queue ) và thông báo cho đúng thành phần của postfix khi thành phần đó có việc phải làm.

Hình 3 ở bên dưới minh hoa đường đi của “local email message” vào hệ thống của Postfix như thế nào. Local message được gửi vào maildrop directoty của Postfix queue bằng lệnh postdrop. The pickup daemon đọc message ở trong hàng đợi và đưa qua cleanup daemon. 1 vài message khi gửi đi hoàn toàn thiếu những thông tin cần thiết cho 1 message hợp lệ , vì vậy với sự kết hợp giữa cleanup daemon và trivial-rewrite sẽ thêm vào các message header , chuyển đổi địa chỉ thành dạng [email protected] hay dựa trên canonical , virtual lookup table.

The cleanup daemon thực thi trên tất cả inbound mail và sẽ thông báo cho queue manager sau khi đưa message đã được chỉnh sữa vào incoming queue. Tiếp sau đó queue manager sẽ gọi MDA thích hợp để chuyển message đi.

Page 26: xây dựng hệ thống mạng trên Ubuntu

26 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Hình 3- Local Email Submission

Email From Network :

Hình 4 bên dưới minh họa cho chúng ta thấy đường đi của một network email message đi vào hệ thống Postfix. Message nhận từ network được chấp nhận bằng Postfix smtpd daemon. Smtpd daemon thực hiện việc kiểm tra và có thể cấu hình để cho phép client relay email trên server hoặc từ chối . smtpd daemon đưa message vào cleanup deamon, nơi mà thực hiện việc kiểm tra và điền thông tin cho message và sau đó đưa vào incoming queue . Queue manager sẽ gọi MDA phù hợp để vận chuyển messaga.

Page 27: xây dựng hệ thống mạng trên Ubuntu

27 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Postfix Email Notifications :

Khi user manager bị hoãn hay không thể chuyển đi được, Postfix sử dụng defer hay bounce daemon để tạo ra 1 error message. Error message không bị đưa vào cleanup daemon mà được kiểm tra bình thường trước khi đưa và incoming queue.

Email Forwarding :

Đôi khi sau khi xử lý 1 email Postfix nhận ra rằng địa chỉ người nhận thực sự trỏ tới 1 địa chỉ khác trên 1 hệ thống khác. Postfix có thể đơn giản chuyển message đến smtp client để chuyển đi 1 cách trực tiếp , nhưng để đảm bảo tất cả các người nhận được xử lý và ghi nhận chính xác, postfix resubmitted message như là 1 new message và được xử lý như locally submitted message.

c. The Postfix Queue : Postfix queue manager làm phần lớn công việc trong việc xử lý

email. Các message được chấp nhận vào các queue sau khi được clenup deamon kiểm tra, khi queue manager có 1 message mới sẻ dùng trivial-rewrite để xác định các thông tin định tuyến như : transport method, the next host to delivery, và recipient’s address.

The queue manager gồm 4 hàng đợi khác nhau : incoming , active, deferred, và corrupt. Sau khi thực hiện bước cleanup , thì incoming queue là điểm dừng đầu tiên của message. Nếu tài nguyên của hệ thống vẫn cung cấp đủ thì message sẽ được di chuyển vào active queue và gọi 1 trong các delivery agents để chuyển message đi. Message không chuyển đi được thì message sẽ bị đưa vào deferred queue.

The queue manager cũng có trách nhiệm làm việc với bounce và defer daemon tạo ra các báo cáo trạng thái vận chuyển cho các vấn đề của message để gửi ngược lại người gửi, hay system administrator , hay cả hai. Thêm vào đó message queue directories và Postfix spool directories chứa bounce và defer directories. Những directory này chứa thông tin trạng thái tại sao một message bị hoãn hay không gửi đi được. the bounce và defer daemon sử dụng các thông tin chứa những directory trên để tạo ra các thông báo.

d. Mail Delivery : Postfix sử dụng các định nghĩa của các lớp địa chỉ ( address class )

khi xác đích đến nào ( destinations ) được chấp nhận gửi đi và bằng cách nào để vận chuyển. Các lớp địa chỉ chính gồm có : local, virtual alias, virtual mailbox, và relay. Những đích đến nào không phải những lớp trên sẽ

Hình 4- Email from network

Page 28: xây dựng hệ thống mạng trên Ubuntu

28 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

được vận chuyển qua network bởi smtp client. Dựa vào các lớp địa chỉ trên, the queue manager gọi các delivery agent phù hợp để xử lý message

Local Delivery :

The Local Delivery Agent điều khiển mail cho các users có shell account trên hệ thống mà Postfix đang chạy. Domain names cho local delivery được liệt kê trong biến “mydestination”. Những messages được gửi tối bất kỳ mydestination domain đều được chuyển đến các shell account cá nhân cho user. Nói 1 cách đơn giản là Local Delivery Agent chuyển email message đến các nơi lưu trử cục bộ ( local message store ).

Khi một message được chuyển tiếp ( forward ) đến 1 nơi khác, nó sẽ được gửi lại cho Postfix để được chuyển đến địa chỉ mới. Nếu xảy ra lỗi thì delivery agent sẽ báo cho queue manager đánh dấu message này sẽ cố gắng gửi đi lại trong thời gian tới và chứa nó ớ defer queue.

Virtual Alias Messages :

Virtual alias Message là những email được chuyển tiếp đến 1 địa chỉ khác. Vd : user name tom cho địa chỉ emai là [email protected] , đồng thời cũng có 1 alias email khác là [email protected] , vậy khi 1 email gửi tới [email protected] sẽ kiểm tra và nhận thấy rằng địa chỉ email thực của người nhận là [email protected] . postfix sẻ resubmitted email để gửi đến [email protected] . Domain name của virtual alias được định nghĩa trong biến “virtual_alias_domian “ và những user và địa chỉ email thực sự của chúng được định nghịa trong bàng tìm kiếm ( lookup table ) được định nghĩa trong “virtual_alias_maps”.

Virtual Mailbox Messages : Virtual Delivery Agent điểu khiển việc gửi và nhận mail của địa chỉ virtual mailbox. Những Mailboxs này không có liên kết nào với bất kỳ user nào trên hệ thống ( shell account ). Domain name và user của virtual mailboxs được định nghĩa trong 2 biến “virtual_mailbox_domain” và “virtual_mailbox_maps” .

Rrelay Messages : Smtp Delivery Agents điều khiển mail của các relay domains. Địa chỉ Email trong relay domain là những địa chỉ được lưu trữ trên hệ thống khác, nhưng Postfix chấp nhận các messages đó và chuyển tiếp chúng đến đúng

Page 29: xây dựng hệ thống mạng trên Ubuntu

29 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

hệ thống lưu trữ email đó. Domain names của relay domain được khai báo trong biến “relay_domain”. Chú ý: ngoài những delivery agent nêu trên Postfix còn hổ trở các delivery agent khác, định nghĩa một delivery agents được thực hiện trong file master.cf .

e. Tracing a Message Through Postfix : ở mục II chúng ta đã 1 cách tổng quát 1 email được gửi và nhận như thế nào. ở phần này chúng ta sẻ tìm hiểu 1 cách hoàn chỉnh 1 email sẽ di chuyển như thế nào trong hệ thống Postfix. Trong ví dụ bên dưới : Helene ( [email protected] ) có tài khoản trên hệ thống đang chạy Postfix gửi email tới Frank ( [email protected] ) và frank có 1 alias là [email protected] .

Hình 5- Tracing A Message 1 Vì Helene có account tren hệ thống nên email được gửi bằng lệnh postdrop và đưa vào maildrop directory, email sẻ được các daemon pickup, cleanup, trivial-rewrite để điền cách thông tin cần thiết cho email và được đưa vào incoming queue trong queue manager. Tiếp tục email được chuyển đến active queue, bởi vì đích đến của email này nằm bên ngoài hệ thống nên

Page 30: xây dựng hệ thống mạng trên Ubuntu

30 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

queue manager gọi smtp delivery agent để điều khiển việc gửi email này. Stmp agent truy vấn DNS để biết được địa chỉ của mail server của domain postfix.org và gửi email đi.

Hình 6 – Tracing A Message 2 Hình 6 cho ta thấy daemon smtp của domain postfix.org nhận email từ daemon smtp của domain oreilly.com. email lần lượt được các daemon cleanup , trivial-rewrite kiểm tra trước khi đặt email vào incoming queue, tiếp đến email được chuyển sang active queue và queue manager nhận thấy phải gọi local delivery agent để chuyển email đi. Local delivery agent kiểm tra và nhận ra frank là 1 alias ( bí danh ) và local delivery agent resubmitted email qua clenup daemon và gửi đi với đĩa chỉ mới.

Page 31: xây dựng hệ thống mạng trên Ubuntu

31 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Hình 7 – Tracing A Message 3 Ở hình 7 , các bước nhận email được thực hiên giống như hình 6 cho đến bước gọi local delivery agent để chuyển email đến người nhận thì local delivery agent kiểm tra và nhận thấy email hợp lệ và lưu vào Message store cho người nhận.

3. Postfix với LDAP : Postfix có thể sử dụng LDAP Directory như là nguồn dữ liệu cho mọi lookup của postfix như : alias, virtual, canonical. Điều này giúp bãn giữ thông tin của các tài khoản email an toàn và được bảo vệ tốt hơn. Vì không có thông tin nào lưu trên local nên có thể có nhiều mail server cùng sử dụng chung 1 thư viện thông tin mà không gặp vấn đề về sự trì hoãn khi update dữ liệu cho nhiều server. Để Postfix hoạt động được với LDAP directory thì postfix phải cài đặt gói postfix-ldap bằng lệnh sau : apt-get install postfix-ldap Ngoài ra bạn cũng cần phải khai báo trong file main.cf để postfix biết lookup thông tin băng giao thức nào : Vd : alias_maps = ldap:/etc/postfix/ldap-aliases.cf Trong file ldap-aliases.cf cần khai báo những thông tin như sau : server_host = ldap.example.com \\ chỉ ra địa chỉ của LDAP server search_base = dc=example, dc=com query_filter = mail=%s \\ attribute cần thiết để tìm kiếm result_attribute = maildrop \\ attribute được trả về.

IV. DOVECOT : 1. Giới Thiệu :

Dovecot là một Mail Delivery Agent, được viết rất bão mật , nó hổ trợ cả hai định dạng mailbox đó là mbox và maildir.

Dovecot cũng là một phần mềm mã nguổn mở để xây POP và IMAP server cho hệ thống Linux/Unix.

Dovecot là một lựa chọn hoàn hỏa cho 1 hệ thống email nhỏ cũng như 1 hệ thống email lớn bởi vì nó hoạt động nhanh , dễ dàng cài đặt và sử dụng rất ít bộ nhớ và tài nguyên của hệ thống.

Dovecot còn rất nhiều tính năng mạnh mẽ khác như : có thể hoạt động được với NFS và clustered filesystems, hổ trợ nhiều authentication databases và mechanisms, có thể làm nhiệm vụ chứng thực smtp , và có thể tích hợp nhiều plugins như quota và ACL.

2. Cơ bản về cấu hình dovecot : Để cấu hình Dovecot bạn tinh chỉnh file sau /etc/dovecot/dovecot.conf

Page 32: xây dựng hệ thống mạng trên Ubuntu

32 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Đầu tiên bạn chọn các protocol mà dovecot sẽ hổ trợ bằng biến sau : protocols = pop3 pop3s imap imaps kế đến bạn chọn định dạng mailbox mà dovecot sử dụng :

mail_location = maildir:~/Maildir # (for maildir) or mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u # (for mbox) chú ý : là bạn cũng phải cấu hình MTA sử dụng mailbox giống như bạn chọn ở trên. Đây là những cấu hình cơ bản mà bạn nên tìm hiểu, đồng thời bạn cũng nên hiểu Authentication Databases của Dovecot.

Authentication Databases :

Dovecot hổ trợ các dạng authentication databases sau :

Passwd: System users (NSS, /etc/passwd, or similiar)

Passwd-file: /etc/passwd-like file in specified location

LDAP: Lightweight Directory Access Protocol

SQL: SQL database (PostgreSQL, MySQL, SQLite)

VPopMail: External software used to handle virtual domains

Những Databases nên trên được sử dụng để chứa thông tin user và password của các tài khoản email mà dovecot gọi là password databases và user databases.

Password Databases :

Dovecot chứng thực user dựa vào các Password Databases và bạn có thể sử dụng nhiều password databases cùng một lúc. Nếu Dovecot kiểm tra với Databases thứ nhất mà không phù hợp nó sẽ tiếp tục kiểm tra tiếp Databases thứ 2. Điều này rất thuận lợi nếu như bạn muốn hổ trợ cho cả local user và virtual user.

Success/failure databases : Những loại thuộc databases này đơn giản kiểm tra password bạn cung cấp có đúng hay không , Dovecot không lấy password từ database mà chỉ lấy lại thông tin “success” hay “failure”. Những Databases thuộc loại này gồm có:

- PAM: Pluggable Authentication Modules. - BSDAuth: BSD authentication.

Page 33: xây dựng hệ thống mạng trên Ubuntu

33 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

- CheckPassword: External checkpassword program.

Lookup databases : Có hai loại databases thuộc Lookup databases như sau : Databases chỉ hổ trợ looking up password , không hổ trợ các

thông tin mở rộng của user : - Passwd: System users (NSS, /etc/passwd, or similiar). - Shadow: Shadow passwords for system users (NSS,

/etc/shadow or similiar). - VPopMail: External software used to handle virtual

domains. Database hổ trợ tìm kiếm tất cả các thông tin :

- Passwd-file: /etc/passwd-like file in specified location. - LDAP: Lightweight Directory Access Protocol. - SQL: SQL database (PostgreSQL, MySQL, SQLite).

User Databases :

sau khai user chứng thực thành công, Dovecot tìm kiếm thông tin của user, việc tìm kiếm đó được thực hiện bởi các delivery để tìm ra các thông tin cần thiết để vận chuyển mail cho user.

Các thông tin được tìm kiếm là : uid: User's UID (UNIX user ID) gid: User's GID (UNIX group ID) home: Home directory mail: Mail location (khi được tìm kiếm thì kết uả trả về sẽ thay thế

giá trị của mail_location) những user databases được dovecot hỗ trợ gồm có :

Passwd: System users (NSS, /etc/passwd, or similiar) Passwd-file: /etc/passwd-like file in specified location NSS: Name Service Switch (v1.1+) LDAP: Lightweight Directory Access Protocol SQL: SQL database (PostgreSQL, MySQL, SQLite) Static: Userdb information generated from a given template VPopMail: External software used to handle virtual domains Prefetch: This assumes that the passdb already returned also all the

required user database information

3. Dovecot và LDAP : Như đã trình bày phía trên ta thấy Dovecot có khả năng sử dụng LDAP là Authentication Databases.

Page 34: xây dựng hệ thống mạng trên Ubuntu

34 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Chúng ta có 2 cách để chưng thực LDAP : Password lookups Authentication binds

a. Password lookups: Ưu điểm của Password lookups so với Authentication binds : - Nhanh hơn , vì Dovecot có thể gửi nhiều yêu cầu đồng bộ LDAP

cùng một lúc tới server. Với Authentication binds thì phải chờ hoàn thành xong 1 request rồi mới gửi tiếp.

- Hổ trợ non-plaintext authentication mechanisms - Khi sử dụng Delivery và static userdb, delivery có thế kiểm tra sự

tồn tại của user. Còn với Authentication thỉ không thể thực hiện được việc này.

LDAP server permissions : thông thường thì LDAP server không cấp quyền cho bất cứ user này có quyền truy xuất password của user, cho nên bạn cần tạo 1 administrator account có quyền truy xuất userPassword field. Bằng cách thêm dùng sau trong file /etc/ldap/slapd.conf:

# there should already be something like this in the file: access to attribute=userPassword by dn="<dovecot's dn>" read # just add this line by anonymous auth by self write by * none

Thay "<dovecot's dn>" bằng DN mà bạn khai báo trong dovecot-ldap.conf. Dovecot configuration :

có 2 cấu hình quan trong trong password lookup là : pass_filter : chỉ ra bộ lọc Ldap nào để có thể tìm được user. Pass_attrs : chỉ ra các attributes nào được trả về tư LDAP sever. Nếu để trống thì sẽ trả về tất cả các attributes. Thông thường thì LDAP attribute không có tên trùng với các attribute của Dovecot sử dụng , do đó chúng ta phải ánh xạ chúng với nhau. Có cấu trúc như sau : <ldap attribute>=<dovecot field>. Vd : pass_attrs = uid=user, userPassword=password Sau đây là 1 ví dụ được cấu hình trong file dovecot-ldap.conf :

auth_bind = no pass_attrs = uid=user, userPassword=password pass_filter = (&(objectClass=posixAccount)(uid=%u))

Page 35: xây dựng hệ thống mạng trên Ubuntu

35 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

default_pass_scheme = MD5

b. Authentication binds : Ưu điểm :

- LDAP server kiểm tra password cho nên Dovecot không cần biết định dạng lưu trữu của password.

- Có thêm 1 chút bảo mật, vì không cần tạo dovecot user để có thể truy xuất đến password của tất cả user trên LDAP server.

Ta có thể bật chức năng Authentication binds bằng biến “auth_bind=yes” Vd :

auth_bind = yes pass_attrs = uid=user pass_filter = (&(objectClass=posixAccount)(uid=%u)) auth_bind_userdn = cn=%u,ou=people,o=org

Page 36: xây dựng hệ thống mạng trên Ubuntu

36 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN 4 : FIREWALL I. FireWall là gì :

- Thuật ngữ FireWall có nguồn gốc từ một kỹ thuật thiết kế trong xây dựng để ngăn chặn, hạn chế hoả hoạn. Trong Công nghệ mạng thông tin, FireWall là một kỹ thuật được tích hợp vào hệ thống mạng để chống lại sự truy cập trái phép nhằm bảo vệ các nguồn thông tin nội bộ cũng như hạn chế sự xâm nhập vào hệ thông của một số thông tin khác không mong muốn.

- Internet FireWall là một tập hợp thiết bị (bao gồm phần cứng và phần mềm) được đặt giữa mạng của một tổ chức, một công ty, hay một quốc gia (Intranet) và Internet.

- Trong một số trường hợp, Firewall có thể được thiết lập ở trong cùng một mạng nội bộ và cô lập các miền an toàn. Ví dụ như mô hình dưới đây thể hiện một mạng Firewall để ngăn cách phòng máy, người sử dụng và Internet.

II. Phân Loại Firewall : Firewall được chia làm 2 loại, gồm Firewall cứng và Firewall mềm:

1. Firewall cứng : Là những firewall được tích hợp trên Router.

Đặc điểm của Firewall cứng:

- Không được linh hoạt như Firewall mềm: (Không thể thêm chức năng, thêm quy tắc như firewall mềm)

- Firewall cứng hoạt động ở tầng thấp hơn Firewall mềm (Tầng Network và tầng Transport)

- Firewall cứng không thể kiểm tra được nột dung của gói tin. Ví dụ Firewall cứng: NAT (Network Address Translate).

2. Firewall mềm: Là những Firewall được cài đặt trên Server.

Đặc điểm của Firewall mềm:

- Tính linh hoạt cao: Có thể thêm, bớt các quy tắc, các chức năng - Firewall mềm hoạt động ở tầng cao hơn Firewall cứng (tầng ứng dụng)

Page 37: xây dựng hệ thống mạng trên Ubuntu

37 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

- Firewal mềm có thể kiểm tra được nội dung của gói tin (thông qua các từ khóa). + Ví dụ về Firewall mềm: ISA , iptables…

III. Tại sao cần Firewall ?

Nếu máy tính của bạn không được bảo vệ, khi bạn kết nối Internet, tất cả các giao

thông ra vào mạng đều được cho phép, vì thế hacker, trojan, virus có thể truy cập và lấy cắp thông tin cá nhân cuả bạn trên máy tính. Chúng có thể cài đặt các đoạn mã để tấn công file dữ liệu trên máy tính. Chúng có thể sử dụng máy tính cuả bạn để tấn công một máy tính của gia đình hoặc doanh nghiệp khác kết nối Internet. Một firewall có thể giúp bạn thoát khỏi gói tin hiểm độc trước khi nó đến hệ thống của bạn. Chức năng chính của Firewall:

Chức năng chính của Firewall là kiểm soát luồng thông tin từ giữa Intranet và Internet. Thiết lập cơ chế điều khiển dòng thông tin giữa mạng bên trong (Intranet) và mạng Internet. Cụ thể là:

- Cho phép hoặc cấm những dịch vụ truy nhập ra ngoài (từ Intranet ra Internet). - Cho phép hoặc cấm những dịch vụ phép truy nhập vào trong (từ Internet vào

Intranet). - Theo dõi luồng dữ liệu mạng giữa Internet và Intranet. - Kiểm soát địa chỉ truy nhập, cấm địa chỉ truy nhập. - Kiểm soát người sử dụng và việc truy nhập của người sử dụng. - Kiểm soát nội dung thông tin thông tin lưu chuyển trên mạng.

IV. IPTABLE FRIWALL: 1. Giới thiệu : Trong môi trường Linux phần mềm firewall phổ biến và cơ bản nhất là iptables, thông qua nó bạn có thể dễ dàng hiểu được nguyên lý hoạt động của một hệ thống firewall nói chung.

2. Cấu Trúc Iptable : Iptables cơ bản gồm ba bảng FILTER, MANGLE, NAT và các chain trong mỗi

bảng, với chúng người quản trị có thể tạo ra các rules cho phép các gói tin vào ra hệ

Page 38: xây dựng hệ thống mạng trên Ubuntu

38 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

thống (được bảo vệ bằng iptables) tuỳ theo ý muốn của mình. Chức năng cụ thể của chúng như sau. Mangle: dùng để chỉnh sửa QOS(qulity of service) bit trong phần TCP Header của

gói tin Filter: đúng như tên gọi nó dùng để lọc các gói tin gồm các build-in chain

- Forward chain: lọc những gói tin đi qua hệ thống (đi vào một hệ thống khác).

- Input chain: lọc những gói tin đi vào hệ thống. - Output chain: những gói tin đi ra từ hệ thống.

Nat: sửa địa chỉ gói tin gồm các build-in chain - Pre-routing: sửa địa chỉ đích của gói tin trước khi nó được routing bởi bảng

routing của hệ thống (destination NAT hay DNAT). - Post-routing: ngược lại với Pre-routing, nó sửa địa chỉ nguồn của gói tin

sau khi gói tin đã được routing bởi hệ thống (SNAT). Mỗi rule mà bạn tạo ra phải tương ứng với một chain, table nào đấy. Nếu bạn không xác định tables nào thì iptables coi mặc định là cho bảng FILTER.

3. Trình tự xử lý gói tin của iptables : Có thể tóm tắt trình tự xử lý gói tin của iptables bằng hình vẽ sau các gói tin từ ngoài đi vào sẽ được kiểm tra bởi các Pre-routing chain đầu tiên xem xem nó có cần DNAT không sau đó gói tin được routing. Nếu gói tin cần đi tới một hệ thống khác ( protected network ) nó sẽ được lọc bởi các FORWARD chain của bảng FILTER và nếu cần nó có thể được SNAT bởi các Post-routing chain trước khi đến được hệ thống đích. Tương tự khi hệ thống đích cần trả lời, gói tin sẽ đi theo thứ tự như vậy nhưng theo chiều ngược lại. Lưu ý trong hình vẽ những FORWARD và Post-routing chain của bảng mangle chỉ tác động vào đặc điểm QOS ( Quality of Service ) của gói tin. Nếu gói tin được gửi tới hệ thống ( hệ thống chứa iptables ) nó sẽ được xử lý bởi các INPUT chain và nếu không bị lọc bỏ nó sẽ được xử lý bởi một dịch vụ ( System Service ) nào đó chạy trên hệ thống. Khi hệ thống gửi trả lời, gói tin mà nó gửi đi được xử lý bởi các OUTPUT chain và có thể được xử ký bởi các Post-routing chain của bảng FILTER và bảng MANGLE nếu nó cần SNAT hay QoS.

Targets và Jumps những iptables rules kiểm tra những gói ip và cố gắng xác định nó sẽ được xử lý theo kiểu nào (target), khi đã được xác định gói ip sẽ được xử lý theo kiểu đó.

Sau đây là một số build-in targets thường được sử dụng. -ACCEPT: iptables chấp nhận gói tin, đưa nó qua hệ thống mà không tiếp tục kiểm tra nó nữa. - DROP: iptables loại bỏ gói tin, không tiếp tục xử lý nó nữa. - LOG: thông tin của gói tin sẽ được ghi lại bởi syslog hệ thống, iptables tiếp tục xử lý

Page 39: xây dựng hệ thống mạng trên Ubuntu

39 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

gói tin bằng những rules tiếp theo. - REJECT: chức năng của nó cũng giống như DROP tuy nhiên nó sẽ gửi một error message tới host đã gửi gói tin. - DNAT: dùng để sửa lại địa chỉ đích của gói tin. - SNAT: dùng để sửa lại địa chỉ nguồn của gói tin - MASQUERADE: cũng là một kiểu dùng để sửa địa chỉ nguồn của gói tin

để xây dựng các rules bạn còn phải sử dụng các tuỳ chọn để tạo điều kiện so sánh.Sau đây là một số tuỳ chọn thường dùng.

Page 40: xây dựng hệ thống mạng trên Ubuntu

40 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

-t : chỉ ra tên của bảng mà rule của bạn sẽ dược ghi vào (mặc định là FILTER ). -j : nhẩy đến một kiểu xử lý (target) tương ứng như đã định nghĩa ở trên nếu điều kiện so sánh thoả mãn. - A : ghi nối tiếp rule vào đuôi một chain - p : so sánh protocol gói tin. - s : so sánh địa chỉ nguồn của gói tin. - d : so sánh địa chỉ đích của gói tin - i : so sánh tên card mạng mà gói tin đi vào hệ thống qua đó - o : so sánh tên card mạng mà gói tin từ hệ thống đi ra qua đó. -p tcp –sport : xác định port nguồn của gói tin TCP. -p tcp –dport : xác định port đích của gói tin TCP -p udp –sport : xác định port nguồn của gói tin UDP -p udp –dport : xác định port đích của gói tin UDP –syn : xác định gói tin có phải là một yêu cầu tạo một kết nối TCP mới không. –icmp-type : xác định loại gói icmp (echo-reply hay echo-request). -m multiport –sport < port, port >: xác định một loạt các giá trị port nguồn -m multiport –dport < port, port >: xác định một loạt các giá trị port đích. -m multiport –port < port, port >: xác định một loạt các giá trị port ( không phân biệt nguồn hay đích ). -m –state < state >: xác định trạng thái kết nối mà gói tin thể hiện

ESTABLISHED: gói tin thuộc một kết nối đã được thiết lập. NEW: gói tin thể hiện một yêu cầu kết nối. RELATED : gói tin thể hiện một yêu cầu kết nối thứ hai (có liên quan đến kết nối thứ nhất, thường xuất hiện ở những giao thức FPT hay ICMP) INVALID : thể hiện một gói tin không hợp lệ

Page 41: xây dựng hệ thống mạng trên Ubuntu

41 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN 5 : DNS SERVER I. Giới Thiệu:

Duy trì một cơ sở dữ liệu DNS có thể giúp máy tính dịch tên miền chẳng hạn như www.ubuntu.com các địa chỉ IP như 91.189.94.249. Khi cá nhân không có máy chủ DNS để lưu trữ toàn bộ Internet trong cơ sở dữ liệu của nó thì mỗi máy chủ được cấu hình theo mặc định để yêu cầu máy chủ DNS khác. Một máy chủ DNS cũng được biết đến như là một cái tên server hoặc name server, như nhiệm vụ mô tả của nó trong file cấu hình chính DNS client / etc / resolv.conf.

Các tên được mô tả, ví dụ, một chuyển tiếp DNS: máy chủ chuyển tiếp yêu cầu. Một tên bộ nhớ đệm máy chủ lưu trữ các kết quả của yêu cầu chuyển tiếp; yêu cầu lặp đi lặp lại có thể sử dụng bộ nhớ cache không được chuyển tiếp. Như các dữ liệu trực tiếp có sẵn đến một máy chủ tổng thể nói chung là hạn chế trong một mạng nội bộ, nó cần để có thể chuyển tiếp yêu cầu là tốt. Cuối cùng, slaver DNS server (còn gọi là máy chủ thứ cấp) cần truy cập vào các cơ sở dữ liệu độc quyền trên máy chủ DNS chính.

- A master DNS server : Có thẩm quyền các bản ghi cho domain, yêu cầu cho địa chỉ IP của máy chủ khác có thể được lưu trữ hoặc chuyển tiếp.

- A secondary master DNS server Dựa trên một máy chủ DNS cho các dữ liệu tổng thể. Đó là cũng được biết đến như một máy chủ DNS nô lệ. Yêu cầu địa chỉ IP của máy khác có thể được lưu trữ hoặc chuyển tiếp ..

- A caching-only DNS server Nơi lưu trữ yêu cầu giống như một máy chủ proxy. Nếu Câu trả lời là không có trong bộ nhớ cache thì nó dùng để chỉ máy chủ DNS khác.

- A forwarding-only DNS server :Đề cập đến tất cả các yêu cầu tới máy chủ DNS khác.

II. The Reverse Zone File : cho phép một máy chủ DNS để chuyển đổi ngược lại, từ một địa chỉ IP đến một

tên máy. Reverse tra cứu khu vực được sử dụng bởi nhiều máy chủ của các loại khác nhau (FTP, IRC,WWW, và những người khác) để quyết định xem họ thậm chí còn muốn nói chuyện với một máy tính yêu cầu thông tin. Đó là một cách phổ biến cho một máy chủ mail để kiểm tra xem một e-mail đã đến từ một tên miền hợp lệ.

III. Master (Primary) Name Servers : Khi master DNS nhận được câu hỏi cho một khu vực mà nó là chính thức sau đó nó

sẽ trả lời là 'Authoritative' (bit AA được đặt trong một phản ứng truy vấn).

Page 42: xây dựng hệ thống mạng trên Ubuntu

42 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Nếu một master DNS nhận được một truy vấn cho một khu vực mà nó không phải là một master cũng không phải là slaver sau đó nó sẽ hoạt động như cấu hình (trong BIND hành vi này được định nghĩa trong file named.conf):

- Nếu hành vi của bộ nhớ đệm được phép và các truy vấn đệ quy được cho phép máy chủ hoàn toàn sẽ trả lời các yêu cầu hoặc trả lại một lỗi.

- Nếu hành vi của bộ nhớ đệm được phép và lặp đi lặp lại (không đệ quy) các truy vấn được cho phép máy chủ có thể đáp ứng với câu trả lời hoàn chỉnh (nếu nó đã có trong bộ nhớ cache vì yêu cầu khác), giấy giới thiệu, hoặc trả lại một lỗi.

- Nếu hành vi của bộ nhớ đệm là không được phép (một máy chủ DNS 'Authoritative Chỉ có') các máy chủ sẽ trả về một giới thiệu hoặc lỗi.

Một master DNS có thể thông báo thay đổi khu vực để xác định (thường là slave) các máy chủ - đây là hành vi mặc định , thông báo thông điệp đảm bảo các thay đổi khu vực đang nhanh chóng lan truyền đến những slave (gián đoạn điều khiển) hơn là dựa trên máy chủ slave định kỳ bỏ phiếu cho những thay đổi.

Một tổng thể khu vực có thể là 'ẩn' (chỉ có một hoặc nhiều slave biết về sự tồn tại của nó). Không có yêu cầu cấu hình như vậy cho các máy chủ tổng thể để xuất hiện trong một RR NS cho các tên miền. Yêu cầu duy nhất là hai (hoặc nhiều) tên máy chủ hỗ trợ các vùng. Cả hai máy chủ có thể là bất kỳ sự kết hợp của chủ nô, nô lệ hay nô lệ chủ thậm chí-master.

IV. Slave (Secondary) Name Servers : A Slave DNS lấy vùng dữ liệu của mình bằng cách sử dụng một hoạt động chuyển

vùng (thường là từ một tổng thể khu vực) và nó sẽ phản ứng như có thẩm quyền đối với những khu vực mà nó được định nghĩa là một 'slave' và một cấu hình khu vực hiện đang còn hiệu lực. Nó là không thể xác định từ kết quả truy vấn mà nó đến từ một tổng thể khu vực hoặc các slave.

Có thể có bất kỳ số lượng DNS của slave cho bất kỳ khu vực nhất định. Tình trạng slave được định nghĩa trong BIND bằng cách bao gồm 'slave types”'trong

phần khai báo vùng của file named.conf như thể hiện bởi các đoạn sau đây: // example.com fragment from named.conf // defines this server as a zone slave zone "example.com" in{ type slave; file "sec/sec.example.com"; masters {192.168.23.17;}; };

Page 43: xây dựng hệ thống mạng trên Ubuntu

43 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Các master DNS cho từng vùng được xác định trong một tuyên bố của master của khu điều khoản và cho phép slaver để làm mới bản ghi khu , khi hết thời hạn tham số của Bản ghi SOA đạt được. Nếu một slave không thể đạt được master DNS khi "hết hạn" thời gian đã đạt tới nó sẽ ngưng đáp ứng các yêu cầu cho khu vực. Nó sẽ không sử dụng dữ liệu thời gian hết hạn.

Các tham số tập tin là tùy chọn và cho phép slave để ghi các vùng chuyển sang đĩa và do đó nếu BIND được khởi động lại trước khi thời gian hết hạn sử dụng ,các máy chủ sẽ sử dụng dữ liệu lưu. Trong các hệ thống lớn DNS này có thể tiết kiệm một lượng đáng kể lưu lượng mạng.

V. Stealth (a.k.a. DMZ or Split) Name Server : Một máy chủ tàng hình được định nghĩa như là một máy chủ tên mà không xuất

hiện trong bất kỳ hiển thị công khai NS Records cho domain. Các máy chủ tàng hình thường được sử dụng trong cấu hình được gọi là Split Một cấu hình Split Server được hiển thị trong hình:

Các máy chủ nội bộ (máy chủ Stealth) có thể được cấu hình để làm dịch vụ có thể

nhìn thấy bên trong và bên ngoài, cung cấp các truy vấn đệ quy và tất cả các dịch vụ khác. Máy chủ này sẽ sử dụng một tập tin khu vực chủ tư nhân có thể nhìn như thế này:

; private zone master file used by stealth server(s) ; provides public and private services and hosts example.com. IN SOA ns.example.com. root.example.com. ( 2003080800 ; se = serial number 3h ; ref = refresh 15m ; ret = update retry 3w ; ex = expiry 3h ; min = minimum ) IN NS ns1.example.com. IN NS ns2.example.com.

Page 44: xây dựng hệ thống mạng trên Ubuntu

44 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

IN MX 10 mail.example.com. ; public hosts ns1 IN A 192.168.254.1 ns2 IN A 192.168.254.2 mail IN A 192.168.254.3 www IN A 192.168.254.4 ftp IN A 192.168.254.5 ; private hosts joe IN A 192.168.254.6 bill IN A 192.168.254.7 fred IN A 192.168.254.8 .... accounting IN A 192.168.254.28 payroll IN A 192.168.254.29

Các quy định cụ thể trong Internet style data

- NS record là tên máy chủ tài nguyên ghi lại - MX record là bản ghi Mail Exchange,mà chỉ dẫn e-mail thông tin đến một máy

tính ,Nếu có nhiều hơn một máy chủ e-mail, bạn có thể thêm nhiều hơn một bản ghi MX cho chuyển cơ sở dữ liệu tập tin.

- CNAME dùng để chỉ định cùng một địa chỉ cho các máy chủ khác như những người liên quan đến máy chủ FTP hoặc thậm chí rsync. Tuy nhiên, CNAME không còn làm việc cho các máy chủ e-mail.Nếu chỉ muốn cấu hình vùng chuyển tiếp trong / bind / etc / named.conf.local, đó là thời gian để đọc lại các file cấu hình với lệnh rndc reload.

Page 45: xây dựng hệ thống mạng trên Ubuntu

45 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN 6: WEB SEVER (APACHE) I. Giới Thiệu :

Một máy chủ web là một loại đặc biệt của máy chủ tập tin mà tất cả phải là tập tin cung cấp được lưu trữ trong một cấu trúc thư mục chuyên dụng. Các gốc của cấu trúc này được gọi là gốc của tài liệu, và các định dạng tập tin mà cung cấp các tập tin là HTML, ngôn ngữ đánh dấu siêu văn bản. Nhưng một máy chủ web có thể cung cấp nhiều hơn là chỉ tập tin HTML. Trong thực tế, các máy chủ web có thể phục vụ bất cứ thứ gì, miễn là nó được ghi rõ trong tập tin HTML. Do đó, một máy chủ web là một nguồn rất tốt cho những dòng âm thanh và video, truy cập cơ sở dữ liệu, hiển thị hình ảnh động, hiển thị hình ảnh, và nhiều hơn nữa.

Ngoài các máy chủ web nơi có nội dung được lưu trữ, khách hàng còn có thể sử dụng một giao thức cụ thể để truy cập nội dung này là tốt, và giao thức này là HTTP (các giao thức truyền siêu văn bản). Thông thường, khách hàng sử dụng một trình duyệt web để tạo ra các HTTP lệnh mà lấy nội dung, ở dạng HTML và các file khác, từ một máy chủ web. hai phiên bản khác nhau của máy chủ web Apache. Việc gần đây nhất phiên bản 2.x, là một trong những cài đặt mặc định trên Ubuntu Server. Tuy nhiên, môi trường gặp phải mà vẫn sử dụng trước đây 1.3. Điều này thường xảy ra nếu, ví dụ, các kịch bản tuỳ chỉnh đã được phát triển để sử dụng với 1.3, và những kịch bản không tương thích với 2.x.

Page 46: xây dựng hệ thống mạng trên Ubuntu

46 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

1. Mô Hình Hoạt Động:

2. Địa Chỉ URL : URL (viết tắt của Uniform Resource Locator) được dùng để tham chiếu tới tài nguyên trên Internet. URL mang lại khả năng siêu liên kết cho các trang mạng. Một URL bao gồm tên giao thức (http,ftp), tên miền, có thể chỉ định cổng, đường dẫn tuyệt đối trên máy phục vụ của tài nguyên, các truy vấn, chỉ định mục con.

II. Giới Thiệu Về APACHE : 1. Tổng Quan : Apache là một máy chủ web kiểu mô-đun, có nghĩa là các máy chủ lõi (có vai trò là cơ bản để phục vụ lên các văn bản HTML) có thể được mở rộng bằng cách sử dụng một loạt các mô-đun tùy chọn:

• libapache2-mod-auth-mysqld: module này cho Apache như thế nào để xử lý xác thực người dùng với một cơ sở dữ liệu MySQL. • libapache2-mod-auth-pam: module này chỉ thị Apache làm thế nào để xác thực người dùng, sử dụng cơ chế Linux PAM. • libapache-mod-frontpage: module này chỉ thị Apache như thế nào để xử lý các trang web

Page 47: xây dựng hệ thống mạng trên Ubuntu

47 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

bằng cách sử dụng Microsoft FrontPage mở rộng. • libapache2-mod-mono: module này cho Apache làm thế nào để giải mã ASP.NET đây là một danh sách ngắn và không đầy đủ của tất cả các module có thể sử dụng trên web Apache server: http://modules.apache.org hiện danh sách hơn 450 mô-đun. Điều quan

trọng là xác định chính xác những mô-đun nào cần cho máy chủ để có thể mở rộng chức năng của nó cho phù hợp

Các dự án Apache Directory cung cấp giải pháp thư mục hoàn toàn được viết bằng Java. Chúng bao gồm một máy chủ thư mục, mà đã được chứng nhận là LDAP v3 phù hợp do Tập đoàn Open (Apache Directory Server), và các công cụ thư mục dựa trên Eclipse (Apache Directory Studio).

Apache Directory Server ApacheDS là một máy chủ thư mục nhúng hoàn toàn được viết bằng Java, đã được chứng nhận tương thích LDAPv3 do Tập đoàn Open. Bên cạnh đó LDAP nó hỗ trợ Kerberos 5 và những thay đổi mật khẩu Nghị định thư. Nó đã được thiết kế để giới thiệu gây nên, thủ tục, hàng đợi và quan điểm với thế giới của LDAP đã thiếu các cấu trúc phong phú.

Apache Directory Studio Apache Directory Studio là một thư mục nền tảng công cụ hoàn chỉnh dự định sẽ được sử dụng với bất kỳ máy chủ LDAP tuy nhiên nó đặc biệt được thiết kế để sử dụng với các ApacheDS. Nó là một ứng dụng RCP Eclipse, bao gồm một số Eclipse (OSGi) bổ sung, có thể dễ dàng nâng cấp với những người khác. Những bổ sung thậm chí có thể chạy trong Eclipse chính nó.

III. APACHE VÀ LDAP : APACHE sử dụng Module mod_authnz_ldap để Cho phép một thư mục LDAP

được sử dụng để lưu trữ các cơ sở dữ liệu để xác thực HTTP cơ bản: Module này cung cấp chứng thực trước kết thúc như mod_auth_basic để xác thực

người dùng thông qua một thư mục LDAP. mod_authnz_ldap hỗ trợ các tính năng sau:

- Được biết đến để hỗ trợ các SDK OpenLDAP (cả 1.x và 2.x), Novell LDAP SDK và iPlanet các (Netscape) SDK. - chính sách cấp phép phức tạp có thể được thực hiện bởi đại diện chính sách với các bộ lọc LDAP. - Sử dụng rộng bộ nhớ đệm của các hoạt động LDAP thông qua mod_ldap. - Hỗ trợ cho LDAP qua SSL (yêu cầu các SDK Netscape) hoặc TLS (yêu cầu OpenLDAP 2.x SDK hoặc Novell LDAP SDK).

Page 48: xây dựng hệ thống mạng trên Ubuntu

48 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Có hai giai đoạn trong việc cấp quyền truy cập cho người dùng. Giai đoạn đầu tiên là xác thực, trong đó các nhà cung cấp chứng thực mod_authnz_ldap xác nhận rằng thông tin của người dùng là hợp lệ. Điều này cũng được gọi là tìm kiếm / giai đoạn kết. Giai đoạn thứ hai là ủy quyền, trong đó mod_authnz_ldap quyết định nếu người sử dụng chứng thực được phép truy cập vào các tài nguyên trong câu hỏi. Điều này cũng được biết đến như là so sánh các giai đoạn.

mod_authnz_ldap đăng ký cả hai nhà cung cấp xác thực và ủy quyền authn_ldap authz_ldap một bộ xử lý. Các nhà cung cấp authn_ldap chứng thực có thể được kích hoạt thông qua các chỉ thị AuthBasicProvider sử dụng giá trị ldap. Việc xử lý ủy quyền authz_ldap mở rộng các loại chỉ thị bằng cách thêm Yêu cầu của người sử dụng ldap, ldap dn-và ldap-nhóm các giá trị.

Trong giai đoạn thẩm định, tìm kiếm mod_authnz_ldap cho một mục trong thư mục phù hợp với tên người dùng mà máy khách HTTP qua. Nếu một trận đấu duy nhất duy nhất được tìm thấy, sau đó mod_authnz_ldap cố gắng để gắn kết với các máy chủ thư mục bằng cách sử dụng các DN của mục nhập cộng với các mật khẩu được cung cấp bởi các khách hàng HTTP. Bởi vì nó thực hiện một tìm kiếm, sau đó một liên kết, nó thường được gọi tắt là tìm kiếm / giai đoạn kết. Dưới đây là các bước thực hiện trong thời gian tìm kiếm / giai đoạn kết.

1. The Authentication Phase : - Tạo một bộ lọc tìm kiếm bằng cách kết hợp các thuộc tính và các bộ lọc được

cung cấp trong chỉ thị AuthLDAPURL với tên người dùng thông qua các giao thức.

- Tìm kiếm thư mục bằng cách sử dụng tạo ra bộ lọc. Nếu tìm kiếm không trả về đúng một mục, từ chối hoặc từ chối truy cập.

- Lấy tên phân biệt của mục nhập lấy từ các tìm kiếm và cố gắng kết nối tới các máy chủ LDAP bằng cách sử dụng mà DN và mật khẩu thông qua các giao thức. Nếu liên kết là không thành công, từ chối hoặc từ chối truy cập.

2. The Authorization Phase : Trong giai đoạn cấp phép, cố gắng mod_authnz_ldap để xác định xem người

sử dụng được uỷ quyền truy cập tài nguyên. Nhiều người trong số các yêu cầu kiểm tra mod_authnz_ldap để làm một so sánh hoạt động trên máy chủ LDAP. Đây là lý do tại sao giai đoạn này thường được gọi là so sánh các giai đoạn. mod_authnz_ldap chấp nhận những điều sau đây Yêu cầu chỉ thị để xác định xem các thông tin được chấp nhận:

Cấp quyền truy cập nếu có một Yêu cầu người sử dụng ldap chỉ thị, và tên người dùng trong chỉ thị phù hợp với tên người dùng thông qua bởi khách hàng.

Page 49: xây dựng hệ thống mạng trên Ubuntu

49 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Cấp quyền truy cập nếu có một Yêu cầu ldap-dn chỉ thị, và các DN trong chỉ thị phù hợp với DN lấy từ các thư mục LDAP.

Cấp quyền truy cập nếu có một Yêu cầu ldap nhóm chỉ thị, và các DN lấy từ các thư mục LDAP (hoặc tên người dùng thông qua khách hàng) xảy ra ở nhóm LDAP hay, có khả năng, trong một nhóm con của nó.

Cấp quyền truy cập nếu có một Yêu cầu ldap-thuộc tính chỉ thị, và thuộc tính lấy từ các thư mục LDAP phù hợp với giá trị nhất định.

Cấp quyền truy cập nếu có một Yêu cầu ldap-lọc chỉ thị, và tìm kiếm các bộ lọc thành công tìm thấy một đối tượng người dùng duy nhất phù hợp với dn của người sử dụng chứng thực.

nếu không, phủ nhận hoặc từ chối truy cập Yêu cầu các giá trị khác cũng có thể được sử dụng mà có thể yêu cầu các mô-đun tải uỷ quyền bổ sung.

Cấp quyền truy cập đến tất cả người dùng xác thực thành công nếu có một Yêu cầu hợp lệ của người sử dụng chỉ thị. (yêu cầu mod_authz_user)

Cấp quyền truy cập nếu có một nhóm Yêu cầu các chỉ thị, và mod_authz_groupfile đã được tải với các chỉ thị AuthGroupFile thiết lập.

3. The Require Directives : Yêu cầu chỉ thị của Apache được sử dụng trong giai đoạn cấp phép để đảm bảo rằng người dùng được phép truy cập vào một nguồn tài nguyên. mod_authnz_ldap mở rộng các loại hình ủy quyền với người sử dụng ldap, ldap dn-, ldap nhóm, ldap thuộc tính và ldap-lọc. Các loại giấy phép khác cũng có thể được sử dụng nhưng có thể yêu cầu thêm module cho phép được nạp.

a. Require ldap-user : Các Yêu cầu người sử dụng ldap chỉ thị xác định những gì tên người dùng

có thể truy cập các tài nguyên. Một khi đã lấy mod_authnz_ldap một DN độc đáo từ thư mục, nó có một LDAP so sánh hoạt động bằng cách sử dụng tên người dùng quy định tại các Yêu cầu người sử dụng ldap để xem tên người dùng đó là một phần của chỉ mục LDAP cường điệu. Nhiều người sử dụng có thể được cấp quyền truy cập bằng cách đặt nhiều tên người dùng trên dòng, ngăn cách với không gian. Nếu tên người dùng một có một không gian trong nó, sau đó nó phải được bao quanh với dấu ngoặc kép. Nhiều người dùng cũng có thể được cấp quyền truy cập bằng cách sử dụng nhiều ldap Yêu cầu người sử dụng chỉ thị, với một người sử dụng trên mỗi dòng. Ví dụ, với một AuthLDAPURL của ldap: / ldap / / o = Ví dụ cn (tức là, cn được sử dụng cho

Page 50: xây dựng hệ thống mạng trên Ubuntu

50 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

các tìm kiếm), các chỉ thị Yêu cầu sau đây có thể được sử dụng để hạn chế truy cập:

Require ldap-user "Barbara Jenson" Require ldap-user "Fred User" Require ldap-user "Joe Manager"

Bởi vì cách xử lý mod_authnz_ldap chỉ thị này, Barbara Jenson có thể đăng nhập vào như Barbara Jenson, Babs Jenson hoặc cn nào khác mà cô có trong mục LDAP của cô. Chỉ có duy nhất dòng ldap Yêu cầu người sử dụng là cần thiết để hỗ trợ tất cả các giá trị của thuộc tính trong mục nhập của người dùng. Nếu các thuộc tính đã được sử dụng thay vì uid của thuộc tính cn trong URL ở trên, ba trên đường có thể được cô đặc để Require ldap-user bjenson fuser jmanager

b. Require ldap-group : Chỉ thị này quy định một nhóm LDAP mà các thành viên được phép truy

cập. Nó có tên phân biệt của nhóm LDAP. Lưu ý: Không bao quanh tên nhóm với dấu ngoặc kép. Ví dụ, giả sử rằng các mục sau đây tồn tại trong thư mục LDAP: dn: cn=Administrators, o=Example

objectClass: groupOfUniqueNames uniqueMember: cn=Barbara Jenson, o=Example uniqueMember: cn=Fred User, o=Example

Chỉ thị sau đây sẽ cấp quyền truy cập cho cả Fred và Barbara: Require ldap-group cn=Administrators, o=Example Các thành viên cũng có thể được tìm thấy trong các nhóm của một nhóm LDAP quy định nếu AuthLDAPMaxSubGroupDepth được thiết lập là giá trị lớn hơn 0. Ví dụ, giả sử các mục sau đây tồn tại trong thư mục LDAP:

dn: cn=Employees, o=Example objectClass: groupOfUniqueNames uniqueMember: cn=Managers, o=Example uniqueMember: cn=Administrators, o=Example uniqueMember: cn=Users, o=Example dn: cn=Managers, o=Example objectClass: groupOfUniqueNames

Page 51: xây dựng hệ thống mạng trên Ubuntu

51 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

uniqueMember: cn=Bob Ellis, o=Example uniqueMember: cn=Tom Jackson, o=Example dn: cn=Administrators, o=Example objectClass: groupOfUniqueNames uniqueMember: cn=Barbara Jenson, o=Example uniqueMember: cn=Fred User, o=Example dn: cn=Users, o=Example objectClass: groupOfUniqueNames uniqueMember: cn=Allan Jefferson, o=Example uniqueMember: cn=Paul Tilley, o=Example uniqueMember: cn=Temporary Employees, o=Example dn: cn=Temporary Employees, o=Example objectClass: groupOfUniqueNames uniqueMember: cn=Jim Swenson, o=Example uniqueMember: cn=Elliot Rhodes, o=Example

c. Require ldap-dn: Các Yêu cầu ldap-dn chỉ thị cho phép người quản trị để cấp quyền truy cập

dựa trên tên phân biệt. Nó chỉ định một DN mà phải phù hợp cho việc truy cập để được cấp. Nếu tên phân biệt được lấy từ máy chủ thư mục phù hợp với tên phân biệt trong Yêu cầu dn-ldap, sau đó ủy quyền được cấp. Lưu ý: đừng bao quanh tên phân biệt với dấu ngoặc kép.

Chỉ thị sau đây sẽ cấp quyền truy cập vào một DN cụ thể: Require ldap-dn cn=Barbara Jenson, o=Example

d. Require ldap-attribute : Các Yêu cầu ldap-thuộc tính chỉ thị cho phép người quản trị để cấp quyền

truy cập dựa trên các thuộc tính của người sử dụng chứng thực trong thư mục LDAP. Nếu các thuộc tính trong thư mục phù hợp với giá trị đưa ra trong cấu hình, truy cập được cấp.

Chỉ thị sau đây sẽ cấp quyền truy cập cho bất kỳ ai với các employeeType thuộc tính = hoạt động

Require ldap-attribute employeeType=active

Page 52: xây dựng hệ thống mạng trên Ubuntu

52 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Nhiều thuộc tính / giá trị các cặp có thể được chỉ định trên cùng một dòng cách nhau bởi khoảng trắng hoặc chúng có thể được quy định tại nhiều ldap-Yêu cầu chỉ thị thuộc tính. Hiệu quả của việc niêm yết nhiều thuộc tính / giá trị cặp là một hoạt động hoặc. Truy cập sẽ được cấp nếu có của các giá trị thuộc tính được liệt kê phù hợp với giá trị của thuộc tính tương ứng trong các đối tượng người dùng. Nếu giá trị của thuộc tính có một không gian, chỉ có giá trị phải nằm trong dấu ngoặc kép. Chỉ thị sau đây sẽ cấp quyền truy cập cho bất kỳ ai với các thành phố thuộc tính bằng "San Jose" hoặc tình trạng bằng "Active" Require ldap-attribute city="San Jose" status=active

e. Require ldap-filter : Các Yêu cầu ldap-filter chỉ thị cho phép người quản trị để cấp quyền truy

cập dựa trên một bộ lọc tìm kiếm LDAP phức tạp. Nếu các dn trở lại của bộ lọc tìm kiếm phù hợp với dn người dùng xác thực, truy cập được cấp.

Chỉ thị sau đây sẽ cấp quyền truy cập cho bất cứ ai có một điện thoại di động và là trong bộ phận tiếp thị Require ldap-filter &(cell=*)(department=marketing)

Sự khác biệt giữa các thị ldap-filter Yêu cầu và các chỉ thị Yêu cầu ldap-thuộc tính là ldap-lọc thực hiện một hoạt động tìm kiếm trên các thư mục LDAP bằng cách sử dụng bộ lọc tìm kiếm quy định chứ không phải là một so sánh thuộc tính đơn giản. Nếu so sánh thuộc tính đơn giản là tất cả những gì là cần thiết, các hoạt động so sánh được thực hiện bởi thuộc tính-ldap sẽ được nhanh hơn các hoạt động tìm kiếm được sử dụng bởi ldap-lọc đặc biệt là trong một thư mục lớn.

Page 53: xây dựng hệ thống mạng trên Ubuntu

53 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN 7 : DHCP I. Vai Trò Của DHCP Trong Một Hệ Thống Mạng :

1. DHCP là gì : DHCP là viết tắt của Dynamic Host Configuration Protocol, là giao thức Cấu hình Host Động được thiết kế làm giảm thời gian chỉnh cấu hình cho mạng TCP/IP bằng cách tự động gán các địa chỉ IP cho khách hàng khi họ vào mạng. Dich vụ DHCP là một thuận lới rất lớn đối với người điều hành mạng. Nó làm yên tâm về các vấn đề cố hữu phát sinh khi phải khai báo cấu hình thủ công. Nói một cách tổng quan hơn DHCP là dich vụ mang đến cho chúng ta nhiều lợi điểm trong công tác quản trị và duy trì một mạng TCP/IP như:

- Tập chung quản trị thông tin về cấu hình IP. - Cấu hình động các máy. - Cấu hình IP cho các máy một cách liền mạch - Sự linh hoạt - Khả năng mở rộng.

2. DHCP làm việc như thế nào: DHCP tự động quản lý các địa chỉ IP và loại bỏ được các lỗi có thể làm mất liên lạc. Nó tự động gán lại các địa chỉ chưa được sử dụng và cho thuê địa chỉ trong một khoảng thời gian.

II. Bổ Sung Và Cấp Phép Cho Dịch Vụ DHCP Hoạt Động : 1. Tại sao sử dụng dịch vụ DHCP: - Giảm bớt được các hiện tượng xung đột về IP, hay các lỗi về IP, luôn đảm bảo

cho các máy client được cấu hình đúng. - Đơn giản hóa trong công tác quản trị.

2. Địa chỉ IP động đặc biệt là gì ? Địa chỉ IP động đặc biệt (Automatic private IP Addressing) hay APIPA là một

dặc trưng của hệ điều hành Microsoft windows cho phép gán một dải địa chỉ IP tự động trên các máy Client dải địa chỉ này có giá trị trong khoảng từ: 169.254.0.0 đến 169.254.255.255. khi mà dịch vụ DHCP server không được phép cấp phát IP cho các máy Client.

3. Cách thức cấp phát địa chỉ IP động : Dịch vụ DHCP sẽ thiết lập Hợp đồng thuê địa chỉ IP và ra gạn hợp đồng cho thuê địa chỉ IP nhằm cấp phát địa chỉ IP động cho các máy Client.

Page 54: xây dựng hệ thống mạng trên Ubuntu

54 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

III. Cấu Hình Phạm Vi Cấp Phát Của Dịch Vụ DHCP: 1. Phạm vi cấp phát DHCP là gì : Phạm vi cấp phát là dải địa chỉ IP hợp lệ được dùng để thuê hoặc gán cho các máy Client trên cùng một Subnet. Ta cấu hình một pham vi cấp phát trên DHCP Server để xác định dải địa chỉ IP mà các Server có thể gán cho các máy Client.

2. Tại sao phải sử dụng phạm vi cấp phát DHCP? Phạm vi cấp phát sẽ xác định xem những địa chỉ IP nào sẽ được phép cấp phát cho các máy client

IV. Cấu hình địa chỉ DHCP giành sẵn (Reservations) và các tùy chọn của DHCP: 1. Địa chỉ DHCP dành sẵn là gì?

Địa chỉ IP dành sẵn là một dải địa chỉ IP được gán cố định. Nó là dải địa chỉ IP được tạo ra trong một phạm vi (scope) dành riêng, dải địa chỉ IP dành riêng này được dùng để gàn cho các máy Client (Chúng là các địa chỉ IP tĩnh trong mạng được gán cho các máy client).

2. Một dải địa chỉ IP dành sẵn bao gồm có các thông tin sau : - Reservation Name :Là tên được gán bởi nhà quản trị. - IP Address : Là phạm vi dải địa chỉ IP được gán cho các máy Client. - MAC Address: Là địa chỉ MAC của mỗi thiết bị mà bạn muốn dành sẵn

một địa chỉ IP cho nó. - Description: Những mô tả do nhà quản trị đưa ra.

Supported Type:Kiểu hỗ trợ này có thế là: DHCP dành sẵn, BOOTP dành sẵn, hoặc cả hai.

3. Tùy chọn DHCP là gì? Các tùy chọn DHCP là các tham số cấu hình máy khách bổ sung mà một máy chủ DHCP có thể gán khi phục vụ các máy khách DHCP.

4. Tại sao phải sử dụng tùy chọn DHCP? Các tùy chọn DHCP được cấu hình sử dụng bảng điều khiển DHCP và có thể được áp dụng cho nhiều phạm vi và sự dành sẵn.Một tùy chọn DHCP sẽ làm tăng thêm các chức năng cho hệ thống mạng. Các tùy chọn DHCP cho phép bạn thêm dữ liệu cấu hình IP các client.

5. Một số tùy chọn chung của DHCP: - Router (Default Gateway): Địa chỉ của bất cứ cổng ra mặc định (default

gateway) hay bộ định tuyến (router) nào.

Page 55: xây dựng hệ thống mạng trên Ubuntu

55 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

- DNS Domain Name: Tên miền DNS xác định miền mà máy khách sẽ phụ thuộc. Máy khách có thể sử dụng thông tin này dể cập nhật thông tin lên máy chủ DNS để các máy tính khác có thể tìm thấy nó.

- DNS Servers: Địa chỉ của bất cứ máy chủ DNS nào mà máy khách có thể sử dụng trong quá trình truyền thông

- WINS Servers: Địa chỉ của bất cứ máy chủ WINS nào mà máy khách có thể sử dụng trong quá trình truyền thông

- WINS Node Type: Là một kiểu phương thức phân giải tên NetBIOS mà các máy khách (Client) có thế sử dụng.

V. CẤU HÌNH DHCP DHCP Relay Agent: 1. DHCP relay agent là gì? DHCP relay agent là một máy tính hoặc một Router được cấu hình để lắng nghe các thông điệp quảng bá DHCP/BOOTP từ DHCP client, chuyển tiếp các thông điệp quảng bá từ một giao tiếp này đến giao tiếp khác. và hướng chúng tới một hoặc nhiều máy chủ DHCP cụ thể.

2. Tại sao phải sử dụng DHCP relay agent: Vì: DHCP clients sử dụng một địa chỉ quảng bá (broadcast) để bảo mật việc thuê một địa chỉ IP từ DFHCP server. Một Router thong thường không thể thông qua một broadcast trừ khi nó được cấu hình riêng biệt.

- Tiết kiệm được số địa chỉ IP thật ( Public IP) - Phù hợp với các máy tính thường xuyên di chuyển giữa các lớp mạng. - Kết hợp với hệ thống mạng không dây ( Wireless) cung cấp tại các điểm -

Hotspot như: nhà ga, sân bay, khách sạn, trường học. - Thuận tiện cho việc bổ xung các thiết bị mới vào lớp mạng.

VI. Phương thức hoạt động của dịch vụ DHCP: Dịch vụ DHCP hoạt động theo mô hình Client / Server. Theo đó quá trình tương tác giữa DHCP client và server sẽ diễn ra theo các bước sau.

Bước 1: Khi máy Client khởi động, máy sẽ gửi broadcast gói tin DHCP DISCOVER, yêu cầu một Server phục vụ mình. Gói tin này cũng chứa địa chỉ MAC của client. Nếu client không liên lạc được với DHCP Server thì sau 4 lần truy vấn không thành công nó sẽ tự động phát sinh ra 1 địa chỉ IP riêng cho chính mình nằm trong dãy 169.254.0.0 đến 169.254.255.255 dùng để liên lạc tạm thời. Và client vẫn duy trì việc phát tín hiệu Broad cast sau mỗi 5 phút để xin cấp IP từ DHCP Server.

Bước 2: Các máy Server trên mạng khi nhận được yêu cầu đó. Nếu còn khả năng cung cấp địa chỉ IP, đều gửi lại cho máy Client một gói tin DHCP OFFER, đề nghị cho thuê một địa chỉ IP trong một khoảng thời gian nhất định, kèm theo là một Subnet Mask và địa chỉ của Server. Server sẽ không cấp phát đia chỉ IP vừa đề nghị cho client thuê trông suốt thời gian thương thuyết.

Page 56: xây dựng hệ thống mạng trên Ubuntu

56 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Bước 3:Máy Client sẽ lựa chọn một trong những lời đền nghị ( DHCPOFFER) và gửi broadcast lại gói tin DHCPREQUEST và chấp nhận lời đề nghị đó. Điều này cho phép các lời đề nghị không được chấp nhận sẽ được các Server rút lại và dùng để cấp phát cho các Client khác.

Bước 4: Máy Server được Client chấp nhận sẽ gửi ngược lại một gói tin DHCP ACK như một lời xác nhận, cho biết địa chỉ IP đó, Subnet Mask đó và thời hạn cho sử dụng đó sẽ chính thức được áp dụng. Ngoài ra server còn gửi kèm những thông tin bổ xung như địa chỉ Gateway mặc định, địa chỉ DNS Server...

Page 57: xây dựng hệ thống mạng trên Ubuntu

57 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN THỰC HÀNH

Page 58: xây dựng hệ thống mạng trên Ubuntu

58 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Page 59: xây dựng hệ thống mạng trên Ubuntu

59 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN 1 : LDAP VÀ SAMPA PDC SERVER I. Chuẩn bị :

- Cài đặ ubuntu server 10.04 32bit hay 64bit - Đặt địa chỉ IP tỉnh và máy có thể kết nối internet. - Update ubuntu server băng lệnh sau :

apt-get update apt-get dist-upgrade

- reboot.

II. Cài đặt và cấu hỉnh LDAP và SAMBA server. Bước 1: mở 1 terminal và lấy quyền root bằng lệnh sudo su va đánh password của

hệ thống

Bước 2 : install LDAP server bằng lệnh apt-get install slapd ldap-utils

Bước 3 : ta add các schema cần thiết cho LDAP bằng các lệnh sau :

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif

Page 60: xây dựng hệ thống mạng trên Ubuntu

60 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Bước 4 : ta tạo 1 file backend.hosen.net.ldif như sau :

Page 61: xây dựng hệ thống mạng trên Ubuntu

61 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Bước 5 : ở bước này ta sẽ thực hiên add file ldif vừa mới tạo ở trên vào hệ thông

LDAP bằng lệnh sau : ldapadd -Y EXTERNAL -H ldapi:/// -f backend.example.com.ldif

Bước 6: cài đặt SAMVA và các gói cần thiết bằng lệnh sau :

Page 62: xây dựng hệ thống mạng trên Ubuntu

62 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

apt-get install samba samba-doc libpam-smbpass smbclient smbldap-tools

Bước 7 : cấu hình SAMBA. Ta cấu hình file /etc/samba/smb.conf như sau :

[global] workgroup = VT071A netbios name = PDC-SAMBA obey pam restrictions = Yes passdb backend = ldapsam:ldap://localhost pam password change = Yes syslog = 0 log file = /var/log/samba/log.%m max log size = 1000 server signing = auto server schannel = Auto printcap name = cups add user script = /usr/sbin/smbldap-useradd -m '%u' delete user script = /usr/sbin/smbldap-userdel %u add group script = /usr/sbin/smbldap-groupadd -p '%g' delete group script = /usr/sbin/smbldap-groupdel '%g' add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g' delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g' set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u' add machine script = /usr/sbin/smbldap-useradd -w '%u' logon script = allusers.bat logon path = logon home = domain logons = Yes os level = 35 domain master = Yes

Page 63: xây dựng hệ thống mạng trên Ubuntu

63 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

dns proxy = No wins support = Yes ldap admin dn = cn=admin,dc=hoasen,dc=local ldap group suffix = ou=Groups ldap idmap suffix = ou=Idmap ldap machine suffix = ou=Computers unix password sync = no ldap passwd sync = yes ldap suffix = dc=hoasen,dc=local ldap ssl = no ldap user suffix = ou=Users panic action = /usr/share/samba/panic-action %d [homes] comment = Home Directories valid users = %S read only = No browseable = No browsable = No [netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon admin users = root guest ok = Yes browseable = No browsable = No [Profiles] comment = Roaming Profile Share path = /var/lib/samba/profiles read only = No profile acls = Yes browseable = No browsable = No [printers] comment = All Printers path = /var/spool/samba admin users = root write list = root read only = No create mask = 0600 guest ok = Yes printable = Yes use client driver = Yes browseable = No browsable = No [print$] comment = Printer Drivers Share path = /var/lib/samba/printers admin users = root write list = root create mask = 0664 directory mask = 0775

Page 64: xây dựng hệ thống mạng trên Ubuntu

64 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

[shared] path = /var/lib/samba/shared read only = No guest ok = Yes

lưu ý : Ở phần cấu hình trên ta nên quan tầm một số biến quan trong sau : workgroup = VT071A netbios name = PDC-SAMBA passdb backend = ldapsam:ldap://localhost ldap admin dn = cn=admin,dc=hoasen,dc=local ldap group suffix = ou=Groups ldap idmap suffix = ou=Idmap ldap machine suffix = ou=Computers unix password sync = no ldap passwd sync = yes ldap suffix = dc=hoasen,dc=local

Đây là những khai báo để SAMBA có thế hoạt động với LDAP Bước 8: tao tạo password cho user của samba bằng lệnh smbpasswd –W

bạn nên tạo password giống bước 4

Bước 9: restart samba bằng lệnh service smbd restart .

Bước 10 : kiểm tra xem SAMBA có hoạt động hay không, ta dùng lệnh sau đây,

nếu được hỏi password thì chỉ nhấn Enter. ớ bước kiểm tra này thì out phải giống như hình bên dưới nếu không thì SAMBA đã cấu hình sai.

smbclient -L localhost

Page 65: xây dựng hệ thống mạng trên Ubuntu

65 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Bước 11 : ớ bước này ta tạo các thư mục cho samba hoạt động cũng như giải nén

file samba.schema

Bước 12 : tạo file schema_convert.conf để tao file ldif để add schema samba vào

hệ thống của LDAP bằng lệnh nano schema_convert.conf File schema_convert.conf có nội dung như sau :

include /etc/ldap/schema/core.schema include /etc/ldap/schema/collective.schema include /etc/ldap/schema/corba.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/duaconf.schema include /etc/ldap/schema/dyngroup.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/java.schema include /etc/ldap/schema/misc.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/openldap.schema

Page 66: xây dựng hệ thống mạng trên Ubuntu

66 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

include /etc/ldap/schema/ppolicy.schema include /etc/ldap/schema/samba.schema

Bước 13 : tạo thư mục /tmp/ldif_output để chứa file convert mkdir /tmp/ldif_output

Bước 14: convert file schema_convert.conf slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > /tmp/cn=samba.ldif

Bước 15: edit file /tmp/cn\=samba.ldif

Ở phần đầu của file bạn sẽ thấy : dn: cn{12}=samba,cn=schema,cn=config cn: {12}samba

đổi thành : dn: cn=samba,cn=schema,cn=config cn: samba

ở phần cuối của file, xóa phần được chọn như trong hình sau

Page 67: xây dựng hệ thống mạng trên Ubuntu

67 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Bước 16: add file ldif vừa mới tạo vào hệ thống LDAP.

ldapmodify -Y EXTERNAL -H ldapi:/// -D cn=admin,cn=config -W -f samba_indexes.ldif

Bước 17: chúng ta sẽ kiểm tra LDAP xem có hoạt động tốt với samba.chema có

hoạt động tốt không. Nếu output của dòng lệnh sau giống như trong hình thì LDAP đã hoạt động tốt. ldapsearch -Y EXTERNAL -H ldapi:/// -D cn=admin,cn=config -b cn=config -W olcDatabase={1}hdb

Page 68: xây dựng hệ thống mạng trên Ubuntu

68 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Bước 18 : ta cũng kiểm tra SAMBA có hoạt động hay không. Ta dùng lệnh sau.

Nếu output giống như trong hình thì SAMBA đã hoạt động tốt. net getlocalsid

Bước 19: giải nén công cụ để đồng bộ hóa SAMBA và LDAP

gzip -d /usr/share/doc/smbldap-tools/configure.pl.gz

Bước 20 : dòng lệnh sau sẻ làm LDAP và SAMBA hoạt động với nhau. Khi chạy, chương trình sẽ hỏi nhập vào thông tin cần thiết, bạn chỉ cần đánh Enter. Chỉ có 2 trường hợp bạn cần điền vào lá :

- Là ở trường hợp "Logon Home" và "Logon Path", hảy điền vào ký tự “.”

- Khi hỏi về password của master và slave LDAP server, trong trường hợp này bạn điền vào password bạn đã điền vào ớ bước 4

Page 69: xây dựng hệ thống mạng trên Ubuntu

69 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Bước 21: tạo các groups trong LDAP server

smbldap-populate

Page 70: xây dựng hệ thống mạng trên Ubuntu

70 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Bước 22 : ta thực hiên các lệnh sau để hoàn tất việc cấu hình

/etc/init.d/slapd stop slapindex chown openldap:openldap /var/lib/ldap/*

/etc/init.d/slapd start

Bước 23 : dòng lệnh sau tạo user root thành Domain administrator

smbldap-groupmod -m 'root' 'Administrators'

Bước 24: cấu hình authentication với LDAP và SAMBA

Ta dùng dòng lệnh sau : apt-get --yes install ldap-auth-client

chương trình sẻ hỏi những thông tin cần thiết như các hình bên dưới :

Page 71: xây dựng hệ thống mạng trên Ubuntu

71 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Đánh Enter

Đánh Enter

Điền vào dn của LDAP server, rồi ok

Page 72: xây dựng hệ thống mạng trên Ubuntu

72 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Chọn version 3

Đánh vào DN admin của LDAP server LDAP

Page 73: xây dựng hệ thống mạng trên Ubuntu

73 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Đánh Enter.

Điền vào Password của dn admin của LDAP server. Lưu ý : nếu muốn cấu hỉnh lại những thông tin trên ta dùng lệnh sau : dpkg-reconfigure ldap-auth-config

Bước 25 : thực hiện dòng lệnh sau. auth-client-config -t nss -p lac_ldap

Bước 26: dòng lệnh sau để bật chức năng authentication Unix,LDAP,SAMBA

pam-auth-update ldap

Chọn ok

Page 74: xây dựng hệ thống mạng trên Ubuntu

74 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Bạn chọn tất cả các mục như trong hình.

Bước 27: như vậy ta đã hoàn thành cấu hình SAMBA PDC kết hợp với LDAP Ta reboot hệ thống để hoàn thành cấu hình.

III. Cấu hình client Winodws Xp và Windows 7 vào hệ thống SAMBA: 1. Tạo user trên SAM PDC :

- Ta tạo 1 user để test trên server là : username : user1 , password =123456 Ta dùng lệnh sau : smbldap-useradd –a –m –P user1

- Ta tạo 1 user adminpdc thuộc nhòm domain administrator để khi join

domain ở mấy client ta đánh username và password. Điều này tăng tính bảo mật của hệ thống.

Ta dùng các dòng lệnh như tronh hình sau:

Page 75: xây dựng hệ thống mạng trên Ubuntu

75 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

2. Join windows Xp SP2 : Để join windows XP vào SAMBA Domain cần các cấu hình sau : - Chỉnh Registry sau :

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet\Services\Netlogon\Parameters] "requirestrongkey"=dword:00000000 "requiresignorseal"=dword:00000000

- Trong Group policy , enable policy là “Donot check for user ownership of

Roaming profile folders”

Page 76: xây dựng hệ thống mạng trên Ubuntu

76 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Như vậy ta có thê join domain cho windows XP

Reboot hệ thông để kiểm tra.

Page 77: xây dựng hệ thống mạng trên Ubuntu

77 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

3. Join Windows 7 :

Để joing windows 7 vào hệ thống SAMBA ta cần cấu hình như sau : Trong Windows 7 Registry ta tạo thêm 2 giá trị sau :

HKLM\System\CCS\Services\LanmanWorkstation\Parameters DWORD DomainCompatibilityMode = 1 DWORD DNSNameResolutionRequired = 0

Đồng thời ta củng phải đảm bảo các parameter có giá trị sau:

HKLM\System\CCS\Services\Netlogon\Parameters DWORD RequireSignOrSeal = 1 DWORD RequireStrongKey = 1

Như vậy ta đã có thể join windows 7 vào SAMBA Domain

Page 78: xây dựng hệ thống mạng trên Ubuntu

78 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Page 79: xây dựng hệ thống mạng trên Ubuntu

79 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN 2 : MAIL SERVER VÀ DNS SERVER Để xây dựng một Mail Server ta có thể chọn các phần mềm thành phần khác nhau để hợp thành . ở đây chúng ta sử dụng các phần mềm thông dụng và dễ cấu hình như : Postfix , Dovecot. Đồng thời còn một số chi tiết cần giới thiệu như : Mail server xây dựng trên virtual mailbox và mail location là maildir và trước hết muốn mailserver hoạt động thì domain của server phải có 1 MX record .

I. Cài đặt và cấu hình DNS: 1. Cài đặt : Ta dùng lệnh sau để cài đặt DNS server (BIND9) apt-get install bind9

2. Cấu hình DNS server : Ta cấu hình file /etc/bind/name.conf.local để khai báo các zone có nội dung như sau :

zone "hoasen.net" { type master; file "/etc/bind/db.hoasen.net"; }; zone "193.168.192.in-addr.arpa" { type master; notify no; file "/etc/bind/db.192"; };

Page 80: xây dựng hệ thống mạng trên Ubuntu

80 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Vì ta hai file như đã khai báo ở trên với nội dung như 2 hình ớ dưới : File /etc/bind/db.hoasen.net

Page 81: xây dựng hệ thống mạng trên Ubuntu

81 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

File /etc/bind/db.192

Như vậy ta đã cấu hình xong DNS server , ta restart server để hoạt động.

II. Cài đặt và cấu hình Mail server với Postfix và Dovecot :

1. Cài đặt : Để cài đặt postfix bằng lệnh sau , trong quá trình cài đặt postfix sẻ hỏi một số thông tin của email server.

Sau khai cài đặt postfix xong, để Postfix hoạt động được với LDAP thì chúng ta phải cài thêm gói post-ldap. Ta thực hiên cài đặt bằng lệnh sau : apt-get install postfix-ldap

Page 82: xây dựng hệ thống mạng trên Ubuntu

82 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Kế tiếp ta cài đặt Dovecot ( Dovecot đóng vai trò là IMAP/POP3 server, MDA, và cũng là 1 authentication server cho mail server )

Đồng thời ta cũng có thể cấu hình Postfix và Dovecot dùng SASL bằng cách cài gói dovecot-posfix.

Page 83: xây dựng hệ thống mạng trên Ubuntu

83 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

2. Cấu hình : Đế cấu hình mail với postfix ta có 2 file cấu hình quan trọng là /etc/postfix/main.cf và /etc/postfix/master.cf

Bước 1 : tạo virtual user với user name là vmail thuộc group vmail với thư mục home là /home/vmail cũng là thư mục để chứa email của tất cả các user. Ta thực hiện các dòng lệnh sau với quyền root : groupadd –g 5000 vmail useradd –g vmail –u 5000 vmail –d /home/vmail –m Hai dòng lệnh trên là tạo group vmail với gid là 5000, tạo user vmail với uid là 5000 và home directory là /home/vmail Dòng lệnh sau để kiểm tra gid và uid của vmail trong file /etc/passwd cat /etc/passwd | grep vmail Out của các dòng lệnh trên sẽ giống như trong hình sau

Bước 2 : cấu hình Postfix , đế cấu hình mail với postfix ta có 2 file cấu hình quan

trọng là /etc/postfix/main.cf và /etc/postfix/master.cf Cấu hình file main.cf giống đoạn text dưới đây : (lưu ý : những số ở đầu dòng là dùng để đánh dấu và dễ giải thích, không có năm trong file cấu hình )

1 alias_database = hash:/etc/aliases 2 alias_maps = hash:/etc/aliases 3 append_dot_mydomain = no 4 biff = no 5 broken_sasl_auth_clients = yes 6 config_directory = /etc/postfix 7 debug_peer_level = 5 8 debug_peer_list = 127.0.0.1 9 home_mailbox = Maildir/ 10 inet_interfaces = all 11 mailbox_size_limit = 0

Page 84: xây dựng hệ thống mạng trên Ubuntu

84 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

12 myhostname = localhost 13 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104

[::1]/128 192.168.0.0/16 14 readme_directory = no 15 recipient_delimiter = + 16 relayhost = 17 smtp_tls_session_cache_database =

btree:${data_directory}/smtp_scache 18 smtp_use_tls = yes 19 smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) 20 smtpd_recipient_restrictions =

reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

21 smtpd_sasl_auth_enable = yes 22 smtpd_sasl_authenticated_header = yes 23 smtpd_sasl_local_domain = $myhostname 24 smtpd_sasl_path = private/auth 25 smtpd_sasl_security_options = noanonymous 26 smtpd_sasl_type = dovecot 27 smtpd_tls_auth_only = yes 28 smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem 29 smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key 30 smtpd_tls_mandatory_ciphers = medium 31 smtpd_tls_mandatory_protocols = SSLv3, TLSv1 32 smtpd_tls_received_header = yes 33 smtpd_tls_session_cache_database =

btree:${data_directory}/smtpd_scache 34 smtpd_use_tls = yes 35 tls_random_source = dev:/dev/urandom 36 virtual_gid_maps = static:5000 37 virtual_mailbox_base = /home/vmail 38 virtual_mailbox_domains = /etc/postfix/vhosts 39 virtual_mailbox_maps = ldap:/etc/postfix/ldapmap.cf 40 virtual_minimum_uid = 1000 41 virtual_transport = dovecot 42 virtual_uid_maps = static:5000

Giải thích : - Dòng 9: cấu hình cho postfix sử dụng mailbox format là Maildir. - Dòng 12: đây là cấu hình quan trọng, vì chúng ta muốn sử dụng virtual

mailbox nên ơ đây ta phải để giá trị là localhost, và không bao giờ được đặt tên domain ( domain mà bạn muốn sử dụng virtual mailbox ) vào trong dòng này.

- Dòng 18,34: dòng này cấu hình cho postfix sử dụng TLS trong quá trình gửi nhận mail.

- Dòng 21 26 : cấu hình postfix sử dụng SASL là cơ chế chứng thực, và quản lý SASL là Dovecot.

Page 85: xây dựng hệ thống mạng trên Ubuntu

85 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

- Dòng 2733 : cấu hình của TLS trên postfix, đường dẩn của các file key và cert.

- Dòng 37 : chỉ ra thư mục sẻ chứa tất cả email của server - Dòng 38 : là dòng chứa thông tin các domain được server quản lý, và chấp

nhận gửi và nhận mail, bạn có thê điền trực tiếp, hay có thể dùng 1 file như trong bài lab, nội dung file /etc/postfix/vhost sẽ được trình bày bên dưới.

- Dòng 39: đây là dòng cấu hình postfix truy vấn thông tin với ldap server. Nội dung file ldapmap.cf sẽ được trình bày bên dưới. thông tin được trả về là nơi lưu trữ email cua mỗi user.

- Dòng 41: cấu hình postfix dùng dovecot như 1 MDA ( thay the cho virtual MDA )

- Dòng 36 và 42 : đây là dòng khai báo uid , gid của virtual user mà ta đã tạo ở trên, dùng cung cấp quyền ghi và đọc trên thư mục /home/vmail.

Nội dung của file /etc/postfix/vhosts : hoasen.net vt071A.net ……

(bạn tiếp tục liệt kê những domain mà bạn muốn gửi và nhận mail ) Nội dung file /etc/postfix/ldapmap.cf:

bind = no version = 3 timeout = 20 debuglevel = 0 size_limit = 1 expansion_limit = 0 start_tls = no tls_require_cert = no server_host = ldap://192.168.193.10 scope = sub search_base = dc=hoasen, dc=local query_filter = (|(mail=%s)(mailAlternateAddress=%s)) result_attribute = mailMessageStore

Bước 3: cấu hình Dovecot , ta có 2 file cấu hình quan trọng là /etc/dovecot/dovecot.conf và /etc/dovecot/dovecot-ldap.conf Ta cấu hỉnh file /etc/dovecot/dovecot.conf như đoạn text sau : (lưu ý : những số ở đầu dòng là dùng để đánh dấu và dễ giải thích, không có năm trong file cấu hình )

1 base_dir = /var/run/dovecot 2 protocols = imap imaps pop3 pop3s 3 log_path = /var/log/dovecot 4 info_log_path = /var/log/dovecot.info 5 log_timestamp = "%Y-%m-%d %H:%M:%S " 6 ssl = yes 7 ssl_cert_file = /etc/ssl/certs/dovecot.pem 8 ssl_key_file = /etc/ssl/private/dovecot.pem

Page 86: xây dựng hệ thống mạng trên Ubuntu

86 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

9 ssl_parameters_regenerate = 168 10 verbose_ssl = yes 11 login_dir = /var/run/dovecot/login 12 login_chroot = yes 13 login_user = dovecot 14 mail_location = maildir:/home/vmail/%d/%n/Maildir 15 mail_privileged_group = mail 16 valid_chroot_dirs = /home/vmail 17 maildir_copy_with_hardlinks = yes 18 protocol imap { 19 login_executable = /usr/lib/dovecot/imap-login 20 mail_executable = /usr/lib/dovecot/imap 21 } 22 protocol pop3 { 23 login_executable = /usr/lib/dovecot/pop3-login 24 mail_executable = /usr/lib/dovecot/pop3 25 pop3_uidl_format = %08Xu%08Xv 26 pop3_client_workarounds = outlook-no-nuls oe-ns-eoh 27 } 28 protocol managesieve { 29 } 30 protocol lda { 31 postmaster_address = [email protected] 32 auth_socket_path = /var/run/dovecot/auth-master 33 } 34 auth_verbose = yes 35 auth default { 36 mechanisms = plain login 37 passdb ldap { 38 args = /etc/dovecot/dovecot-ldap.conf 39 } 40 userdb prefetch { 41 } 42 socket listen { 43 master { 44 path = /var/run/dovecot/auth-master 45 mode = 0600 46 user = vmail 47 group = vmail 48 } 49 client { 50 path = /var/spool/postfix/private/auth 51 mode = 0660 52 user = postfix 53 group = postfix 54 } 55 } 56 } 57 dict { 58 }

Page 87: xây dựng hệ thống mạng trên Ubuntu

87 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

59 plugin { 60 }

Giải thích : - Dòng 2 : khai báo các protocol mà dovecot muốn hổ trợ - Dòng 610: khai báo các cấu hình Dovecot sử dụng TLS - Dòng 14: cấu hình mail location, với format mailbox là maildir. Trong đó ta

thấy có hai biến %d ,và %n . với %d là domain name và %n là phần tên trong địa chỉ email. Vd : [email protected] thì %n=user1 Như vậy với khai báo trên [email protected] sẽ có thư mục lưu trữ email như sau : /home/vmail/hoasen.net/user/Maildir

- Dòng 1824 : cấu hình cho protocal IMAP và POP3, khai báo các đoạn script tạo thư mục cho user khi đăng nhập thành công.

- Dòng 30,31,32 : cấu hình dovecot MDA - Dòng 36 : khai báo cơ chế sử dụng để chứng thực password. - Dòng 3741 : cấu hình password databases và user databases là ldap

server chứa thông tin để chứng thực. file dovecot-ldap.conf sẽ được trình bày bên dưới.

- Dòng 4254: cấu hình để postfix chứng thực SASL. Ta cấu hỉnh file /etc/dovecot/dovecot-ldap.conf chi tiết như sau:

1 hosts = 192.168.193.10 2 auth_bind = yes 3 auth_bind_userdn = uid=%n,ou=Users,dc=hoasen,dc=local 4 ldap_version = 3 5 base = ou=Users,dc=hoasen,dc=local 6 scope = subtree 7 user_attrs = ,=home=/home/vmail/%d/%n,=uid=5000,=gid=5000 8 user_filter = (&(objectClass=*)(mail=%u)) 9 pass_attrs = mail=user,userPassword=password 10 pass_filter = (&(objectClass=*)(mail=%u)) 11 default_pass_scheme = CRYPT

Giải thích : - Dòng 1 : chỉ ra địa chỉ IP của LDAP server - Dòng 2 : bật chế độ dùng cơ chế Authentication Bind . - Dòng 3 : định rõ dn để bind với LDAP server - Dòng 7 : vì ta dùng static user nên ta định sẳn giá trị cho các attribute

Bước 4: ta restart các server service postfix restart service dovecot restart

Bước 5 : thêm quyền ghi cho postfix trên các file log của dovecot ( có 2 file là /var/log/dovecot và /var/log/dovecot.info ) chmod 666 /var/log/dovecot chmod 666 /var/log/dovecot.info

Bước 6: ta có thể test postfix và dovecot bẳng cách telnet vào servr như hình bên dưới.

Page 88: xây dựng hệ thống mạng trên Ubuntu

88 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

telnet mail.hoasen.net pop3

telnet mail.hoasen.net 25

Page 89: xây dựng hệ thống mạng trên Ubuntu

89 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦn 4: FTP VÀ FIREWALL I. FTP :

1. Giới thiệu : FTP (File Transfer Protocol) là một protocol trong mô hình TCP/IP được

dùng để truyền các file giữa các máy. FTP cho phép truyền nhận file và quản lý trực tuyến. FTP không cho phép truy xuất một máy khác để thực thi chương trình, nhưng nó rất tiện lợi cho việc thao tác với file. Để sử dụng FTP thì các máy kết nối phải chạy các chương trình có hỗ trợ các dịch vụ về FTP. Client gọi đến server và thiết lập FTP thông qua một tập các lệnh bắt tay.

Thông thường để kết nối đến các máy khác qua FTP chúng ta phải là một user được cung cấp user name và password để log in vào máy cần truy xuất. Bởi vì một hệ thống không thể cung cấp nhiều logins cho tất cả các user muốn truy xuất đến nó nên nhiều hệ thống sử dụng các FTP mặc định. FTP mặc định cho phép bất kỳ máy nào cũng có thể login vào hệ thống với user name là ftp, guest hoặc một tên mặc định nào đó và không cần password hay user name của máy này. 2. Cài đặt : Trong phần này ta sử dụng proftpd làm server. Ta dùng lệnh apt-get install proftpd dưới quyền root để cài đặt.

Page 90: xây dựng hệ thống mạng trên Ubuntu

90 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Chương trình sẻ hỏi chế độ mà server sử dụng, bạn chọn stand alone

3. Cấu hình Proftpd với LDAP : Ta cần cấu hình 2 file sau /etc/proftpd/proftpd.conf và /etc/proftpd/ldap.conf . Trước tiên ta cấu hình file proftpd.conf có nội dụng như đoạn text sau:

12 Include /etc/proftpd/modules.conf 13 UseIPv6 off 14 ServerName "hoasen" 15 ServerType standalone 16 ServerIdent on "hoasen-lotus" 17 DeferWelcome off 18 MultilineRFC2228 on 19 DefaultServer on 20 ShowSymlinks on 21 TimeoutNoTransfer 600 22 TimeoutStalled 600 23 TimeoutIdle 1200 24 ListOptions "-l" 25 DenyFilter \*.*/ 26 DefaultRoot /home/ftp 27 DefaultChDir ftp 28 RequireValidShell off 29 Port 21 30 MaxInstances 30 31 IdentLookups off 32 UseReverseDNS off 33 User proftpd 34 Group nogroup

Page 91: xây dựng hệ thống mạng trên Ubuntu

91 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

35 Umask 022 022 36 AllowOverwrite on 37 PersistentPasswd off 38 TransferLog /var/log/proftpd/xferlog 39 SystemLog /var/log/proftpd/proftpd.log 40 Include /etc/proftpd/ldap.conf 41 <Directory /*> 42 AllowOverwrite on 43 </Directory> 44 <Directory /home/ftp/public> 45 <Limit ALL> 46 AllowAll 47 </Limit> 48 </Directory> 49 <Directory /home/ftp/user1> 50 <Limit LOGIN> 51 AllowUser user1 52 </Limit> 53 Umask 000 54 <Limit DIRS READ WRITE> 55 AllowAll 56 </Limit> 57 </Directory>

Giải thích: Trong cấu hình trên ta cần lưu ý các khai báo như sau:

- Dòng 26,27 : khai báo thư mục chứa của ftpserver. - Dong 37,40: phải bảo đảm có dòng này trong file cấu hình nếu chúng ta

muốn sử dụng chứng thực qua LDAP. - Dòng 4157 : ta cấu hỉnh các thư mục được chia sẻ trong ftp server.

Ta tiếp tục cấu hình file ldap.conf như sau : 1. LDAPServer localhost 2. LDAPDNInfo "cn=admin,dc=hoasen,dc=local" "pwd123" 3. LDAPDoAuth on "ou=Users,dc=hoasen,dc=local

Giải thích: Ta khai báo các thông tin cần thiết để ftp server có thể giao tiếp với LDAP server

- Dòng 1: khai báo nơi chứa LDAP server. - Dòng 2 : khai báo user và password. - Dòng 3 : khai báo nơi tìm kiếm user trên LDAP.

II. FIREWALL: 1. Giới thiệu : Iptables trong ubuntu không phải là 1 server và đã được tích hợp sẳn trong kernel của ubutu nên ta không cần thực hiện cài đặt. 2. Cấu hình NAT :

Trước khi cấu hình NAT, ta nên cấu hình địa chỉ IP tĩnh chó các interface Bước 1: ta thực hiện dòng lệnh sau:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward" - dòng lệnh trên sẻ gán giá trị 1 trong file ip_forward, cho phép chuyển tiếp

các gói trong các interface của hệ thống.

Page 92: xây dựng hệ thống mạng trên Ubuntu

92 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Bước 2 : ta edit file /etc/sysctl.conf và chuyển các dòng sau : net.ipv4.ip_forward=1

- điều này giúp cho giá trị của file ip_forward trong bước luôn có giá trị bằng 1 khi hệ thống khởi động. bước 3: ta cấu hình NAT bằng các dòng lệnh sau :

lưu ý: hệ thống có 2 interface như sau : INTERNET eth1 eth2 internal network

iptables -A FORWARD -o eth1 -i eth2 -s 192.168.193.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A POSTROUTING -t nat -j MASQUERADE

Bước 4: vì iptables sẻ bị xóa hết sau khi hệ thống khởi động lại nên ta

phải sử dụng một scripts để có thể phục hổi cấu hình của iptales. Ta thực hiện như sau :

Tạo 1 file trong /opt/iptable.script với các dòng lệnh sau: #!/bin/bash iptables -F iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A FORWARD -o eth1 -i eth2 -s 192.168.193.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A POSTROUTING -t nat -j MASQUERADE

Sau khi tạo xong bạn nên chmod để có thể chạy được file script: chmod 755 /opt/iptable.script

Ta tạo thêm 1 file /etc/init.d/firewall với nội dung sau #!/bin/bash if [[ $1 == start ]] ; then sudo /opt/iptable.script else sudo iptables -F fi

Ta dùng lệnh chmod như trên để có thê chạy được file chmod 755 /etc/init.d/firewall

Ta dùng lệnh sau để có thể tạo script để start/stop firewall cd /etc/ update-rc.d firewall start 20 2 3 4 5 . stop 99 0 1 6 .

Page 93: xây dựng hệ thống mạng trên Ubuntu

93 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

3. NAT inbound cho web server : Để người dùng bên ngoài có thể truy cập đến web server ta cấu hình iptables như sau : iptables -t nat -A PREROUTING -d 192.168.0.110 -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.193.12:80 dòng lệnh trên có ý nghĩa là tất cả kết nối nào có địa chỉ đích là 192.168.0.110 đến từ interface mặt ngoài của firewall với protocol la TCP và port đích là 80 thì sẽ nat vào cho địa chỉ 192.168.193.12(địa chỉ web server ) với port 80. Nếu muốn lưu cấu hình này bạn nên làm lại bước 4 trong mục 2 phía trên.

Page 94: xây dựng hệ thống mạng trên Ubuntu

94 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN 5: WEB SERVER 1. Cài Đặt : Ta dùng lệnh sau để cài đặt sudo apt-get install apache2-doc

2.Cấu hình APACHE với LDAP : ta cấu hình file /etc/apache/apache.config

Page 95: xây dựng hệ thống mạng trên Ubuntu

95 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Tại cuối file này ta comment dòng Include “/etc/apache2/sites-enabled/” thành “#Include /etc/apache2/sites-enabled/” Cũng trong file này ta thêm vào những dòng sau đây.

DocumentRoot /home/vanhieugdpt ServerName www.hoasen.net <Directory /home/vanhieugdpt>

Order deny,allow Allow from all

</Directory> Ta save lại và restart apache bằng lệnh

Service apache2 restart

Lúc này ta kiểm tra thì vào trang www.hoasen.net không cần chứng thực user!

Page 96: xây dựng hệ thống mạng trên Ubuntu

96 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Ba6ygio72 ta sẽ cấu hình Apache chứng thực thông qua LDAP. Trong file /etc/apache2/apache.conf ta cấu hình như sau :

DocumentRoot /home/vanhieugdpt ServerName www.hoasen.net <Directory /home/vanhieugdpt> Order deny,allow Allow from all AuthType basic AuthName "vanhieugdpt" AuthzLDAPAuthoritative Off AuthBasicProvider ldap AuthLDAPURL ldap://dc.hoasen.net:389/ou=Users,dc=hoasen,dc=local?uid?one?(objectClass=person) Require ldap-user user1 user2 </Directory>

Đoạn cấu hình trên sẽ yêu cầu chứng thực khi vào trang web www.hoasen.net với user có trên server LDAP Ta restart apache để thấy được hiệu quả!

Page 97: xây dựng hệ thống mạng trên Ubuntu

97 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

Page 98: xây dựng hệ thống mạng trên Ubuntu

98 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

PHẦN 6 : CẤU HÌNH DHCP I. Chuẩn bị các thông tin : - ethernet device : eth0 - Ip range : 192.168.193.100 – 192.168.193.200 - Subnet address : 192.168.193.0 - Netmask : 255.255.255.0 - DNS server 192.168.193.11 - Domain : hoasen.net - Default Gateway Address : 192.168193.11 - Broadcast Address : 192.168.193.255

II. Cài đặt DHCP Server : sudo apt-get install dhcp3-server

III. Cấu hình file /etc/default/dhcp3-server sudo gedit /etc/default/dhcp3-server

Tìm dòng INTERFACES=”” và thay bằng INTERFACES=”eth0”

Page 99: xây dựng hệ thống mạng trên Ubuntu

99 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

\ Save lại và thoát.

IV. Cấu hình file pool: - Mở file /etc/dhcp3/dhcpd.conf - Tìm đến dòng 16. Có đoạn thông tin sau : #option definitions common to all supported networks... option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; default-lease-time 600; max-lease-time 7200;

Sửa thành :

Page 100: xây dựng hệ thống mạng trên Ubuntu

100 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

-Tiếp tục, tìm đến dòng 53. Có đoạn như sau : # A slightly different configuration for an internal subnet. #subnet 10.5.5.0 netmask 255.255.255.224 { # range 10.5.5.26 10.5.5.30; # option domain-name-servers ns1.internal.example.org; # option domain-name "internal.example.org"; # option routers 10.5.5.1; # option broadcast-address 10.5.5.31; # default-lease-time 600; # max-lease-time 7200; #}

Sửa thành :

Page 101: xây dựng hệ thống mạng trên Ubuntu

101 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

V. Khởi động lại dịch vụ DHCP Server: sudo /etc/init.d/dhcp3-server restart

Page 102: xây dựng hệ thống mạng trên Ubuntu

102 XÂY DỰNG HỆ THỐNG MẠNG UBUNTU Giảng viên hướng dẫn: Lưu Thanh Trà

Khoa Khoa Học Công Nghệ Ngành : Mạng Máy Tính

VI. Máy Client (XP, Ubuntu) thuê IP. 1. Máy XP : - Vào run, gõ cmd. - gõ ipconfig /release và ipconfig /renew - gõ lại ipconfig để kiểm tra IP của Client có đúng trong range đã cấp không. 2. XP : Terminal, gõ ifconfig để kiểm tra.