Khóa luận Phân tích, thiết kế và xây dựng hệ thống mạng doanh nghiệp

pdf 131 trang yendo 4670
Bạn đang xem 20 trang mẫu của tài liệu "Khóa luận Phân tích, thiết kế và xây dựng hệ thống mạng doanh nghiệp", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

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

  • pdfkhoa_luan_phan_tich_thiet_ke_va_xay_dung_he_thong_mang_doanh.pdf

Nội dung text: Khóa luận Phân tích, thiết kế và xây dựng hệ thống mạng doanh nghiệp

  1. NTTULIB TRƯỜNG CAO ĐẲNG NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN THÀNH KHÁNH – HUỲNH CÔNG TÀI PHÂN TÍCH, THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG MẠNG DOANH NGHIỆP KHÓA LUẬN TỐT NGHIỆP NTTULIB TP. HCM, 2008
  2. NTTULIB TRƯỜNG CAO ĐẲNG NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN THÀNH KHÁNH – 205205085 HUỲNH CÔNG TÀI - 205205110 PHÂN TÍCH, THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG MẠNG DOANH NGHIỆP KHÓA LUẬN TỐT NGHIỆP GIÁO VIÊN HƯỚNG DẪN THẦY NGUYỄN KIM QUỐC NTTULIB KHÓA 2005 – 2008
  3. NTTULIB NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN NTTULIB TpHCM, ngày tháng năm Giáo viên hướng dẫn [Ký tên và ghi rõ họ tên]
  4. NTTULIB NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN NTTULIB TpHCM, ngày tháng năm Giáo viên phản biện [Ký tên và ghi rõ họ tên]
  5. NTTULIB LỜI CẢM ƠN Chúng em chân thành cảm ơn các thầy cô, những người lái đò tận tụy đưa chúng em đến bến bờ tri thức. Mỗi môn học như từng viên gạch mà các thầy cô mang tặng cho chúng em. Đễ hôm nay chúng em đang từng buớc xây dựng thành tương lai của chính mình. Mỗi viên gạch đều rất là hoàn hảo nhưng chúng em lại thiếu cách bảo quản toàn vẹn. Lời xin lỗi khi chúng em nói ra chắc chắn là rất muộn màng mong thầy cô bỏ lỗi của chúng em. Chúng em cảm ơn thầy Nguyễn Kin Quốc đã tận tình hướng dẫn, giúp đỡ chúng em không chỉ ở kiến thức để hoàn thành khóa luận này mà thầy còn giúp đỡ chúng em rất nhiều những kĩ năng trong giao tiếp cũng như trogn lúc làm việc. Mong thầy nhận ở chúng em lời cảm ơn chân thành nhất và sâu sắc nhất. Không chỉ có các thầy cô đã giúp đỡ chúng em trong quá trình làm khóa luận tốt nghiệp mà chúng tôi cảm ơn tất cả các bạn bè, người đồng hành tốt đã chân thành đóng góp ý kiến để chúng tôi hoàn chỉnh khóa luận này. Cuối cùng chúng con cảm ơn ba mẹ, ông bà đã sinh thành, nuôi dưỡng cho chúng con có ngày hôm nay.Cho dù chúng con nghĩ ra hàng triệu lời cảm ơn cũng không bù đắp được công lao to lớn ấy. Chúng con hứa sẽ cố gắng hết sức mình để luôn là niềm tự hào của ba mẹ. Tp.HCM, ngày 16 tháng 06 năm 2008 Nhóm sinh viên thực hiện NTTULIB Nguyễn Thành Khánh Huỳnh Công Tài
  6. NTTULIB ĐỀ CƯƠNG CHI TIẾT Tên đề tài: PHÂN TÍCH , THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG MẠNG CHO DOANH NGHIỆP Giáo viên hướng dẫn: Nguyễn Kim Quốc Thời gian thực hiện: từ 09/04/2008 đến cuối 08/2008 Sinh viên thực hiện: Nguyễn Thành Khánh MSSV : 205205085 Huỳnh Công Tài MSSV : 205205110 Loại đề tài: Xây dựng hệ thống mạng cho doanh nghiệp gồm 10 phòng ban và 500 nhân viên. Nội dung thực hiện: · Phân tích yêu cầu của doanh nghiệp. · Thiết kế luận lý. · Thiết kế vật lý. · Cài đặt các dịch vụ mạng trên Windows xp và Linux. · Kiểm tra. · Vận hành. · Viết báo cáo. Kết quả đạt được: · Viết báo cáo. NTTULIB · Trình bày kết quả đạt được. · Khai thác được các dịch vụ mạng trên Windows xp và Linux. · Làm đúng theo yêu cầu giáo viên hướng dẩn.
  7. NTTULIB Kế hoạch thực hiện Tuần Nội dung Báo cáo KQ Ghi chú 1(14/4- Triễn khai hệ thống mạng Domain - Cài windows 21/4) Server - Đề cương chi tiết 2(21/4- Triễn khai hệ thống mạng Domain - Cài đặt thành công 28/4) . 3(28/4- Triễn khai hệ thống mạng Domain - Từ Server đưa lên 5/5) Domain - Sườn khóa luận 4(5/5- Triễn khai dịch vụ mạng - Lập yêu cầu doanh 12/5) Bổ sung kết quả vào khóa luận nghiệp. - Một phần khóa luận 5(12/5- Triễn khai dịch vụ mạng - Kết quả khai thác 19/5) các dịch vụ. - Phân tích các yêu cầu. - Thiết kế các yêu NTTULIBcầu 6(19/5- Thi 26/5) Học Kỳ 7(26/5- Thi 2/6) Học Kỳ
  8. NTTULIB 8(2/6- 9/6) Thi Học Kỳ 9(9/6- Hoàn chỉnh các kết quả để chuẩn bị File báo cáo lần 1 16/6) báo cáo lần 1 10(16/6- Cài Linux - Cài Linux. 23/6) Bổ sung kết quả vào khóa luận - Một phần khóa luận 11(23/6- Cài Linux Cài hoàn thành 30/6) Linux. 12(30/6- Cài các dịch vụ mạng trên Linux Cài một phần dịch 7/7) vụ mạng. 13(7/7- Cài các dịch vụ mạng trên Linux Chỉnh sữa. 14/7) 14(14/7- Tích hợp các dịch mạng Windows Hoàn thành 21/7) Và Các dịch vụ mạng Linux 15(28/7- Thử nghiệm – Chỉnh sửa Kết quả thực hiện 4/8) 16(4/8- Hiệu chỉnh báo cáo Các hiệu chỉnh đã 11/8) NTTULIBthực hiện 17(11/8- 1. Nộp báo cáo khóa luận về VPK. File báo cáo 18/8) 2. Báo cáo PowerPoint PowerPoint 3. Chuẩn bị bảo vệ. 18(18/8- Bảo vệ chính thức 25/8)
  9. NTTULIB Xác nhận của GVHD Ngày tháng năm SV Thực hiện Nguyễn Kim Quốc Nguyễn Thành Khánh – Huỳnh Công Tài NTTULIB
  10. NTTULIB MỤC LỤC Chương I. GIỚI THIỆU VỀ CÔNG TY 4 1.1. Giới Thiệu 4 1.2. Chức năng: 4 1.3. Phòng Ban: 4 1.4. Nhân Viên: 4 1.5. Trụ Sở: 4 1.6. Hoạt Động: 4 Chương 2. ĐẶT TẢ CÁC YÊU CẦU 5 2.1. Toàn công ty: 5 2.2. Mỗi nhân viên: 5 2.3. Từng phòng ban: 5 Chương 3. TRIỂN KHAI HỆ THỐNG 6 3.1. Phân Tích: 6 3.2. Thiết Kế: 6 3.2.1. Thiết kế luận lý: 6 3.2.2. Thiết kế vật lý: 7 Sơ đồ tổng quát 7 Sơ đồ phòng hợp 7 Sơ đồ tầng triệt 7 Sơ đồ tầng một 8 Sơ đồ tầng hai 8 Sơ đồ tầng ba 9 3.2.3. Dự Toán: 9 3.3. Cài Đặt: 10 3.3.1. Cài đặt dịch vụ mạng Windows 10 3.3.2. Cài đặt dịch vụ mạng Linux 10 3.3.2.1. Ưu điểm: 10 3.3.2.2. Sử dụng: 10 Chương 4. DOMAIN 11 4.1. Giới Thiệu: 11 4.2. Cài Đặt: 11 4.2.1. Các Bước Cài Đặt: 11 4.2.2. Quản Trị: 19 4.2.2.1. Tài Khoản: 19 4.2.2.2. Dịch Vụ: 19 Chương 5. CÁC DỊCH VỤ MẠNG(TRÊN LINUX) 20 5.1. Cấu Hình Card Mạng: 20 5.1.1. Thiết Lập Kết Nối MNTTULIBạng: 20 5.1.2. Các file Cấu Hình: 20 5.2. DNS 21 5.2.1. Cấu Hình cho DNS Master Server với IP là 192.168.0.10: 21 5.2.2. Cấu hình DNS SLAVE SERVER với IP là 192.168.0.11: 24 5.3. DHCP. 25 5.4. FIREWALL 27 5.4.1. Đinh Nghĩa: 27 5.4.2. Cấu Hình: 27 5.4.2.1. Cấu Hình SHOREWALLCăn bản: 27 5.5. FTP: 29 5.5.1. Cấu hình FTP: 29 5.6. MAIL 31 5.6.1. Cấu hình Mail: 31 1
  11. NTTULIB 5.7. NFS (NETWORK FILE SYSTEM) 42 5.8. SAMBA 43 5.9. SQUID PROXY 55 5.9.1. Cấu hình cơ bản SQUID PROXY 55 5.9.2. Cấu hình SQUID với ACL (ACCESS LIST) 58 5.9.3. Cấu hình SQUID PROXY để điều khiển băng thông: 60 5.9.4. Cấu hình SQUID REVERSE PROXY và TRANSPARENT PROXY 61 5.10. SSH SERVER 62 5.10.1. Cài đặt SSH SERVER dùng PASSWORD: 62 5.10.2. Cấu hình SSH SERVER sử dụng chứng thực bằng PRIVATE KEY và PUBLIC KEY. 63 5.10.3. Cách CONNECT bằng WINDOWS vào trong LINUX dùng KEY chứng thực: 65 5.11. WEB SERVER (APACHE) 71 5.11.1. Cấu hình APACHE WEB SERVER 71 5.11.2. Cấu hình VIRTUAL HOST: 73 5.11.3. Cấu hình VIRTUAL DOMAINS cho WEBMAIL 74 5.11.4. Cấu hình HOST DENY và HOST ALLOW: 75 5.11.5. Tạo FAVICON cho WEB SERVER : 76 Chương 6. CÁC DỊCH VỤ MẠNG(TRÊN WINDOWS) 77 6.1. DNS: 77 6.1.1. Giới Thiệu: 77 6.1.2. Hoạt Động: 77 6.1.3. Cài Đặt và Cấu Hình: 78 6.1.3.1. Cài Đặt: 78 6.1.3.2. Cấu Hình: 81 6.2. DHCP: 82 6.2.1. Giới Thiệu: 82 6.2.2. Hoạt Động: 82 6.2.3. Cài Đặt và Cấu Hình: 83 6.2.3.1. Cài Đặt: 83 6.2.3.2. Cấu Hình: 96 6.3. Word Wide Wed 96 6.3.1. Giới Thiệu: 96 6.3.2. Hoạt Động: 96 6.3.3. Cài Đặt và Cấu Hình: 96 6.3.3.1. Cài Đặt: 96 6.3.3.2. Cấu Hình: 99 6.4. FTP 102 6.4.1. Giới Thiệu: NTTULIB 102 6.4.2. Hoạt Động 102 6.5. Dịch Vụ Mail 102 6.5.1. Giới Thiệu: 102 6.6. WINS: 104 6.6.1. Giới Thiệu: 104 6.6.2. Hoạt Động: 104 6.6.3. Chức Năng: 104 6.7. RAS 104 6.7.1. Giới thiệu: 104 6.7.2. Hoạt Động: 105 6.7.2.1. Kết Nối Một Máy Bộ Với Internet: 105 6.7.2.2. Một Số Điều Cần Lưu Ý Về Thông Lượng Đường Truyền: 105 6.8. ISA 105 2
  12. NTTULIB 6.8.1. Giới Thiệu: 105 6.8.2. Hoạt Động 106 6.9. VPN: 106 6.9.1. Giới Thiệu: 106 6.9.2. Chức Năng: 106 6.10. NAT 106 6.10.1. Giới Thiệu: 106 6.10.2. Hoạt Động: 107 6.10.3. Cài Đặt và Cấu Hình: 107 NTTULIB 3
  13. NTTULIB CHƯƠNG 1. GIỚI THIỆU VỀ CÔNG TY 1.1. Giới Thiệu Hiện nay chắc mọi người ai cũng biết Internet rất quan trọng như thế nào đối với từng doanh nghiệp,từng phòng ban , cũng như trong trường học.Khi mà Internet phát triễn thì các ứng dụng của Internet vô cùng quan trọng =>Từ những điều kiện khách quan thì chúng tôi quyết định thành lập công ty phát triển đầu tư ứng dụng Internet. 1.2. Chức năng: Chức năng của công ty thì rất là đơn giản hầu như không có nhiều phức tạp: Thứ nhất là thiết kế cũng như xây dựng các trang web của các công ty mới thành lập cũng như thiết kế lại các trang web cũ đối với từng yêu cầu của khách hàng. Thiết kế trang web có thể có nhiều cách:php , joomla , Dreamware , lưu dưới cơ sỡ dữ liệu tùy thuộc vào yêu cầu của đối tác. Đặt biệt là xây dựng các game từ phức tạp đến đơn giản =>Game 3D(có thể nói thêm về game 3D có nghĩa là không gian 3 chiều). Và còn nhiều ứng dụng khác, 1.3. Phòng Ban:Gồm 10 phòng ban: Phòng giám đốc. Phòng đầu tư. Phòng kế hoạch. Phòng hành chính. Phòng kế toán. Phòng kinh doanh. Phòng kỹ thuật. Phòng quỹ tín dụng. Phòng nhân sự. Phòng maketing. 1.4. Nhân Viên: Toàn công ty thì có 500 nhân viên. Mỗi 1 phòng ban gồm có 50 nhân viên. Một Trưởng phòng và một Phó phòng còn lại tất cả là nhân viên. 1.5. Trụ Sở: Công ty của chúng tôi ở tại số 13, Quốc lộ 1A, Phường Tân Tạo A,Quận Bình Tân,Tp HCM. 1.6. Hoạt Động: Buỗi sáng làm việc từ lúc 8h->11h30. Buỗi chiều làm việc từ lúc 13NTTULIBh->14h30. =>Làm việc cả chủ nhật và ngày lễ. 4
  14. NTTULIB Chương 2. ĐẶT TẢ CÁC YÊU CẦU 2.1. Toàn công ty: Phải thực hiện nghiêm chỉnh tác phong: giờ làm, ứng xử lịch thiệp với khách hàng. Sẵn sàng tư vấn khách hàng khi khách hàng có yêu cầu hay thắc mắt. 2.2. Mỗi nhân viên: Thực hiện đúng tác phong đặc ra: ăn mặc, thời gian. Có ý thực trong công việc Làm việc theo nhóm thật nghiêm túc. Hòa thuận giúp đỡ lẫn nhau. Tham gia các hoạt động của công ty. Chấp nhận những ý kiến và thực hiện đúng yêu cầu của công ty đề ra. 2.3. Từng phòng ban: Mỗi phòng làm đúng yêu cầu của từng phòng Các phòng phải biết liên kết với nhau tạo nên sức mạnh lớn -> đưa công ty đi lên. NTTULIB 5
  15. NTTULIB Chương 3. TRIỂN KHAI HỆ THỐNG 3.1. Phân Tích: Công ty: được xây dựng trên 1 Domain Domainc.com Thuật ngữ Domain: Domain là mạng quản lý tập trung hệ thống tài khoản, dịch vụ mạng. Tài nguyên được lưu trữ tập trung ở một số máy điều khiển miền (Domain Controler gọi là DC ). Phòng ban: Mỗi phòng ban là một OU Mỗi nhân viên là một tài khoản. Các dịch vụ mạng: DHCP, DNS, ISA, RAS, VPN,FTP,HTTP,WINS. 3.2. Thiết Kế: 3.2.1. Thiết kế luận lý: NTTULIB 6
  16. NTTULIB 3.2.2. Thiết kế vật lý: Sơ đồ tổng quát Sơ đồ phòng hợp NTTULIB Sơ đồ tầng triệt 7
  17. NTTULIB Sơ đồ tầng một NTTULIB Sơ đồ tầng hai 8
  18. NTTULIB Sơ đồ tầng ba NTTULIB 3.2.3. Dự Toán: -Thứ nhất là kinh phí: Công ty gồm có 3 cổ đông lớn(tổng đầu tư 10 tỷ) Cổ đông 1 : Giám đốc(mạnh nhất = hai cổ đông kia cộng lại). Cổ đông 2 : Trưởng phòng kỹ thuật. Cổ đông 3 : Trưởng phòng kế toán. - Thời gian: Xây dựng 2 năm. 9
  19. NTTULIB - Chi phí phát sinh: 1 tỷ. 3.3. Cài Đặt: 3.3.1. Cài đặt dịch vụ mạng Windows. Tất cả các dịch vụ mạng thì hầu như tất cả mọi người trong lĩnh vực mạng của chúng ta rất rành. Tùy thuộc vào từng loại dịch vụ mạng thì vai trò cũng như công dụng của từng dịch vụ mạng cũng khác nhau. Vd: DNS thì có nhiệm vụ phân giải tên miền thành địa chỉ IP và ngược lại. DHCP thì có nhiệm vụ cung cấp địa chỉ IP cho máy chưa có IP trên mạng. 3.3.2. Cài đặt dịch vụ mạng Linux. 3.3.2.1. Ưu điểm: Thứ nhất là Linux không cần bản quyền. Các ứng dụng của Linux dựa trên mã nguồn mở dể sử dụng. 3.3.2.2. Sử dụng: Một ngày không xa thì sử dụng Linux không còn là xa lạ đối với công nghệ thông tin của đất nước chúng ta nói riêng mà của cả thế giới nói chung. NTTULIB 10
  20. NTTULIB Chương 4. DOMAIN 4.1. Giới Thiệu: Mạng Domain: là mạng quản lý tập trung hệ thống tài khoản, dịch vụ mạng. Tài nguyên được lưu trữ tập trung ở một số máy điều khiển miền ( Domain Controller gọi là DC). Các máy DC có cùng CSDL. Domain mượn ý tưởng từ thư mục và nhóm làm việc. Giống như một Workgroup, Domain có thể được quản trị bằng hỗn hợp các biện pháp quản lý tập trung và địa phương. Domain là một tập hợp các máy tính dùng chung một nguyên tắc bảo mật và CSDL tài khoản người dùng (người sử dụng account). Những tài khoản người dùng và nguyên tắc an toàn có thể được nhìn thấy khi thuộc vào một CSDL chung và được tập trung. Giống như một thư mục, một Domain tổ chức tài nguyên của một vài máy chủ vào một cơ cấu quản trị. Người sử dụng được cấp quyền Logon vào Domain chứ không phải vào từng máy chủ riêng lẻ. Ngoài ra, vì Domain điều khiển tài nguyên của một số máy chủ, nên việc quản lý các tài khoản của người sử dụng được tập trung và do đó trở nên dễ dàng hơn là phải quản lý một mạng với nhiều máy chủ độc lập. Các máy Server trong một Domain cung cấp dịch vụ cho các người sử dụng. Một người sử dụng khi Logon vào Domain thì có thể truy cập đến tất cả tài nguyên thuộc Domain mà họ được cấp quyền truy cập. Họ có thể dò tìm (Browse) các tài nguyên của Domain giống như trong một Workgroup, nhưng nó an toàn, bảo mật hơn. Để xây dựng mạng dựa trên Domain, ta phải có ít nhất một máy Windows Server trên mạng. Một máy tính Windows có thể thuộc vào một Workgroup hoặc một Domain, nhưng không thể đồng thời thuộc cả hai. Mô hình Domain được thiết lập cho các mạng lớn với khả năng kết nối các mạng toàn xí nghiệp hay liên kết các kết nối mạng với các mạng khác và những công cụ cần thiết để điều hành. Việc nhóm những người sử dụng mạng và tài nguyên trên mạng thành Domain có lợi ích sau: Mã số của người sử dụng được quản lý tập trung ở một nơi trong một cơ sở dữ liệu của máy chủ, do vậy quản lý chặt chẽ hơn. Các nguồn tài nguyên được nhóm vào trong một Domain nên dễ khai thác hơn. Quản lý theo Workgroup và Domain là hai mô hình mà Windows lựa chọn. Sự khác nhau căn bản giữa Workgroup và NTTULIBDomain là trong một Domain phải có ít nhất một máy chủ và tài nguyên người sử dụng phải được quản lý bởi máy chủ đó. 4.2. Cài Đặt: 4.2.1. Các Bước Cài Đặt: Start->run->dcpromo 11
  21. NTTULIB Chọn Next. NTTULIB 12
  22. NTTULIB Chọn Next. NTTULIB Chọn Next. 13
  23. NTTULIB Chọn Next. NTTULIB Đặt tên cho Domain(Domainc.com) Chọn Next. 14
  24. NTTULIB Chọn Next. NTTULIB Chọn Next. 15
  25. NTTULIB Chọn Next. NTTULIB Click vào Intall and configure the DNS Server on this computer Chọn Next. 16
  26. NTTULIB Chọn Next. NTTULIB Ở đây có thể có Password hoặc là không cần có Password cho Domain. Chọn không có Password. Chọn next. 17
  27. NTTULIB Chọn next. Tiến hành quá trình đưa lên Domain. Chọn Finish hoàn tất quá trình dưa lên Domain. Restar now. NTTULIB => Kiểm tra lại có làm Domain được hay không. Click right mouse vào computer-> vào Computer Name. 18
  28. NTTULIB =>Vậy là chúng ta có 1 Domain Domainc.com 4.2.2. Quản Trị: 4.2.2.1. Tài Khoản: 4.2.2.1.1. Tài khoản người dùng cục bộ: Tài khoản người dùng cục bộ (Local User Account) là tài khoản người dùng được định nghĩa trên máy cục bộ và chỉ được phép Logon, truy cập các tài nguyên trên máy tính cục bộ. 4.2.2.1.2. Tài khoản người dùng miền: Tài khoản người dùng miền (Domain User Account) là tài khoản người dùng được định nghĩa trên Active Directory và được phép đăng nhập (Logon) vào mạng trên bất kỳ máy trạm nào thuộc vùng. 4.2.2.2. Dịch Vụ: -Server (SV)cài DHCP,WEB,FTP,HTTP,WINS,RAS,ISA,VPN -Domain (DC) Từ Server đưa lên Domain,cài DNS. -Client (XP) cài windows XP để thực hiện gia nhập DC. NTTULIB 19
  29. NTTULIB Chương 5. CÁC DỊCH VỤ MẠNG(TRÊN LINUX) 5.1. Cấu Hình Card Mạng: 5.1.1. Thiết Lập Kết Nối Mạng: Trong Windows, để xem cấu hình mạng của máy ta dùng ipconfig. Còn trong Linux thì ta dùng ifconfig. Nhưng ifconfig còn mạnh hơn thế, nó có thể dùng để cấu hình IP cho máy bằng câu lệnh [root@nhuhoang.net /]# ifconfig eth0 192.168.0.10 netmask 255.255.255.0 Trong đó eth0, eth1 lần lượt là tên các card mạng của bạn, nếu máy chỉ có 1 NIC thì mặc định sẽ là eth0. Ngoài ra ta còn có thể gán nhiều IP cho Card mạng bằng cách dùng tham số : eth0:1 , eth0:2 , Khi đó từ 1 máy khác ta Ping đến các IP này thì đều là Ping đến 1 NIC duy nhất. Các bạn có thể dùng ifconfig để kiểm tra. [root@nhuhoang.net /]# ifconfig eth0:1 192.168.0.31 netmask 255.255.255.0 [root@nhuhoang.net /]# ifconfig eth0:2 192.168.0.32 netmask 255.255.255.0 [root@nhuhoang.net /]# ifconfig Chú ý: Các thiết lập IP này chỉ có tác dụng đến khi Restart. Muốn thiết lập vẫn có tác dụng cho lần khởi động sau thì bạn phải sửa các file sau: Đối với RHEL, Fedora: thêm vào cuối file /etc/sysconfig/network/ifcfg-eth0 các dòng sau: DEVICE=eth0 BOOTPROTO=none HWADDR=00:48:54:1C:AD:86 ONBOOT=yes TYPE=Ethernet IPADDR=192.168.0.3 NETMASK=255.255.255.0 GATEWAY=192.168.0.2 ( Trong CentOS, file chịu trách nhiệm cấu hình mạng là /etc/sysconfig/network- scripts/ifcfg-eth0 Bạn điền thông tin giống hệt như trong Fedora) Để chỉ định DNS Server , vi /etc/resovl.conf và thêm vào dòng: nameServer 192.168.0NTTULIB.1; 5.1.2. Các file Cấu Hình: Thông tin về cấu hình được lưu trong /etc/sysconfig, /etc/sysconfig/network. Ngoài ra còn một số thông tin liên quan khác để ở: /etc/sysconfig : lưu các thông tin về clock, chuột, bảng định tuyến, bàn phím, PCMCIA /etc/sysconfig/networking : lưu Hostname, Ip, NIS Domain, Gateway, Gateway Device, mạng đang Active hay Inactive. /etc/sysconfig/network-scripts/: thư mục này lưu các Scripts Network cần thiết cho hệ thống. /etc/sysconfig/network-script/ifcfg-lo: đây là Script Loopback Device /etc/sysconfig/network-script/ifcfg-eth0: xác định địa chỉ IP, Card mạng Active hay Inactive. 20
  30. NTTULIB /etc/sysconfig/network-script/network-functions: lưu các Functions để các Scripts khác gọi thực hiện. Các file cấu hình mạng và hệ phục vụ mạng: - File /etc/resolv.conf - File /etc/host.conf - File /etc/hosts - File /etc/services - File /etc/inetd.conf - File /etc/protocol - File /etc/network Các file liên quan đến hệ thống bảo mật mạng và điều khiển quyền truy cập dịch vụ: - File /etc/ftpusers - File /etc/securetty - File /etc/hosts.allow - File /etc/hosts.deny. - File /etc/hosts.equiv 5.2. DNS. 5.2.1. Cấu Hình cho DNS Master Server với IP là 192.168.0.10: Bước 1: Cấu hình file /etc/named.conf (đây chỉ là file alias của file cấu hình chính của DNS trong /var/named/chroot/etc/named.conf, mọi thay đổi của file alias đều sẽ cập nhật sang file chính). Thêm vào các khai báo Zone sau: acl mynet { 192.168.0.3 172.0.0.1; }; /* Phần cấu hình acl (access control list) có chức năng định nghĩa vùng IP nào được phép sử dụng DNS Server này, giúpNTTULIB hạn chế khả năng bị tấn công DoS trên DNS Server vì bất cứ ai cũng có thể truy cập DNS. */ options { /* Giữ nguyên các cấu hình mặc định, thêm vào các option sau: */ auth-nxDomain yes; listen-on { mynet; }; /* Chỉ lắng nghe truy vấn từ trong vùng dc acl định nghĩa */ }; /* Phần khai báo các Zone */ 21
  31. NTTULIB /* Phân giải thuận */ Zone “home.com” { type Master; file “home.com.Zone”; allow-query {mynet;}; allow-transfer {192.168.0.10;}; /* cấu hình chấp nhận Zone transfer cho Slave DNS*/ allow-update {mynet;}; }; /* Phân giải nghịch */ Zone “8.168.192.in-addr.arpa” { type Master; file “8.168.192.in-addr.arpa.Zone”; allow-query {mynet;}; allow-transfer {192.168.0.10;}; /* cấu hình chấp nhận Zone transfer cho Slave DNS*/ allow-update {mynet;}; }; Chú ý: Khi khai báo trong Zone là file nào thì khi tạo file Zone trong /var/named/chroot/var/named phải theo đúng tên đó. Bước 2: Tạo file phân giải thuận /var/named/chroot/var/named/home.com.Zone $TTL 86400 @ IN SOA @ root.ntt.com. ( 3;Serial 28800;refresh 7200;retry 604800;expire 86400;ttl ) @ IN NS dns.ntt.com. @ IN MX 10 smtp.ntt.com. @ IN MX 100 pop.nttNTTULIB.com. $ORIGIN ntt.com. dns IN A 192.168.0.100 smtp IN A 192.168.0.100 pop IN A 192.168.0.100 pop3 IN CNAME pop.ntt.com. 22
  32. NTTULIB Bước 3: Tạo file phân giải ngược /var/named/chroot/var/named/8.168.192.in- addr.arpa.Zone $TTL 86400 @ IN SOA @ root.ntt.com. ( 3;Serial 28800;refresh 7200;retry 604800;expire 86400;ttl ) @ IN NS dns.ntt.com. 100 IN PTR dns. ntt.com. 100 IN PTR smtp. ntt.com. 100 IN PTR pop. ntt.com. Giải thích về các thông số: · Serial: là số căn cứ cho quá trình update của secondary DNS đối với primary DNS. Khi Slave thấy số Serial của mình nhỏ hơn của Master, nó lập tức cập nhật những thông tin mới của Master đồng thời tăng giá trị Serial của mình lên 1. Ngược lại, khi Master sửa chữa hoặc thêm bớt bất cứ thông tin nào về các record thì sau khi thực hiện, đều phải tăng giá trị Serial lên 1 để báo cho Slave rằng cần phải cập nhật thông tin mới. · Refresh: là khoảng thời gian (tính bằng giây) để Slave làm mới lại các thông tin về DNS của mình từ Master. · Retry: là khoảng thời gian (tính bằng giây) mà Slave sẽ tiến hành kết nối lại với Master, nếu trước đó kết nối không thành công. · Expire: là khoảng thời gian (tính bằng giây) nếu sau khoảng thời gian đó Slave không thể kết nối và cập nhật thông tin từ Master thì các dữ liệu Zone trên Slave sẽ quá hạn và máy chủ sẽ không trả lời bất cứ một truy vấn nào về Zone này nữa. · TTL (time-to-live): giá trị này áp dụng cho mọi record trong Zone. Là khoảng thời gian chỉ định màNTTULIB các máy chủ Server có thể cache lại các thông tin trả lời DNS giúp cho việc truy vấn trở nên nhanh hơn. Sau khoảng thời gian TTL, các cache sẽ được xóa. Bước 4: Mở file /etc/resolv.conf bằng trình soạn thảo vi. Sửa lại các thông tin sau: search ntt.com nameServer 192.168.0.10 (việc thay đổi này bao gồm cả cấu hình trên Client) Bước 5: Khởi động dịch vụ DNS. service named start hoặc /etc/init.d/named start 23
  33. NTTULIB Bước 6: Đảm bảo Client đã được trỏ DNS Server về địa chỉ IP 192.168.0.10. Dùng lệnh nslookup để kiểm tra hoạt động của DNS. Chú ý: Nếu quá trình khởi động dịch vụ không có lỗi thì xem như file named.conf và các file Zone đã khớp tên với nhau. Nếu trong quá trình test không thực hiện được hoặc lỗi, nên kiểm tra các chi tiết sau: · Kiểm tra lại các khai báo Zone. · Kiểm tra các file Zone xem đã đúng cú pháp, các IP và tên máy hay chưa. (chú ý xuống dòng dấu “)” trong file Zone). Đặc biệt chú ý các dấu “.” cuối các tên máy trong file phân giải thuận và ngược. 5.2.2. Cấu hình DNS SLAVE SERVER với IP là 192.168.0.11: Bước 1: Cấu hình file /etc/named.conf /* access control list */ acl mynet { 192.168.0.1; 127.0.0.1; }; options { /* giữ nguyên các cấu hình cũ, thêm các cấu hình sau */ allow-notify {192.168.0.100;}; /* cho phép nhận notify từ Master DNS */ auth-nxDomain yes; listen-on {mynet;}; }; /* khai báo các Zone */ NTTULIB Zone “Domain.com” { type Slave ; file “Slave s/ ntt.com.Zone”; Masters {192.168.0.100;}; /* chỉ ra Master DNS Server */ allow-query {mynet;}; }; Zone “8.168.192.in-addr.arpa” { type Slave ; file “Slave s/8.168.192.in-addr.arpa.Zone”; Masters {192.168.0.100;}; /* chỉ ra Master DNS Server */ 24
  34. NTTULIB allow-query {mynet;}; }; Chú ý: Phải cấu hình các file Zone của Slave s DNS nằm trong thư mục /var/named/chroot/var/named/Slave s, thư mục này dùng để chứa các file Zone được cập nhận (Zone transfer) từ Master DNS. Bước 2: Mở file /etc/resolv.conf bằng trình soạn thảo vi. Sửa lại các thông tin sau: search ntt.com nameServer 192.168.0.100 Bước 3: Khởi động lại dịch vụ DNS. service named restart hoặc /etc/init.d/named restart (sau khi khởi động lại dịch vụ DNS, lập tức quá trình Zone transfer được thực hiện, các file Zone sẽ lập tức được chép vào trong /var/named/chroot/var/named/Slave s). Bước 4: Kiểm tra các file cấu hình Zone đã có trong thư mục /var/named/chroot/var/named/Slave s hay chưa? Nếu đã có thì kiểm tra nội dung xem có khớp với các file Zone trên Master hay ko? Nếu nọi việc đều tốt thì quá trình cấu hình Slave DNS đã xong. Cấu hình cho các Client truy vấn dùng lệnh nslookup để kiểm tra. 5.3. DHCP. Thành phần của một DHCP Server bao gồm bốn mục chính sau : o Options: Dùng để cung cấp các yếu tố cho phía Client như địa chỉ IP, địa chỉ subnet mask, địa chỉ Gateway, địa chỉ DNS .v.v o Scope: Một đoạn địa chỉ được quy định trước trên DHCP Server mà chúng ta sẽ dùng để gán cho các máy Client. o Reservation: Là những đoạn địa chỉ dùng để “để dành” trong một scope mà chúng ta đã quy định ở trên. o Lease: Thời gian “cho thuê” địa chỉ IP đối với mỗi Client. Cài đặt NTTULIB Để sử dụng được dịch vụ DHCP này, bạn phải cài đặt vào hệ thống thông thường bằng gói dịch vụ có sẵn trên đĩa CD có phần đuôi mở rộng là .rpm, ngoài ra chúng ta có thể cài đặt package ở dạng source code và tải gói này về từ trang web của GNU. Quá trình cài đặt bao gồm những bước sau đây : Ở dạng phần đuôi mở rộng là .rpm, ta chạy lệnh: rpm –ivh dhcp-*.rpm Ở dạng source code, ta biên dịch như sau : tar –xzvf dhcp-*.tar.gz cd dhcp-* ./configure 25
  35. NTTULIB make make install Sau khi hoàn tất xong quá trình cài đặt, kế tiếp chúng ta sẽ cấu hình để dịch vụ này có thể hoạt động theo ý muốn của chúng ta bằng cách tạo và sửa đổi file /etc/dhcpd.conf. Tập tin này sẽ có những nội dung sau : deny Client-updates; ddns-update-style interim; subnet 192.168.0.1 netmask 255.255.255.0 { range dynamic-bootp 192.168.0.190 192.168.0.240; option routers 192.168.0.10; option subnet-mask 255.255.255.0; option nis-Domain "my ntt.com"; option Domain-name "my ntt.com"; option Domain-name-Server s 192.168.0.20; option netbios-name-Server s 192.168.0.100; option ntp-Server s 192.168.0.25; option smtp-Server 192.168.0.35; default-lease-time 360000; max-lease-time 259200; } # Client-definitions host big-daddy { hardware ethernet 00:a0:d9:cb:94:8a; fixed-address 192.168.0.18; } Các dòng trên có ý nghĩa như sau : Hai dòng đầu tiên sẽ không cho phép DHCP Server cập nhật động DNS. Dòng kế tiếp là đoạn địa chỉ mà bạn cần cung cấp cho hệ thống các máy con của bạn, bao gồm địa chỉ NET IDs và một đoạn địa chỉ. (Như ở trên Server sẽ cấp cho phía máy con một đoạn địa chỉ chạy từ 192.168.0.190 đến 192.168.0.240 ) Option routers cung cấNTTULIBp cổng gateway mặc định. Option subnet-mask Subnet mask mặc định cho phía Client. Option nis-Domain cung cấp tên NIS Domain Server Option Domain-name cung cấp tên Domain mặc định nếu sử dụng FQDN Option Domain-name-Server s cung cấp name-Server s cho mạng của bạn. Option netbios-name-Server s cung cấp địa chỉ mặc định của WINS-Server Option ntp-Server s cung cấp địa chỉ timeServer . Option smtp-Server cung cấp địa chỉ smtp-Server (duy nhất chỉ 1 Server ) Dòng cuối cùng là nếu bạn dự định cấp một địa chỉ cố định cho một máy nào đó thì bạn phải khai báo địa chỉ MAC của máy đó và IP tương ứng 26
  36. NTTULIB Và trước khi khởi động DHCP Server lên thì bạn phải tạo một tập tin cuối cùng dùng để xem xét việc cấp phát các địa chỉ IP cho phía Client: touch /etc/dhcpd.lease Để bật tắt dịch vụ DHCP thì bạn chỉ chạy hai script tương ứng như sau: /etc/init.d/dhcpd start /etc/init.d/dhcpd stop 5.4. FIREWALL 5.4.1. Đinh Nghĩa: Trong hệ thống mạng thức tế, Firewall là một phần không thể thiếu để bảo vệ hệ thống bên trong của bạn khỏi các tác nhân nguy hiểm. Hầu hết các hệ điều hành Linux khi cài đều đã mặc định sử dụng Iptables và đây được xem là một trong những Firewall chạy phần mềm tốt nhất. Tuy nhiên, nhược điểm của nó là câu lệnh quá dài và rắc rối gây nên sự khó nhớ. Bắt đầu từ nhược điểm đó, shorewall là một phần mềm được tạo ra chạy trên nền Iptables, giúp cho việc cấu hình các Rules của Firewall một cách dễ dàng và trực quan hơn. Do chạy trên nền Iptables nên điều tiên quyết để có thể cài shorewall là trên máy Linux đó phải có cài Iptables trước, mọi chỉnh sửa trên Firewall đều sẽ được hiểu là các Rules của Iptables. Qua phần trình bày sau đây ta sẽ hiểu hơn về cách cấu hình của Shorewall. Mô hình đưa ra là ta có một hệ thống gồm 2 Zone là dmz (172.16.10.x) và net (192.168.10.x). Firewall có 2 Interface có địa chỉ là 172.16.10.1 (eth0) và 192.168.10.100 (eth1). 5.4.2. Cấu Hình: 5.4.2.1. Cấu Hình SHOREWALLCăn bản: Bước 1: Cài đặt gói shorewall. Sau khi cài đặt Shorewall, các file cấu hình chính của Shorewall sẽ nằm trong thư mục /etc/shorewall. Mỗi một file có chức năng khác nhau, ta sẽ tìm hiểu các chức năng đó qua quá trình cấu hình. Bước 2: Khai báo các Zone. NTTULIB Việc khai báo các Zones sẽ được thực hiện trên file Zones trong thư mục chính của shorewall. Cú pháp để khai báo một Zone là: Zone [Zone type] Như đã trình bày lúc đầu, ta có 2 Zone là dmz và net. Ta sẽ khai báo như sau: dmz ipv4 net ipv4 27
  37. NTTULIB Chú ý: Có một điều quan trọng là bạn cần phải tuân thủ nghiêm ngặt các cú pháp cũng như vị trí đặt các cấu hình của mình trong file cấu hình. Để tránh sai sót, trong file cấu hình đã có sẵn một số ví dụ, bạn có thể tham khảo khi cần. Cuối file cấu hình có một dòng là #LAST LINE và trên dòng đó sẽ là tên các cột option cho ta biết nên cấu hình thế nào. Các cấu hình phải được đặt giữa 2 dòng đó. Bước 3: Khai báo các Zone đó nối liền với các Interface nào trên Firewall . Việc khai báo các Zone nối với Interface nào tương ứng sẽ được thực hiện trên file Interfaces. Cú pháp là: Zone name Interface [broadcast] Dựa theo mô hình đưa ra lúc đầu, tôi sẽ khai báo như sau: dmz eth0 detect net eth1 detect Bước 4: Cấu hình các Policy. Các Policy là các luật sẽ được Firewall xem xét trước khi đưa ra các ngoại lệ. Nó qui định giao tiếp giữa các Zone là chính, và tương tự như các Firewall khác, nó có các cách thức ngăn chặn khác nhau như DROP, REJECT, ACCEPT, Việc cấu hình các Policy được thực hiện trên file Policy. Cú pháp là: source dest Policy log level Dựa theo yêu cầu của bài lab, tôi sẽ cấu hình một số Policy như sau: fw all ACCEPT dmz net DROP info dmz fw DROP info net all DROP info all all REJECT info Giải thích: · Ta thấy các từ như fw, net, dmz là tên các Zone, ta dùng tên của chúng để định nghĩa các giao tiếp giữaNTTULIB các Zone. · ACCEPT, DROP, REJECT, là các hành động mà Firewall sẽ thực hiện đối với các giao tiếp ứng với các giao tiếp ta đã định nghĩa. Tuy nhiên, DROP không hẳn là sẽ bỏ gói tin mà nó sẽ dựa vào các Rule xem có phù hợp với bất cứ ngoại lệ nào hay không, nếu không nó sẽ đưa ra thông báo, đồng thời bỏ gói tin. Log của Firewall nằm trên /var/log/messages. · Info tức là hoạt động nào cần được ghi lại, các hoạt động đó chỉ được ghi lại khi Policy có tác dụng. Như đã nói ở trên, nếu gói tin không có ngoại lệ và để bị DROP thì log sẽ được ghi. · Cuối cùng luôn là câu Policy định nghĩa all-all, giống như mọi loại Firewall , mặc định là chặn tất cả. 28
  38. NTTULIB Bước 5: Cấu hình các Rule. Các Rule là các ngoại lệ cho các Policy được khai báo trên đây. Việc cấu hình các Rule được thực hiện trên file Rules và chú ý là mọi Rule sẽ được đặt trong khoảng giữa của dòng SECTION NEW và #LAST LINE. Các Rule không có cú pháp cố định mà còn tùy vào yêu cầu. Tôi sẽ trình bày một số lại Rule trước. ACCEPT dmz $FW icmp echo-request ACCEPT net $FW icmp echo-request Rule này là Rule để ACCEPT tức là các ngoại lệ chấp nhận. Ta thấy trong Policy thì giao tiếp giữa dmz-fw, dmz-net và net-fw (trên Policy là net-all, all là tất cả các Zone bao gồm cả Firewall ) đều bị DROP. Trong Rule ta chỉ cho phép ping giữa các giao tiếp đó (icmp). Các loại Rule khác sẽ được trình bày trong lần lượt các mục sau. Bước 6: Chỉnh sửa file cấu hình của shorewall. File cấu hình của shorewall là file shorewall.conf. Để có thể chạy được shorewall thì trong file này, option STARTUP_ENABLE phải có giá trị là Yes. STARTUP_ENABLE = Yes Bước 7: Khởi động shorewall. Đầu tiên, để chắc chắn các cấu hình đều đúng, ta dùng lệnh sau: #shorewall check Nếu mọi việc không có gì trục trặc, ta khởi động shorewall bằng lệnh: #shorewall start Nếu trong quá trình cấu hình bạn có chỉnh sửa, thêm, hay bớt các Rule, các Policy thì trước khi restart lại dịch vụ shorewall, phải chạy lệnh này trước để xóa các apply của Rule cũ lên trên hệ thống. #shorewall clear NTTULIB Bước 8: Test các Rule. 5.5. FTP: 5.5.1. Cấu hình FTP: File cấu hình chính của FTP Server (dùng gói Vsftp) là file /etc/vsftpd/vsftpd.conf. Các file phụ trợ khác nằm trong thư mục /etc sẽ được đề cập đến sau. Đầu tiên, ta sẽ nói về các option có bên trong file cấu hình, ảnh hưởng đến quá trình cấu hình cũng như hoạt động của FTP Server . (các giá trị trong ngoặc là các giá trị mặc định). 29
  39. NTTULIB · anonymous_enable (=YES): cho phép truy cập vào FTP Server với quyền anonymous, nghĩa là ko cần đăng nhập với bất cứ username nào. Liên quan đến phần cấu hình cho anonymous, ta có các option phụ trợ thêm như sau: o anon_world_readable_only (=YES): tức là chỉ cho anonymous truy cập chỉ đọc, ko được quyền chép hay chỉnh sửa bất cứ gì trên FTP Server . o anon_upload_enable (=NO): cho phép anonymous user có thể upload file lên FTP Server . o anon_mkdir_write_enable (=NO): cho phép anonymous user có thể tạo thư mục trên FTP Server . Để option này hợp lệ, option write_enable phải được đặt giá trị là YES. o anon_other_write_enable (=NO): cho phép nhiều hơn là các quyền upload, tạo thư mục, có thể là xóa thậm chí sửa tên các file trên FTP Server . Để option này hợp lệ, option write_enable phải được đặt giá trị là YES. o chown_uploads (=NO): nếu option này được gán giá trị YES thì anonymous khi upload file thì file sẽ được chuyển quyền sở hữu lại cho user được khai báo trong option chown_username. · local_enable (=YES): sử dụng các user có sẵn trong hệ thống (các user được khai báo trong file /etc/passwd) để đăng nhập vào FTP Server . · userlist_enable (=YES) và userlist_deny (=NO): nếu option userlist_enable=YES và userlist_deny=NO thì chỉ có các user trong file /etc/vsftpd.user_list được phép login vào trong FTP Server . Nếu ngược lại, userlist_enable=NO và userlist_deny=YES thì các user trong file /etc/vsftpd.user_list là các user được chỉ định là ko được login. · listen (=NO): nếu là YES tức là lắng nghe các yêu cầu kết nối từ mạng ngoài, nếu là NO tức là chỉ lắng nghe các yêu cầu từ phía local. · max_Clients: số Client nhiều nhất được kết nối vào FTP Server . · max_per_ip: số kết nối đến được thực hiện trên cùng 1 địa chỉ IP nguồn. Client mang địa chỉ IP nguồn có hơn số kết nối qui định đến Server sẽ nhận được thông báo lỗi. Ngoài việc có thể hạn chế user đăng nhập vào FTP Server , còn có thể giới hạn truy cập dựa trên host. Không chỉ dịch vụ ftp mà các dịch vụ khác cũng có thể làm theo cách này. Bằng cáchNTTULIB thêm các tùy chọn vào trong file /etc/hosts.allow và /etc/hosts.deny. File /etc/hosts.allow, cho phép các truy cập từ các host được khai báo trong file này (theo Domain, hoặc theo địa chỉ lớp mạng). File /etc/hosts.deny là ngăn chặn các host nào ko được truy cập (ngoài các host đã khai báo trong file hosts.allow), mặc định là ALL. Ví dụ để cấu hình cho phép localhost và một host khác có địa chỉ là 192.168.8.222 truy cập vào FTP Server , đồng thời deny tất cả các truy cập khác, tiến hành như sau: · Thêm dòng sau vào file /etc/hosts.allow: 30
  40. NTTULIB vsftpd: localhost 192.168.0.22 (nếu là cho phép nguyên lớp mạng 192.168.0.10 thì dùng 192.168.0. , nếu cho phép nguyên Domain home.com thì dùng .home.com) · Thêm dòng sao vào file /etc/hosts.deny vsftpd: ALL Nếu chú ý, bạn sẽ thấy rằng khi user đăng nhập vào trong FTP Server , ngoài thư mục home của mình, có thể tự ý vào các thư mục khác (ngoại trừ thư mục của user khác). Đây chính là một lỗ hổng bảo mật cần dc khắc phục. Để khắc phục tình trạng này, ta sử dụng option chroot_local_user với giá trị là YES. Khi đó, user đăng nhập vào FTP Server chỉ có thể ở trong thư mục home của mình và xem nó như root của user đó, mọi truy cập đến nơi khác đều bị từ chối. 5.6. MAIL 5.6.1. Cấu hình Mail: 5.6.1.1. Cấu hình SMTP GATEWAY với POSTFIX: Chú ý: Trước khi cấu hình Postfix, nên gỡ bỏ Sendmail trong hệ thống ra trước (nếu có). File cấu hình chính của Postfix là /etc/postfix/main.cf. File log ghi lại mọi truy xuất mail Server là /var/log/maillog. Bước 1: Sửa các giá trị trong file cấu hình như sau (nếu các giá trị nào không có sẵn trong file cấu hình thì thêm vào): #vi /etc/postfix/main.cf #LOCAL PATHNAME INFORMATION command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix #QUEUE AND PROCCESS OWNERSHIP mail_owner = postfix #INTERNET HOST AND DOMAIN NAMES myhostname = mail.DomainNTTULIB.com myDomain = Domain.com #SENDING MAIL myorigin = $myDomain #RECEIVING MAIL inet_Interfaces = all mydestination = $myhostname, $myDomain, localhost.$myDomain #REJECTING MAIL FOR UNKNOWN LOCAL USERS 31
  41. NTTULIB unknown_local_recipient_reject_conde = 450 #TRUST AND RELAY CONTROL mynetworks_style = class mynetworks_style = subnet mynetworks = 192.168.0.10, 127.0.0.8 #relay_Domains = hash:/etc/postfix/relayDomains relay_Domains = $mydestination #INTERNET OR INTRANET #relayhost = mail. ntt.com relayhost = $myDomain #TRANSPORT MAPS transport_maps = hash:/etc/postfix/transport #ALIAS DATABASE #alias_maps = hash:/etc/postfix/aliases #alias_database = hash:/etc/postfix/aliases alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases #DELIVERY TO MAILBOX mail_spool_directory = /var/spool/mail #JUNK MAIL CONTROL #header_checks = pcre:/etc/postfix/header_checks #body_checks = regexp:/etc/postfix/body_checks #DEBUGGING CONTROL debugger_command = PATH=/bin:/usr/bin:/usr/local/bin//usr/X11R6/bin xxgdb $daemon_direNTTULIBctory/$process_names $process_id & sleep 5 #INSTALL-TIME CONFIGURATION INFORMATION sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.1.5/samples readme_directory = /usr/share/doc/postfix-2.1.5/README_FILES 32
  42. NTTULIB maximal_queue_lifetime = 2d smtp_destination_recipient_limit = 100 smtpd_recipient_limit = 200 smtpd_sender_restrictions = permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_Domain, reject_rhsbl_sender dsn.rfc-ignorant.org mailbox_size_limit = 100000000 message_size_limit = 10000000 smtp_sender_dependent_authentication = yes smtp_sasl_auth_enable = yes #smtp_sasl_Password_maps = hash:/etc/postfix/sasl_passwd Các option cần chú ý: · myhostname = mail. ntt.com: chỉ ra hostname của mail Server , tên này nên là FQDN Name của mail Server . · myDomain = ntt.com: tên Domain gửi và nhận mail. Thông thường, tên myhostname phải nằm trong myDomain. · myorigin = $myDomain: giữ nguyên thông tin của Domain khi gửi. · inet_Interfaces = all: lắng nghe trên tất cả các Interface của mail Server . · mynetworks: định nghĩa mạng nào được phép sử dụng mail Server để chuyển mail. · relay_Domains: các Domain dùng mail Server để relay mail. · relayhost: host được dùng để mail relay. · mailbox_size_limit = 100000000: dung lượng của mailbox, tính bằng byte. · message_size_limit =NTTULIB 10000000: dung lượng tối đa của một message, tính bằng byte. · smtpd_sender_restrictions: các cấu hình từ chối mail: o permit_mynetworks: chỉ nhận mail từ trong mynetworks. o reject_non_fqdn_sender: từ chối các mail có reverse lookup DNS không xác định. o reject_unknown_sender_Domain: từ chối các domai không xác định. o reject_rhsbl_sender dsn.rfc-ignorant.org: từ chối các mail bắt nguồn từ các nguồn được đánh dấu là Spam. 33
  43. NTTULIB · maximal_queue_lifetime = 2d: thời gian sống của hàng đợi, nếu quá thời gian này mà mail không được giải quyết sẽ bị hủy. · header_checks và body_checks: là các cấu hình dùng để kiểm tra header và nội dung mail phòng tránh spam. Bước 2: Khởi động dịch vụ postfix #service postfix start Bước 3: Cấu hình để postfix khởi động mỗi khi khởi động máy. #chkconfig postfix on Bước 4: Kiểm tra SMTP có chạy hay không bằng cách dùng lệnh telnet vào port 25 như sau: #telnet localhost 25 Hoặc #telnet mail. ntt.com 25 Gõ lệnh EHLO localhost (hoặc EHLO mail. ntt.com). Nếu hiện ra dòng chữ ESMTP Postfix tức là Server SMTP đã chạy. 5.6.1.2. Cấu hình IMAP SERVER sử dụng DOVECOT File cấu hình chính của dovecot là /etc/dovecot.conf Bước 1: Dùng trình soạn thảo mở file cấu hình dovecot và sửa các giá trị sau: protocols = imap pop3 imap_listen = * pop3_listen = * login_dir = /var/run/dovecot-login #IMAP login process login = imap NTTULIB #POP3 login process login = pop3 mbox_locks = fcntl auth = default auth_mechanisms = plain auth_userdb = passwd 34
  44. NTTULIB auth_passdb = pam Các options cần lưu ý: · protocols: Giao thức mà Dovecot cung cấp hiện giờ chủ yếu là IMAP, nên ta đặt giá trị ở đây là imap. · imap_listen = *: chờ đợi kết nối IMAP trên mọi Interface. · auth_mechanisms = plain: phương thức chứng thực không mã hóa. · auth_userdb = passwd: phương thức chứng thực thông tin user cho IMAP. · auth_passdb = pam: phương thức lấy thông tin passwd để chứng thực. Bước 2: Khởi động service Dovecot #service dovecot start Bước 3: Kiểm tra dịch vụ Dovecot đã khởi động. Dùng lệnh telnet vào port 143 #telnet localhost 143 Hoặc #telnet mail. ntt.com 143 Nếu thấy thông báo “* OK dovecot ready” là dịch vụ đã hoạt động tốt. 5.6.1.3. Cấu hình WEB MAIL SQUIRRELMAIL để CHECK MAIL từ CLIENT: Trước khi làm bước này, cần hoàn thành cấu hình webmail trong phần cấu hình Web Server . File cấu hình chính của squirrelmail là /etc/squirrelmail/config.php Ngoài ra, squirrelmail còn hỗ trợ chức năng cấu hình bằng lựa chọn đơn giản giúp cho công việc cấu hình dễ hơn và sâu hơn bằng cách sử dụng script /usr/share/squirrelmail/config/config.pl. Sau đây là cách cấu hình bằng file config.php. NTTULIB Bước 1: Mở file config.php bằng trình soạn thảo, và sửa các option sau: $Domain = ‘ntt.com’; $imapServer Address = ‘192.168.0.5’; $smtpServer Address = ‘192.168.0.5’; $sendmail_path = ‘/usr/sbin/sendmail.postfix’; $default_charset = ‘utf-8’; 35
  45. NTTULIB Các option đáng lưu ý: · $Domain: là Domain mà squirrelmail dùng cho user duyệt mail. · $imapServer Address: địa chỉ của IMAP Server . · $smtpServer Address: địa chỉ của SMTP Server . · $sendmail_path: Do ở đây ta dùng portfxi chứ không dùng sendmail, ta sẽ thấy dòng này khớp với dòng sendmail_path của file cấu hình postfix (main.cf). · $default_charset: là mã kí tự sử dụng trong squirrelmail để Client soạn thảo. Mặc định sẽ không đánh được unicode, thay giá trị thàng ‘utf-8’ để có thể dùng unicode. · $attachment_dir: Thư mục chứa các file đính kèm của Client khi Client. · $data_dir: Thư mục chức dữ liệu. Bước 2: Sau khi thay đổi các thông số cho phù hợp, khởi động lại dịch vụ web để cập nhật các thông số. #service httpd restart Bước 3: Tạo 2 user là mailuser1 và mailuser2 trên mailServer và đăng nhập vào tài khoản bằng squirrelmail (webmail.Domain.com). Gửi thư qua lại giữa 2 user, nếu thành công thì cấu hình mail căn bản cùng trình mail Client đã xong. Chú ý: Sau khi gửi mail, ta nên xem file log của postfix để xem có lỗi xảy ra trong quá trình chuyển mail hay không. Nếu có lỗi, thì nên xem lại các file cấu hình trong postfix đã có đủ hay chưa, nếu thiếu file nào thì nên tạo ra file đó. Trong phần cấu hình này, nếu làm như trên thì có thể sẽ báo lỗi thiếu file sasl_passwd. Ta sẽ tạo file này như sau: Dùng trình soạn thảo một file tên là sasl_passwd trong thư mục /etc/postfix với nội dung sau (ứng với 2 user đã tạo ở ngay trên đây): mailuser1@ ntt.com mailuser1:Password mailuser2@ ntt.com mailuser2:Password Sau khi tạo xong file, dùng lệnh postmap sasl_Password để tạo ra file db. Xong bước này, khởi động lại postfix và gửi lại mail, xem file log để biết kết quả. 5.6.1.4. Cấu hìnNTTULIBh RELAY DOMAINS và TRANSPORT: Cấu hình Relay Domain và Transport sẽ dựa vào options relay_Domains và transport_maps trong file cấu hình chính của Postfix. Relay Domain giúp hạn chế các vùng đích đến của các mail mà hệ thống nhận đóng vai trò chuyển tiếp, mục đích chính của cấu hình Relay Domain là chống Spam. Cấu hình Transport là tương tự như cấu hình một bảng định tuyến cho các mail đến các smtp Server của các Domain tương ứng. Vấn đề sẽ được trình bày rõ ràng hơn trong phần cấu hình bên dưới. Bây giờ ta giả sử mail.Domain.com đóng vai trò là relay cho mail từ Domain testmail.com và SMTP Server của testmail.com có địa chỉ là 36
  46. NTTULIB 192.168.10.6. Mọi thao tác cấu hình sẽ thực hiện trên mail Server mail.Domain.com tức là Server đóng vai trò relay. Bước 1: Cấu hình thông số relay_Domains và transport_maps như sau: relay_Domains = hash:/etc/postfix/relayDomains transport_maps = hash:/etc/postfix/transport Bước 2: Cấu hình 2 file relayDomains và transport trong thư mục /etc/postfix (nếu 2 file này chưa có thì tạo, thông thường file transport đã có rồi). File relayDomains: testmail.com OK File transport: testmail.com smtp:[192.168.0.6] Bước 3: Tạo các file db từ 2 file relayDomains và transport. Chạy 2 lệnh sau: #postmap relayDomains #postmap transport Bước 4: Khởi động lại dịch vụ postfix #service postfix restart Bây giờ, ta thử gửi một mail từ Domain.com sang cho một tài khoảng trên testmail.com. Bước 5: Mở file log của mail Server mail.Domain.com ta sẽ thấy #tail –f /var/log/maillog Nov 19 15:44:05 mail postfiNTTULIBx/qmgr[1948]: 202037F6D: from= , size=313, nrcpt=2 (queue active) Nov 19 15:44:05 mail postfix/smtp[2749]: 202037F6D: to= , relay=192.168.0.6[192.168.0.6], delay=0, status=sent (250 Ok: queued as CC8167F80) Nov 19 15:44:05 mail postfix/smtp[2749]: 202037F6D: to= , relay=192.168.0.6[192.168.0.6], delay=0, status=sent (250 Ok: queued as CC8167F80) 37
  47. NTTULIB Ta thấy thông số relay trong file log ghi đúng theo cấu hình mà ta đã ghi trong transport, ứng với Domain testmail.com ta sẽ có SMTP Server là 192.168.0.6. 5.6.1.5. Cấu hình JUNK MAIL CONTROL: a. Cấu hình header_checks: Bước 1: Mở file cầu hình chính của postfix (main.cf) bằng trình soạn thảo, sửa option sau: header_checks = regexp:/etc/postfix/header_checks Bước 2: Thêm các dòng sau vào trong file header_checks /^Subject:.*Spam*/ REJECT Hàng trên có ý nghĩa là sẽ reject (từ chối) mail nếu như mail có tiêu đề là spam (với bất cứ cách viết nào). Có thể soạn thảo các Rule dùng để check header của mail, mỗi Rule là một hàng. Bước 3: Tạo file header_checks.db #postmap /etc/postfix/header_checks Bước 4: Khởi động lại dịch vụ postfix. #service postfix restart Bước 5: Thử gửi một mail có tiêu đề là spam và xem log file của mail, ta sẽ thấy các thông báo sau: Nov 19 17:17:53 mail postfix/cleanup[2564]: 2CE297F91: reject: header Subject: Spam from local; from= to= : Message content rejected Nov 19 17:17:53 mail postfix/cleanup[2564]: 2CE297F91: message- id= Nov 19 17:17:53 mail postfix/cleanup[2564]: 2CE297F91: to= ,NTTULIB relay=none, delay=0, status=bounced (Message content rejected) Nov 19 17:17:53 mail postfix/cleanup[2568]: 597CC7F94: message- id= Nov 19 17:17:53 mail postfix/qmgr[2560]: 597CC7F94: from= , relay=local, delay=0, status=sent (delivered to mailbox) Nov 19 17:17:53 mail postfix/qmgr[2560]: 597CC7F94: removed 38
  48. NTTULIB Ta để ý thấy các thông báo rằng header của file chứa cụm từ Spam nên bị từ chối, và nếu dùng Squirrlemail để gửi mail này, ta sẽ thấy hệ thống mail gửi trả một mail thông báo rằng mail không thể gửi đi. b. Cấu hình body_checks: Bước 1: Mở file cầu hình chính của postfix (main.cf) bằng trình soạn thảo, sửa option sau: body_checks = hash:/etc/postfix/body_checks Bước 2: Thêm các dòng sau vào trong file header_checks /Spam/ REJECT /(https:?|ftp):\/\/.*\/.*\.(bat|exe)/ REJECT Hàng thứ nhất có ý nghĩa là sẽ reject (từ chối) mail nếu như mail có body chứa cụm từ spam (với bất cứ cách viết nào). Hàng thứ hai có ý nghĩa là từ chối các mail mà trong body có chứa link (http và ftp) dẫn tới các file .bat hay .exe. Có thể soạn thảo các Rule dùng để check header của mail, mỗi Rule là một hàng. Bước 3: Tạo file header_checks.db #postmap /etc/postfix/body_checks Bước 4: Khởi động lại dịch vụ postfix. #service postfix restart Bước 5: Thử gửi một mail có nội dung là spam và xem log file của mail, hoặc một file chứa link bất kì dẫn tới một file exe như là ta sẽ thấy các thông báo sau: Nov 19 17:30:11 mail postfix/cleanup[2921]: 024BF7F98: reject: body spam from local; from= : Message content rejected Nov 19 17:30:13 mail postfix/cleanup[2921]: 024BF7F98: to= ,NTTULIB relay=none, delay=7, status=bounced (Message content rejected) Nov 19 17:30:15 mail postfix/cleanup[2928]: E28197F9C: message- id= Nov 19 17:30:16 mail postfix/qmgr[2918]: E28197F9C: from= , relay=local, delay=6, status=sent (delivered to mailbox) Nov 19 17:30:19 mail postfix/qmgr[2918]: E28197F9C: removed 39
  49. NTTULIB 5.6.1.6. Cấu hình MAILSCANNER VÀ CLAMAV: MailScanner là một hệ thống security mã nguồn mở dành cho mail, có chức năng ngăn chặn virus, spam hay các nguy cơ tấn công. MailScanner có thể tích hợp với khoảng 14 loại chương trình quét virus và spam khác nhau. Phần này sẽ hướng dẫn cài đặt và cấu hình MailScanner tích hợp với ClamAV để quét virus cho mail ra và vào hệ thống. a. Cấu hình MailScanner: Ta sẽ cài đặt MailScanner từ gói MailScanner-4.65.3-1.rpm.tar.gz có thể download tại địa chỉ www.mailscanner.info. Bước 1: Tắt postfix, bao gồm cả chức năng tự khởi động của postfix khi boot. #service postfix stop #chkconfig postfix off Bước 2: Giải nén gói MailScanner-4.65.3-1.rpm.tar.gz và cài đặt #tar xzvf MailScanner-4.65.3-1.rpm.tar.gz #cd MailScanner-4.65.3-1 #./install.sh Bước 3: Qui định cho MailScanner chạy khi khởi động hệ thống. #chkconfig MailScanner on Bước 4: Kiểm tra file cấu hình của postfix là /etc/postfix/main.cf xem đã có dòng dưới đây chưa. header_checks = regexp:/etc/postfix/header_checks Bước 5: Thêm vào file header_checks nội dung dưới đây. Và tạo lại file header_checks.db #vi /etc/postfix/header_checks . /^Received:/ HOLD NTTULIB #postmap /etc/postfix/header_checks Hàng trên có ý nghĩa là các mail ra vào hệ thống sẽ được HOLD (giữ lại) để scan nhằm phát hiện virus. Bước 6: Cấu hình MailScanner để quét mail ra vào hệ thống. #vi /etc/MailScanner/MailScanner.conf Run As User = postfix Run As Group = postfix 40
  50. NTTULIB Incoming Queue Dir = /var/spool/postfix/hold Outgoing Queue Dir = /var/spool/postfix/incoming MTA = postfix SamAssassin User State Dir = /var/spool/MailScanner/spamassassin Bước 7: Cấu hình các permission cho các thư mục cần thiết để MailScanner hoạt động. #chown postfix.postfix /var/spool/MailScanner/incoming #chown postfix.postfix /var/spool/MailScanner/quarantine #mkdir /var/spool/MailScanner/spamassassin #chown postfix.postfix /var/spool/MailScanner/spamassassin #mkdir /var/spool/mqueue #chown postfix.postfix /var/spool/mqueue b. Cấu hình ClamAV: Ta sẽ cái đặt ClamAV từ gói install-Clam-0.91.2-SA-3.2.3.tar.gz download tại địa chỉ www.mailscanner.info. Bước 1: Giải nén và cài đặt. #tar xzvf install-Clam-0.91.2-SA-3.2.3.tar.gz #cd install-Clam-0.91.2-SA-3.2.3 Tạo một user tên là clamav #useradd clamav Sau đó là tiến hành cài đặt. #cd perl-tar #tar xzvf clamav-0.91.2.tar.gz #cd clamav-0.91.2 #./configure disable-zlib-vcheck #make #make install NTTULIB Bước 2: Cấu hình MailScanner để sử dụng ClamAV để quét mail. #vi /etc/MailScanner/MailScanner.conf Virus Scanning = yes Virus Scanners = clamav Use SpamAssassin = yes Notify Senders = yes (có gửi mail thông báo cho người gửi nếu phát hiện mail có virus hay ko.) Bước 3: Cấu hình để có thể update được clamav. Tạo thư mục chứa log cho clamav 41
  51. NTTULIB #mkdir /var/log/clamav #chown clamav.clamav /var/log/clamav #vi /usr/local/etc/freshclam.conf #Example UpdateLogFile /var/log/clamav/freshclam.log DatabaseOwner clamav DNSDatabaseInfo current.cvd.clamav.net DatabaseMirror db.vn.clamav.net DatabaseDirectory /usr/local/share/clamav Nếu muốn update ClamAv thì chạy lệnh sau: #freshclam Sau khi đã cấu hình hết cho ClamAV. Ta sẽ khởi động dịch vụ MailScanner, khi khởi động dịch vụ này thì tự động postfix sẽ được khởi động theo. #service MailScanner start Muốn test MailScanner ta làm theo các bước sau: Bước 1: Dùng trình mail Client soạn một mail có nội dung sau: X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS- TEST-FILE!$H+H* Bước 2: Sau khi gửi xong, ta sẽ xem file log của mail. #tail –f /var/log/maillog Ta sẽ thấy các thông báo mail có virus mà ngoài ra không có thông báo lỗi nào. Bước 3: Kiểm tra trong hộp thư của user nhận mail và user gửi mail đểu sẽ thấy một mail thông báo mail có chứa virus thì cấu hình đã thành công. 5.7. NFS (NETWORK FILE SYSTEM) File cấu hình chính củNTTULIBa dịch vụ NFS là file /etc/exports. Các thông tin khai báo trong đây sẽ quyết định việc cấu hình cho NFS. Cấu trúc file /etc/exports gồm có: Client1 ( ) Client2 ( ) Client1, Client2: là các thông tin về máy được share cho thư mục được khai báo ở đầu. Có nhiều cách để khai báo: - Có thể là tên máy, tên máy đầy đủ bao gồm cả Domain name, hoặc IP.Vd: pqdung pqdung.Domain.org 42
  52. NTTULIB 10.1.1.1 - Địa chỉ mạng kèm với subnet mask hay số bit của subnet mask. Vd: 192.168.1.0 255.255.255.0 192.168.1.0/24 - Theo Domain. Vd: *.Domain.org *w.Domain.org ???.Domain.org Permission: quyền truy cập thư mục. Gồm có 2 quyền chính là ro (read-only) và rw (read-write). Các bước cấu hình cho NFS: - Start dịch vụ NFS lên bằng service nfs start. - Dùng câu lệnh rcpinfo –p để check lại các port của NFS xem đã hoạt động tốt chưa. - Cấu hình file /etc/exports. - Sau khi cấu hình file exports dùng câu lệnh sau để cho NFS kiểm tra lại file này và share các thư mục theo cấu hình: exportfs –ra Trên Client: Khi Client muốn truy cập thư mục được share bằng NFS, ta dùng câu lệnh sau: mount –t nfs : Trên phía Client, muốn mount tự động (giống như trên windows, các máy Client muốn map các đĩa mạng về máy) thì ta cấu hình vào trong file /etc/fstab theo cấu trúc sau: : nfs 0 0 5.8. SAMBA 5.8.1. Cấu hình SAMBA đóng vai trò như một file SERVER : Trong một hệ thống gồm các máy tính chạy cả hai dòng hệ điều hành Windows vài Unix/Linux, viNTTULIBệc chia sẽ tài nguyên như file có thể thực hiện được thông qua FTP Server , hoặc có thể dùng samba – một service dùng để share file. Sau đây, ta sẽ tiến hành cấu hình Samba như một file Server dùng để chia sẽ file giữa các Client chạy cả Windows lẫn Unix/Linux. File cấu hình chính cho Samba nằm trong thư mục /etc/samba có tên là smb.conf. Các bước thực hiện cấu hình cho samba Server như sau. Bước 1: Cấu hình Samba dựa trên file cấu hình. Để tránh sai sót và khó kiểm soát lỗi trong quá trình cấu hình, ta sẽ làm như sau: 43
  53. NTTULIB · Đầu tiên copy file cấu hình gốc của samba là smb.conf thành một file backup chẳng hạn như smb.conf-backup bằng lệnh sau: cp /etc/samba/smb.conf /etc/samba/smb.conf-backup · Kế tiếp, tạo một file sm.conf với các thông số như yêu cầu sử dụng và chép đè lên file cấu hình trong /etc/samba. cp smb.conf /etc/samba/ Tạo file cấu hình smb.conf có nội dung sau: [globals] netbios name = linux workgroup = Samba Files Server Server string = Linux-Samba Server hosts allow = 192.168.0. 12. log file = /var/log/samba/%m.log max log size = 50 security = user smb passwd file = /etc/samba/smbpasswd encrypt Passwords = yes dns proxy = no [homes] comment = Home Directories browseable = no writable = yes [printers] comment = All Printers path = /var/spool/samba browseable = no writable = no printable = yes [sharefiles] comment = sharefiles path = /samba browseable = yes writable = yes NTTULIB Giải thích: Mục [globals] là các cấu hình ảnh hưởng đến tất cả các thư mục được share thông qua Samba Server . Các options bao gồm: · Netbios name: đặt tên netbios. · Workgroup: cho biết máy này thuộc nhóm nào. · Server string: đặt chú thích vè máy chủ. · Hosts allow: danh sách các máy được phép truy cập samba Server . 44
  54. NTTULIB · Log file: nơi đặt và các tạo log file, trong đó %m sẽ được thay thế bằng netbios name của các máy log vào samba Server . · Security: mức độ chia sẽ, user tức là cần phải chứng thực để truy cập, còn share tức là chia sẽ tài nguyên cho anonymous (người dùng không cần chứng thực). · Samba passwd file: là đường dẫn đến file chứa các thông tin về username và passwd của các người dùng có thể đăng nhập truy cập samba Server . · Encrypt Passwords: cho phép mã hóa Password khi login vào samba. Mục [homes] (mục này có thể có hoặc không, các options giống như phần đề cập dưới đây). Mục [sharefiles] chứa các options cấu hình cho thư mục được share, tên sharefiles trong cặp ngoặc vuông là share name, sẽ được hiển thị và sủ dụng khi kết nối đến thư mục được share. · Comment: chú thích. · Path: là đường đẫn đến thư mục được share, ở đây là thư mục samba. · Browseable: có cho phép browse khi dùng Network Neighbor của Windows, cho phép thấy các thư mục được share (nếu là No tương đương share ẩn trên windows). · Writable: cho phép ghi hay không. Ngoài ra, ta còn có các option nhằm tăng tính bảo mật cho samba, các option này có thể áp dụng trong mục [globals] cho tất cả các thư mục được share hay chỉ áp dụng trên một thư mục nào đó, cái đó tùy thuộc vào người cấu hình. · Valid users: là danh sách các user được phép truy cập vào thư mục, nếu là khai báo một group thì dùng kí tự @ ngay trước tên group. Mỗi một tên cách nhau bằng dấu “,”. Ví dụ như ta cho phép user sambauser1 và group support truy cập vào samba, ta dùng dòng option như sau: valid user = @support,sambauser1 · Invalid users: các user không được phép truy cập vào samba. Cách này hữu dụng trong trường hợp bạn cho phép một group có thể truy cập vào samba bằng option valid users trong khi lại không muốn 1 hoặc 2 user trong group đó có thể truy cập samba. Cách cấu hình như valid users. Lưu ý, valid users và invalid users không được mâu thuẫn lẫn nhau. · Write list: các user, gNTTULIBroup được phép ghi vào thư mục thông qua samba. Để option này hoạt động chính xác, option writable của thư mục đó phải được đặt giá trị NO hoặc không cấu hình. Bước 2: Kiểm tra cấu trúc các option đã chính xác hay chưa bằng cách dùng lệnh sau: #testparm Bước 3: Nếu bước kiểm tra trên không có bất kì lỗi nào thì ta khởi động dịch vụ samba. 45
  55. NTTULIB #service smb start Để có thể truy cập được samba với security là user, nhất thiết phải có username và Password.Password ở đây không phải là Password của user để đăng nhập hệ thống Linux/Unix mà là Password để đăng nhập samba. Username và Password này sau khi mã hóa sẽ được giữ trong file /etc/samba/smbpasswd. Có hai cách để tạo user đăng nhập samba. Bước 1: Tạo group samba-user, các user sambauser1 và sambauser2 thuộc group samba-user. #groupadd samba-user #useradd –g samba-user sambauser1 #passwd sambauser1 #useradd –g samba-user sambauser2 #passwd sambauser2 Bước 2: Đặt Password đăng nhập samba cho 2 user vừa tạo #smbpasswd –a sambauser1 #smbpasswd –a sambauser2 (-a là option dùng để add user đó và Password đã được mã hóa vào file /etc/samba/smbpasswd nếu user đó chưa có trong file đó). Có một cách khác để tạo Password cho user nữa đó là dùng script mksmbpasswd.sh trong thư mục /usr/bin. Script này do samba tạo sẵn để tạo các user samba từ các user hệ thống có sẵn. Các bước thực hiện bao gồm: - Copy file /etc/passwd thành một file khác, ví dụ passwd-old. - Mở file passwd-old bằng trình vi, xóa các user bạn không muốn tạo user đăng nhập, giữ lại các user cần có. (thông tin trên các hàng vẫn giữ nguyên không thay đổi, đặc biệt chú y không nên cho các user và các group hệ thống như user root, group admin, ). - Sau đó, cd vào trong thư mục /usr/bin. Và dùng lệnh sau để tạo file smbpasswd. #cat /etc/passwd-old | ./ mksmbpasswd.sh > /etc/samba/smbpasswd - Sau khi chạy xong lệNTTULIBnh trên, ta dùng câu lệnh smbpasswd (không cần tham số -a) đối với từng user để tạo passwd samba cho user đó. Lời khuyên cho cách làm này là chỉ nên dùng cách này một lần, nghĩa là chỉ tạo user samba từ user hệ thống một lần duy nhất, các user thêm vào sau này sẽ dùng cách đầu tiên để thêm vào. Do vậy, nên chú ý lựa chọn các user cho thật kĩ trước khi add vào trong file smbpasswd. Sau khi đã tạo user xong, dĩ nhiên là gán quyền truy cập của các user đó trên thư mục được share. Các bước thực hiện như sau: Bước 1: Tạo thư mục để share, như ở trên ta khai báo là thư mục /samba #mkdir /samba 46
  56. NTTULIB Bước 2: Chuyển quyền sở hữu cho group user tạo ban đầu là samba-user #chgrp samba-user /samba Bước 3: Gán quyền truy cập cho thư mục #chmod 775 /samba Chú ý trong phần này, tao dùng 775 tức là cho group samba-user toàn quyền trên thư mục /samba, trong khi các group khác chỉ có quyền đọc và execute. Nếu ta share thư mục dưới dạng anonymous như một thư mục public cho mọi người, ai muốn làm gì thì làm trên thư mục đó thì cho quyền 777 trên thư mục và bước 2 là không cần thiết. Sở dĩ cần phải gán quyền trên thư mục là bởi vì khi share một thư mục, quyền truy cập trên thư mục đó sẽ gồm 2 quyền, quyền service và quyền trên hệ thống, giống như trên windows gồm quyền share và quyền NTFS. Do vậy, cần phải gán quyền cho thư mục được share. Giã sử, ta share thư mục cho anonymous, mọi người có quyền chép tài liệu hay xóa nếu cần, bạn cho quyền samba là writable=YES trong khi quyền hệ thống là xx5 (với x là quyền user owner và group owner bất kì) thì user ko thể chép file vào thư mục được. Cuối cùng là test xem samba Server đã hoạt động tốt chưa bằng cách đứng trên máy Client dùng lệnh sau để truy cập samba. #smbClient // /sharefiles Như ta thấy, khi dùng sharename là gì (ở đây là sharefiles) thì khi đăng nhập samba phải dùng chính tên đó. Ta cũng có thể đăng nhập bằng lệnh khác có kèm theo username #smbClient –U // /sharefiles Nếu muốn moutn thư mục được share về máy mình thì dùng câu lệnh sau: #mount –t smbfs –o username= // /sharefiles /mnt/samba Dùng câu lệnh umount để gỡ bỏ mount. 5.8.2. Cấu hình SAMNTTULIBPA như một PDC (PRIMARY DOMAIN CONTROLLER) tương đương WINDOWS NT4. Trong một hệ thống tương đối nhỏ, ta có thể dùng Samba Server như một Primary Domain Controller với chức năng chính là share file, share máy in, là những mặt mà Samba mạnh nhất. PDC xây dựng bằng Samba không có chức năng quản lí user tốt như của DC chạy bằng Windows Server , nhưng trong một hệ thống nhỏ thì samba là tốt hơn. Các yếu tố cần có để xây dựng mô hình lab dùng samba Server là PDC: · DNS phân giải được tên miền. · Một máy Client chạy bằng windows để test. 47
  57. NTTULIB Sau đây là file cấu hình mẫu của Samba đóng vai trò PDC: [global] workgroup = ntt.com realm = ntt.com netbios name = PDC Server string = Server security = user Interfaces = eth1 bind Interfaces only = Yes passdb backend = smbpasswd pam Password change = Yes passwd chat = *New*Password* %n\n *Re-enter*new*Password* %n\n *Password*changed* username map = /etc/samba/smbusers unix Password sync = Yes log level = 1 syslog = 0 log file = /var/log/samba/%m max log size = 50 smb ports = 139 445 name resolve order = wins bcast hosts time Server = Yes printcap name = CUPS show add printer wizard = No add user script = /usr/sbin/useradd -m %u delete user script = /usr/sbin/userdel -r %u add group script = /usr/sbin/groupadd %g delete group script = /usr/sbin/groupdel %g add user to group script = /usr/sbin/usermod -G %g %u add machine script = /usr/sbin/useradd -s /bin/false -d /dev/null %u logon script = scripts\%U.bNTTULIBat logon home = \\%L\homes\%U Domain logons = Yes local Master = Yes os level = 33 preferred Master = Yes Domain Master = Yes wins support = Yes utmp = Yes map acl inherit = Yes 48
  58. NTTULIB printing = cups veto oplock files = /*.doc/*.xls/*.mdb/ [IPC$] path = /tmp hosts allow = 192.168.0, 127.0.0.1 [homes] comment = Home Directories browseable = no writeable = yes only user = yes [printers] comment = SMB Print Spool path = /var/spool/samba guest ok = Yes printable = Yes use Client driver = Yes default devmode = Yes browseable = No # Tao Folder /var/lib/samba/netlogon/scripts [netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon guest ok = Yes locking = No # Tao Folder /public voi quyen 1777. NTTULIB [public] comment = Default share for group public writeable = yes path = /public [home] comment = Default share for group public writeable = yes path = /home 49
  59. NTTULIB # Tao Folder /ketoan voi quyen 1770. #[ketoan] # comment = ketoan Dept Data # valid users = @ketoan,@root # writeable = yes # path = /ketoan Một số các options cần lưu ý: · workgroup và realm: cần khai báo đúng tên Domain để việc join được thành công. · netbios name: là tên netbios của máy samba, đóng vai trò là PDC. · Interfaces và bind Interfaces only: Interfaces dùng để khai báo card mạng nào được dùng để lắng nghe các yêu cầu về samba. bind Interfaces only chỉ nhận những broadcast bắt nguồn từ mạng được chỉ ra trong Interfaces và từ chối các broadcast khác. · username map: trong hệ thống của windows Server , username có thể dài tối đa là 255 kí tự, nhưng trong Unix/Linux, username chỉ có thể dài không quá 8 kí tự, file này sẽ là một ánh xạ từ username trên Windows thành một username ngắn hơn trên Unix/Linux với chiều dài là 8 kí tự hoặc ngắn hơn. File này là một file text, có đường dẫn như khai báo trong file cấu hình. · name resolve order: thứ tự mà hệ thống sẽ thử dùng khi phân giải tên (wins – WINS Server , bcast – phương pháp dùng broadcast, hosts – dựa vào file /etc/hosts trên hệ thống). · logon script: là script sẽ được chạy khi user logon vào hệ thống. · logon home: giống như chức năng roaming profile của Windows Server , là nơi chứa các profile riêng của user. · [IPC$]: share mặc định, được dùng khi remote bằng quyền admin. · [homes] định nghĩa thư mục chủ của user. · [netlogon]: là nơi chứa những file scripts sẽ được chạy khi user logon. · [public]: là thư mục được share cho mọi người. Phân quyền là 1777, tức là mọi người có quyền chép, xóa, chỉnh sửa các file do mình tạo ra (dùng sticky bit). · [home]: là nơi chứa profiles của user. · Nếu chỉ phân quyền cNTTULIBho một nhóm nào đó, thì tốt nhất nên chuyển quyền sở hữu của share folder cho nhóm đó, sau đó gán quyền truy cập là 1770 như trường hợp của [ketoan]. · Thư mục /var/lib/samba/netlogon/scripts là nơi chứa các file scripts sẽ được chạy khi user logon, mỗi file sẽ mang tên của user tương ứng với đuôi .bat. · File script thường dùng với mục đích map ổ đĩa mạng về cho user, với câu lệnh là : net use : \\ \ 50
  60. NTTULIB Sau khi cấu hình xong, tạo các user cho samba như ở phần 1 và join vào Domain. Sau khi logon vào bằng username trong Domain của samba, sẽ thấy ổ đĩa mạng đã được map về, mặc định là đã có sẵn thư mục homes. 5.8.3. Cấu hình SAMPA sử dụng SWAT: Ngoài cách cấu hình Samba bằng cấu hình trực tiếp trên file, ta còn có một tiện ích giúp cho việc cấu hình dễ dàng hơn với giao diện GUI trên web, đó là samba-swat. Sau đây là cách cấu hình samba-swat cho phép cấu hình Samba bằng giao diện web. Bước 1: Cài đặt gói samba-swat Bước 2: File cấu hình chính của samba-swat là /etc/xinetd.d/swat. Dùng trình soạn thảo bất kì và sửa các thông số như sau: service swat { port = 901 socket_type = stream protocol = tcp wait = no user = root Server = /usr/sbin/swat log_on_failure += USERID disable = no only_from = 127.0.0.1 } Trong đó, ta chú ý nhất 2 option là disable và only_from. Khi muốn sử dụng tiện ích SWAT thì nhất thiết option disable phải mang giá trị no. Còn option only_from là giới hạn IP nào được phép truy cập giao diện web của SWAT. Ở đây mặc định là 127.0.0.1 tức là chỉ có đứng tại Server ta mới có thể dùng giao diện web của SWAT được. Nếu muốn thêm IP nào ta thêm vào cùng một hàng, mỗi IP cách nhau bằng khoảng trắngNTTULIB. Bước 3: Khởi động SWAT #/etc/init.d/xinetd start Hoặc #service xinetd start 51
  61. NTTULIB Bước 4: Test bằng cách đứng trên Server, dùng trình duyệt truy cập đến link Chú ý: · SWAT chạy trên port 901, và hầu hết các Firewall không cho phép các ứng dụng trên port này đi qua, do vậy muốn sử dụng SWAT từ một máy khác ngoài mạng ta phải thêm các Rule trên Firewall cho phép SWAT đi qua. · Do khi cấu hình bằng SWAT, khi submit các cấu hình sau khi đã chỉnh sửa, SWAT sẽ tạo ra một file cấu hình mới đè lên file cấu hình cũ, đồng thời xóa tất cả các comment chỉ chừa lại các option. Do vậy, để đảm bảo, ta nên backup trước một bản file smb.conf để phòng trường hợp cấu hình lỗi. 5.8.4. Mã hóa truy cập SWAT bằng SSL: Có một điều duy nhất bất cập ở đây là khi dùng tiện ích SWAT thì có một lỗ hổng về mặt bảo mật, đó là khi bạn truy xuất thì SWAT sẽ hỏi bạn username và Password quản trị SWAT, trong trường hợp này là root và các thông tin này được truyền đi không mã hóa do đây là giao thức HTTP. Do vậy, để tăng tính bảo mật của SWAT, ta sẽ sử dụng giao thức SSL cho quá trình truy cập SWAT. Bước 1: Tạo một user là stunnel. #useradd stunnel Bước 2: Tạo khóa chứng thực mã hóa ( encryption ky certificate) bằng hàm make. Dùng tất cả các mặc định, chỉ cần chắc chắn rằng dùng đúng IP của Server trong mục Comme Name. (giả sử Server có IP là 192.168.10.200) #cd /usr/share/ssl/certs #make stunnel.pem Common Name (eg, your name or your Server ’s hostname) [ ]: 192.168.0.200 NTTULIB Bước 3: Cấp quyền cho khóa chứng thực vừa tạo ra, chỉ cho phép root và user stunnel đọc mà thôi. #chmod 640 stunnel.pem #chgrp stunnel stunnel.pem Bước 4: Tạo file cấu hình /etc/stunnel/stunnel.conf 52
  62. NTTULIB Dùng trình soạn thảo và tạo file /etc/stunnel/stunnel.conf có nội dung như sau để nhận các truy cập SSL trên port 901 và giải mã các thông điệp trên port 902: # Configure stunnel to run as user "stunnel" placing temporary # files in the /home/stunnel/ directory chroot = /home/stunnel/ pid = /stunnel.pid setuid = stunnel setgid = stunnel # Log all stunnel messages to /var/log/messages debug = 7 output = /var/log/messages # Define where the SSL certificates can be found. Client = no cert = /usr/share/ssl/certs/stunnel.pem key = /usr/share/ssl/certs/stunnel.pem # Accept SSL connections on port 901 and funnel it to # port 902 for swat. [swat] accept = 901 connect = 902 Bước 5: Tạo file mới trong /etc/xinetd.d để bảo mật SWAT. Vào thư mục /etc/xinetd.d, sao file swat ra thành một bản mới đặt tên là swat-stunnel. Cấu hình file swat-stunnel lắng nghe trên port 902 và chỉ chấp nhật kết nối từ localhost. #cd /etc/xinetd.d NTTULIB #cp swat swat-stunnel Chỉnh sửa lại file swat-stunnel: service swat-stunnel { port = 902 socket_type = stream wait = no 53
  63. NTTULIB only_from = 127.0.0.1 user = root Server = /usr/sbin/swat log_on_failure += USERID disable = no bind = 127.0.0.1 } Bước 6: Chỉnh sửa file /etc/services Dịch vụ chạy nền xinetd sẽ tìm kiếm trong file /etc/services để tìm port và tên của từng dịch vụ trong thư mục /etc/xinetd.d. Nếu không tìm thấy dịch vụ, nó sẽ tự động bỏ qua cấu hình của dịch vụ đó. Do vậy, để cho dịch vụ swat-stunnel có thể khởi động, ta phải thêm vào trong file /etc/services hàng sau: swat-stunnel 902/tcp # Samba Web Administration Tool (Stunnel) Bước 7: Kích hoạt swat-stunnel Có thể kích hoạt dịch vụ mới swat-stunnel bằng hàm chkconfig nhưng trước tiên phải dừng dịch vụ SWAT lại trước. #chkconfig swat off #chkconfig swat on Khởi động stunnel cho quá trình mã hóa: #stunnel Bước 8: Kiểm tra SWAT Bây giờ, nếu quá trình cấu hình đúng thì swat sẽ lắng nghe trên 2 port là 901 và 902 trong hàng netstaNTTULIBt –an. Server sẽ nhận các kết nối từ xa chỉ trên port 901 mà thôi. #netstat –an tcp 0 0 0.0.0.0:901 0.0.0.0:* LISTEN tcp 0 0 127.0.0.:902 0.0.0.0:* LISTEN 54
  64. NTTULIB Sau đó, dùng trình duyệt, dùng link sau để truy cập đến Samba Server : -IP-address:901/ Trình duyệt sẽ thông báo về việc tạo certificate, nhập username và Password. Sau khi nhập xong các thông tin, quá trình đăng nhập sẽ mất khoảng từ 60 đến 75 giây. Nếu không có trục trặc gì xảy ra thì quá trình cấu hình đã xong. 5.9. SQUID PROXY 5.9.1. Cấu hình cơ bản SQUID PROXY Bước 1: Vào file cấu hình của squid và sửa các thông số như sau: http_port 3128 icp_port 3130 hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY cache_mem 60 MB maximum_object_size 2048 KB ipcache_size 1024 ipcache_low 90 ipcache_high 95 fqdncache_size 1024 cache_dir diskd /var/spool/squid 5000 16 256 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squiNTTULIBd/store.log mime_table /etc/squid/mime.conf pid_filename /var/run/squid.pid debug_options ALL,1 diskd_program /usr/lib/squid/diskd unlinkd_program /usr/lib/squid/unlinkd request_header_max_size 30 KB request_body_max_size 1024 KB refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 55
  65. NTTULIB quick_abort_min 16 KB quick_abort_max 16 KB quick_abort_pct 95 negative_ttl 3 minutes negative_dns_ttl 5 minutes request_timeout 1 minutes acl allowip src "/etc/squid/allowip.txt" http_access allow allowip acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 acl Safe_ports port 80 acl Safe_ports port 81 acl Safe_ports port 21 acl Safe_ports port 443 563 acl Safe_ports port 70 acl Safe_ports port 210 acl Safe_ports port 3000 acl Safe_ports port 1025-65535 acl Safe_ports port 280 acl Safe_ports port 488 acl Safe_ports port 591 acl Safe_ports port 777 acl CONNECT method CONNECT http_access allow manager localhost http_access deny manger http_access deny !Safe_ports http_access deny CONNECTNTTULIB !SSL_ports http_access allow localhost http_access deny all icp_access allow all cache_mgr webMaster httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on snmp_port 3401 coredump_dir /var/spool/squid 56
  66. NTTULIB ie_refresh on Các option cần chú ý: · http_port: port mà proxy sử dụng cho truy cập mạng ngoài, thường dùng là 8080. Mặc định là 3128. · cache_mem: là dung lượng mà cache dùng để buffer các dữ liệu vừa nhận được. · maximum_object_size: dung lượng lớn nhất của một object được cache về. · cache_dir [scheme] [directory] size L1 L2: định nghĩa các lưu trữ trên đĩa của cache. scheme là định dạng lưu trữ của cache, mặc định là ufs, ở đây ta sử dụng diskd (ngoài ra còn 2 loại nữa là cross và null). Directory là thư mục chứa cache. Size là dung lượng cache trên đĩa cứng. cache được lưu trữ dưới dạng cây, trong đó, nên dưới thư mục chính sẽ được chia thành L1 thư mục con, và dưới mỗi thư mục con, lại sẽ chia thành L2 thư mục con nữa. Bên dưới các thư mục con đó là các file cache. · acl [access list name] [type] value1 value2 : là các access list dùng để hạn chế các truy cập thông qua proxy. type là loại của access list như src (source), dst (destination), port, . value là giá trị được dùng để đưa ra định nghịa, một IP, một file, hay một port, · http_access [allow | deny] value1 value2 : là qui định hạn chế truy cập dựa trên các access list đã xây dựng. value là tên các access list. Có thể kiểm tra các sửa đổi trong file cấu hình bằng lệnh sau: #grep –v –E “#” /etc/squid/squid.conf > text.txt Lệnh này sẽ lọc và lấy ra các hành không phải là comment (không có dấu “#” đứng trước). Bước 2: Tạo file /etc/squid/allowip.txt chứa các IP được cho phép truy cập ra ngoài mạng #vi /etc/squid/allowip.txt 192.168.0.20 NTTULIB Bước 3: Tạo cache cho squid #squid –z Bước này cần chú ý, nếu trong quá trình tạo cache bị lỗi, có thể là do phân quyền trên thư mục /var/spool/squid. Có thể giải quyết bằng cách phân quyền lại như sau: #chown squid:squid /var/spool/squid #chmod 770 /var/spool/squid 57
  67. NTTULIB Bước 4: Chạy dịch vụ squid #service squid start Nếu muốn squid khởi động khi startup thì dùng #chkconfig squid on Bước 5: Test từ máy Client, trỏ proxy của trình duyệt vào proxy Server với port là 3128, sau đó truy cập thử một trang web bất kì. Nếu vào được trang web thì cấu hình đã xong. 5.9.2. Cấu hình SQUID với ACL (ACCESS LIST) Chú ý: Các access list được thực hiện theo thứ tự từ trên xuống dưới, khi gặp access list phù hợp thì access list đó sẽ được áp dụng và bỏ qua các access list đứng sau nó. Thông thường, các access list deny đứng trước, tiếp theo là các access list allow. a. Trường hợp 1: cấm truy cập một số website dựa trên IP. Bước 1: Thêm vào acl như sau: acl ipoutside dst “/etc/squid/ipoutside.txt” http_access deny ipoutside Bước 2: Tạo file ipoutside.txt chứa IP của các website cấm truy cập. #vi /etc/squid/ipoutside.txt 210.245.0.21 #VNExpress 210.245.0.22 #VNExpress Lưu ý: Muốn biết IP của một website muốn cấm, ta dùng nslookup đến website đó. Bước 3: Khởi động lại squid #service squid restart Bước 4: Test thử máy Client, từ máy Client truy cập vào trang web đã bị cấm, nếu thấy thông báo của squid proNTTULIBxy là Access Denied và các truy cập đến các trang khác bình thường là đúng. Có thể thực hiện một cách khác là chỉ cấm trang web đối với một số IP nhất định bằng cách sửa lại bước 1 như sau (cho local truy cập nhưng không cho các IP khác truy cập): acl iplocal src “/etc/squid/iplocal.txt” acl ipoutside dst “/etc/squid/ipoutside.txt” http_access deny ipoutside !iplocal http_access allow iplocal 58
  68. NTTULIB Câu http_access deny ipoutside !iplocal nghĩa là cấm mọi truy cập đến ipoutside từ các IP ngoài iplocal. Câu http_access allow iplocal là cho phép iplocal. Sau đó là tạo file /etc/squid/iplocal.txt chứa IP của mạng mà bạn cho truy cập. b. Trường hợp 2: Cấm truy cập website dựa trên Domain Bước 1: tạo acl như sau: acl allowsite_Client src “/etc/squid/allowsite_Client.txt” acl allowsite dstDomain url_regex “/etc/squid/allowsite.txt” http_access deny allowsite_Client !allowsite http_access allow allowsite_Client Câu http_access deny allowsite_Client !allowsite có nghĩa là cấm các IP trong allowsite_Client.txt truy cập các Domain khác ngoài các Domain đã định nghĩa trong allowsite.txt. Câu http_access allow allowsite_Client cho phép IP có trong allowsite_Client truy cập các Domain có trong allowsite.txt. Bước 2: Tạo file /etc/squid/allowsite_Client.txt chứa các IP cho phép truy cập #vi /etc/squid/allowsite_Client.txt 192.168.0.23 Bước 3: Tạo file /etc/squid/allowsite.txt chứa các Domain được phép truy cập #vi /etc/squid/allowsite.txt .com .vn Bước 4: Khởi động lại squid #service squid restart Bước 5: Từ máy Client truy NTTULIBcập một trang web trong Domain .com hoặc .vn , nếu truy cập được thì cấu hình xong. c. Trường hợp 3: Cấm truy cập website dựa trên URL Bước 1: Thêm vào trong file cấu hình các thông số sau acl denywebsite dstdom_regex “/etc/squid/web_list.txt” http_access deny denywebsite Bước 2: Tạo file /etc/squid/web_list.txt chứa URL của các trang bị cấm truy cập #vi /etc/squid/web_list.txt yahoo.com 59
  69. NTTULIB nhacso.net Bước 3: Khởi động lại squid #service squid restart Bước 4: Test từ máy Client đến các website được liệt kê trong web_list.txt. nếu truy cập bị từ chối trong khi các truy cập khác bình thường tức là cấu hình đã xong. 5.9.3. Cấu hình SQUID PROXY để điều khiển băng thông: Ngoài chức năng theo dõi các hoạt động ra vào, truy xuất các trang web của user, squid proxy còn có khả năng giới hạn băng thông, giúp cho việc quản lí truy cập được chặt chẽ hơn. Bước 1: Thêm vào trong file cấu hình squid.conf các hàng sau: acl bw src 192.168.10.0/24 delay_pools 1 delay_class 1 2 delay_parameters 1 10000/10000 delay_access 1 allow bw delay_access 1 deny all Access list bw dùng để định nghĩa các truy cập được giới hạn băng thông. delay_parameters 1 10000/10000 là giới hạn băng thông là 10Kbps. Bước 2: Nếu bước 1 sử dụng access list định nghĩa là file thì bước này là tạo file định nghĩa các truy cập được giới hạn băng thông. Nếu bước 1 định nghĩa trực tiếp các truy cập thì bước này là khởi động lại service squid. #service squid reload Bước 3: Dùng một máy Client, trỏ proxy Server và download thử một file, theo dõi tốc độ có được giữ được dNTTULIBưới mức 10Kbps hay không. Nếu không vượt quá thì cấu hình đúng. Một số các option khác: · cache_mgr : là địa chỉ email sẽ được in ra khi squid trả thông báo lỗi về cho Client khi truy cập bị từ chối. (ví dụ như cache_mgr root@Domain.com) · cache_effective_user và cache_effective_group là user và group chịu trách nhiệm chính khi thực thi squid, thông thường, user và group là squid. 60
  70. NTTULIB · visible_hostname : hostname được in ra trong thông báo lỗi của squid trả về. (ví dụ như visible_hostname proxy.Domain.com). Tại sao cache của proxy không bao giờ bị đầy? Nguyên nhân chính là do thuật toán mà proxy sử dụng. Proxy không thật sự cache lại mọi thứ, muốn được cache lại thì thông tin đó phải có nhiều hơn một số lượng request nhất định qui định trước, nếu không, thông tin sẽ không được cache lại. Khi proxy dùng hết dung lượng của nó, nó sẽ tự tìm các nội dung được cache và ít được request và xóa đi để dùng cho các thông tin mới, chính vì vậy mà cache của proxy không bao giờ bị tràn. 5.9.4. Cấu hình SQUID REVERSE PROXY và TRANSPARENT PROXY Như đã trình bày trong mục trên, có 2 loại proxy là Forward và Reverse, tuy nhiên, hai loại này có đặc điểm là phải đến từng máy Client để cấu hình proxy mà việc này thì cực kì mất công đối với hệ thống lớn. Do vậy, transparent proxy là một giải pháp. Transparent Proxy có một phần giống như Reverse Proxy là nó giúp cho truy cập từ Client đến web Server được nhanh hơn bằng cách cache lại các nội dung tĩnh ít thay đổi (như các hình ảnh, các đề mục, logo, ) và trả về cho Client, còn các nội dung động thì đưa về cho web Server xử lí. Việc này cực kì có ích vì web Server Apache hoạt động dựa trên RAM, mỗi một request thì Apache phải tốn một phần bộ nhớ để trả lời (khoảng 4MB bộ nhớ) do vậy, rất dễ bị quá tải. Nhưng nếu kết hợp với transparent Proxy thì việc này sẽ được giải quyết, đồng thời, sẽ bỏ qua được việc đến từng máy để cấu hình proxy. Đầu tiên ta sẽ cấu hình Reverse Squis Proxy trước. Để cấu hình, ta cần các giá trị sau torng file cấu hình squid.conf: httpd_accel_host virtual httpd_accel_port 80 httpd_accel_uses_host_header on httpd_accel_with_proxy onNTTULIB httpd_accel_host virtual được sử dụng khi web Server host cho 2 tên miền trở lên. httpd_accel_port 80 là port mà web Server sử dụng để trả thông tin về cho proxy httpd_accel_with_proxy on là cho phép chức năng proxy caching giúp tăng tốc duyệt web. Bạn có thể kiểm chứng điều này bằng cách như sau: · Cấu hình cho máy của mình là proxy Server với cấu hình như trên. · Dùng trình duyệt web trên máy trỏ proxy về chính IP của mình. · Thử load một trang web nào đó, sau đó refresh trang web lại, bạn sẽ thấy thông tin được trả về hầu như tức thì, nhanh hơn lần đầu bạn vào trang web đó. 61
  71. NTTULIB httpd_accel_uses_host_header on: nếu giá trị này là off thì khi web Server trả các thông tin về cho proxy, tự proxy sẽ loại bỏ các header và trả về thông tin cho user hoàn toàn ko còn các header đó. Như bạn thấy, theo cấu hình ở trên, ta vẫn có port cho proxy là 3128 (ở đây tôi sử dụng port mặc định do trong môi trường lab, thông thường, người ta dùng port khác) và ta vẫn phải đến từng máy Client và chỉnh proxy cùng với port của nó. Nhưng nếu như, ta thay đổi port của Apache web Server là 1234 chẳng hạn, và sửa giá trị httpd_accel_port cũng là 1234, đồng thời sửa giá trị http_port của proxy Server là 80 thì lúc này, mỗi khi user truy cập web (không cần trỏ proxy) thì proxy tự động sẽ hoạt động, lấy thông tin từ web Server qua port 1234 và trả về thông tin cho Client qua port web 80, Client không hề biết sự tồn tại của proxy này. Đó chính là Transparent proxy. 5.10. SSH SERVER 5.10.1. Cài đặt SSH SERVER dùng PASSWORD: Để cấu hình SSH Server , cần phải cài đặt các gói như sau: · Openssh · Openssh-Server · Openssh-Clients Nếu dùng giao diện thì cài thêm 2 gói là openssh-askpass-gnome và openssh-askpass. Các file cấu hình của SSH gồm có ssh_config (file cấu hình cho Client) và sshd_config (file cấu hình cho Server ) trong thư mục /etc/ssh/. Sau khi cài xong, ta tiến hành cấu hình SSH Server như sau. Bước 1: Cấu hình cho Server . Mở file sshd_config bằng trình soạn thảo vi. Sửa các thông tin sau: · Port 22 (mặc định). · Protocol 2,1 (mang ý nghĩa nếu Client ssh bằng protocol 2 không thành công sẽ dùngn protocol 1). · ListenAddress (mặc định là giá trị 0.0.0.0 tức là nhận SSH trên mọi Interface có trên Server , phần port có thể bỏ qua). · PermitRootLogin yesNTTULIB (cho phép login với quyền root). · AllowUsers (cho phép các user nào được phép ssh vào Server , mỗi một user cách nhau bằng khoảng trắng). · DenyUsers (từ chối các truy cập ssh của những user được chỉ định). có thể là danh sách các user, hoặc tên Domain dùng chung với các toán tử * (tất cả) và ? (biểu diễn 1 kí tự bất kỳ) cho phép từ chối 1 Domain. Giả sử ở đây tôi cho phép các user là user01 và root connect bằng SSH vào trong Server có IP là 192.168.8.100. Các giá trị trong file sshd_config lần lượt là: 62
  72. NTTULIB Port 22 Protocol 2,1 ListenAddress 192.168.0.100 PermitRootLogin yes AllowUsers user01 root Bước 3: Tạo các user đã được khai báo trong phần AllowUsers để cho phép các Client sử dụng user đó để đăng nhập. Bước 4: Khởi động dịch vụ SSH bằng 1 trong 2 câu lệnh sau: /etc/init.d/sshd start hoặc service sshd start Bước 5: Test bằng cách đứng trên máy Client (ở đây tôi sử dụng một máy Client với địa chỉ là 192.168.8.101) bằng câu lệnh sau: ssh –l user01 192.168.0.100 NTTULIB ssh –l root 192.168.0.100 5.10.2. Cấu hình SSH SERVER sử dụng chứng thực bằng PRIVATE KEY và PUBLIC KEY. 63
  73. NTTULIB Một điều bất cập và rủi ro là khi ta SSH đến một Server tại một máy nào đó từ dịch vụ hoặc một máy có tính rủi ro cao thì việc đánh Password root hay user quản trị là không thể chấp nhận được. Do vậy, SSH Server hỗ trợ một cách chứng thực bảo mật hơn đó chính là chứng thực bằng private và public key. Chỉ những người có private key mới có thể SSH vào được Server . Phần cấu hình sau sẽ nói rõ hơn về vấn đề này. Bước 1: Đứng trên Server , tạo một cặp khóa private và public key. Đầu tiên ta dùng câu lệnh sau để sinh khóa. ssh-keygen –t dsa (-t tức là type, là loại mã khóa ta sử dụng, ở đây ta dùng dsa) Ngay sau khi enter, ta sẽ chọn nơi chứa cặp khóa khi sinh ra (mặc định là /root/.ssh/). Ta có thể giữ mặc định dòng này hoặc chọn thư mục khác bằng cách nhập đường dẫn vào. Kế tiếp, ta sẽ nhập vào một passphrase (chức nặng của passphrase sẽ được đề cập sau), sau đó retype để confirm passphrase. Lúc này, dùng lệnh ls ta có thể thấy 2 khóa được sinh ra trong thư mục /root/.ssh/ với tên là id_dsa (private key) và id_dsa.pub (public key). Bước 2: Cấu hình chính trên Server . Bước 2.1: Bước này sẽ thựcNTTULIB hiện khác nhau nếu trong trường hợp khác nhau. Trong trường hợp bạn tạo khóa trên một máy khác, thì sẽ thực hiện như sau: · Dùng lệnh sau để copy file public key đến Server (địa điểm tùy chọn đối với truy cập root và thư mục /home/ đối với truy cập user). scp –r /root/.ssh/id_dsa.pub root@192.168.0.100 :/root/.ssh/ Nếu bạn tạo key trên Server thì sẽ không cần thực hiện bước copy này mà làm luôn bước tiếp theo. Bước 2.2: Lấy nội dung của public key chép vào một file là authorized_keys đặt trong /root/.ssh/ (chú ý: nếu sử dụng một user khác tức là cho phép một user ssh 64
  74. NTTULIB dùng key đến Server thì file authorized_keys sẽ được đặt trong thư mục home của user đó, phần này sẽ được nói rõ hơn trong các bước kế). cat /root/.ssh/id_dsa.pub > /root/.ssh/authorized_keys Bước 2.3: Dùng trình soạn thảo vi mở file cấu hình SSH Server sshd_config, sửa các thông tin sau: · Mở rào (#) cho dòng AuthorrizedKeysFile .ssh/authorized_keys. Thông tin phía sau là đường dẫn tương đối (tính từ thư mục home của user truy cập) đến file authorized_keys (tên file có thể thay đổi nhưng phải khớp tên với file được tạo ra trong bước 2.2). · Sửa dòng PasswordAuthentication yes thành no. Tức là ko cho phép user SSH vào Server dùng Password mà phải dùng key. Bước 3: · Nếu key được tạo ra trên máy khác thì bạn chỉ việc đứng trên máy đó và dùng câu lệnh sau để SSH vào: ssh –i /root/.ssh/id_dsa root@192.168.0.100 Sau đó dùng passphrase được dùng khi tạo khóa để đăng nhập. · Nếu key được tạo trên Server thì phải chép private key được tạo ra xuống máy Client và dùng câu lệnh tương tự với cấu trúc tổng quát là: ssh –i @ Sau khi đăng nhập: NTTULIB Giả sử ta dùng user01 để SSH vào Server thì trong file sshd_config phải sửa là AuthorrizedKeysFile authorized_keys (với file authorized_keys chép trong /home/user01) và khi SSH ngoài passphrase thì còn cần phải có Password của user01. 5.10.3. Cách CONNECT bằng WINDOWS vào trong LINUX dùng KEY chứng thực: 65
  75. NTTULIB Trong phần này ta dùng 3 chương trình hỗ trợ là putty, pttygen và winscp. Sau đây là các bước thực hiện. Bước 1: Dùng chương trình winscp, tạo kết nối với Server và lấy về file private key is_dsa. Bước 2: · Chọn kiểu mã hóa là SSH-2 DSA. · Nhấn nút Load trên giNTTULIBao diện và mở file id_dsa vừa lấy về từ Server . Trình puttygen sẽ hỏi ta passphrase, nhập vào passphrase và nhấn OK. 66
  76. NTTULIB · Chương trình sẽ tạo ra một khóa private dùng cho chương trình putty, nhấn nút Save private key để save private key vừa tạo ra vơi định dạng là *.ppk. NTTULIB 67
  77. NTTULIB NTTULIB 68
  78. NTTULIB Bước 3: · Mở chương trình putty, nhập vào IP của Server . NTTULIB 69
  79. NTTULIB · Mở mục SSH bên trái giao diện, chọn mục Auth, chọn file private vừa tạo ra. NTTULIB 70
  80. NTTULIB · Chọn lại mục Session và chọn Open để bắt đầu kết nối. Cửa sổ kết nối sẽ hiện ra và bạn nhập user là root và passphrase để kết nối với Server . 5.11. WEB SERVER (APACHE) 5.11.1. Cấu hình APACHE WEB SERVER Bước 1: Kiểm tra gói httpd đã được cài hay chưa. Bước 2: Sửa cấu hình Apache SNTTULIBerver . Cấu hình nằm trong file /etc/httpd/conf/httpd.conf Listen 80 //port lắng nghe request từ Client trên các Interface của Server User apache Group apache StartServer s 5 MaxClients 512 //mục worker.c Server Limit 1024 //mục prefork.c Server Name www.ntt.com //tên Domain Server Admin root@ntt.com //mail của người chịu trách nhiệm quản lí Server DocumentRoot /var/www/html //thư mục gốc chứa source web 71
  81. NTTULIB Server Root /etc/httpd //thư mục chứa các file cấu hình của Apache Server ErrorLog logs/error_log//tập tin chứa log file khi web Server bị lỗi DirectoryIndex index.html index.htm index.php //các tập tin mặc định NTTULIB 72
  82. NTTULIB Bước 3: Khởi động dịch vụ web Server (httpd) /etc/init.d/httpd start Bước 4: Vào các file phân giải thuận và nghịch của DNS thêm vào record của www (nếu chưa có) sau đó dùng trình duyệt mở địa chỉ xem coi nếu ra được trang mặc định của Apache Server thì ok. Hoặc viết một trang html đơn giản và bỏ vào trong thư mục DocumentRoot sau đó chạy thử, nếu ra trang vừa viết là ok. 5.11.2. Cấu hình VIRTUAL HOST: Virtual host cho phép host nhiều Domain trên cùng một web Server . Có 2 loại virtual host là “IP-based” (mỗi IP một website) và “name-based” (nhiều website trên một IP). Sau đây là cách cấu hình virtual host IP-based. Bước 1: Sửa file cấu hình Apache Server . Mỡ khóa (#) cho dòng sau: NameVirtualhost *:80 Bước 2: Thêm vào đoạn sau để cấu hình virtual host cho Domain webtest.com Server Admin webMaster@webtest.com DocumentRoot /var/www/html/webtest.com Server Name webtest.com Server Alias www.webtest.com ErrorLog logs/webtest.com-error_log CustomLog logs/webtest.com-access_log common Đồng thời thêm một đoạn Virtual Host cho Domain home.com Server Admin webMaster@home.com DocumentRoot /var/www/html Server Name home.com Server Alias www.home.com ErrorLog logs/error_log CustomLog logs/access_log common NTTULIB *:80 ở đây tức là ta chấp nhận mõi địa chỉ IP. Cần chú ý là trong khi cấu hình Virtual Host cho Domain webtest.com, ta phải tạo thư mục webtest.com trong /var/www/html như đã khai báo, nếu không khi khởi động lại dịch vụ sẽ bị lỗi. Bước 3: Thêm một Zone trong file cấu hình DNS cùng với file phân giải thuận ntt.com.Zone. Trong file named.conf thêm vào: Zone "webtest.com" { type Master; 73
  83. NTTULIB file "webtest.com.Zone"; allow-transfer {mynet;}; allow-query {mynet;}; allow-update {mynet;}; }; Và tạo một file phân giải thuận có nội dung: $TTL 86400 @ IN SOA @ root. ntt.com. ( 3;Serial 28800;refresh 7200;retry 64800;expire 86400;ttl ) @ IN NS dns. ntt.com. @ IN MX 10 pop. ntt.com. @ IN MX 100 smtp. ntt.com. $ORIGIN ntt.com. dns IN A 192.168.0.100 pop IN A 192.168.0.100 smtp IN A 192.168.0.100 pop3 IN CNAME pop. ntt.com. www IN A 192.168.0.100 Bước 4: Khởi động lại dịch vụ DNS và Apache /etc/init.d/named restart /etc/init.d/httpd restart Bước 5: Tạo một file html trong thư mục webtest.com và chạy thử trên trình duyệt web, so sánh với file html tạo ra cho Domain ntt.com. Nếu 2 cái khác nhau và đúng theo các file html đã tạo tương ứng thì cấu hình thành công. 5.11.3. Cấu hình VIRTUAL DOMAINS cho WEBMAIL Bước 1: Cài đặt gói squirrelmailNTTULIB. Bước 2: Sửa file cầu hình httpd.conf, thêm vào đoạn sau: Server Admin webMaster@webmail. ntt.com DocumentRoot /usr/share/squirrelmail Server Name webmail. ntt.com ErrorLog logs/webmail. ntt com-error_log CustomLog logs/webmail. ntt.com-access_log common 74
  84. NTTULIB Bước 3: Thêm vào record webmail trong file phân giải thuận và ngược của Domain home.com Bước 4: Khởi động lại dịch vụ DNS và Apache /etc/init.d/named restart /etc/init.d/httpd restart Bước 5: Dùng trình duyệt, mở địa chỉ ntt.com, nếu thấy hiện ra trang đăng nhập của squirrelmail tức là đã cấu hình đúng. 5.11.4. Cấu hình HOST DENY và HOST ALLOW: Giới hạn quyền truy cập đối với webmail, ta dùng các chức năng host deny và host allow trong file cầu hình squirrelmail là /etc/httpd/conf.d/squirrelmail.conf Bước 1: Mở file /etc/httpd/conf.d/squirrelmail.conf Trong file đã có sẵn một dòng là Alias /webmail /usr/share/squirrelmail Tức là tkhi truy cập webmail, người dùng chỉ cần gõ webmail. ntt.com/webmail, thay vì dùng cả một đoạn dài đường dẫn. Tuy nhiên, ở đây ta sử dụng kết hợp với DNS, do vậy không cần phải gõ thêm /webmail mà đơn giản chỉ là ntt.com sẽ được đưa thẳng đến trang đăng nhập của Squirrelmail. Thêm vào đoạn sau để hạn chết truy cập. Order deny,allow Deny from all Allow from 127.0.0.1 192.168.0.5 Allow from ::1 Order deny,allow: trình squirrelmail sẽ hiểu ngược tức là sẽ ưu tiên allow trước (bao gồm localhost và máy 192.168.8.5) và deny các truy cập sau. Deny from all: từ chối mọi truy cập. Allow from 127.0.0.1 192.168.0.5: cho phép localhost và mạng trong truy cập. (có thể cho phép truy cập bằng lớp mạng ví dụ như Allow from 192.168.0.24 là cho nguyên lớp mạng 192.168.0.24 truy cập) NTTULIB Bước 2: Khởi động lại httpd /etc/init.d/httpd restart Bước 3: Dùng máy Pc1 đánh IP là 192.168.0.5 truy cập mail, Pc2 là 192.168.0.6 truy cập mail, nếu Pc1 vào được mà Pc2 bị từ chối là cấu hình thành công. Chú ý: · Khi khai báo các DocumentRoot và nơi chứa log file nên chắc chắn rằng thư mục khai báo đó đã tồn tại, nếu chưa tồn tại thì khi khởi động dịch vụ httpd sẽ báo lỗi. 75
  85. NTTULIB · Cần chú ý các record và Zone trong quá trình cấu hình Virtual Host và Virtual Domain. · Nếu khi khởi động dịch vụ httpd bị FAIL nhưng ko có bất cứ thông báo nào thì nên xem trong file /var/log/httpd/error_log để xem các thông báo lỗi. · Có thể dùng câu lệnh service httpd configtest để kiểm tra các cấu hình httpd đã hoàn chỉnh chưa, nếu có thông báo Syntax OK tức là đã cấu hình đúng. 5.11.5. Tạo FAVICON cho WEB SERVER : Đối với một số các trang web, ta thấy rằng khi load trang web lên thì đồng thời trên thanh Address có một icon hiện lên ngay đầu dòng, đó chính là favicon. Hầu hết các web Server hiện nay đều hỗ trợ favicon. Sau đây là cách để tạo một favicon. Bước 1: Cài đặt các gói cần thiết. Hai gói cần thiết ở đây là: · netpbm · netpbm-progs Bước 2: Tạo file script tạo ra icon với các kích thước chuẩn 16x16, 32x32, 48x48 từ file ảnh với bất kì kích thước nào. Các file cảnh cần phải thuộc một trong các định dạng sau: PAM, PNM, PPM, PGM và PBM; các loại file ảnh khác cần phải được convert về các định dạng này trước khi được sử dụng để tạo favicon. #vi /bin/makefavicon #!/bin/sh if [ -z $1 ] ; then echo -e "\\nUsage: \"makefavicon \"\\n" echo -e "Suitable file types are: PAM, PNM, PPM, PGM, or PBM.\\n" exit fi rm -f favicon.ico pamscale -linear -xsiNTTULIBze=48 -ysize=48 $1 > tmp_logo48.ppm pamscale -linear -xsize=32 -ysize=32 $1 > tmp_logo32.ppm pamscale -linear -xsize=16 -ysize=16 $1 > tmp_logo16.ppm pnmquant 256 tmp_logo48.ppm > tmp_logo48x48.ppm pnmquant 256 tmp_logo32.ppm > tmp_logo32x32.ppm pnmquant 256 tmp_logo16.ppm > tmp_logo16x16.ppm ppmtowinicon tmp_logo16x16.ppm tmp_logo32x32.ppm tmp_logo48x48.ppm -output favicon.ico 76
  86. NTTULIB rm -f tmp_logo*.ppm Sau khi tạo xong file script, ta cấp cho nó quyền thực thi: #chmod +x /bin/makefavicon Tạo favicon từ file ảnh PPM: #makefavicon image_file.ppm Hoặc tạo file ảnh từ dạng file PNG, ta làm 2 bước sau: · Tạo file định PNM từ file PNG: #pngtopnm –mix pic_file.png > file_to_convert.pnm · Tạo favicon từ file PNM mới tạo. #makefavicon file_to_convert.pnm Bước 3: Sau khi xong bước 2, ngay tại thư mục chứa file pnm sẽ xuất hiện một file icon tên là favicon.ico, ta copy file này vào DocumentRoot của website. #cp favicon.ico /var/www/html Lúc này, chỉ cần trang web được load lên thì lập tức favicon cũng được load theo và nằm trên thanh address. Chương 6. CÁC DỊCH VỤ MẠNG(TRÊN WINDOWS) 6.1. DNS: 6.1.1. Giới Thiệu: DNS(Domain name system):dùng để tổ chức các nhóm máy tính theo vùng(Domain) có cấu trúc phân cấp,được hạn định trên cơ sỡ Internet đối với mạng công hay trên cơ sở mạng của công ty đối với mạng riêng. Các cấp khác nhau đại diện cho từng máy tính, từng vùng thuộc tổ chức, và vùng cấp cao nhất. Mỗi máy tính trong mạng muốn liên lạc hay trao đổi thông tin, dữ liệu cho nhau cần phải biết rõ địa chỉ IP của nhau. Nếu số lượng máy tính nhiều thì việc nhớ những địa chỉ IP này rất là khó khăn.Mỗi máy tính ngoài địa chỉ IP ra còn có một tên (hostname). Đối với con người việc nhớ tên máy dù sao cũng dễ dàng hơn vì chúng có tính trực quan và gợi nhớ hơn địa chỉ IP. - Dùng để phân giải têNTTULIBn miền thành địa chỉ ip và ngược lại. 6.1.2. Hoạt Động: - DNS Client gửi tên miền phân giải > DNS sever theo địa chỉ cấu hình TCP/Ip properties (hay DHCP cấp ). - Nếu DNS sever phân giải được thì nó gửi địa chỉ Ip của máy có tên miền cần phân giải. - Nếu không phân giải được thì nó sẽ gửi tên miền tới DNS sever của miền cao nhất. - DNS sever ở các miền phân giải nếu phân giải được thì gửi về địa chỉ IP, ngược lại gửi tín hiệu yêu cầu phân giải ở miền thấp hơn 77