ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG CAO ĐẲNG KINH TẾ - KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH  

GIÁO TRÌNH MÔN HỌC: XÂY DỰNG HỆ THỐNG MẠNG NGUỒN MỞ NGHỀ: CÔNG NGHỆ THÔNG TIN TRÌNH ĐỘ: CAO ĐẲNG

LƯU HÀNH NỘI BỘ

Tháng 12, năm 2017

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG CAO ĐẲNG KINH TẾ - KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH  

GIÁO TRÌNH MÔN HỌC: XÂY DỰNG HỆ THỐNG MẠNG NGUỒN MỞ NGHỀ: CÔNG NGHỆ THÔNG TIN TRÌNH ĐỘ: CAO ĐẲNG

THÔNG TIN NGƯỜI BIÊN SOẠN Chủ biên: DƯƠNG ĐÌNH DŨNG Học vị: Thạc sĩ Đơn vị: Khoa Công nghệ thông tin Email: [email protected]

TRƯỞNG KHOA TỔ TRƯỞNG CHỦ NHIỆM BỘ MÔN ĐỀ TÀI

HIỆU TRƯỞNG DUYỆT

Tháng 12, năm 2017

TUYÊN BỐ BẢN QUYỀN

Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể được phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.

Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm.

1

LỜI NÓI ĐẦU

Giáo trình này được biên soạn dựa trên chương trình chi tiết môn học bậc cao đẳng chuyên ngành quản trị mạng máy tính của Trường Cao đẳng Kinh tế - Kỹ thuật Thành Phố Hồ Chí Minh. Tài liệu được biên soạn nhằm cung cấp kiến thức nền tảng, giúp sinh viên nắm vững và vận dụng các kỹ thuật phổ biến với các dịch vụ mạng trong quá trình xây dựng hệ thống mạng trên hệ điều hành nguồn mở (Centos, Ubuntu). Từ đó, sinh viên có thể vận dụng vào công việc sau này.. Trong tài liệu này tác giả sử dụng phương pháp logic trình tự cho từng dịch vụ từ khái niệm, phân tích mô hình mạng, mô phỏng và bài tập áp dụng cho các dịch vụ được trình bày. Qua đó, giúp sinh viên nắm bắt kiến thức và kỹ năng thực hành cơ bản để vận dụng trong thực tiễn. Trong quá trình biên soạn chắc chắn giáo trình sẽ còn nhiều thiếu sót và hạn chế. Rất mong nhận được sự đóng góp ý kiến quý báu của sinh viên và các bạn đọc để giáo trình ngày một hoàn thiện hơn.

TP. HCM, ngày……tháng 12 năm 2017 Tham gia biên soạn: 1. Chủ biên: Th.s Dương Đình Dũng

2

MỤC LỤC

TUYÊN BỐ BẢN QUYỀN 1

LỜI NÓI ĐẦU 2

MỤC LỤC 3

Chương 1. Xây dựng mô hình mạng 8

1.1 Giới thiệu mô hình domain trên ...... 9

1.2 Triển khai hệ thống domain trên linux với samba 4.0 ...... 9

1.3 Nâng cấp Active Directory Domain Controller ...... 11

1.4 Xây dựng additional Domain Controller ...... 14

1.5 Join domain các máy client ...... 18

1.5.1 Đối với Windows (7/8/10/2008/2012/2016) ...... 18

1.5.2 Linux/Unix client (Ubuntu) ...... 19

1.6 Quản trị domain ...... 20

1.6.1 Quản lý user ...... 20

1.6.2 Quản lý group ...... 21

1.6.3 Home folder & User profile ...... 22

1.6.4 OU – Delegate ...... 23

1.6.5 Quản lý policy (Group Policies Management) ...... 23

1.7 Share permission trên samba ...... 26

1.7.1 Quyền thư mục/thư mục ...... 27

1.7.2 Ký hiệu số ...... 27

1.8 Câu hỏi và Bài tập cuối chương ...... 28

1.8.1 Câu hỏi lý thuyết ...... 28

1.8.2 Thực hành ...... 28

Chương 2. Triển khai hạ tầng mạng 30

2.1 Xây dựng máy chủ phân giải tên miền ...... 31

2.1.1 DNS đơn ...... 31

2.1.2 Multi DNS ...... 35

2.2 Tạo bộ định tuyến động ...... 39

3

2.2.1 Khái niệm và định tuyến tĩnh ...... 39

2.2.2 Phương pháp định tuyến động trên Linux ...... 43

2.3 Cấp phát IP động ...... 50

2.3.1 Single Subnet ...... 50

2.3.2 Multi Subnet ...... 57

2.3.3 IP reservation ...... 60

2.3.4 DHCP relay Agent ...... 61

2.4 Bài tập áp dụng chương 2 ...... 65

2.4.1 Câu hỏi lý thuyết ...... 65

2.4.2 Bài tập thực hành ...... 66

Chương 3. Web-Mail-FTP 68

3.1 Dịch vụ mail ...... 69

3.1.1 Cài đặt và cấu hình Mail server Zimbra ...... 69

3.1.2 Anti spam, anti virus ...... 76

3.1.3 Tích hợp Zimbra vào Active Directory ...... 77

3.2 Dịch vụ Web ...... 83

3.2.1 Cài đặt và cấu hình apache ...... 83

3.2.2 Cấu hình nhiều alias ...... 87

3.2.3 Cấu hình máy chủ hosting ...... 87

3.2.4 Cấu hình chứng thực web ...... 88

3.3 Dịch vụ FTP Server ...... 91

3.3.1 Cài đặt và cấu hình dịch vụ ftp ...... 91

3.3.2 Cấu hình user truy xuất nhiều thư mục ...... 95

3.3.3 Kiểm tra hoạt động ftp server và upload nội dung ...... 97

3.3.4 Bảo mật ftp ...... 98

3.3.5 Chú ý khi sử dụng ftp ...... 99

3.4 Bài tập chương 3 ...... 99

3.4.1 Câu hỏi lý thuyết ...... 99

3.4.2 Bài tập thực hành ...... 100

4

Chương 4. Bảo mật và chia sẻ kết nối 101

4.1 Cài và cấu hình PFSense ...... 102

4.1.1 Cài đặt PFSense lên máy chủ tường lửa ...... 102

4.1.2 Tạo bô lọc nội dung trên tường lửa (Web proxy) ...... 108

4.1.3 Chống tấn công mạng bằng tường lửa PFSense ...... 112

4.2 Proxy: chia sẻ mạng ...... 121

4.2.1 Cài đặt ...... 121

4.2.2 Cấu hình chia sẻ internet trên mạng đơn ...... 122

4.2.3 Cấu hình chia sẻ nhiều nhánh mạng và tạo bộ luật kiểm soát truy cập 126

4.3 Xuất bản dịch vụ nội bộ ra ngoài mạng ...... 130

4.3.1 Cài đặt và cấu hình ...... 130

4.3.2 Xây dựng các luật (ACL) ...... 132

4.3.3 NAT IN bằng iptables: chia sẻ dịch vụ web, mail, ftp ...... 136

4.4 Cấu hình VPN trên linux ...... 138

4.5 Bài tập cuối chương 4 ...... 139

4.5.1 Cấu hình NAT bằng iptables ...... 139

4.5.2 BÀI TẬP SQUID - APACHE...... 140

Chương 5. Mạng không đĩa cứng với máy chủ Linux (bootrom) 144

5.1 Chuẩn bị và cài đặt máy chủ bootrom ...... 145

5.1.1 Cấu hình máy tính ...... 145

5.1.2 Chọn phần mềm CMS ...... 146

5.1.3 Quy trình cài đặt phần mềm CMS ...... 147

5.2 Thiết lập các thông số trên server bootrom ...... 148

5.2.1 Cấu hình PXE ...... 148

5.2.2 Cấu hình cấp phát IP ...... 153

5.2.3 Cấu hình đĩa ảo ...... 156

5.2.4 Cấu hình user và danh mục máy client ...... 156

5.3 Cài đặt máy Client và build imange lên server ...... 157

5.3.1 Download phần mềm client ...... 157 5

5.3.2 Tạo ảnh đĩa ...... 159

5.3.3 Capture ảnh đĩa đưa lên Server ...... 161

5.3.4 Điều chỉnh chế độ protect ...... 163

5.3.5 Khởi động máy Client ...... 165

5.4 Bài tập cuối chương:...... 165

DANH MỤC HÌNH ẢNH 167

DANH MỤC BẢNG 173

DANH MỤC TỪ VIẾT TẮT 174

TÀI LIỆU THAM KHẢO 175

6

GIÁO TRÌNH MÔN HỌC Tên môn học: XÂY DỰNG HỆ THỐNG MẠNG NGUỒN MỞ . Mã môn học: MH3101123 Vị trí, tính chất của môn học:

- Vị trí: Là môn học nằm trong nhóm lựa chọn của chuyên ngành Công nghệ thông tin, được bố trí ở học kỳ 5 sau khi sinh viên học xong các môn học nhóm cơ sở và chuyên ngành. - Tính chất: Là môn học tự chọn. Mục tiêu môn học: - Về kiến thức: + Trình bày được các yêu cầu trên một hệ thống mạng dùng nguồn mở; + Liệt kê được các dịch vụ cần thiết cho một hệ thống mạng; + Mô tả được vai trò và chức năng của các dịch vụ trên hệ thống dùng nguồn mở. - Về kỹ năng: + Thiết kế đc một hệ thống chuyển đổi sang dùng nguồn mở + Chọn được phần mềm nguồn mở đúng với bảng thiết kế; + Cài đặt và cấu hình đc các dịch vụ mạng với các phần mềm đã chọn trên hệ thống nguồn mở; + Thiết kế đc hệ thống bảo mật dùng nguồn mở cho hệ thống mạng; + Chia sẻ kết nối giữa mạng bên trong và mạng ngoài dùng proxy - Về năng lực tự chủ và trách nhiệm: + Làm việc thận trọng và có trách nhiệm đối với công việc. + Có niềm đam mê, sự tự tin và tính chuyên nghiệp. + Khả năng làm việc nhóm, biết phối hợp cùng nhau giải quyết vấn đề.

7

Chương 1: Xây dựng mô hình mạng CHƯƠNG 1. XÂY DỰNG MÔ HÌNH MẠNG

➢ Giới thiệu chương: Trong chương này nhằm giúp cho sinh viên tiếp cận công nghệ xây dựng nền tảng mạng dựa trên kiến trúc Active Directory (LDAP) gồm các tính năng quản trị Cơ sở dữ liệu người dùng tập trung ➢ Mục tiêu chương:

- Trình bày được vai trò, chức năng và nguyên tắc hoạt động của dịch vụ Active Directory. - Cấu hình được máy chủ Active Directory trên Samba 4.0 - Gia nhập máy thành viên Windows, Linux vào Active Directory - Quản trị user/group/OU -

KHOA CÔNG NGHỆ THÔNG TIN Trang 8 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere 1.1 Giới thiệu mô hình domain trên linux 389-DS (389 Directory Server) là máy chủ LDAP cấp doanh nghiệp, mã nguồn mở dành cho Linux, được phát triển bởi cộng đồng Red Hat. Chương trình có đầy đủ tính năng, hỗ trợ sao chép đa chủ, và đã được sử dụng để triển khai cho nhiều máy chủ LDAP lớn nhất thế giới. Hệ thống 389 Directory Server có thể được tải miễn phí, cấu hình nhanh chóng, chỉ cỡ 1 tiếng bằng giao diện đồ họa. Hệ thống 389-DS có thể xử lý đồng thời hàng ngàn người dùng một cách hiệu quả. Chúng ta có thể liệt kê các tính năng sau:

- Hiệu suất cao. - Multi-Master Replication, cung cấp khả năng chịu lỗi và hiệu suất ghi cao. - Codebase đã được phát triển và triển khai liên tục bởi cùng một team trong hơn một thập kỷ. - Đồng bộ hóa Active Directory user và group. - Secure authentication và transport (TLSv1, and SASL) ; - Hỗ trợ LDAPv3 ; - Luôn luôn sẵn sàng, thời gian downtime bằng 0. - Giao diện đồ họa thân thiện, dễ dàng sử dụng cho các tác vụ quản lý server, người dùng, user. - Continuous Integration Testing (lib389) – ngăn chặn hồi quy và giúp duy trì sự ổn định với mỗi bản phát hành. Như chúng ta đã biết, active directory là dịch vụ quản lý thư mục được Microsoft phát triển cho mạng windows bao gồm hầu hết các dịch vụ như: quản lý người dung, quản lý dns, quản lý tên miền, policy… mà chủ yếu dùng cho hệ điều hành windows là chủ yếu, và máy chủ sử dụng windows server để quản lý. Active directory là dịch vụ mà người quản trị nào cũng muốn sử dụng để quản lý tập trung hệ thống mạng của công ty. Nhưng vấn đề về chi phí bản quyền Microsoft thì không phải công ty vừa và nhỏ nào cũng có khả năng đáp ứng. Vì vậy, hiện nay nhiều công ty đã, đang chuyển hướng sang các dịch vụ mã nguồn mở tương ứng. Samba được biết tới như Domain Controller dễ dàng cài đặt và sử dụng trên nền linux. Kể từ phiên bản 4.0 Samba còn tương thích với Microsoft Active Directory. 1.2 Triển khai hệ thống domain trên linux với samba 4.0 Mô hình hệ thống domain controller trên Linux Centos

KHOA CÔNG NGHỆ THÔNG TIN 9 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere

Hình 1.1 Mô hình triển khai hệ thống domain với samba. [3] Mô hình gồm có 1 máy Centos 7.x làm máy Domain Controller, trên đó có dịch vụ DNS và cá dịch vụ hỗ trợ Các máy Client sử dụng trong hệ thống gồm 1 máy Windows 2008/7. Trên máy DC1 (samba) cấu hình DNS phân giải tên miền hotec.vn. Kiểm thử phải phân giải được như sau:

Hình 1.2 Phân giải tên miền hotec.vn. Tên miền đã được phân giải thuận và ngược.

KHOA CÔNG NGHỆ THÔNG TIN 10 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere 1.3 Nâng cấp Active Directory Domain Controller Cấu hình hostname cho máy DC1: mở file hosts thêm dòng địa chỉ IP và tên fullname cho máy domain controller DC1.hotec.vn

Hình 1.3 Cấu hình file hosts. Lưu file, khởi động lại máy thấy sự thay đổi ở dấu nhắc

Hình 1.4 Kiểm tra host name. Mở tập tin hostname và thêm DC1 vào đầu hotec.vn

Hình 1.5 Bổ sung tên máy chủ samba để thành FQDN. Lưu file và khởi động lại máy, hệ điều hành load lại hostname mới. Dùng lệnh hostname để kiểm tra.

KHOA CÔNG NGHỆ THÔNG TIN 11 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere Bước 2: Cài đặt samba Kiểm tra truy cập Internet cho máy chủ SambaDC. Dùng lệnh yum để cài đặt yum install -y samba* Kiểm tra lại kết quả cài đặt bằng lệnh #rpm -qa | grep samba*

Hình 1.6 Kiểm tra các thành phần samba được cài đặt. Bước 3: Cấu hình domain Sau khi cài đặt xong, ta sẽ cấu hình Samba AD DC [root@smb ~]# samba-tool domain provision --use- rfc2307 --interactive Trong đó:

- --use-rfc2307: cho phép enable NIS extensions, cho phép ta dễ dàng sử dụng Windows tool Active Directory để quản lý user, computer - --interactive: sử dụng trường mặc định (trong ngoặc vuông) nếu không điền gì

KHOA CÔNG NGHỆ THÔNG TIN 12 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere - Realm: Kerberos Realm. Nó sẽ tự động sử dụng như Active Directory DNS domain name - Domain: NT4/NetBIOS Domain Name (tối đa 15 ký tự) - Server role: ‘dc’ cho Domain Controller - DNS backend: Sử dụng DNS nội bộ hoặc BIND9 làm DNS dự phòng (default là DNS nội bộ) - DNS forwader IP address: Nếu chọn DNS backend là DNS nội bộ thì mới có lựa chọn này. (trỏ tới server DNS nội bộ) Administrator password: đảm bảo mật khẩu mạnh:

- Ít nhất 8 ký tự - Có chứa 3 trong 4 thành phần: chữ hoa, chữ thường, số hoặc ký tự đặc biệt Chỉnh samba4 start với mode ad: [root@smb ~]# vi /etc/default/sernet-samba Thay đổi line 7: SAMBA_START_MODE="ad" Kết thúc quá trình trên, tiến hành khởi động lại máy tính. Giờ ta khởi động samba4 và start dịch vụ khi khởi động server [root@smb ~]# /etc/init.d/sernet-samba-ad start Starting SAMBA AD services : [ OK ] [root@smb ~]# chkconfig sernet-samba-ad on [root@smb ~]# chkconfig sernet-samba-smbd off [root@smb ~]# chkconfig sernet-samba-nmbd off [root@smb ~]# chkconfig sernet-samba-winbindd off Dựng domain level thành 2008R2 [root@smb ~]# samba-tool domain level raise -- domain-level 2008_R2 --forest-level 2008_R2 Domain function level changed! Forest function level changed! All changes applied successfully! Kiểm tra cấp độ của domain: [root@smb ~]# samba-tool domain level show Domain and forest function level for domain \'DC=demo,DC=net\'

KHOA CÔNG NGHỆ THÔNG TIN 13 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere Forest function level: (Windows) 2008 R2 Domain function level: (Windows) 2008 R2 Lowest function level of a DC: (Windows) 2008 R2 Kết thúc quá trình cầu hình Active Directory Domain Controller trên máy Samba 4.0 ta được một máy chủ Domain Controller. 1.4 Xây dựng additional Domain Controller Additional Domain Controller (ADC): Các Domain Controller thêm vào được gọi là Additional Domain Controller (ADC). Trong hệ thống mạng doanh nghiệp thì bắt buộc phải có PDC và chỉ duy nhất một máy. Tuy nhiên do chỉ có một nên sẽ có rất nhiều nguy cơ có thể xảy ra. ADC là tùy chọn dùng trong các trường hợp sau đây:

- Hệ thống có nhiều Site - Hệ thống chỉ có 1 site Sài Gòn nhưng có số lượng user lớn. Khi log on, DC sẽ bị quá tải và gây ra tình trạng nghẽn mạng. - Hệ thống chỉ có 1 Site Sài Gòn và chỉ có 1 DC, hệ thống nhỏ. Toàn bộ hệ thống hiện đang chạy ổn định. Nhưng một ngày nào đó DC gặp sự cố, thì hệ thống công ty sẽ bị tê liệt. Thời gian khôi phục sẽ mất khá nhiều thời gian. Mỗi Domain Controller sẽ lưu trữ Database riêng. Nếu xây dựng thêm ADC sẽ có thêm database nữa. Tuy nhiên 2 database này luôn luôn đồng bộ với nhau. Mô hình Aditional Domain [6]

Hình 1.7 Mô hình Additional Domain trên Samba (ADC) [5]. Bước 1: Cấu hình Samba4 trên máy ADC

KHOA CÔNG NGHỆ THÔNG TIN 14 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere Trên Ubuntu dùng lệnh: # hostnamectl set-hostname adc2 Trên Centos/Redhat, mở tập tin /etc/hosts và /etc/hostname thêm thông tin hostname cho máy ADC #vi /etc/hosts 192.168.10.2 dc2.hotec.vn dc2 #vi /etc/hostname dc2.hotec.vn #vi /etc/resolv.conf search 192.168.10.1 #ip của máy DC1 Bước 2: Cài đặt Samba4 cùng với các gói phụ thuộc Thực hiện tương tự như trên máy DC1 Bước 3: Join Samba4 AD DC vào Domain Controller Tắt samba và các dịch vụ liên quan #systemctl stop samba-ad-dc smbd nmbd winbind #mv /etc/samba/smb.conf /etc/samba/smb.conf.initial Lệnh nhập dc2 vào domain: #samba-tool domain join hotec.vn DC -U"hotec_user" Kết quả thực hiện lệnh trên như sau: Finding a writeable DC for domain ' hotec.vn' Found DC adc1. hotec.vn Password for [WORKGROUP\ hotec_user]: workgroup is HOTEC realm is hotec.vn checking sAMAccountName Deleted CN=ADC2,CN=Computers,DC= hotec,DC=vn Adding CN=ADC2,OU=Domain Controllers,DC= hotec,DC=vn Adding CN=ADC2,CN=Servers,CN=Default-First-Site- Name,CN=Sites,CN=Configuration,DC= hotec,DC=vn Adding CN=NTDS Settings,CN=ADC2,CN=Servers,CN=Default-First-Site- Name,CN=Sites,CN=Configuration,DC= hotec,DC=vn Adding SPNs to CN=ADC2,OU=Domain Controllers,DC= hotec,DC=vn Setting account password for ADC2$

KHOA CÔNG NGHỆ THÔNG TIN 15 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere Enabling account Calling bare provision Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up share.ldb Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf Provision OK for domain DN DC= hotec,DC=vn Starting replication Schema-DN[CN=Schema,CN=Configuration,DC= hotec,DC=vn] objects[402/1550] linked_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC= hotec,DC=vn] objects[804/1550] linked_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC= hotec,DC=vn] objects[1206/1550] linked_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC= hotec,DC=vn] objects[1550/1550] linked_values[0/0] Analyze and apply schema objects Partition[CN=Configuration,DC= hotec,DC=vn] objects[402/1614] linked_values[0/0] Partition[CN=Configuration,DC= hotec,DC=vn] objects[804/1614] linked_values[0/0] Partition[CN=Configuration,DC= hotec,DC=vn] objects[1206/1614] linked_values[0/0] Partition[CN=Configuration,DC= hotec,DC=vn] objects[1608/1614] linked_values[0/0] Partition[CN=Configuration,DC= hotec,DC=vn] objects[1614/1614] linked_values[28/0] Replicating critical objects from the base DN of the domain Partition[DC= hotec,DC=vn] objects[97/97] linked_values[24/0] Partition[DC= hotec,DC=vn] objects[380/283] linked_values[27/0]

KHOA CÔNG NGHỆ THÔNG TIN 16 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere Done with always replicated NC (base, config, schema) Replicating DC=DomainDnsZones,DC= hotec,DC=vn Partition[DC=DomainDnsZones,DC= hotec,DC=vn] objects[45/45] linked_values[0/0] Replicating DC=ForestDnsZones,DC= hotec,DC=vn Partition[DC=ForestDnsZones,DC= hotec,DC=vn] objects[18/18] linked_values[0/0] Committing SAM database Sending DsReplicaUpdateRefs for all the replicated partitions Setting isSynchronized and dsServiceName Setting up secrets database Joined domain HOTEC (SID S-1-5-21-715537322-3397311598-55032968) as a DC Sau khi chạy xong lệnh Samba-Tool ta thực hiện chỉnh sửa file smb.conf #vi /etc/samba/smb.conf Thêm các dòng sau vào file smb.conf: dns forwarder = 192.168.10.1 idmap_ldb:use rfc2307 = yes template shell = /bin/bash winbind use default domain = true winbind offline logon = false winbind nss info = rfc2307 Khởi động dịch vụ samba-ad-dc # systemctl restart samba-ad-dc # samba-tool drs showrepl Đổi tên file Kerberos trong /etc và thay thế nó bằng file krb5.conf (file được phát sinh bởi samba trong quá trình lên domain). File krb5.conf nằm trong thư mục /var/lib/samba/private. Tạo một symlink để liên kết bó vào /etc. # mv /etc/krb5.conf /etc/krb5.conf.initial # ln -s /var/lib/samba/private/krb5.conf /etc/ # cat /etc/krb5.conf [libdefaults] default_realm = HOTEC.VN dns_lookup_kdc = true dns_lookup_realm = false

KHOA CÔNG NGHỆ THÔNG TIN 17 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere Kiểm tra xác thực kerberos với file kbr5.conf. Cấp một thẻ cho nhà quản trị và danh sách các thẻ được lưu trữ bởi các lệnh sau: #kinit administrator #klist Bước 4: hoàn chỉnh dịch vụ Aditional Domain Trên máy DC2 tạo user # samba-tool user add W01 Chuyển qua máy DC1 kiểm tra sự tồn tại của user W01 mới tạo: # samba-tool user list | grep W01 Ngoài ra, trên máy Windows 10 cài đặt RSAT và kết nối vào domain hotec.vn để quản trị như trên Windows server 2012/2016. Trên RSAT ta có thể:

- Xem và tạo thêm user - Vào Domain Controllers thấy 2 máy DC1 và DC2 Bước 5: kiểm thử

- Dùng máy Windows gia nhập domain hotec.vn - Tắt máy DC1, trên máy DC2 tạo thêm user W02 và cho máy Windows 10 đăng nhập bằng user W02 → Đăng nhập vào bình thường. - Mở máy DC1 và xem đồng bộ dữ liệu giữa DC2 và DC1 1.5 Join domain các máy client 1.5.1 Đối với Windows (7/8/10/2008/2012/2016) Ta có thể join domain linux trên hệ điều hành windows không khác so với windows server với các thao tác đơn giản Phải chuột vào Computer → Properties → Change settings. Trong khung cửa sổ Computer name chọn Change → chuyển Domain tương ứng → Điền user + password của administrator vừa thiết lập ở trên → OK!

KHOA CÔNG NGHỆ THÔNG TIN 18 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere

Hình 1.8 Nhập máy Client Windows vào domain thành công. 1.5.2 Linux/Unix client (Ubuntu) Ta sẽ sử dụng likewise-open – cung cấp phương pháp xác thực cho phép hệ thống *nix join vào AD một cách đơn giản. rước hết phải sửa file resolve.conf trỏ lại về DNS để có thể tìm thấy domain tương ứng: [root@smb ~]# vi /etc/resolv.conf nameserver 192.168.0.2 search demo.net Tiến hành download gói likewise: root@ubuntu:~# wget http://launchpadlibrarian.net/153427240/likewise- open_6.1.0.406-0ubuntu10_amd64.deb Install likewise: root@ubuntu:~# dpkg -i likewise-open* libglade2- 0_2.6.4* Selecting previously unselected package likewise-open. (Reading database ... 56915 files and directories currently installed.) Preparing to unpack likewise-open_6.1.0.406-0ubuntu10_amd64.deb ... Unpacking likewise-open (6.1.0.406-0ubuntu10) ...

KHOA CÔNG NGHỆ THÔNG TIN 19 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere Selecting previously unselected package libglade2-0:amd64. Preparing to unpack libglade2-0_2.6.4-2_amd64.deb ... Unpacking libglade2-0:amd64 (1:2.6.4-2) ... Setting up likewise-open (6.1.0.406-0ubuntu10) ... Importing registry... Để tạo quyền root cho user domain: root@ubuntu:~# echo -e \'%demo\\\domain^users ALL=(ALL) ALL\' >> /etc/sudoers Join domain: root@ubuntu:~# domainjoin-cli join demo.net Administrator Joining to AD Domain: demo.net With Computer DNS Name: ubuntu.demo.net [email protected]\'s password: SUCCESS You should reboot this system before attempting GUI logins as a domain user. Done. Giờ ta có thể login bằng account domain: demo 1.6 Quản trị domain 1.6.1 Quản lý user Để tạo mới 1 user trên domain: samba-tool user add [password] Ví dụ: tạo user demo với password Aa#123456; mã user 123; email [email protected], tên công ty: demo; phải đổi password lần logon đầu tiên.

#samba-tool user add demo Aa@123456 --uid=123 --mail- [email protected] --company="demo" --must-change- at-next-login User 'demo' created successfully Ở đây, ta đã tạo thành công user "demo" với các thông tin mật khẩu:"Aa@123456", uid:"123", mail:[email protected]", tên công ty:"demo", và buộc user phải thay đổi mật khẩu trong lần đăng nhập tiếp theo. Sau đây là những tham số thường đi kèm với "user add" --must-change-at-next-login: buộc thay đổi mật khẩu trong lần đăng nhập kế tiếp KHOA CÔNG NGHỆ THÔNG TIN 20 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere - --random-password: sinh ra password ngẫu nhiên cho user - --home-directory=HOME_DIRECTORY: thư mục gốc của user - --company=COMPANY: tên công ty - --mail-address=MAIL_ADDRESS: địa chỉ email - --uid=UID: UID của user - --login-shell=LOGIN_SHELL: shell khi user login (có thể là /bin/bash, /bin/sh ...)\ Nếu add nhầm thông tin của user, ta có thể xóa user với câu lệnh: samba-tool user delete VD: xoá user demo

#samba-tool user delete demo Deleted user demo Với user, ta còn có thể disable tạm thời: samba-tool user disable enable user: samba-tool user enable Và kiểm tra user đang có trong domain với câu lệnh: samba-tool user list 1.6.2 Quản lý group Với group thì tương tự như với user, ta cũng có thể tạo thêm group: samba-tool group add VD:

#samba-tool group add gdemo Added group gdemo Để add thêm user vào group, ta sử dụng câu lệnh: samba-tool group addmembers VD:

#samba-tool group addmembers gdemo demo Added members to group gdemo OK, vậy là user "demo" đã được add vào group "gdemo" Ta có thể kiểm tra user trong từng group với: samba-tool group listmembers # samba-tool group listmembers gdemo demo

KHOA CÔNG NGHỆ THÔNG TIN 21 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere Để list các group trong domain, ta sử dụng: samba-tool group list 1.6.3 Home folder & User profile Để cấu hình samba domain cho phép user đăng nhập vào từ máy client được join domain ta thực hiện chỉnh sửa file smb.conf. Các mục được thêm vào như sau: [homes] comment = Home Directories browseable = yes writable = yes [printers] comment = All Printers path = /var/spool/samba printable = Yes print ok = Yes browseable = No [netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon ##(1) browseable = No writable = No [Profiles] path = /var/lib/samba/profiles ##(2) create mask = 0755 directory mask = 0755 writable = Yes Khởi động lại dịch vụ samba bằng các lệnh sau: systemctl start smb systemctl start nmb systemctl enable smb systemctl enable nmb.service mkdir -m 1777 /var/lib/samba/netlogon mkdir Hai thư mục đã khai báo trong (1) và (2) chưa có nên ta phải tiến hành tạo và phân quyền cho các thư mục này mkdir -m 1777 /var/lib/samba/profiles

KHOA CÔNG NGHỆ THÔNG TIN 22 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere Kiểm thử: Đăng nhập trên máy Client ta thấy có ổ đĩa các nhân trong trình quản lý file. Tiến hành đổi màn hình và tạo thư mục tên user trên màn hình. Log out và chuyển sang máy khác đăng nhập bằng user đó màn hình và thư mục trên máy cũ xuất hiện là profile của user được lưu giữ trên server. 1.6.4 OU – Delegate Delegate là trao quyền kiểm soát một tập hợp các tài khoản người dùng, máy tính hay các thiết bị mạng cho một nhóm người hay một quản trị viên phụ nào đó (sub-administrator), từ đó giảm bớt công tác quản trị cho người quản trị toàn bộ hệ thống. Thực hiện uỷ quyền (Delegate) trên máy DC hoặc sử dụng máy Windows 10 thông qua RSAT. Thực hiện uỷ quyền tương tự như trên Windows Server. 1.6.5 Quản lý policy (Group Policies Management) Trước hết, điều ta quan tâm đầu tiên là mật khẩu của account trong domain. Phải có policy buộc người sử dụng đặt mật khẩu mạnh để tránh dễ dàng bị tấn công. Để check policy nào đang được áp dụng: samba-tool domain passwordsettings show Vd: kiểm tra policy đang áp dụng #samba-tool domain passwordsettings show Password informations for domain 'DC=demo,DC=com' Password complexity: on Store plaintext passwords: off Password history length: 5 Minimum password length: 8 Minimum password age (days): 0 Maximum password age (days): 180\ Để set policy cho mật khẩu: samba-tool domain passwordsettings set

- --complexity=COMPLEXITY: mật khẩu mạnh:on, off, default (mặc định là on) - --history-length=HISTORY_LENGTH: độ dài history (mặc định là 24) - --min-pwd-length=MIN_PWD_LENGTH: số lượng ký tự tối thiểu trong mật khẩu (mặc định là 7)

KHOA CÔNG NGHỆ THÔNG TIN 23 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere - --min-pwd-age=MIN_PWD_AGE: thời gian tối thiểu được đổi password (mặc định là 1: sau 1 ngày kể từ lần cuối cùng thay đổi mật khẩu mới có thể tiếp tục đổi) - --max-pwd-age=MAX_PWD_AGE: thời gian tối đa bắt buộc phải đổi mật khẩu (mặc định là sau 43 ngày) VD: câu lệnh thiết lập chính sách password samba-tool domain passwordsettings set --history-length=5 --min-pwd- length=8 --min-pwd-age=0 --max-pwd-age=180 Để config policy trên samba, để dễ dàng chúng ta sẽ cấu hình trên windows, thông qua RSAT (remote server administration tools) Với windows 7, ta cần phải download package http://www.microsoft.com/en- us/download/details.aspx?id=7887 Với windows 8, ta chỉ cần enable feature RSAT trong windows feature là có thể sử dụng [7].

Hình 1.9 Group policy management trong máy chạy RSAT. Ví dụ: để tạo lời chào mỗi khi login bằng group policy, ta có thể thực hiện theo các bước sau: tạo file demo.vbs để viết script:

KHOA CÔNG NGHỆ THÔNG TIN 24 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere

Hình 1.10 Lưu trữ file script. Vào Administrator tool → Group policy Management. Tạo GPO tên welcome

Hình 1.11 Tạo GPO. Edit policy "welcome" → tìm theo đường dẫn User configuration → Windows settings → Scripts (logon/logoff) → Add file script vừa tạo → OK

Hình 1.12 Chọn file Script cho logon.

KHOA CÔNG NGHỆ THÔNG TIN 25 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere Sau khi xong, thực hiện câu lệnh gpupdate /force để update policy cho các client trên domain. Sau đó login sang client để kiểm tra kết quả

Hình 1.13 Cập nhật policy. Chuyển sang máy Client đăng nhập, trên nền màn hình sẽ thấy xuất hiện câu chào. 1.7 Share permission trên samba Khi server có một ổ RAID được mount vào địa chỉ /mnt/raiddrives và quản trị viên muốn chia sẻ nó trên mạng của mình để mọi người có quyền truy cập đầy đủ vào nó. Quy định của Linux bắt buộc nhà quản trị phải tạo ra một mục share như dưới đây trong tệp smb.conf: [share] comment = RAID File Server Share path = /srv/samba/share browsable = yes guest ok = yes read only = no create mask = 0755 Tuy nhiên, giả sử các quyền đang được đặt với giá trị create mask, thì 0755 không có nghĩa gì với tôi. Tìm kiếm trên web chỉ đưa ra hàng trăm người sử dụng các số khác nhau mà không có lời giải thích rõ ràng về ý nghĩa của các con số. Vì vậy, ai đó có thể cho tôi biết những con số có ý nghĩa gì và làm thế nào tôi có thể tìm ra số tôi muốn sử dụng xin vui lòng? Đây là vấn đến liên quan đến phân quyền truy cập tập tin trên Linux Có ba loại hạn chế truy cập: Permission Action chmod option ======read (view) r or 4 write (edit) w or 2

KHOA CÔNG NGHỆ THÔNG TIN 26 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere execute (execute) x or 1 Ngoài ra còn có ba loại hạn chế người dùng: User ls output ======owner -rwx------group ----rwx--- other ------rwx 1.7.1 Quyền thư mục/thư mục

Hình 1.14 Quyền truy cập tập tin thư mục và giá trị tương ứng. 1.7.2 Ký hiệu số Một phương pháp khác để biểu diễn các quyền của Linux là ký hiệu bát phân như được hiển thị bởi stat -c %a. Ký hiệu này bao gồm ít nhất ba chữ số. Mỗi trong ba chữ số ngoài cùng bên phải đại diện cho một thành phần khác nhau của các quyền: chủ sở hữu, nhóm và những người khác. Mỗi chữ số này là tổng của các bit thành phần của nó trong hệ thống số nhị phân:

Hình 1.15 Các quyền có thể áp đặt cho tập tin bằng giá trị số.

KHOA CÔNG NGHỆ THÔNG TIN 27 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere Câu hỏi đặt ra ở đây: con số 755 có nghĩa là gì? User: 7 = rwx; Group: 5 = r-x; Other: 5 = r-x

Điều này có nghĩa là thư mục có các quyền mặc định -rwxr-xr-x (được biểu thị bằng ký hiệu bát phân là 0755). 1.8 Câu hỏi và Bài tập cuối chương 1.8.1 Câu hỏi lý thuyết 1. Hãy trình bày cấu trúc LDAP trong Linux? 2. Nêu quy trình nâng cấp Samba domain trên Centos? 3. Cấu hình domain đồng cấp gồm những bước nào? 1.8.2 Thực hành Cho mô hình mạng như sau:

IP: 192.168.x.3 SN: 255.255.255.0 GW: Để trắng DNS: 192.168.x.3 IP: 192.168.x.1 SN: 255.255.255.0 CLIENT GW: Để trắng DNS: 192.168.x.1 IP: 192.168.x.2 SN: 255.255.255.0 DC1 DC2 GW: Để trắng Smb Domain Ad DC DNS: 192.168.x.1 DNS: hotec.vn DNS: hotec.vn

Mô tả:

- Mô hình gồm có 2 máy Centos tên dc1 và dc2 - Một máy Windows 7 Thực hiện 1. Gán IP cho các máy như hình vẽ 2. Sử dụng samba-tool nâng cấp máy dc1 lên domain với tên miền hotec.vn 3. Sử dụng công cụ dòng lệnh để: a. Tạo OU SV và OU GV b. Tạo user s1, s2 thuộc nhóm sv nằm trong OU SV (pass: 123456@) c. Tạo user g1, g2 thuộc nhóm gv nằm trong OU GV (pass: 123456@) 4. Thực hiện join máy Win 7 vào domain hotec.vn bằng user g1 5. Cấu hình chính sách nhóm (GPO) trên domain hotec.vn cho user thường có thể shutdown máy client

KHOA CÔNG NGHỆ THÔNG TIN 28 Chương 1. Tổng quan về công nghệ ảo hóa VMware vSphere 6. Cấu hình chính sách cho OU SV: a. Control Panel chỉ xuất hiện system, date/time b. Menu start không có nút run 7. Cấu hình máy DC2 thành Addition Domain Controller a. Tên miền lấy từ DC1 b. Cấu hình uỷ quyền DNS trên DC1 cho DC2 c. Tạo thêm user mk1 trên DC2, kiểm tra dữ liệu user trên DC1 8. Kiểm thử: a. Tắt máy DC1, đăng nhập trên máy Client vào Domain bằng mk1 b. Tạo thêm user mk2 trên DC2, kiểm tra dữ liệu user trên DC1 c. Trên máy Client hãy phân giải tên miền của hệ thống d. Mở máy DC1, kiểm tra dữ liệu user vừa mới tạo thêm (mk2)

KHOA CÔNG NGHỆ THÔNG TIN 29 Chương 2: Triển khai hạ tầng mạng CHƯƠNG 2. TRIỂN KHAI HẠ TẦNG MẠNG

➢ Giới thiệu chương: Trong chương này, người học sẽ được giới thiệu và hướng dẫn thực hiện các dịch vụ làm hạ tầng mạng như DNS, các phương pháp định tuyến (tĩnh, động) bằng phần mềm Quagga, Zebra. Bên cạnh đó, việc cấp phát IP động cũng được trình bày và hướng dẫn cấu hình cho một mạng và nhiều mạng. Cấp phát IP liên mạng bằng bộ định tuyến và dhcp relay agent. ➢ Mục tiêu chương:

- Trình bày được ý nghĩa của dịch vụ DNS trong hệ thống mạng. - Nêu được công dụng và quy trình cấu hình bộ định tuyến bằng Quagga/Zebra - Trình bày được vai trò và chức năng dịch vụ cấp phát động địa chỉ IP cho các máy trạm. - Cấu hình phân giải tên miền trên máy Linux - Cấu hình được dịch vụ DHCP Server trên hệ điều hành Linux. - Cấu hình bộ định tuyến tĩnh, định tuyến động bằng Zebra. Đồng thời sử dụng nó để làm máy DHCP Relay Agent.

KHOA CÔNG NGHỆ THÔNG TIN 30 Chương 2: Triển khai hạ tầng mạng 2.1 Xây dựng máy chủ phân giải tên miền 2.1.1 DNS đơn 2.1.1.1 Giới thiệu DNS (Domain Name System) là một hệ cơ sở dữ liệu phân tán dùng để ánh xạ giữa các tên miền vê các địa chỉ IP. DNS đưa ra một phương pháp đặc biệt để duy trì vê liên kết các ánh xạ nêy trong một thể thống nhất. BIND (Berkeley Internet Name Distributed) là phần mềm DNS Server được sử dụng nhiều nhất hiện nay trên thế giới. Một chương trình phục vụ DNS trên nền các hệ thống AIX/BSD/HP-UX/Unix/Linux… Bind chạy nhanh, hiệu suất cao, đáp ứng được số lượng user lớn, cấu hình linh hoạt, … DNS (Domain Name System): là hệ thống phân giải tên miền. Mỗi máy tính, thiết bị mạng tham gia vào mạng Internet đều giao tiếp với nhau bằng địa chỉ IP (Internet Protocol) .Để thuận tiện cho việc sử dụng và dễ nhớ ta dùng tên miền (domain name) để xác định thiết bị đó.Hệ thống tên miền (Domain Name System) được sử dụng để ánh xạ tên miền thành địa chỉ IP. Vì vậy, khi muốn liên hệ tới các máy, chúng chỉ cần sử dụng chuỗi ký tự dễ nhớ (domain name) như: www.hotec.edu.vn , www.yahoo.com.., thay vì sử dụng địa chỉ IP là một dãy số dài khó nhớ [4].

Hình 2.1- Cấu trúc hệ thống tên miền Domain root: Nó là đỉnh của nhánh cây của tên miền. Nó có thể biểu diễn đơn giản chỉ là dấu chấm “.”. Top-level-domain: gồm vài kí tự xác định một nước, khu vưc hoặc tổ chức. Nó đươc thể hiện là “.us” , “.vn” , “.com” , “.edu” ….

KHOA CÔNG NGHỆ THÔNG TIN 31 Chương 2: Triển khai hạ tầng mạng Second-level-domain: Nó rất đa dạng rất đa dạng có thể là tên một công ty, một tổ chức hay một cá nhân. Subdomain: Chia thêm ra của tên miền cấp hai trở xuống thường được sử dụng như chi nhánh, phòng ban của một cơ quan hay chủ đề nào đó. 2.1.1.2 Phân loại:

- Máy chủ DNS chính (Primary Name Server): Mỗi một máy chủ tên miền có một tên miền riêng. Tên miền riêng này được đăng ký trên Internet. - Máy chủ DNS dự phòng – tên miền thứ hai (Secondary name server): đây là một DNS Server được sử dụng để thay thế cho Primary name server DNS Server bằng cách sao lưu lại tất cả những bản ghi dữ liệu trên Primary name Server và nếu Primary Name Server bị gián đoạn thì nó sẽ đảm nhận việc phân giải và ánh xạ tên miền và địa chỉ IP. - Caching Name Server: Đây là một Server đảm nhiệm việc lưu trữ tất cả những tên miền, địa chỉ IP đã được phân giải và ánh xạ thành công. Nó được sử dụng trong những trường hợp sau: o Làm tăng tốc độ phân giải bằng cách sử dụng cache o Giảm bớt gánh nặng phân giải tên máy cho các DNS Server o Giảm lưu lượng tham gia vào mạng và giảm độ trễ trên mạng (rất quan trọng). 2.1.1.3 Kiểm tra và cài các package sau:

#bind #bind-chroot 2.1.1.4 Demo “DNS SERVER – MASTER” Xây dựng DNS Server chịu trách nhiệm phân giải cho domain hotec.info a. Cấu hình - Tạo tập tin cấu hình từ tập tin mẫu #cp /usr/share/doc/bind-9.3.3/sample/etc/named.conf /var/named/chroot/etc - Hiệu chỉnh tập tin /etc/named/chroot/etc/named.conf, xóa từ dòng 25 đến hết và thêm vào đoạn sau: zone “hotec.vn” { type master; file hotec.vn.zone; }; KHOA CÔNG NGHỆ THÔNG TIN 32 Chương 2: Triển khai hạ tầng mạng zone “1.168.192.in-addr.arpa” { type master; file 192.168.1.zone; }; - Tạo file database được lưu trong thư mục /var/named/chroot/var/named, gồm 2 file là file thuận và file nghịch. hoặc có thể copy từ thực mục chứa tập tin mẫu /usr/share/doc/bind-9.3.3/sample/ Tạo file thuận

#vi /var/named/chroot/var/named/hotec.vn.zone Với nội dung sau: $TTL 86400 @ IN SOA dns.hotec.vn. dns2.hotec.vn. ( 2009060601 3H 15M 1W 1D ) IN NS dns.hotec.vn. @ IN A 192.168.1.213 dns IN A 192.168.1.106 www IN CNAME hotec.vn. ftp IN CNAME hotec.vn. Tạo file nghịch

#vi /var/named/chroot/var/named/192.168.1.zone với nội dung sau: $TTL 86400 @ IN SOA dns.hotec.vn. dns2.hotec.vn. ( 2009060601 3H 15M

KHOA CÔNG NGHỆ THÔNG TIN 33 Chương 2: Triển khai hạ tầng mạng 1W 1D ) IN NS dns.hotec.vn. 106 IN PTR dns.hotec.vn. 213 IN PTR hotec.vn. Cấu trúc như sau: [Tên_miền] IN SOA [Tên_Primarry_Server] [Tên_Second_Server] Serial number Refresh number Retry number Expire number TTL number ) Trong đó:

- Serial number: khi Second server kết nối tới primary server để lấy dự liệu, trước tiên nó sẽ kiểm tra số serial này, nếu số serial này của primary server mà lớn hơn số serial của second server tức là dữ liệu trên second server đã hết hạn sử dụng và nó sẽ phải nạp lại dữ liệu mới. mỗi lần cập nhật dữ liệu trên primary server chúng ta nên tăng số serial này. - Refresh number: khoảng thời gian (giây) mà second server phải làm mới lại dữ liệu của mình. - Retry number: nếu second server không thể kết nối tới primary server thì nó tự động kết nối lại sau retry giây này. - Expire number: Nếu second server không thể kết nối tới primary server sau khoảng thời gian expire giây này, thì second server sẽ không trả lời cho vùng dữ liệu đó khi được truy vấn, vì nó cho rằng dữ liệu này đã quá cũ. - TTL number: giá trị này cho phép các server khác cache lại dữ liệu trong 1 khoảng thời gian TTL này. - Khởi động dịch vụ DNS #service named start - Xem file log #tail -f 10 /var/log/messages

KHOA CÔNG NGHỆ THÔNG TIN 34 Chương 2: Triển khai hạ tầng mạng - Chỉnh sửa DNS Client trên DNS Server, xóa bỏ tất cả các dòng trong file /etc/resolv.conf và thêm vào dòng sau: nameserver 192.168.1.106 - Truy vấn Dns Domain hotec.info từ máy Windows và Linux, sử dụng lệnh nslookup 2.1.2 Multi DNS 2.1.2.1 Thực nghiệm DNS Chủ - Tớ (DNS SERVER – SLAVE) Xây dựng Slave DNS Server cho domain hotec.vn * Chuẩn bị + Đặt IP, Hostname + Tắt , SELinux + Kiểm tra và cài package bind, bind-chroot * Thực hiện #cp /usr/share/doc/bind-9.3.3/sample/etc/named.conf /var/named/chroot/etc - Hiệu chỉnh tập tin /etc/named/chroot/etc/named.conf, xóa từ dòng 25 đến hết và thêm vào đoạn sau: zone “hotec.vn” { type slave; masters {192.168.1.106;}; file “slaves/hotec.vn.zone”; }; zone “1.168.192.in-addr.arpa” { type slave; masters {192.168.1.106;}; file “slaves/192.168.1.zone”; }; - Trên Master DNS của bạn thêm option allow-transfer, để cho phép Slave dns được update từ con Master allow-transfer {192.168.218.136;}; - Tranfer các file tập tin record

KHOA CÔNG NGHỆ THÔNG TIN 35 Chương 2: Triển khai hạ tầng mạng rndc reload - Kiểm tra kết quả bằng lệnh ls –l /var/named/chroot/var/named/slaves - Restart dịch vụ named service named restart - Hiệu chỉnh Dns Client trong file /etc/resolv.conf trỏ vào Slave Dns Server nameserver 192.168.9.206 –> slave server IP * Kiểm tra dịch vụ bằng nslookup 2.1.2.2 Demo “DNS SERVER – ỦY QUYỀN” Yêu cầu: Cấu hình DNS ủy quyền quản lý cho DNS domain con. B1.Xây dựng DNS Server Master dc1.hotec.vn (máy 1) B2. Xây dựng DNS Server cho domain dc1.hotec.vn (máy 2), chú ý: + sửa 1 thành dc2 + Đặt hostname, ip, tắt SELinux cho máy 2. - Trên máy 1 – DNS Server hotec.vn, thêm vào dòng 9 của file /var/named/chroot/var/named/hotec.vn.zone đoạn sau: dc2 IN NS dc2.hotec.vn. dc2 IN A 192.168.1.206 - Thêm vào cuối file /var/named/chroot/var/named/192.168.1.zone dòng sau: 206 IN PTR DC2.hotec.vn - Restart dịch vụ named service named restart –> Kiểm tra từ máy 1 phân giải các record của hcm.hotec.vn * Cấu hình để máy 2 truy vấn được các record của domain hotec.vn - Thêm vào dòng 17 của file /etc/named/chroot/etc/named.conf nội dung sau: forwarders {192.168.1.106;}; - Restart dịch vụ service named restart

KHOA CÔNG NGHỆ THÔNG TIN 36 Chương 2: Triển khai hạ tầng mạng 2.1.2.3 Thực nghiệm “DNS SERVER – Internal View & External View” Trong thực tế, khi triển khai DNS, ta cần thiết lập đến 2 bộ DNS phân giải riêng biệt một là cho mạng nội bộ và một là cho các truy vấn từ bên ngoài vào. VD: Domain cùa công ty hiện tại là hotec.vn. Trong hệ thống có xây dựng các dịch vụ mail, web và tình huống đặt ra là khi người dùng trong hệ thống sử dụng dịch vụ sẽ đi bằng IP lan còn khi ở bên ngoài hệ thống sẽ đi bằng IP wan trên internet. Thông thường cần đến hai DNS server riêng biệt hoặc 2 zone khác nhau hotec.local và hotec.vn trong dns server. Tuy nhiên Bind DNS hỗ trợ chúng ta tính năng view dùng để xác định với đối tượng nào sẽ sử dụng bộ phận giải nào. Đơn cử ở đây tôi dùng hai view: internal và external ý nghĩa là đối tượng trong Lan khi truy vấn sẽ dùng bộ internal còn đối tượng ngoài internet vào sẽ truy vấn dùng bộ external. Ta triển khai như sau: Trong file named.conf, thiết lập internals dùng để xác định nhóm các đối tượng được xem là dành cho LAN. Ở đây mạng Lan tôi có net là 10.0.0.0/24 acl internals { 10.0.0.0/24; localhost; }; Bây giờ ta tiến hành cấu hình thêm vào bên dưới một tí: view "internal" { match-clients { internal; }; // xác định nhóm đối tượng sẽ áp vào view internal có thể thay bằng subnet hoặc địa chỉ ip cụ thể không nhất thiết là tạo trước nhóm internals như trên zone "hotec.vn" IN { type master; file "hotec.vn.zone.lan"; }; zone "0.0.10.in-addr.arpa" IN { type master;

KHOA CÔNG NGHỆ THÔNG TIN 37 Chương 2: Triển khai hạ tầng mạng file "10.0.0.zone.lan"; }; }; Với mạng bên ngòai: view "external-view" { match-clients { any; }; //xác định là tất cả zone "hotec.vn" IN { type master; file "hotec.vn.zone.wan"; }; zone "0.0.10.in-addr.arpa" IN { type master; file "10.0.0.zone.wan"; }; }; Cách cấu hình tương tự như các phần trên cho 4 file này. Tuy nhiên để dễ dàng kiểm chứng thì các bạn phải cấu hình các ip thật sự khác nhau như đang làm trên thực tế để dễ kiểm chứng kết quả trả về hotec.vn.zone.wan 10.0.0.zone.wan hotec.vn.zone.lan 10.0.0.zone.lan Tiếp đến là kiểm tra thành quả bằng nslookup: Do lúc đầu quên nên giờ tôi gắn thêm 1 card cùng net với máy client vơi mục đích là kiểm tra kết quả cho các truy vấn khác ngoài mạng Lan. Và sau đó cấu hình thêm trong named.conf thuộc mục Options nhà để cho phép lắng nghe các truy cập trên tất cả các card mạng: listen-on { any; }; // có thể thay bằng IP nếu muốn

KHOA CÔNG NGHỆ THÔNG TIN 38 Chương 2: Triển khai hạ tầng mạng Và giờ chỉ việc kiểm tra bằng nslookup trên máy client 2.2 Tạo bộ định tuyến động 2.2.1 Khái niệm và định tuyến tĩnh Bạn có thể sử dụng Linux để thực hiện định tuyến như một Router, cả định tuyến tĩnh và định tuyến động. Trước tiên chúng ta sẽ cùng tìm hiểu định tuyến tĩnh trên CentOS. Thực hiện trên mô hình sau:

Hình 2.2-Sơ đồ bài toán định tuyến Hôm nay chúng ta sẽ thực hiện trên 4 máy là R1, R2, Server1 và PC C2 (máy C2 chạy Ubuntu). Bước đầu tiên, đặt IP tương ứng cho mỗi thiết bị, sau đó xem bảng định tuyến trên R1,R2

Hình 2.3-Thông tin định tuyến trên các card mạng R1

KHOA CÔNG NGHỆ THÔNG TIN 39 Chương 2: Triển khai hạ tầng mạng

Hình 2.4-Thông tin định tuyến trên các card mạng R2 Xem thông tin card mạng eth2 bằng lệnh ifconfig

Hình 2.5-Lệnh ifconfig trên card mạng eth2 Dùng lệnh route -n trên máy Ubuntu để xem bảng tịnh tuyến của Client, qua đó ta xác định được default gateway mà máy Ubuntu sẽ đi ra ngoài mạng

Hình 2.6-Thông tin bảng định tuyến trên Ubuntu Như các bạn thấy, lúc này PC C2 không thể kết nối đến Server1. Lý do đơn giản là vì R1 chưa có route đến mạng 192.168.10.0/24. Kiểm tra bảng route trên R1.

KHOA CÔNG NGHỆ THÔNG TIN 40 Chương 2: Triển khai hạ tầng mạng

Hình 2.7-Thông tin bảng định tuyến R1 chưa thấy Destination 192.168.10.0/24 Trên R1 chỉ có 2 mạng connected với nó là 192.168.12.0/24 và 192.168.20.0/24. Không có route nào cho mạng 192.168.10.0/24. Trước khi tiến hành thêm route bạn nhớ phải enable routing. Sửa file /etc/sysctl.config # vi /etc/sysctl.conf

Hình 2.8-Chuyển Control packet forwarding Khoá IPv6 theo 2 dòng trong khung màu xanh trong hình trên: net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 Ý nghĩa: hai dòng này được thêm vào để hệ thống không phải hiện ipv6 ra khi bạn xem IP, không có cũng được. KHOA CÔNG NGHỆ THÔNG TIN 41 Chương 2: Triển khai hạ tầng mạng Ta tiến hành thêm route này vào, bạn có thể sử dụng câu lệnh #ip route add 192.168.10.0/24 via 192.168.12.2 hoặc #route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.12.2 Dưới đây mình sử dụng cách 1: cho ngắn gọn

Hình 2.9-Lệnh thêm một định tuyến Mà có route đi thì phải có route về, lên R2 add thêm cái route về mạng 192.168.20.0/24 nữa là xong. Trên R2 không sử dụng câu lệnh để add route mà tạo thêm 1 file để route: #vi /etc/sysconfig/network-scripts/route-eth1 Nội dung của file này như sau: 192.168.20.0/24 via 192.168.12.1 Sau khi add xong thì khởi động lại service network: # service network restart Kiểm tra bảng định tuyến R2:

Hình 2.10-Thông tin định tuyến trên các card mạng R2 Thực hiện ping để kiểm tra kết quả sau khi định tuyến:

KHOA CÔNG NGHỆ THÔNG TIN 42 Chương 2: Triển khai hạ tầng mạng Ping từ PC C2:

Hình 2.11-Kiểm tra liên lạc 2 mạng bằng lệnh ping từ máy .200 Ping từ server01:

Hình 2.12-Kiểm tra liên lạc 2 mạng bằng lệnh ping từ máy .100 Nhận xét: – Để định tuyến trong linux, bạn phải enable tính năng IP packet forwarding ở file /etc/sysctl.conf – Câu lệnh kiểm tra route # route -n # ip route # netstat -nr Để thêm route, bạn có 2 cách, sử dụng lệnh hoặc tạo file route. (Theo mình nên tạo file nếu dùng lệnh route add thì sẽ mất khi khởi động lại máy) 2.2.2 Phương pháp định tuyến động trên Linux 2.2.2.1 RIP RIP là giao thức định tuyến vector khoảng cách điển hình, đăng gửi toàn bộ routing table ra tất cả các active interface đều đặn theo chu kỳ là 30 giây. RIP chỉ sử dụng metric là hop count để tính ra tuyến đường tốt nhất tới remote network. Thuật toán màRIP sử dụng để xây dựng nên routing table là Bellman-Ford. Mô hình:

KHOA CÔNG NGHỆ THÔNG TIN 43 Chương 2: Triển khai hạ tầng mạng Mình sử dụng lại mô hình của bài định tuyến tĩnh ở bài trước. Trong này sẽ có 4 máy chạy hệ điều hành CentOS. Các máy có Card mạng và IP như hình bên dưới [2].

Hình 2.13-Sơ đồ định tuyến với 2 router Như ta thấy, 2 máy tính có IP là 172.16.3.2 và 172.16.2.2 khác mạng nên chúng không liên lạc được với nhau!. Chúng ta sẽ tiến hành cấu hình định tuyế trên 2 máy CentOS còn lại, đóng vai trò là Router. Cài đặt phần mềm định tuyến: Quagga là gói phần mềm định tuyến chạy trên các hệ điều hành Linux hỗ trợ các giao thức định tuyến như RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP-4, và BGP-4+. Quagga hỗ trợ định tuyến tốt cả trên nền IPv4 lẫn IPv6 . Quagga thực ra là phiên bản được ”kế thừa” từ Zebra đã ngưng phát triển từ lâu! . Cài đặt Quagga: Đây là đường link có thể download Quagga 0.99.17 tại đây: http://centos.alt.ru/pub/quagga/0.99.17/RHEL/RPMS/ i386/quagga-0.99.17-1.el5.i386.rpm

Hình 2.14-Download phần mềm quagga Sau khi tải về xong, sử dụng lệnh để cài đặt nó: rpm –ivh quagga-0.99.17-1.el5.i386.rpm Cấu hình định tuyến:

KHOA CÔNG NGHỆ THÔNG TIN 44 Chương 2: Triển khai hạ tầng mạng Mặc định, các file cấu hình định tuyến của Quagga sẽ được chứa ở thư mục /etc/quagga/. Đầu tiên chúng ta sẽ cấu hình file zebra.conf Gõ lệnh:

vi /etc/quagga/zebra.conf Thiết đặt file có nội dung như sau:

hostname khanh.com.vn password zebra enable password zebra Trong đó, zebra chính là mật khẩu!. Tiến hành lưu lại file zebra.conf và khởi động dịch vụ zebra: service zebra start Tiếp tục, ta sử dụng Telnet để cấu hình IP và định tuyến. Gõ lệnh kết nối và đăng nhập với mật khẩu “zebra” đã tạo ở trên. Gõ lệnh: telnet 127.0.0.1 2601

Hình 2.15-telnet vào quagga tại bộ định tuyến Sau khi đăng nhập thành công. Tiến hành cấu hình IP như hình dưới đây. Với 172.16.2.1/24 và 172.16.1.1/24 lần lượt là IP của 2 card eth0 và eth1 của máy CentOS làm Router.

KHOA CÔNG NGHỆ THÔNG TIN 45 Chương 2: Triển khai hạ tầng mạng

Hình 2.16-Cấu hình ip route cho bộ định tuyến tĩnh Sau khi cấu hình IP xong, khởi động lại dịch vụ zebra: service zebra restart Chú ý: Nếu trong quá trình lưu file zebra.conf gặp lỗi Can't open configuration file /etc/zebra/zebra.conf thì bạn làm như sau: vi /etc/selinux/config Đổi SENLINUX=enforcing thành SELINUX=permissive => Khởi động lại máy. Tiếp tục ta tiến hành cấu hình định tuyến RIP. Gõ lệnh

vi /etc/quagga/ripd.conf Lưu file trên với nội dung như sau:

hostname khanh.com.vn-rip password zebra enable password zebra Sau đó khởi động dịch vụ ripd:

service ripd start Tiến hành telnet vào cổng 2602 (Lưu ý: không phải 2601 như trên)

KHOA CÔNG NGHỆ THÔNG TIN 46 Chương 2: Triển khai hạ tầng mạng

Hình 2.17-Cấu hình định tuyến tĩnh cho card thứ 2 Đăng nhập thành công. Tiến hành cấu hình định tuyến RIP như hình dưới đây. Với 172.16.1.0/24 và 172.16.2.0/24là địa chỉ mạng mà máy CentOS làm Router đang kết nối trực tiếp tới.

Hình 2.18-Cấu hình rip cho bộ định tuyến tĩnh Tiến hành khởi động lại dịch vụ ripd service ripd restart Vậy là đã cấu hình xong trên máy Router thứ 1. Ở máy Router thứ 2 ta thiết lập hoàn toàn tương tự Sau khi cấu hình file zebra.conf như ở trên xong. Tiến hành telnet vào cổng 2601

KHOA CÔNG NGHỆ THÔNG TIN 47 Chương 2: Triển khai hạ tầng mạng

Hình 2.19-Kiểm thử bằng telnet Thiết đặt IP các card eth0 và eth1

Hình 2.20-Đặt IP cho card eth0 và eth1 Tương tự, ta tiếp tục cấu hình nội dung file ripd.conf như ở máy Router 1 cho Router2. Sau đó khởi động dịch vụ ripd

Hình 2.21-Khởi động dịch vụ ripd Tiến hành telnet vào cổng 2602

KHOA CÔNG NGHỆ THÔNG TIN 48 Chương 2: Triển khai hạ tầng mạng

Hình 2.22-Telnet đến cổng 2602 Khai báo các mạng mà máy Router 2 kết nối trực tiếp tới.

Hình 2.23-Telnet đến cổng 2602 Sau khi cấu hình định tuyến trên 2 máy Router xong. Tiến hành kiểm tra lại bảng định tuyến của 2 máy Router này. Nếu cấu hình thành công thì trong bảng định tuyến ta sẽ có đường NET nhưng hình bên dưới.

Hình 2.24-Xem bảng định tuyến router 1

Hình 2.25-Xem bảng định tuyến router 2 Chú ý: Trong RIP thì cứ 30s Router sẽ cập nhật lại nội dung bảng định tuyến 1 lần.

KHOA CÔNG NGHỆ THÔNG TIN 49 Chương 2: Triển khai hạ tầng mạng OK. Bây giờ kiểm tra kết nối giữa 2 máy 172.16.2.2 và 172.16.3.2

Hình 2.26-Ping qua máy 172.16.2.2

Hình 2.27-Ping qua máy 172.16.3.2 Kết quả là 2 máy đã nhìn thấy nhau. Cấu hình định tuyến RIP thành công. 2.3 Cấp phát IP động 2.3.1 Single Subnet 2.3.1.1 Khái niệm DHCP (Dynamic Host Configuration Protocol) được sử dụng với muc đích tập trung hoá việc quản lý và ấn định cấu hình TCP/IP của các máy client. Với những đặc điểm thuận lợi giúp cho người quản trị tiết kiệm thời gian trong việc cài đặt và quản trị một hệ thống mạng TCP/IP như sau

- Quản lý việc cấp phát địa chỉ ip cho các máy client khi có yêu cầu. - Cung cấp những thông tin cấu hình mạng như subnet mask, default router, DNS Server. - DHCP có thể làm việc thông qua nhiều TCP/IP router và ấn định IP dựa theo subnet mask gửi tới do đó bạn không cần phải cấu hình lại máy tính khi di chuyển qua những subnet khác nhau. - Địa chỉ ip chỉ được cấp phát trong một khoảng thời gian nhất định, những địa chỉ ip không tiếp tục sử dụng sẽ bị thu hồi lại. - Hỗ trợ BOOTP client

KHOA CÔNG NGHỆ THÔNG TIN 50 Chương 2: Triển khai hạ tầng mạng Để sử dụng DHCP bạn cần phải có một DHCP Server để đáp ứng (cung cấp địa chỉ ip và thông tin cấu hình mạng) các yêu cầu từ các máy DHCP client gửi tới và ngược lại trên các máy client cung cần phải có DHCP client để gửi các request. Có thể tóm tắt quá trình hoạt động DHCP request-resspond như sau:

- Lease request: dhcp client gửi broadcast gói tin dhcp request (địa chỉ nguồn là 0.0.0.0, địa chỉ đích là 255.255.255.255 và địa chỉ MAC của client) , gói tin này được mở bởi DHCP Server - Ip lease offer: DHCP Server ấn định cho client địa chỉ ip, subnet mask, domain name, địa chỉ name server, khoảng thời gian mà những thông tin cấu hình này client được phép sử dụng hợp lệ. - Lease selection: client chấp nhận những thông tin cấu hình được cung cấp và nó gửi sẽ gửi một gói tin broadcast để thông báo với các DHCP Server không cần gửi các thông tin cấu hình khác cho nó nữa. DHCP Server gửi đến client một gói tin ack và khi đó client đã được cấu hình TCP/IP và hoạt động bình thường Lease renew: khi sử dụng những thông tin cấu hình được cung cấp đến một nửa khoảng thời gian được phép (default-lease-time) DHCP client nếu muốn tiếp tục sử dụng sẽ gửi một request mới tới DHCP Server. DHCP là một dịch vụ phổ thông nên đã có sẵn trên mọi distro Linux nên bạn không cần để ý đến việc cài đặt nó. sau đay là một số kiến thức giúp bạn dễ dàng nắm bắt và sử dụng nó. Một số tuỳ chọn để chạy DHCP Server với mục đích debug. Có thể sửa đổi port mặc định( port 67) của dhcp với –p flag. Với DHCP reply port thường lớn hơn listen port một giá trị. Ví dụ nếu bạn ấn định cho DHCP Server lắng nghe request ở port 67 thì nó sẽ trả lời client ở port 68. Có thể ấn định DHCP Server chạy dưới dạng foreground process thay vì chạy dưới dạng deamon bằng -f flag. Chạy DHCP Server với một file config khác (không phải file config mặc định /etc/dhcp.conf) bạn dùng -cf flag, chạy với một file lease khác bạn dùng -lf flag. File cấu hình của DHCP Server là /etc/dhcpd.conf được đọc và phân tích bởi dhcpd. File gồm một loạt những khai báo và tham số cấu hình. 2.3.1.2 Một số thiết lập hay được sử dụng.

shared-network name { [ parameters ] [ declarations ]

KHOA CÔNG NGHỆ THÔNG TIN 51 Chương 2: Triển khai hạ tầng mạng } Khai báo một số IP subnet và những tham số khởi động cho những client trên cùng một mạng vật lý. subnet subnet-number netmask netmask { [ parameters ] [ declarations ] } Khai báo những địa chỉ ip và tham số khởi động cho những client trong một subnet cụ thể. range [ dynamic-bootp ] low-address [ high- address]; Dùng để khai báo những địa chỉ ip mà DHCP Server sẽ cung cấp cho các client. host hostname { [ parameters ] [ declarations ] } Được sử dụng cho những BOOTP client group { [ parameters ] [ declarations ] } Được dùng trong những trường hợp bạn muốn ấn định một hay nhiều tham số mạng cho một nhóm client cụ thể. allow unknown-clients; deny unknown-clients; Được dùng để điều khiển hoạt động của dhcp với những unknown-clients, mặc định là allow. allow booting; deny booting; Được dùng để điều khiển hoạt động của DHCP Server đối với những bootp query của một số client, nó chỉ có ý nghĩa khi nằm trong một khai báo host. default-lease-time time;

KHOA CÔNG NGHỆ THÔNG TIN 52 Chương 2: Triển khai hạ tầng mạng Là khoảng thời gian mà những tham số ấn định của DHCP Server cho client có hiệu lực đối với những client requesting không yêu cầu expiration time. max-lease-time time; Là khoảng thời gian lớn nhất mà những tham số ấn định của DHCP Server cho client có hiệu lực đối với những client requesting có yêu cầu expiration time. Thời gian được tính theo giây hardware hardware-type hardware-address; Khai báo loại phần cứng thiết bị mạng và địa chỉ cứng của thiết bị mạng mà client dùng để gửi DHCP request. Những loại thiết bị mạng thường được hỗ trợ là ethernet, token-ring, fddi. filename "filename"; Xác định tên file mà client dùng để boot (boot qua mạng). server-name "name"; Ấn định tên Server mà client có thể boot từ nó next-server server-name; Địa chỉ ip Server mà client có thể boot từ nó fixed-address address [, address ... ]; Được dùng để ấn định một hay nhiều địa chỉ ip cho một client xác định, nó chỉ có ý nghĩa khi nằm trong khai báo host. Thường được dùng trong những trường hợp client hay di chuyển qua những subnet khác nhau. 2.3.1.3 Một mẫu file dhcp.conf: ddns-update-style interim; ignore client-updates; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.128 192.168.1.254; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.1; option domain-name "hotec.info"; option domain-name-servers 40.175.42.254, 40.175.42.253; option netbios-name-servers 192.168.1.100;

KHOA CÔNG NGHỆ THÔNG TIN 53 Chương 2: Triển khai hạ tầng mạng # option ipforwarding off; default-lease-time 21600; max-lease-time 43200; option time-offset -18000; # option ntp-servers 192.168.1.1; # option netbios-name-servers 192.168.1.1; # option netbios-node-type 2; host ns2 { next-server ns2.your-domain.com; hardware ethernet 00:02:c3:d0:e5:83; fixed-address 40.175.42.254; } host laser-printer-lex1 { hardware ethernet 08:00:2b:4c:a3:82; fixed-address 192.168.1.120; } } Thông tin cấu hình được áp dụng với subnet 192.168.1.0/255.255.255.0

- range: ấn định giới hạn địa chỉ ip cung cấp cho các client. Bạn có thể ấn định nhiều giải địa chỉ ip trong cùng một subnet mask ở đây. - option subnet mask: ấn định giá trị subnet mask mặc định được sử dụng bởi DHCP client - option broadcast-address: ấn định giá trị địa chỉ broadcast mặc định được sử dụng bởi DHCP Client. - option routers: ấn định địa chỉ routers được sử dụng bởi DHCP client - option domain-name-servers: ấn định địa chỉ DNS server cho DHCP Client - option netbios-name-servers: ấn định địa chỉ WINS server - option ipforwarding off: không cho phép các dhcp request được phép forward qua máy DHCP server (máy dhcp server co nhiều card mạng ). - default-lease-time và max-lease-time: ấn định khoảng thời gian (tính theo giây) máy client có thể giữ địa chỉ ip

KHOA CÔNG NGHỆ THÔNG TIN 54 Chương 2: Triển khai hạ tầng mạng 2.3.1.4 DHCP log file Hoạt động cấp phát địa chỉ ip và thông tin cấu hình mạng của dhcp server sẽ được ghi log vào file /var/lib/dhcp/dhcpd.leases (lease database) để dùng trong những trường hợp service restart hay system reboot nó sẽ vẫn biết được những thông tin cấu hình mà nó đã cấp phát cho client, đảm bảo hệ thống vẫn làm việc bình thường. Khi DHCP Server chạy lần đầu nó sẽ không có file này, bạn có thể đơn giản tạo một file dhcp.leases trống . Những mục log trong file này có dạng: lease ip-address { statements... } ví dụ: lease 192.168.1.128 { starts 2 2004/12/01 20:07:05; ends 3 2004/12/02 08:07:05; hardware ethernet 00:00:e8:4a:2c:5c; uid 01:00:00:e8:4c:5d:31; client-hostname "Node1"; } Có nghĩa là máy client có tên host là Note 1, địa chỉ MAC 00:00:e8:4a:2c:5c đã được cấp địa chỉ ip là 192.168.1.128 trong khoảng thời gian 2004/12/01 20:07:05 đến 2004/12/02 08:07:05. Với mục đích giới hạn kích thước file “lease database” sau một khoảng thời gian nó sẽ được đổi tên thành /var/lib/dhcp/dhcpd.leases~ và một file /var/lib/dhcp/dhcpd.leases mới sẽ được tạo Với những mạng LAN được phân cách bởi router bạn phải config để router cho phép relay những DHCP request. Tương tự như những dịch vụ bạn có thể sử dụng DHCP thông qua script khởi động của nó. /etc/init.d/dhcpd start|stop|status|... Hoặc: service dhcpd start/stop/restart/status/…. 2.3.1.5 Quy trình cài đặt và cấu hình dhcp Thường thì dịch vụ này đã được setup khi ta cài đặt OS linux theo chuẩn server. Nếu hệ điều hành chưa cài đặt dịch vụ DHCP thì ta phải download gói cài đặt dạng

KHOA CÔNG NGHỆ THÔNG TIN 55 Chương 2: Triển khai hạ tầng mạng rpm về sử dụng. Hoặc sử dụng gói có sẵn trong đĩa cài đặt thư mục Centos version dhcp-3.0.1rc14-1.i386.rpm. Giả dụ tôi sử dụng gói cài đặt trong đĩa vài đặt thì sẽ có các bước sau: mkdir /media/cdrom # tạo thư mục sẽ mmount tới cdrom mount /dev/cdrom /media/cdrom # mount cdrom vào thư mục vừa tạo cd /media/cdrom/Centos/ # chuyển vào thư mục chứa các gói cài đặt Cuối cùng là cài đặt gói dhcpd #rpm -ivh dhcp-3.0.1rc14-1.i386.rpm Sau khi hoàn tất xong quá trình cài đặt, bật dịch vụ DHCP lên, nó tự động đọc tập tin /etc/dhcpd.conf, nhưng theo mặc định gói cài đặt này không tự tạo ra file /etc/dhcpd.conf. Mà chúng ta sẽ tạo và cấu hình để dịch vụ này có thể hoạt động theo ý muốn của chúng ta. Thường thì tập tin này ta copy từ tập tin /usr/share/doc/dhcp-x.x.x/dhcpd.conf.sample Sử dụng lệnh sau: cp /usr/share/doc/dhclient- 3.0.1/dhclient.conf.sample /etc/dhcpd.conf Soạn hoặc copy chỉnh sữa file cấu hình /etc/dhcpd.conf : # tắt chế độ auto update ddns-update-style interim; ignore client-updates; subnet 192.168.0.0 netmask 255.255.255.0 { #KHAI BÁO SUBNET MỚI BẰNG CÁCH COPY NGUYÊN ĐOẠN TRONG DẤU KÉP NÀY # Khai báo default gateway option routers 192.168.0.1; #TÙY CHỌN NẾU TRONG MÁY CÓ GATEWAY # Khai báo subnet mask option subnet-mask 255.255.255.0;

KHOA CÔNG NGHỆ THÔNG TIN 56 Chương 2: Triển khai hạ tầng mạng option nis-domain “domain.org”; #TÙY CHỌN TÊN MIỀN CHỨNG THỰC option domain-name “domain.org”; # Khai báo Domain option domain-name-servers 192.168.1.1; # Khai báo Dns server option time-offset -18000; # Eastern Standard Time option ntp-servers 192.168.1.1; option netbios-name-servers 192.168.1.1; option netbios-node-type 2; # Khai báo dãy IP cấp phát range dynamic-bootp 192.168.0.128 192.168.0.254; # Thời gian sống của mỗi IP được cấp default-lease-time 21600; max-lease-time 43200; # Phần dưới dành cho cấu hình cấp phát IP tĩnh cho một số máy nhất định sẽ giải thích bên dưới host ns { next-server marvin.redhat.com; hardware ethernet 12:34:56:78:AB:CD; fixed-address 207.175.42.254; } } Sau khi chỉnh sữa trong file cấu hình ta phải khởi động lại dịch vụ: /etc/rc.d/init.d/dhcpd restart Hay service dhcpd restart Cho phép DHCP tự động khởi động khi boot : chkconfig dhcpd on Quay lại vấn đề hỗi này tôi chưa giải thích ở đoạn cuối cấu hình dhcpd.conf 2.3.2 Multi Subnet Trường hợp một máy chủ DHCP cung cấp IP cho nhiều mạng kết nối với một server hoặc cấp IP xuyên qua một router đến một mạng khác ta phải cấu hình nhiều subnet trong file cấu hình dhcp.conf. Một mẫu cấu hình như sau: KHOA CÔNG NGHỆ THÔNG TIN 57 Chương 2: Triển khai hạ tầng mạng default-lease-time 600; max-lease-time 7200; subnet 10.0.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 10.0.0.1; range 10.0.0.5 10.0.0.15; } subnet 172.16.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 172.16.0.1; range 172.16.0.5 172.16.0.15; } Tất cả các cấu hình của từng Subnet trên một Multi Subnet đều có cấu trúc của một Subnet. Mô hình 3 nhánh mạng:

GW: 10.10.30.3 255.255.255.0

IP: 192.168.10.254 .3 PC3 GW: 192.168.10.1 GW: 172.16.20.2 SN: 255.255.255.0 Auto GW: 192.168.10.1 255.255.255.0 255.255.255.0 DNS: 192.168.10.254

.1 .2

.254

ROUTER Server PC2 PC1 Auto DC, DNS Auto DHCP

Hình 2.28-Mô hình 3 nhành mạng cấp xuyên Router Máy chủ DHCP nằm ở nhánh mạng có net_id: 192.168.10.0/24 cấp IP cho 3 nhánh mạng 192.168.10.0, 172.16.20.0 và 10.10.30.0 (/24). Vậy cơ sở dữ liệu cấu hình được khai báo gồm 3 subnet. Ví dụ một file cấu hình dhcpd.conf cấp IP cho 3 mạng như sau:

# Network_1: 192.168.10.0/24 subnet 192.168.10.0 netmask 255.255.255.0 {

KHOA CÔNG NGHỆ THÔNG TIN 58 Chương 2: Triển khai hạ tầng mạng option routers 192.168.10.1;#GW option subnet-mask 255.255.255.0; option domain-name-servers 192.168.10.254; option time-offset -18000; range dynamic-bootp 192.168.10.100 192.168.10.200; default-lease-time 21600; max-lease-time 43200; }

# Network_2: 172.16.20.0/24 subnet 172.16.20.0 netmask 255.255.255.0 { option routers 172.16.20.2;#GW option subnet-mask 255.255.255.0; option domain-name-servers 192.168.10.254; option time-offset -18000; range dynamic-bootp 172.16.20.51 172.16.20.150; default-lease-time 21600; max-lease-time 43200; }

#Network_3 subnet 10.10.30.0 netmask 255.255.255.0 { option routers 10.10.30.3;#GW option subnet-mask 255.255.255.0; option domain-name-servers 192.168.10.254; option time-offset -18000; range dynamic-bootp 10.10.30.100 10.10.30.200; default-lease-time 21600;

KHOA CÔNG NGHỆ THÔNG TIN 59 Chương 2: Triển khai hạ tầng mạng max-lease-time 43200; } Hoạt động:

- Khi một máy trong mạng xin IP nó sẽ broadcast trên toàn mạng để mong nhận được câu trả lời từ DHCP Server. Nhánh 192.168.10.0/24 nằm cùng mạng với máy chủ DHCP nên sẽ tìm thấy máy chủ và xin được IP - Nhánh 172.16.20. và 10.20.30. nằm ngoài đường mạng thì phải qua một đơn vị đại diện xin cấp phát IP. Đơn vị này sẽ nhận yêu cầu và chuyển yêu cầu đó đến Server DHCP chỉ định và đúng đường mạng mà máy yêu cầu gởi đến. Một DHCP multi subnet thường trang bị cho các mạng có nhiều nhánh và liên lạc với nhau thông qua router có dhcp relay agent 2.3.3 IP reservation 2.3.3.1 Địa chỉ DHCP dành sẵn là gì? Địa chỉ IP dành sẵn là một dải địa chỉ IP được gán cố định. Nó là dải địa chỉ IP được tạo ra trong một phạm vi (scope) dành riêng, dải địa chỉ IP dành riêng này được dùng để gàn cho các máy Client (Chúng là các địa chỉ IP tĩnh trong mạng được gán cho các máy client). Một dải địa chỉ IP dành sẵn bao gồm có các thông tin sau

- Reservation Name: Là tên được gán bởi nhà quản trị. - IP Address: Là phạm vi dải địa chỉ IP được gán cho các máy Client. - MAC Address: Là địa chỉ MAC của mỗi thiết bị mà bạn muốn dành sẵn một địa chỉ IP cho nó. - Description: Những mô tả do nhà quản trị đưa ra. - Supported Type:Kiểu hỗ trợ này có thế là: DHCP dành sẵn, BOOTP dành sẵn, hoặc cả hai. 2.3.3.2 Cấu hình IP dành riêng: Vị trí đặt IP dành riêng nằm sau các options trong một subnet (scope) theo cấu trúc mô tả ở trên. host ns2 { (1) next-server ns2.hotec.info; (2) hardware ethernet 00:02:c3:d0:e5:83; (3) fixed-address 172.16.10.254; (4)

KHOA CÔNG NGHỆ THÔNG TIN 60 Chương 2: Triển khai hạ tầng mạng } Giải thích cấu trúc khai báo IP dành sẵn:

- Dòng (1): khai báo tên của máy có IP dành riêng, hay còn gọi là tên của vùng khai báo IP dành sẵn. thường khai báo gợi nhớ bằng tên máy được gán IP. - Dòng (2): khai báo tên FQDN của máy được gán IP - Dòng (3): ghi nhận địa chỉ MAC của máy cần gán IP dành sẵn - Dòng (4): xác định địa chỉ IP gán cho MAC tương ứng ở dòng (3) Ví dụ trên cho biết: Ấn định máy có địa chỉ MAC là 00:02:c3:d0:e5:83 sẽ có địa chỉ ip là 172.16.10.254. Như vậy máy này sẽ luôn được gán IP 172.16.10.254 mỗi khi nó yêu cầu IP. host laser-printer-lex1 { hardware ethernet 08:00:2b:4c:a3:82; fixed-address 192.168.1.120; } Ấn định cho máy in có địa chỉ MAC 08:00:2b:4c:a3:82 sẽ có địa chỉ ip là 192.168.1.120.

2.3.4 DHCP relay Agent 2.3.4.1 Giới thiệu: DHCP Relay Agent là bộ trung chuyển DHCP Discover/DHCP Request đến DHCP Server. DHCP Relay Agent cho phép forward các truy vấn của Client đến DHCP server và trả lại IP cho Clients (làm nhiệm vụ như Proxy). Trong trường hợp Client và DHCP Server không nằm cùng subnet và được kết nối qua bộ định tuyến (router) thì cần phải có giải pháp cho phép truy vấn từ Client vượt qua router để đến DHCP Server (như bạn biết thì Router sẽ chặn các gói tin Broadcast, mà gói tin DHCP Discovery được gửi lúc đầu bởi Client lại là thuộc dạng Broadcast). Trong trường hợp này, DHCP Relay Agent (tác nhân chuyển tiếp DHCP) được sử dụng. DHCP Relay Agent là một thực thể trung gian cho phép chuyển tiếp (relay) các DHCP Discover (hoặc DHCP Request), mà thường bị chặn ở ngay router, từ DHCP Client đến DHCP Server. 2.3.4.2 Mô hình: Trong bài này, mình sử dụng mô hình đơn giản. Bao gồm: 1 DHCP Server, 1 DHCP Relay Anget, 2 máy Client thuộc 2 Subnet khác nhau cần xin IP. Mô hình như hình đưới đây:

KHOA CÔNG NGHỆ THÔNG TIN 61 Chương 2: Triển khai hạ tầng mạng

Hình 2.29-Mô hình DHCP Relay Agent trên Router Trong bài này: DHCP Server và DHCP Relay Agent mình sử dụng hệ điều hành CentOS. Hai máy Client xin IP sử dụng hệ điều hành Windows. Dãy IP được cấp phát thuộc range: 172.16.1.2.100 → 172.16.2.200 và 172.16.3.100 → 172.16.200. 2.3.4.3 Định tuyến: Trước khi đi vào cấu hình DHCP, ta cần phải định tuyến trên DHCP Server, đảm bảo nó có thể liên lạc được với các mạng con kia sau khi cấp phát IP. Trên DHCP Server, tiến hành định tuyến tới các mạng con cần được cấp IP. Gõ lệnh: vi /etc/sysconfig/network-script/route-eth0 Đặt nội dung sau: 172.16.2.0/24 via 172.16.1.2 dev eth0 172.16.3.0/24 via 172.16.1.2 dev eth0 Lưu file và khởi động lại dịch vụ mạng. service network restart Gõ lệnh route để kiểm tra bảng định tuyến đã chứa các mạng cần cấp phát IP hay chưa.

Hình 2.30-Bảng định tuyến Để biết thêm về định tuyến tĩnh, các bạn có thể tham khảo bài Cấu hình định tuyến tĩnh trong Linux .

KHOA CÔNG NGHỆ THÔNG TIN 62 Chương 2: Triển khai hạ tầng mạng 2.3.4.4 Cài đặt và cấu hình DHCP Server: Trên máy đóng vai trò là DHCP Server. Cài đặt dịch vụ dhcp Gõ lệnh: yum -y install dhcp Quá trình cài đặt tự động diễn ra. Sau khi hoàn tất, tiến hành cấu hình cho DHCP Server. Nội dung cấu hình chính nằm ở file dhcpd.conf Gõ lệnh: vi /etc/dhcpd.conf Thêm vào các mạng con và địa chỉ IP, SM, DNS,…: # Mạng 1 subnet 172.16.1.0 netmask 255.255.255.0 { option routers 172.16.1.1; option subnet-mask 255.255.255.0; option domain-name-servers 8.8.8.8; option time-offset -18000; range dynamic-bootp 172.16.1.100 172.16.1.200; default-lease-time 21600; max-lease-time 43200; } # Mạng 2 subnet 172.16.2.0 netmask 255.255.255.0 { option routers 172.16.2.1; option subnet-mask 255.255.255.0; option domain-name-servers 8.8.8.8; option time-offset -18000; range dynamic-bootp 172.16.2.100 172.16.2.200; default-lease-time 21600; max-lease-time 43200; } #Mạng 3 subnet 172.16.3.0 netmask 255.255.255.0 { option routers 172.16.3.1; option subnet-mask 255.255.255.0; option domain-name-servers 8.8.8.8;

KHOA CÔNG NGHỆ THÔNG TIN 63 Chương 2: Triển khai hạ tầng mạng option time-offset -18000; range dynamic-bootp 172.16.3.100 172.16.3.200; default-lease-time 21600; max-lease-time 43200; } Cấu hình file dhcpd.conf như trên cũng tương tự như việc tạo ra nhiều Scope trên dịch vụ DHCP của Windows Server vậy . Sau khi cấu hình xong ta khởi động dịch vụ dhcpd lên. Gõ lệnh: service dhcpd start 2.3.4.5 Cài đặt và cấu hình DHCP Relay Agent: Trên máy đóng vai trò là DHCP Relay Agent, ta cũng cài dịch vụ dhcp. Gõ lệnh: yum –y install dhcp Sau khi cài đặt xong, cấu hình DHCP Relay Agent bằng file dhcrelay. Nhập vào câu lệnh: vi /etc/sysconfig/dhcrelay Thêm nội dung như sau: INTERFACES="eth0 eth1 eth2" //ethx cuối cùng là card mạng nối với máy dhcp server. DHCPSERVERS="172.16.1.1" //ip của server Trong đó:

- INTERFACES: khai báo các card mạng nối với DHCP Server và với các Subnet cần xin IP. - DHCPSERVERS: khai báo địa chỉ IP của DHCP Server. Lưu cấu hình lại khởi động dịch vụ dhcrelay lên. Gõ lệnh: service dhcrelay start 2.3.4.6 Client xin IP từ DHCP Server: Client ở đây mình sử dụng hệ điều hành Windows. Tiến hành thiết đặt nhận IP ở chế độ tự động (trên Windows là: Optain an IP address automatically). Để nhận IP ngay. Vào RUN → CMD Nhập lệnh tại dấu nhắc ipconfig /release ipconfig /renew Kiểm tra trên các máy Client

KHOA CÔNG NGHỆ THÔNG TIN 64 Chương 2: Triển khai hạ tầng mạng Trên máy Client 1:

Hình 2.31-Máy Client 1 nhận IP từ Server Trên máy Client 2:

Hình 2.32-Máy Client2 nhận IP từ Serve Cấu hình DHCP Server và DHCP Relay Agent cấp phát IP cho 2 mạng con thành công. Tương tự cho mạng 3. Kiểm thử ping từ Client 1 qua Client2 và ngược lại 2.4 Bài tập áp dụng chương 2 2.4.1 Câu hỏi lý thuyết 1. Trình bày cú pháp câu lệnh định tuyến tĩnh? Áp dụng định tuyến tĩnh cho 2 nhánh mạng 172.16.10.0/24 với Gateway 172.16.10.1 và 192.168.10.0/24 với Gateway 192.168.10.1

KHOA CÔNG NGHỆ THÔNG TIN 65 Chương 2: Triển khai hạ tầng mạng 2. Nêu quy trình định tuyến động bằng phần mềm Quagga gồm các bước: Cài đặt, cấu hình trên file, khởi động dịch vụ, đăng nhập router và ra lệnh định tuyến? 3. Định nghĩa DHCP và nêu quy trình vấn đáp trong quá trình xin cấp phát IP trên một subnet. Hãy viết cấu trúc của một Subnet và giải thích các thông số. 4. Vai trò của DHCP Relay Agent? Mô tả quy trình hoạt động của Relay Agent trên mạng? 5. Điều kiện để DHCP Relay Agent hoạt động trong liên mạng. Trình bày file cấu hình relay agent trên router và giải thích các thông số? 2.4.2 Bài tập thực hành Cho mô hình mạng như sau:

GW: 10.10.30.4 255.255.255.0

IP: 192.168.10.254 .4 PC4 GW: 192.168.10.3 GW: 172.16.20.2 SN: 255.255.255.0 Auto GW: 192.168.10.3 255.255.255.0 255.255.255.0 DNS: 192.168.10.254

.3 .2

.254 ROUTER

DC1 PC3 PC2 Auto DC, DNS Auto DHCP 1. Cài đặt và cấu hình dịch vụ DNS trên máy Server DC1 a. Phân giải tên miền hotec.vn b. Phân giải IP của máy server 2. Cấu hình định tuyến ip route cho máy ROUTER a. Chỉ đường cho nhánh vmnet4 b. Chỉ đường cho nhánh vmnet3 3. Hãy tiến hành cài đặt DHCP cho máy DC1 4. Cấu hình dhcpd: Tạo 3 subnet cấp cho 3 nhánh mạng a. Nhánh vmnet2: IP từ 21 đến 100 b. Nhánh vmnet3: IP từ 51 đến 150 c. Nhánh vmnet4: IP từ 131 đến 220

KHOA CÔNG NGHỆ THÔNG TIN 66 Chương 2: Triển khai hạ tầng mạng d. Tất cả các đường mạng có GW chỉ về IP trên router và DNS chỉ về máy DC1 có dịch vụ DHCP. 5. Khởi động dịch vụ dhcpd trên máy DC1 6. Cài đặt dhcp và cấu hình relay agent chỉ Destination về máy server DC1. 7. Cho các máy Client1, Client2, Client3 nhận IP 8. Kiểm tra ip đã nhận và ping qua lại giữa các máy PC

KHOA CÔNG NGHỆ THÔNG TIN 67 Chương 3: Web-Mail-FTP CHƯƠNG 3. WEB-MAIL-FTP

➢ Giới thiệu chương: Ngày nay, hầu hết các máy in đều được kết nối trực tiếp vào mạng, các cổng song song đã không còn tồn tại như trước kia. Khi phần cứng máy in thay đổi thì các tính năng quản lý máy in có trong máy chủ Windows cũng thay đổi theo. Mặc dù vậy không phải tất cả các thay đổi trong Windows đều do vấn đề phần cứng của máy in thay đổi mà sự thực Microsoft đã thực hiện một số thay đổi rất có giá trị để tạo sự dễ dàng hơn trong việc quản lý máy in. Khi Microsoft tạo Windows Server 2008, họ đã thiết kế lại giao diện quản lý máy in nhằm giúp việc quản lý trở nên dễ hơn. Trong chương này, tôi sẽ giới thiệu cho các bạn giao diện mới đó và cách sử dụng nó như thế nào trong việc quản lý máy in. ➢ Mục tiêu chương:

- Chương này nhằm cung cấp cho sinh viên trình bày được kiến thức về dịch vụ in ấn qua mạng cũng như quản lý, cấp quyền sử dụng máy in mạng. - Cài đặt được máy in mạng, dịch vụ in trên mạng và quản trị máy in trên Domain. - Phần quyền máy in phù hợp với nhu cầu in ấn của các phòng ban.

KHOA CÔNG NGHỆ THÔNG TIN Trang 68 Chương 3: Web – Mail - FTP 3.1 Dịch vụ mail 3.1.1 Cài đặt và cấu hình Mail server Zimbra 3.1.1.1 Chuẩn bị Trước tiên bạn muốn tạo một email server yêu cầu bạn cần có một VPS có IP public và một domain name. Sơ lược cấu hình hệ thống máy chủ mail

- OS: CentOS 7 - IP: 203.162.79.139 - RAM: 4GB - DISK: 100GB - Domain name sử dụng: hotec.vn 3.1.1.2 Bước 1: Thiết lập bản ghi DNS Truy cập vào trang ZoneDNS để thiết lập các bản ghi mail A 203.162.79.139 autodiscover CNAME mail.hotec.vn. autoconfig CNAME mail.hotec.vn. @ MX mail.hotec.vn. 10

3.1.1.3 Bước 2: Chuẩn bị môi trường trên máy chủ mail# Update yum update -y ; reboot Sửa hostname hostnamectl set-hostname "mail.hotec.vn" exec bash Sửa file /etc/hosts vim /etc/hosts 203.162.79.139 mail.hotec.vn mail Kiểm tra xem có dịch vụ nào đang sử dụng port mà zimbra sử dụng không bằng cách Nếu chưa cài đặt netstat yum -y install net-tools

KHOA CÔNG NGHỆ THÔNG TIN 69 Chương 3: Web – Mail - FTP netstat -tulpn | grep -E -w '25|80|110|143|443|465|587|993|995|5222|5223|9071|7071' Nếu có service nào đang chạy trên các port trên thì tìm tách tắt đi hoặc thay thế Nếu chưa có dig thực hiện cài đặt yum install bind-utils Kiểm tra lại bản ghi dig -t A mail.hotec.vn dig -t MX hotec.vn 3.1.1.4 Bước 3: Cài đặt Zimbra# Cài đặt packages cần thiết yum install unzip net-tools sysstat openssh- clients perl-core libaio nmap-ncat libstdc++.so.6 wget -y Tải và giải nén zimbra mkdir zimbra && cd zimbra wget https://files.zimbra.com/downloads/8.8.10_GA/zcs- 8.8.10_GA_3039.RHEL7_64.20180928094617.tgz --no- check-certificate Nếu chưa có wget thực hiện: yum install wget -y Cài đặt zimbra tar zxpvf zcs- 8.8.10_GA_3039.RHEL7_64.20180928094617.tgz cd zcs-8.8.10_GA_3039.RHEL7_64.20180928094617 ./install.sh Chon Y

KHOA CÔNG NGHỆ THÔNG TIN 70 Chương 3: Web – Mail - FTP

Hình 3.1-Cài đặt Zimbra trên hệ thống Chọn Y Use Zimbra's package repository [Y] Y Cài đặt tất cả package

KHOA CÔNG NGHỆ THÔNG TIN 71 Chương 3: Web – Mail - FTP

Hình 3.2-Chọn các gói để cài đặt Sau khi nhấn Y, nó sẽ tải xuống các gói liên quan đến Zimbra và có thể mất thời gian tùy thuộc vào tốc độ internet của bạn. The system will be modified. Continue? [N] Y Khai báo domain. Chỗ này bạn sẽ create lại tên domain. Sửa lại như hình sau:

Hình 3.3-Khai báo ban đầu cho mail server Enter để tiếp tục Chọn số 7 sau đó chọn số 4 để thiết lập tài khoản admin Chọn r để xem lại cài đặt, chọn a để lưu thay đổi Select, or 'r' for previous menu [r] r

KHOA CÔNG NGHỆ THÔNG TIN 72 Chương 3: Web – Mail - FTP Main menu 1) Common Configuration: 2) zimbra-ldap: Enabled 3) zimbra-logger: Enabled 4) zimbra-mta: Enabled 5) zimbra-dnscache: Enabled 6) zimbra-snmp: Enabled 7) zimbra-store: Enabled 8) zimbra-spell: Enabled 9) zimbra-proxy: Enabled 10) zimbra-imapd: Enabled 11) Default Class of Service Configuration: s) Save config to file x) Expand menu q) Quit

*** CONFIGURATION COMPLETE - press 'a' to apply Select from menu, or press 'a' to apply config (? - help) a Save configuration data to a file? [Yes] Yes Hoàn tất việc cài đặt Save configuration data to a file? [Yes] Yes Save config in file: [/opt/zimbra/config.27612] /opt/zimbra/config.27612 Saving config in /opt/zimbra/config.27612...done. The system will be modified - continue? [No] Yes ...... Notify Zimbra of your installation? [Yes] Yes .

KHOA CÔNG NGHỆ THÔNG TIN 73 Chương 3: Web – Mail - FTP . . Notification complete

Checking if the NG started running...done. Setting up zimbra crontab...done.

Moving /tmp/zmsetup.20190405-035429.log to /opt/zimbra/log

Configuration complete - press return to exit Mở firewall-cmd --permanent --add- port={25,80,110,143,443,465,587,993,995,5222,5223,9071,7071}/tcp firewall-cmd --reload 3.1.1.5 Bước 4: Thiết lập các bản ghi DKIM, DMARC Trên VPS sử dụng user zimbra thực hiện lệnh sau để tạo DKIM cho domain [zimbra@mail ~]$ /opt/zimbra/libexec/zmdkimkeyutil -a -d hotec.vn DKIM Public signature: 9311B7B2-5781-11E9-8428-2F9914CF09B1._domainkey IN TXT ( "v=DKIM1; k=rsa; "

"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoKi5rux utL2K+9sJ1g7ZqeaQrQHK+lKo99eEvEcpBWVNx2PHgfHJAo449i4xFMpu ZO0pGeewSnxIV773FskUdoiqHVytOejniZ0cV6IrlEJiBg/t5DYRzA4YRe5G Vz6Ije3zastUfxAZxxzWqQpS2jeoLUVoUR259Fc2cWamdp4bqmcX7pltL5 WAsEyjr0ooxYqNAolv4dxjN/"

"h5oyXeVDL3K7Xk/sjbgFCJYQIkBvjv0VOcos8X6DqYAzZHUzYT8mpK KrInaYGxU9KzU3BkqNZTOFaSV7iIk0yYvKOyxzGBWcb4EwtEqz89t+In YVYCd5WQWIW8iG5ivjpPjaxSwQIDAQAB") ; ----- DKIM key 9311B7B2-5781-11E9-8428-2F9914CF09B1 for hotec.vn

KHOA CÔNG NGHỆ THÔNG TIN 74 Chương 3: Web – Mail - FTP Truy cập lại trang zonedns khai báo các bản ghi còn lại v=DMARC1; p=reject; _dmarc TXT rua=mailto:[email protected] @ TXT v=spf1 mx ~all 9311B7B2-5781-11E9-8428- TXT Giá trị như trong () 2F9914CF09B1._domainkey Xem cụ thể hơn ở ảnh sau:

Hình 3.4-Xem License của Zimbra 3.1.1.6 Bước 5: Truy cập vào side admin Truy cập vào địa chỉ https://mail.hotec.vn:7071

Hình 3.5-Truy cập mail Zimbra qua giao diện web

KHOA CÔNG NGHỆ THÔNG TIN 75 Chương 3: Web – Mail - FTP 3.1.1.7 Bước 6: Thiết lập SSL 3.1.1.8 Kết quả Gửi mail từ email server của mình tới gmail

Hình 3.6-Mail được gửi từ zimbra ra ngoài Gmail 3.1.2 Anti spam, anti virus Phần này mô tả cách sử dụng các công cụ mã nguồn mở trong Zimbra kết hợp với 2 dịch vụ ngăn chặn có phí để tạo nên giải pháp bảo vệ mail zimbra chi phí thấp và hiệu quả cao. Đối với các khách hàng có yêu cầu đặc biệt cao về các tiêu chuẩn cần tuân thủ, độ dự phòng cao, chống thất thoát dữ liệu, hay sao lưu dữ liệu thì Mimecast là một giải pháp hàng đầu. Hai nhà cung cấp dịch vụ danh sách ngăn chặn có phí thường được dùng là invaluement và uribl. Nhà cung cấp dịch vụ danh sách ngăn chặn miễn phí mà chúng tôi thường dùng là Barracuda (bạn cần đảm bảo đã đăng ký địa chỉ IP mail server của bạn trước khi sử dụng). Tuy nhiên đối phó với spam không chỉ là ngăn chặn các spam mail được gửi đến. Một chiến lược chống spam tốt còn phải đảm bảo rằng hệ thống mail và tên miền của bạn không là nguồn phát tán spam. Vì thế chúng tôi sẽ giới thiệu các giải pháp mà chúng tôi hay dùng trong bài viết này. Trên hết, chúng ta không thể xem nhẹ việc huấn luyên người dùng thường xuyên về ý thức đối phó với spam mail. Hệ thống chống spam sẽ không bao giờ là hoàn thiện, vì vậy người dùng cần được huấn luyện để nhận biết trước khi họ mở một email lạ. Cuối cùng, trong phần lớn trường hợp email hack mà chúng tôi biết, thì việc sử dụng xác thực 2 yếu tố có thể giúp ngăn chặn việc khai thác được triển khai, vì vậy chúng tôi khuyến cáo các khách hàng cần triển khai xác thực 2 yếu tố – nó không bất tiện hay khó sử dụng như hầu hết mọi người nghĩ. Để thiết lập một hệ thống chống spam tốt. Bạn cần kết hợp các bước sau:

KHOA CÔNG NGHỆ THÔNG TIN 76 Chương 3: Web – Mail - FTP 1. Cấu hình postscreen và postfix để chặn phần lớn các junk email mà không ảnh hưởng đến hiệu xuất zimbra server bởi vì ta chỉ thực hiện truy vấn DNS. 2. Thay đổi các mức ngưỡng điểm số spam tới mức chặn nhiều spam hơn mà không làm tăng false positive. 3. Cho phép Amavis cung cấp nhiều thông tin hơn khi tăng mức độ ghi log. 4. Gia tăng hiệu suất bằng việc sử dụng RAM disk. 5. Gia tăng độ chính xác bằng việc:

o Cho phép SpamAssassin tự cập nhật. o Cho phép ClamAV cập nhật thường xuyên hơn. Tùy biến điểm số SpamAssassin để loại bỏ false positive đặc biệt cho Zimbra Connector từ Outlook user. 6. Chi trả từ 1-4USD/mailbox/year để sử dụng dịch vụ từ 2 nhà cung cấp blacklist có phí. 3.1.3 Tích hợp Zimbra vào Active Directory Yêu cầu: 1. Sử dụng Windows Server 2012. 2. Active Directory được cấu hình với 4 tài khoản người dùng user1, user2, user3, user4 dùng để kiểm thử trong bài lab.

Hình 3.7-Hệ thống user trên domain quản lý qua RSAT 3. Click phải chuột trên từng user chọn Properties. Phải chắc rằng trên từng user phải có User Logon Name được cầu hình trong Account tab.

KHOA CÔNG NGHỆ THÔNG TIN 77 Chương 3: Web – Mail - FTP

Hình 3.8-Thuộc tính của tài khoản người dùng Login vào AdminUI và định vị đến vùng Configuration.

Hình 3.9-Cấu hình Zimbra quan giao diện đồ hoạ Click vào Domains phía bên trái để hiện ra các domain có sẵn bên phải màn hình. Click phải trên domain muốn cấu hình và chọn Configure Authentication option.

KHOA CÔNG NGHỆ THÔNG TIN 78 Chương 3: Web – Mail - FTP

Hình 3.10-Cấu hình tuỳ chọn Authentication Trên windows phía dưới, chọn External Active Directory.

Hình 3.11-Cài đặt External Active Directory Nhập vào tên domain và địa chỉ IP của domain.

Hình 3.12-chỉ định địa chỉ ldap cho việc tích hợp Zimbra Chuyển đến màn hình tiếp theo.

KHOA CÔNG NGHỆ THÔNG TIN 79 Chương 3: Web – Mail - FTP

Hình 3.13-Cài đặt External Active Directory Sau khi hoàn tất công việc cấu hình, chúng ta có thể thử nghiệm như sau:

Hình 3.14-Khai báo user chứng thực trên domain Đi tiếp qua 2 màn hình đầu tiên không đổi gì cả.

KHOA CÔNG NGHỆ THÔNG TIN 80 Chương 3: Web – Mail - FTP

Hình 3.15-Hai bước cuối cùng, bấm Finish kết thúc Để đồng bộ Zimbra với Active Directory, Chúng ta cần tạo các tài khoản có account names trong Zimbra với User trên Account trên Active Directory. Click vào nút Home button để trở lại Manage option. Click vào Manage như hình bên dưới để truy cập vào khu vực tài khoản người dùng.

Hình 3.16-Màn hình Manage Click nút góc trên bên phải màn hình, chọn New, để tạo user.

Hình 3.17-Tạo user mới

KHOA CÔNG NGHỆ THÔNG TIN 81 Chương 3: Web – Mail - FTP User muốn tạo phải cùng tên với user trên Active Directory. Tên domain nên được áp dụng trên Zimbra chứ không phải là Active Directory.

Hình 3.18-Khai báo user Nếu trượt thêm xuống các tuỳ chọn tiếp theo của màn hình tạo ta không thấy mục password. Bởi vì tài khoản này sẽ lấy password từ tài khoản cùng tên trong AD.

Hình 3.19-Hoàn tất quá trình tạo user Phần 3 Kiểm thử cấu hình. Để kiểm thử cấu hình trên, chúng ta sẽ đăng nhập với user mới nhất vừa tạo:

KHOA CÔNG NGHỆ THÔNG TIN 82 Chương 3: Web – Mail - FTP

Hình 3.20-Màn hình đăng nhập mail bằng user mới Nếu login vào được thì công việc cấu hình thành công

Hình 3.21-Màn hình mail Client Zimbra 3.2 Dịch vụ Web 3.2.1 Cài đặt và cấu hình apache 3.2.1.1 Giới thiệu dịch vụ Web Apache: Apache - Chương trình máy chủ HTTP là một chương trình dành cho máy chủ đối thoại qua giao thức HTTP. Apache chạy trên các hệ điều hành tương tự như Unix, , Novell Netware và các hệ điều hành khác. Apache đóng một vai trò quan trọng trong quà trình phát triển của mạng web thế giới. Khi được phát hành lần đầu, Apache là chương trình máy chủ mã nguồn mở duy nhất có khả năng cạnh tranh với chương trình máy chủ tương tự của Netscape Communications Corporation mà ngày nay được biết đến qua tên thương mại Sun Java System Web Server. Từ đó trở đi, Apache đã không ngừng tiến triển và trở thành một phần mềm có sức cạnh tranh mạnh so với các chưong trình máy chủ khác về mặt hiệu suất và tính nãng phong phú. Từ tháng 4 nãm 1996, Apache trở thành một chương trình máy chủ HTTP thông dụng nhất. Hơn nữa, Apache thường được dùng để so sánh với các phần mềm khác có chức năng tương tự. Tính đến tháng 1 năm 2007 thì Apache chiếm đến 60% thị trường các chưong trình phân phối trang web.

KHOA CÔNG NGHỆ THÔNG TIN 83 Chương 3: Web – Mail - FTP Apache được phát triển và duy trì bở một cộng đồng mã nguồn mở dưới sự bảo trợ của Apache Software Foundation. Apache được phát hành với giấy phép Apache License và là một phần mềm tự do và miễn phí. 3.2.1.2 2. Chuẩn bị - Đặt IP - Đặt hostname: serverX.ptecX.net - Tắt firewall, SELinux - Cấu hình máy là một Primary Name Server cho domain ptecX.net sao cho www.ptecX.net có IP chính là Dns Server. 3.2.1.3 Cấu hình - Đặt IP (192.168.x.106) #vi /etc/sysconfig/network-scripts/ifcfg-eth0 - Đặt hostname (serverX.ptecX.net) #vi /etc/sysconfig/network #vi /etc/hosts - File cấu hình #cp /usr/share/doc/bind-*/sample/etc/name.conf /var/named/chroot/etc #vi /var/named/chroot/etc/named.conf Nội dung: zone "ptecX.net" { type master; file "ptecX.db"; }; zone "9.168.192.in-addr-arpa" { type master; file "192.168.9.db"; }; - Tạo file database nghịch vi /var/named/chroot/var/named/192.168.9.db Nội dung: $TTL 86400

KHOA CÔNG NGHỆ THÔNG TIN 84 Chương 3: Web – Mail - FTP @ IN SOA serverX.ptecX.net. root.ptecX.net. ( 2009062001 3H 15M 1W 1D ) IN NS serverX.ptecX.net 106 IN PTR serverX.ptecX.net. 106 IN PTR www.ptecX.net. - Tạo file database thuận vi /var/named/chroot/var/named/ptecX.db Nội dung: $TTL 86400 @ IN SOA serverX.ptecX.net. root.ptecX.net. ( 2009062001 3H 15M 1W 1D ) IN NS serverX.ptecX.net serverX IN A 192.168.x.106 www IN A 192.168.x.106 3.2.1.4 Cấu hình một số tuỳ chọn - Kiểm tra gói httpd (cài đặt nếu chưa có) #rpm -qa httpd - start dịch vụ httpd #service httpd start - Kiểm tra Server có mở port 80/tcp chưa? #netstat -ltn - Truy cập vào web (xuất hiện màn hình default apache)

KHOA CÔNG NGHỆ THÔNG TIN 85 Chương 3: Web – Mail - FTP www.ptecX.net File cấu hình httpd: /etc/httpd/conf/httpd.conf 3.2.1.4.1 Cấu hình Server listen port 8000 thay vì port 80 - Sửa dòng 134 của file cấu hình: Listen 8000 - restart dịch vụ #service httpd restart - Kiểm tra Mở trình duyệt nhập:www.ptecX.net:8000 3.2.1.4.2 . Cấu hình email của user quản trị Web Server là [email protected] - Cấu hình dòng 251 file cấu hình: ServerAdmin [email protected] - restart dịch vụ #service httpd restart 3.2.1.4.3 . Đặt tên cho Website chính là www.ptecX.net - Cấu hình dòng 265, file cấu hình: ServerName www.ptecX.net:8000 - restart dịch vụ #service httpd restart - Tạo file với nội dung bất kỳ #vi /var/www/html/index.html - Mở trình duyệt kiểm tra. 3.2.1.4.4 Cấu hình thư mục chứa Website là /data/web - Tạo thư mục #mkdir /data #mkdir /data/web - Tạo file với nội dung bất kỳ #vi /data/web/index.html - Cấu hình dòng 281 trong file cấu hình DocumentRoot "/data/web" - restart dịch vụ

KHOA CÔNG NGHỆ THÔNG TIN 86 Chương 3: Web – Mail - FTP #service httpd restart 3.2.1.4.5 Cấu hình Apache sao cho khi truy cập Website , file home.html sẽ được load đầu tiên. - Cấu hình dòng 391 file cấu hình DirectoryIndex home.html - restart dịch vụ #service httpd restart 3.2.1.4.6 Xem log của httpd - Error log: #tail -f /var/log/httpd/error_log - Access log: #tail -f /var/log/httpd/access_log 3.2.2 Cấu hình nhiều alias Yêu cầu: Cấu hình Server sao cho khi truy cập www.ptecX.net/soft/ sẽ truy xuất vào thư mục /chiase/soft - Thêm vào cuối file cấu hình dòng sau: Alias /soft/ "/chiase/soft/" - Tạo file /chiase/soft/index.html - restart dịch vụ #service httpd restart - Kiểm tra: truy cập www.ptecX.net/soft/ 3.2.3 Cấu hình máy chủ hosting Thực hiện cấu hình chứng thực cho thư mục /chiase/soft trên máy chủ Apache để các máy client truy cập bằng link www.ptecX.net/soft và phải có tài khoảng httpd riêng mới có thể truy cập được. Yêu cầu: Cấu hình Web Server sao cho chỉ có user hv1, hv2 được phép truy xuất vào www.ptecX.net/soft - Thêm vào cuối file cấu hình đoạn sau: AuthType Basic AuthName "Chung thuc nguoi dung" AuthUserFile /etc/httpd/conf/htpasswd Require user hv1 hv2

KHOA CÔNG NGHỆ THÔNG TIN 87 Chương 3: Web – Mail - FTP

- Tạo user và passwd chứng thực cho web #htpasswd -c /etc/httpd/conf/htpasswd hv1 #htpasswd /etc/httpd/conf/htpasswd hv2 - Lưu ý: Dòng lệnh đầu tiên chỉ được phép chạy một lần duy nhất! - restart dịch vu #service httpd restart - Kiểm tra: truy cập vào www.ptecX.net/soft/ với các user vừa tạo. 3.2.4 Cấu hình chứng thực web 3.2.4.1 Cấu hình Hosting - Cấu hình Web Server Hosting 2 Website www.ptecX.net www.linux.com - Cấu hình Dns Server chịu trách nhiệm phân giải 2 record sau www.ptecX.net www.linux.com - Tạo 2 file database thuận là ptecX.db và rolesX.db vi /var/named/chroot/var/named/ptecX.db Nội dung: $TTL 86400 @ IN SOA serverX.ptecX.net. root.ptecX.net. ( 2009062001 3H 15M 1W 1D ) IN NS serverX.ptecX.net serverX IN A 192.168.x.106 www IN A 192.168.x.106 vi /var/named/chroot/var/named/rolesX.db Nội dung:

KHOA CÔNG NGHỆ THÔNG TIN 88 Chương 3: Web – Mail - FTP $TTL 86400 @ IN SOA serverX.rolesX.com. root.rolesX.com. ( 2009062001 3H 15M 1W 1D ) IN NS serverX.rolesX.com serverX IN A 192.168.x.106 www IN A 192.168.x.106 - Chỉnh sửa file cấu hình #vi /var/named/chroot/etc/named.conf Nội dung: zone "ptecX.net" { type master; file "ptecX.db"; }; zone "x.168.192.in-addr-arpa" { type master; file "192.168.x.db"; }; zone "rolesX.com" { type master; file "rolesX.db"; }; - Chỉnh sửa dòng 972 file cấu hình NameVirtualHost 192.168.x.106:80 - thêm vào cuối file cấu hình đoạn sau: ServerAdmin [email protected] DocumentRoot /data/web

KHOA CÔNG NGHỆ THÔNG TIN 89 Chương 3: Web – Mail - FTP ServerName www.ptecX.net ErrorLog logs/www.ptecX.net-error_log CustomLog logs/www.ptecX.net-access_log common ServerAdmin [email protected] DocumentRoot /data/web1 ServerName www.rolesX.com ErrorLog logs/www.rolesX.com-error_log CustomLog logs/www.rolesX.com-access_log common - Tạo thư mục web gốc /data/web1 và tạo file /data/web1/index.html - restart dịch vụ httpd #service httpd restart - kiểm tra website 3.2.4.2 Cấu hình Web Server sao cho các user trên hệ thống có thể truy cập vào trang web cá nhân của user - Cấu hình file httpd.conf + Sửa dòng 355 #UserDir disable + Dòng 362 UserDir public_html - Mở rào từ dòng 370 đến 381 - Tạo user hv1 và hv2 - Tạo thư mục: #mkdir /home/hv1/public_html #mkdir /home/hv2/public_html - Tạo file (Nội dung bất kỳ) #vi /home/hv1/public_html/index.html #vi /home/hv2/public_html/index.html - Cấp quyền cho home dir của từng user #chmod 755 -R /home/hv1 #chmod 755 -R /home/hv2

KHOA CÔNG NGHỆ THÔNG TIN 90 Chương 3: Web – Mail - FTP - restart httpd #service httpd restart - Kiểm tra: truy cập vào web http://www.ptecX.net/~hv1 và http://www.ptecX.net/~hv2 3.3 Dịch vụ FTP Server 3.3.1 Cài đặt và cấu hình dịch vụ ftp 3.3.1.1 Cài đặt vsftp Cài đặt qua mạng yum install vsftpd Cài đặt từ source rpm trên đĩa DVD cài Centos rpm -ivh vsftpd- → Quá trình cài đặt hoàn tất, ta có thể khởi động dịch vụ vsftpd ngay sau khi cài đặt. 3.3.1.2 Cấu hình FTP Server B1: Khởi động màn hình Terminal, gõ lệnh sau để kiểm tra dịch vụ FTP đã khởi động chưa: /etc/init.d/vsftpd status Kết quả sẽ hiển thị sau dòng lệnh. B2: Cũng trong màn hình Terminal, dùng lệnh sau để chạy FTP server. Khi FTP server đã khởi động. #/etc/init.d/vsftpd start Người dùng có thể đăng nhập vào, thực hiện upload, download, sửa file trong thư mục /home/username Muốn tắt dịch vụ ftp, dùng lệnh: #/etc/init.d/vsftpd stop Khởi động lại dịch vụ, dùng lệnh: #/etc/init.d/vsftpd restart Để ftp server tự động start mỗi khi khởi động máy : # chkconfig vsftpd on Chú ý:

KHOA CÔNG NGHỆ THÔNG TIN 91 Chương 3: Web – Mail - FTP Để các user có thể truy cập dịch vụ ftp và thực hiện việc chia sẻ những file trong hệ thống thì user này phải do người quản trị tạo ra. Có thể dùng nhiều chương trình ftp client, chạy ở nhiều môi trường khác nhau để đăng nhập vào ftp server. 3.3.1.3 Khảo sát file cấu hình FTP server Soạn file cấu hình /etc/vsftpd/vsftpd.conf # Example config file /etc/vsftpd/vsftpd.conf # cho phép anonymous FTP hay không? anonymous_enable=NO

# cho phép local users login? local_enable=YES

# enable any form of FTP write command. write_enable=YES

# Default umask for local users local_umask=022

# Log tất cả những hoạt động up/download. xferlog_enable=YES

# Pasive FTP mode (PORT): sử dụng cổng 20 (ftp-data). connect_from_port_20=YES

# Files upload bởi anonymous user sẽ thuộc về user khác # chỉ cần thiết trong trường hợp cho phép anonymous user upload!!! #chown_uploads=YES #chown_username=whoever

KHOA CÔNG NGHỆ THÔNG TIN 92 Chương 3: Web – Mail - FTP

# vị trí log file xferlog_file=/var/log/vsftpd.log

# định dạng log file theo "standard ftpd xferlog format" xferlog_std_format=YES

# timing out an idle session. idle_session_timeout=600

# timing out a data connection. data_connection_timeout=120

# chạy ftp server bằng user có quyền hạn bình thường (không phải root) nopriv_user=vsftp

# By default the server will pretend to allow ASCII mode but in fact ignore # the request. # Beware that turning on ascii_download_enable enables malicious remote parties # to consume your I/O resources, by issuing the command "SIZE /big/file" in # ASCII mode. #ascii_upload_enable=YES #ascii_download_enable=YES # login banner ftpd_banner=Viết tùy ý một câu, ví dụ chào mừng, giới thiệu... # khi sử dụng e-mail addresses làm passwd cho anonymous login #deny_email_enable=YES # những địa chỉ email bị cấm

KHOA CÔNG NGHỆ THÔNG TIN 93 Chương 3: Web – Mail - FTP #banned_email_file=/etc/vsftpd/vsftpd.banned_emails

# chroot() chroot_local_user=YES chroot_list_enable=YES # những user không chroot chroot_list_file=/etc/vsftpd/chroot_list

# cho phép "-R" option khi dùng lệnh ls # thích hợp cho những client như ncftp #ls_recurse_enable=YES pam_service_name=vsftpd userlist_enable=YES # hoạt động ở standalone mode # so sánh với cách dùng inetd, xinetd listen=YES

# có thể giới hạn access bằng tcp_wrappers (như /etc/hosts.deny) tcp_wrappers=YES Xong khởi động vsftpd /etc/init.d/vsftpd start Để khởi động dịch vụ FTP server ta dùng command : [root@hotec tmp]# /etc/init.d/vsftpd start [root@hotec tmp]# /etc/init.d/vsftpd stop /etc/init.d/vsftpd restart Để ftp server tự động start mỗi khi khởi động máy : [root@hotec tmp]# chkconfig vsftpd on

KHOA CÔNG NGHỆ THÔNG TIN 94 Chương 3: Web – Mail - FTP 3.3.1.4 Cấu hình FTP Client trong linux B1: Khởi động màn hình terminal, dùng lệnh ftp Ví dụ: #ftp 192.168.10.100 B2: Sau khi lệnh này thực hiện thì thông tin tên người dùng và password yêu cầu gõ vào để thực hiện kết nối (ví dụ: anonymous) Sau khi đăng nhập, máy chủ sẽ có thông báo đã đăng nhập thành công. B3: đánh lệnh pwd để kiểm tra thư mục hiện hành Chú ý: Khi dùng ftp, các file down sẽ nằm trong thư mục /, các file upload sẽ nằm trong thư mục mà máy chủ cung cấp. B4: dùng lệnh ls để xem nội dung thư mục B5: dùng lệnh put hay mput để upload file lên máy chủ. Chú ý: file cần upload phải đang nằm trong thư mục /, từ đó mới upload lên máy chủ. B6: gõ lệnh get hay mget để download filoe từ máy chủ về Chú ý: file cần download về phải nằm trong thư mục của máy chủ và cho phép lấy về. 3.3.2 Cấu hình user truy xuất nhiều thư mục Ta cấu hình cho phép truy cập nặc danh được phép tải files , tạo foldfer , upload files . # Allow anonymous FTP? cho phép truy cập nặc danh anonymous_enable=YES # The directory which vsftpd will try to change into after an anonymous login. (Default = /var/ftp) #Xác định thư mục mặc định cho user anonymous anon_root=/data/directory # Uncomment this to allow local users to log in cho phép user trong local được phép truy cập ftp local_enable=YES # Uncomment this to enable any form of FTP write command. # (Needed even if you want local users to be able to upload files) write_enable=YES

KHOA CÔNG NGHỆ THÔNG TIN 95 Chương 3: Web – Mail - FTP # Uncomment to allow the anonymous FTP user to upload files. This only has an effect if global write enable is activated. Also, you will obviously need to create a directory writable by the FTP user. cho phép user anonymous được phép upload lên thư mục mặc định anon_upload_enable=YES cho phép anonymous tạo thư mục # Uncomment this if you want the anonymous FTP user to be able to create new directories. anon_mkdir_write_enable=YES # Activate logging of uploads/downloads. xferlog_enable=YES # You may override where the log file goes if you like. # The default is shown below. xferlog_file=/var/log/vsftpd.log Tạo FTP banner : Sửa dòng ftpd_banner= Xin chao mung da den voi FTP server cua toi Bây giờ ta làm một ví dụ thực tế. Ta tạo ra một user là upload user này được toàn quyền trên thư mục var/www/html quyền đọc , ghi , sửa , xóa tạo thư mục vv… Bước 1 : tạo một nhóm là ftp-users [root@hotec tmp]#groupadd ftp-users Bước 2: thiết lập chmod 755 cho thư mục html và gắn user upload nhóm ftp- users [root@hotec tmp]#useradd –g ftp-users –d /var/www/html upload [root@hotec tmp]#chmod 755 /var/www/html [root@hotec tmp]#chown upload:ftp-users /var/www/html thiết lập [root@hotec tmp]#passwd upload password cho user upload Sau khi làm tới đây mặc định khi login ftp bằng account upload sẽ trỏ đến thư mục html. Tại đây account upload sẽ được toàn quyền upload, delete, edit

KHOA CÔNG NGHỆ THÔNG TIN 96 Chương 3: Web – Mail - FTP Bước 3: ta hạn chế quyền không cho một số user được phép login vào ftp trừ user root và user hanh. Mặc định user root không được phép login vào ftp server. Để cho phép ta làm như sau [root@hotec tmp]#vi /etc/vsftpd/ftpusers Xóa bỏ account root tại đó. Thêm vào đó những account ta không muốn cho login vào FTP Thứ 2 edit files /etc/vsftpd/user_list

[root@hotec tmp]#vi /etc/vsftpd/user_list Làm như bước thứ nhất xóa root khỏi danh sách list và thêm vào đó những account không được phép login. Vậy là chúng ta đã cấu hình xong một tutorial đơn gian về FTP. NOTE : Nếu bạn không thể tạo được thư mục trong ftp thì làm theo cách sau: vào [b]vi /etc/sysconfig/selinux SELINUX=DISABLE 3.3.3 Kiểm tra hoạt động ftp server và upload nội dung Cấu hình như trên là hoàn tất rồi, giờ mình test xem với cấu hình như thế FTP Server sẽ hoạt động thế nào Mình sẽ deny vuser1 bằng cách thêm nó vào user_list_deny như đã cấu hình ở trên. Còn vuser2 vẫn cho truy cập upload/delete/rename bình thường. Kết quả khi dùng FileZilla đăng nhập vào FTP Server trên VPS → vuser1 đã bị chặn truy cập.

Hình 3.22-Đăng nhập bằng vuser1 vuser2 đăng nhập bình thường và có thể upload file.

KHOA CÔNG NGHỆ THÔNG TIN 97 Chương 3: Web – Mail - FTP

Hình 3.23-User vuHình 3.24ser1 upload file web lên web root home directory Tất cả đã hoạt động ok, bạn thử tạo thêm nhiều user ảo khác và check rename, delete, create folder xem sao. 3.3.4 Bảo mật ftp Cấu hình thêm một chút cho an toàn, để cấu hình bảo mật cho FTP Server bạn thêm cho mình hai dòng bên dưới, đây là cách chroot FPT rất cần thiết với máy chủ có nhiều user. Mục đích là đảm bảo mỗi user được tạo ra sẽ bị giới hạn truy cập trong Home Directory của nó, không thể view hoặc access vào bất kỳ thư mục nào khác. chroot_local_user=YES # kích hoạt tính năng chroot cho local user. allow_writeable_chroot=YES # Phải có dòng này chroot mới hoạt động chuẩn được nhé. Tiếp theo là userlist_enable, cái này quan trọng không kém. Nếu được gán giá trị YES thì tất cả các user được liệt kê trong file /etc/vsftpd/user_list sẽ không thể access vào FTP Server được. Tất cả các user trong user_list đều là những tài khoản quan trọng dùng để vận hành máy chủ, tốt nhất không dùng cho FTP thì hơn. Nếu giá trị là NO thì ngược lại, toàn bộ những user trong user_list sẽ truy cập được FTP Server. Mình chọn YES. userlist_enable=YES

Khi chroot user đồng nghĩa với việc user không truy cập được vào đâu ngoài thư mục của mình. Nhưng trong quá trình sử dụng nhiều khi bạn lại muốn tạo ra một ngoại lệ (exception) để một user nào đó có thể đi vào tất cả các thư mục ngó nghiêng linh tinh một tí thì làm thế nào ? Để làm được điều đó, bạn thêm vào hai dòng bên dưới. chroot_list_enable=YES # Dòng này vô hiệu hóa Chroot.

KHOA CÔNG NGHỆ THÔNG TIN 98 Chương 3: Web – Mail - FTP chroot_list_file=/etc/vsftpd/chroot_list # Dòng này tạo ra một file chứa danh sách các local user không bị giới hạn bởi chroot. Bạn có thể dùng vi tạo file có tên là chroot_list với đường dẫn như trên rồi thêm mỗi user vào một dòng. Chú ý nếu gặp lỗi 500 OOPS: vsftpd: refusing to run with writable root inside chroot() bạn kiểm tra lại giá trị allow_writeable_chroot cho mình. Cấu hình như trên là khá ổn rồi, bạn lưu lại file config vsftp ấn :wq để thoát trình soạn thảo vi. 3.3.5 Chú ý khi sử dụng ftp Khi cài đặt hay sử dụng FTP đôi khi bạn sẽ gặp lỗi đăng nhập thành công mà không down/up được data. Đây là lỗi sử dụng Active Mode cụ thể là bước (5) khi tạo Connection Data. Trong bước này FTP Server gửi gói SYN từ port thấp 20 đến port cao 38893 của FTP Client. Mà theo nguyên tắc hoạt động của Firewall/Router/Modem FTTH tất cả các gói tin mới (State NEW) nếu đi vào không được Public và Allow IN/OUT sẽ bị Drop hết. Do đó FTP không tạo được Connection Data mà chỉ thực hiện được command trên Connection Control thôi. Firewall/Router/Modem mình gọi chung là Firewall cho dễ. Thời điểm hiện tại Firewall đã thông minh hơn, kể cả FTP Client nằm trong mạng LAN (Private Network) nó sẽ biết tự động Public Port ra internet để FTP Server kết nối đến. Việc bị Drop gói SYN thường xảy ra với Firewall cũ thôi. Với người dùng VPS ➔ VPS thì yên tâm, hầu hết các bạn đều sử dụng FTP trên môi trường trong suốt. Nghĩa là VPS của bạn dùng IP Public, giữa client/server không có bất cứ tường lửa nào. Thứ nữa các FTP Client bây giờ đều dùng Passive Mode làm mặc định bạn sẽ ít gặp lỗi hơn như FileZilla/Chrome/WinSCP… 3.4 Bài tập chương 3 3.4.1 Câu hỏi lý thuyết 1. Trình bảy quy trình cấu hình mail trên Centos? Nêu phương pháp đồng bộ mail giữa 2 server? 2. Nêu các tham số cơ bản trong cấu hình Web Apache? Giải thích ý nghĩa và giá trị các tham số? 3. Cấu hình bảo mật web dạng Base như thế nào? Trình bày cú pháp lệnh tạo user chứng thực HTTP và giải thích tham số? Ghi câu lệnh tạo user chứng thực web từ user h1 và h2 đã có.

KHOA CÔNG NGHỆ THÔNG TIN 99 Chương 3: Web – Mail - FTP 4. FTP chạy trên cổng số mấy? Giải thích các tham số cơ bản để cấu hình dịch vụ vsftp? Tuỳ chọn user Anonymous trong ftp hoạt động như thế nào? 3.4.2 Bài tập thực hành Cho mô hình như sau:

IP: 192.168.x.3 SN: 255.255.255.0 GW: Để trắng DNS: 192.168.x.3

IP: 192.168.x.1 CLIENT SN: 255.255.255.0 GW: Để trắng IP: 192.168.x.2 DNS: 192.168.x.1 SN: 255.255.255.0 GW: Để trắng DC1 Client DNS: 192.168.x.1 Smb Domain Centos DNS: hotec.vn

1. Cấu hình dịch vụ DNS trên máy DC1 phận giải tên miền hotec.vn 2. Cấu hình dhcp cấp phát IP cho các máy client trong mạng 3. Cấu hình mail Zimbra với các tài khoản m01, m02, m03 (pass: 123) 4. Trên máy Client cho dùng dịch vụ mail client để truy cập và gửi mail qua lại 5. Cài đặt dịch vụ Web Apache cho máy DC1 a. Cấu hình dịch vụ web b. Tạo 2 alias sport và stuty với 2 trang web cho 2 alias này c. Cấu hình web nâng cao: cho chứng thực basic với tài khoản h1, h2 pass 123456@ d. Dùng các máy Client truy cập web thông thường và truy cập có chứng thực 6. Cài đặt vsftpd trên máy DC1 a. Cấu hình hình cho anonymous truy cập và up file lên thư mục riêng /anony b. Cấu hình cho user đăng nhập và truy cập vào thư mục cá nhân toàn quyền c. Cấm máy Client1 truy cập ftp d. Cấm user h1 truy cập ftp

KHOA CÔNG NGHỆ THÔNG TIN 100 Chương 4: Bảo Mật Và Chia Sẻ Kết Nối CHƯƠNG 4. BẢO MẬT VÀ CHIA SẺ KẾT NỐI

➢ Giới thiệu chương: Vấn đề an toàn trong mạng máy tính ngày nay được đặt lên hàng đầu vì nguy cơ bị tấn công trên mạng từ nhiều phía. Việc tăng cường bảo mật trên hệ thống Linux được chú trọng ngay từ đầu. Hiện nay, mã nguồn mở Linux tích hợp rất nhiều công cụ bảo mật bên trong hệ điều hành, song song đó các nhà phát triển cũng dựa trên mã nguồn Linux để xây dựng các tiện ích làm tường lửa bảo vệ hệ thống và cho mạng bên trong truy cập an toàn. ➢ Mục tiêu chương:

- Trình bày được vai trò của tường lửa pfSense trong mạng máy tính. - Nêu được nguyên lý hoạt động proxy và NAT bằng công cụ tường lửa trong linux. - Cài đặt và cấu hình pfSense - Cấu hình được dịch vụ proxy squid trên centos và trên pfSense. - NAT được các dịch vụ nội bộ ra ngoài.

KHOA CÔNG NGHỆ THÔNG TIN Trang 101 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối 4.1 Cài và cấu hình PFSense 4.1.1 Cài đặt PFSense lên máy chủ tường lửa Pfsense là Firewall open source, miễn phí cho mọi người. Pfsense hoạt động như một thiết bị tường lửa và có đầy đủ chức năng định tuyến như một thiết bị cao cấp Mô hình tường lửa cho hệ thống mạng như sau:

Hình 4.1-Sơ đồ mạng với tường lửa pfSense 4.1.1.1 Chuẩn bị file cài đặt máy ảo Pfsense Download Pfsense.iso tại trang chủ của Pfsense: https://www.pfsense.org/download/ 4.1.1.2 Hướng dẫn cài đặt Pfsense

- Download pfSense từ trang chủ - Burn file iso ra đĩa CD hoặc tạo USB boot cài đặt pfSense - Mở máy, Pfsense sẽ tự chọn mode khởi động

KHOA CÔNG NGHỆ THÔNG TIN 102 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Hình 4.2-Màn hình giới thiệu pfSense - Nhấn Accept

Hình 4.3-Nhấn Accept để tiếp tục cài đặt - Nhấn OK để Install Pfsense

KHOA CÔNG NGHỆ THÔNG TIN 103 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối Hình 4.4-Chọn Install để bắt đầu - Nhấn Select để tiếp tục

Hình 4.5-Chọn Select để tiến hành cài đặt - Quá trình cài đặt Pfsense được bắt đầu

Hình 4.6-Tiến trình cài đặt - Nhấn No rồi Reboot lại hệ thống

KHOA CÔNG NGHỆ THÔNG TIN 104 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Hình 4.7-Bấm “No” để không mở Shell

Hình 4.8-Chọn Reboot để khởi động lại máy 4.1.1.3 Cấu hình thông số về IP Address cho các Interface của Pfsense

- Chọn option 2 để cấu hình

KHOA CÔNG NGHỆ THÔNG TIN 105 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Hình 4.9-Cấu hình IP cho card mạng - Nhập số 2 để cấu hình cho mạng LAN → Thiết lập IP Address theo nhu cầu của bạn → Nhấn Enter để tiếp tục

Hình 4.10-Quy trình cấu hình IP cho card LAN - Ở phần IPv6 bạn không cần phải cấu hình gì cả

KHOA CÔNG NGHỆ THÔNG TIN 106 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Hình 4.11-Bỏ IPv6 và thông tin remote vào pfSense - Hoàn thành cấu hình và mở trình duyệt web của Pfsense bằng địa chỉ IP. Đăng nhập với username: admin & passwork:

Hình 4.12-Đăng nhập vào pfSense từ trình duyệt trên máy thành viên - Cấu hình 1 số thông số cơ bản và hoàn thành cài đặt

KHOA CÔNG NGHỆ THÔNG TIN 107 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Hình 4.13-Màn hình làm việc của pfSense Trong màn hình này, ta có thể cấu hình hoặc cài thêm add-in cho tường lửa. 4.1.2 Tạo bô lọc nội dung trên tường lửa (Web proxy) Web Proxy là nơi cache lại những trang web mà user trong mạng thường truy cập. Web Proxy trên Pfsens có 3 thành phần chính đó là Proxy server (cache lại các trang web), Proxy filter (lọc web) và Proxy report (đưa ra thống kê truy cập của user). Proxy server: được thiết lập dựa trên gói phấn mềm Squid, gói phấn mềm này cho phép chúng ta có thể quản lý về cách thức user truy cập web thông qua proxy như thế nào, ví dụ như thông qua port của proxy hoặc là trong suốt với người dùng. Cho phép quản lý thông tin các kết nối thông qua file log. Proxy server còn cho phép Cache lại thông tin truy cập web của người dùng như nội dung, đại chỉ… Việc cấu hình được thực hiện thông qua Cache Mgmt (cache managerment) với khác thông số quan trọng như bộ nhớ cache lưu trử trong ổ cứng, trên RAM… Vào menu Services chọn Proxy server cấu hình các thông tin chính cần quan tâm như sau:

- Tab General: bật Proxy và các cách thức hoạt động của Proxy, nhật ký sự kiện, port proxy và log dùng cho Proxy report - Tab Cache Mgmt: Quy định bộ nhớ cache - Tab Access Control: quy định các mạng đi qua proxy

KHOA CÔNG NGHỆ THÔNG TIN 108 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Hình 4.14-Cấu hình proxy server. Proxy filter: được thiết lập dựa trên gói phấn mềm squidGuard, gói phấn mềm này cho phép tạo ra những Target categories (loại mục tiêu) định nghĩa các danh sách domain name (tên miền), các URL (Uniform Resource Locator) hoặc là các định dạng tập tin cần quản lý, dựa trên những Target categories này người ta có thể thiết lập các chính sách về cấm (deny), cho phép (allow hoặc white) trong Group Access Control List (Groups ACL) và Conmon Access Control List (Common ACL). Menu Services chọn Poxy filter với các thành phần cấu hình chính:

- Tab General settings chọn Enabale và Apply để bật dịch vụ, ngoài ra nó còn nhiều tùy chọn khác về cừng thực User LDAP, về các dạng nhật ký sự kiện cho proxy filter.

Hình 4.15-Chọn lựa trên tab General

KHOA CÔNG NGHỆ THÔNG TIN 109 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối - Tab Target categories: cấu hình các thông tin (mục tiêu) muốn lọc như doamain name, những URL, những dạng file muốn lọc [với cấu trúc lọc file (.*\/.*\.(asf|wm|wma|wmv|zip|rar|cab|mp3|avi|mpg|swf|exe|mpeg|mp.|mpv| mp3|wm.|vpu)) ]

Hình 4.16-Thiết lập cấm truy xuất vào các domain Định nghĩa Domain

Hình 4.17-Cấm tải file chương trình dạng .exe Định nghĩa dạng file

KHOA CÔNG NGHỆ THÔNG TIN 110 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối Tab Groups ACL: cấu hình các chính sách lọc trên các nhóm cụ thể (IP, subnet, một dãy IP…) như deny, white, allow dựa trên các định nghĩa ở Target categories. Tab Common Access Control List: thiết lập các ACL dùng chung, các thiết lập ở đây có tính toàn cục, thông thường người ta dùng các gói blacklist có sẵn (bạn có thể tải về tại đây)

Hình 4.18-Áp đặt Access List (ACL) Bạn chú ý là Default access [all] bật allow để khi thực hiện cấm một dãy địa chỉ IP nào đó thì các dãy khác không ảnh hưởng (điều này thiếu trong video hướng dẩn cấu hình bên dưới).

Hình 4.19-Nhấn Accept để tiếp tục cài đặt Trong trường hợp, các thiết lập Target categories đã được áp dụng ở Groups ACL rồi mà bạn không muốn nó ảnh hưởng đến toàn cục, bạn có thể chọn — Proxy report: được thiết lập dựa trên gói phấn mềm Lightsquid, gói phần mềm này cho phép tạo ra những báo cáo (report) thống kê việc truy cập web của user theo thời gian thực. Giúp người quản trị có thể thống kê chính xác nhu cầu truy cập web của người dùng trong mạng. Phần mềm này hoạt động dựa vào các file log cùa Poxy server (Squid). Menu Status chọn Proxy report có những thành phần chính cần quan tâm:

- Tab Settings: cấu hình dạng report, ngôn ngữ, thời gian cập nhật…

KHOA CÔNG NGHỆ THÔNG TIN 111 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Hình 4.20-Cấu hình ngôn ngữ, báo cáo, thời gian trên Proxy - Tab Lightsquid Report: dùng xem report

Hình 4.21-Nhấn Accept để tiếp tục cài đặt Để các chính sách proxy có thể hoạt động, bạn có thể phải đợi một thời gian hoặc phải khởi động lại Pfsense để các chính sách này được áp dụng. 4.1.3 Chống tấn công mạng bằng tường lửa PFSense Mô hình dùng snort sensor cài đặt trên firewall pfSense dùng để chống tấn công mạng

KHOA CÔNG NGHỆ THÔNG TIN 112 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Hình 4.22-Mô hình bảo vệ phát hiện tấn công kết hợp pfSense cùng với Snort sensor

Hình 4.23-Mô hình bảo vệ mạng với DMZ Giải pháp sử dụng Snort để phát hiện một số kiểu tấn công phổ biến hiện nay vào các ứng dụng Web 4.1.3.1 Giới thiệu Theo số liệu thống kê từ công ty bảo mật hàng đầu hiện nay Acunetix, thời gian gần đây số lượng các cuộc tấn công vào ứng dụng web đã tăng lên nhanh chóng (75% các cuộc tấn công được thực hiện là ở lớp ứng dụng web). Trong đó hai kĩ thuật tấn công được các hacker sử dụng phổ biến là cross-site scripting và sql injection và hình dưói đây:

KHOA CÔNG NGHỆ THÔNG TIN 113 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Hình 4.24-Tỉ lệ nguồn tấn công mạng (Nguồn: acunetix.com) Kiểu tấn công cross-site scripting (hay còn gọi là xss) được các hacker tiến hành bằng cách nhúng các thẻ script vào một url (uniform resource locator) và tìm cách lừa người dùng nhấn vào những liên kết này. Khi đó đoạn mã độc hại này sẽ được thực thi trên máy tính của nạn nhân. Kĩ thuật thực hiện các cuộc tấn công kiểu này không có gì phức tạp và chủ yếu là hacker lợi dụng sự tin cậy giữa người dùng và server (bởi vì các url dường như xuất phát từ nguồn đáng tin cậy) cùng với việc không thẩm tra kĩ càng dữ liệu vào/ra ở phía server để từ chối phục vụ những url bị chèn thêm các mã độc hại. Còn SQL Injection liên quan đến một kĩ thuật chèn các từ khoá, các lệnh của ngôn ngữ SQL (là ngôn ngữ dùng để truy vấn, thao tác trên một cơ sở dữ liệu quan hệ) vào dữ liệu đầu vào của các ứng dụng web để điều khiển quá trình thực thi câu lệnh SQL ở server. Trong phần này mô tả một kĩ thuật để phát hiện các kiểu tấn công SQL injection và cross-site scripting dùng Snort. Phần một của bài báo sẽ giới thiệu về snort . Phần 2 của bài này sẽ mô tả cách viết các luật cho snort để chống lại hai kiểu tấn công nói trên. 4.1.3.2 Khái quát Snort Snort là một kiểu IDS (Instruction Detection System). Nói ngắn gọn IDS là một hệ thống được cài đặt trên mạng (hay máy tính) của bạn và nhiệm vụ của nó là giám sát những gói tin vào ra hệ thống của bạn. Nếu một cuộc tấn công được phát hiện bởi Snort thì nó có thể phản ứng bằng nhiều cách khác nhau phụ thuộc vào cấu hình mà bạn thiết lập, chẳng hạn như nó có thể gởi thông điệp cảnh báo đến nhà quản trị hay loại bỏ gói tin khi phát hiện có sự bất thường trong các gói tin đó. Tuy nhiên snort cũng có điểm yếu. Đó là tương tự như các bộ quét virus (virus scanner), snort chỉ có thể chống lại các cuộc tấn công một cách hiệu quả nếu như nó biết được dấu hiệu (signature) của các cuộc tấn công đó. Dựa vào điểm này, các hacker "cao thủ" có thể điều chỉnh các cuộc tấn công để thay đổi signature của cuộc tấn công đó. Từ đó các cuộc tấn công này có thể "qua mặt" được sự giám sát của snort.

KHOA CÔNG NGHỆ THÔNG TIN 114 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối Như vậy có thể thấy rằng, để snort hoạt động một cách hiệu quả thì một trong những yếu tố quan trọng cần phải chú ý là các luật viết cho snort. Khi snort hoạt động, nó sẽ đọc các tập luật, giám sát luồng dữ liệu chạy qua hệ thống và sẽ phản ứng nếu có bất kì luồng dữ liệu nào phù hợp với tập luật của nó. Cụ thể hơn, tập luật có thể được tạo ra để giám sát các nỗ lực quyét cổng (scanning), tìm dấu vết (footprinting), hoặc nhiều phương pháp khác mà các hacker dùng để tìm cách chiếm quyền hệ thống. Tập luật này có thể được tạo ra bởi người dùng hoặc người dùng có thể truy cập đến trang chủ của snort là: http://www.snort.org để lấy về. Hãy khảo sát một luật được viết cho snort và tìm hiểu xem snort hiểu chúng như thế nào. alert icmp !$HOME_NET any → $HOME_NET any (msg:"IDS152 - PING BSD"; content: "|08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17|"; itype: 8; depth: 32;) Phần đầu của luật mô tả cách hành động (rule's action) là alert, giao thức (ICMP) và địa chỉ IP nguồn, đích cũng như thông tin về port. Phần này gọi là “rule header”. Ở đây, $HOME_NET chỉ là một biến đại diện cho mạng của bạn và nó có thể được khai báo như sau: var HOME_NET 192.168.1.1/24 Phần còn lại của luật, được biết như “rule option”, chứa thông điệp báo động và thông tin sẽ được snort sử dụng để kiểm tra xem liệu luật đó có phù hợp (match) với gói tin không. Để hiểu rõ hơn chúng ta sẽ xem chi tiết của một lệnh ping sau đây: 07/23-09:46:41.866911 192.168.1.10 → 192.168.1.1 ICMP TTL:50 TOS:0x0 ID:2403 ID:8474 Seq:256 ECHO 36 12 7B 39 1B C6 0B 00 08 09 0A 0B 0C 0D 0E 0F 6.{9...... 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F ...... 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F !"#$%&'()*+,-./ 30 31 32 33 34 35 36 37 01234567 Khi snort giám sát các gói tin xuyên qua mạng của ta. Luật trên của chúng ta yêu cầu snort thẩm tra tất cả các gói tin ICMP nào không phải bắt nguồn từ mạng của ta “!$HOME_NET” và đến mạng của ta “→HOME_NET”. Thông số depth trong luật được gán là 32, nghĩa là snort sẽ tìm trong 32 byte đầu của gói tin để tìm kiếm nội dung có trong trường “content”. Nếu nội dung của trường “content” trong luật phù hợp với nội dung trong gói tin (ở trong trường hợp này là từ byte số 9 đến byte 24), snort sẽ phát sinh ra một thông báo, thông báo này sẽ được log lại. Nội dung của

KHOA CÔNG NGHỆ THÔNG TIN 115 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối thông báo được log lại là: "IDS152 - PINGBSD". Trường “itype” chỉ kiểu của một gói tin ICMP, trong trường hợp này là 8 tức là một gói tin ICMP có kiểu echo request. 4.1.3.3 Cài đặt và cấu hình Snort trên tường lửa pfSense Mở trình duyệt và nhập IP của pfSense, Ví dụ trong bài này dùng IP: https://192.168.15.30 Trang đăng nhập sẽ hiện ra :

Hình 4.25-Đăng nhập vào pfSense Nhập vào username và password. Mình sử dụng như mặc định :

- Username: admin - Password: pfsense Sau khi login thành công, bạn sẽ được chuyển qua Dashboard.

Hình 4.26-Dashboard của pfSense Truy cập vào menu System → Package Manager.

KHOA CÔNG NGHỆ THÔNG TIN 116 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Hình 4.27-Menu Package Manager trong pfSense Ở Package Manager, truy cập vào Available packages tab. Ở Available packages tab, tìm Snort và install package Snort.

Hình 4.28-Cài đặt snort Trong ví dụ này, ta dùng version Snort là 3.2.9.10 để cài đặt. Bấm Install và chờ đợi tiến trình cài đặt hoàn thành. Truy cập menu Services và chọn Snort.

KHOA CÔNG NGHỆ THÔNG TIN 117 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Hình 4.29-Chọn Snort Ở tab setting Global, chọn Snort Subscriber Rules và thực hiện những cấu hình sau:

- Enable Snort VRT – Yes - Snort Oinkmaster Code – Enter you OikCode Nếu không có Oinkcode, hãy truy cập trang web của Snort, (https://www.snort.org/users/sign_up) tạo account và lấy Oinkcode miễn phí.

Hình 4.30-Nhập Oinkcode Truy cập Rules Update Settings, và thực hiện những cấu hình sau:

- Update Interval – chọn khoảng thời gian gửi gói tin update Interval - Update Start Time – chọn khoảng thời gian để update Snort rules

KHOA CÔNG NGHỆ THÔNG TIN 118 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Hình 4.31- Cấu hình update time. Đến General Settings và thực hiện những cấu hình sau :

- Remove Blocked Hosts Interval – 1 Hour - Remove Blocked Hosts After Deinstall – No - Keep Snort Settings After Deinstall – Yes - Startup/Shutdown LoggingUpdate Interval – no

Hình 4.32- Cấu hình Block. Ở mục Updates tab, bấm vào nút Updates rules để download Rule Snort.

Hình 4.33- Update rules để tải Rule Snort. Ở tab Snort, bấm vào nút add và thực hiện những cấu hình sau :

- Enable – Yes KHOA CÔNG NGHỆ THÔNG TIN 119 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối - Interface – chọn Interface chạy dịch vụ Snort

Hình 4.34- Thiết lập Interface để Snort kiểm soát lưu thông mạng. Đến mục Alert Settings, và thực hiện những cấu hình sau :

- Send Alerts to System Log – Yes - Block Offenders – Enable if you want to block offenders - Kill States – Yes - Which IP to Block – BOTH

Hình 4.35- Thiết lập trạng thái log của Snort. Sau khi kết thúc cấu hình, bấm vào nút Save. Ở màn hình giao diện Snort, tiến hành edit Interface :

Hình 4.36- Chỉnh sửa interface WAN (em0). Truy cập tab Wan, và thực hiện những cấu hình sau :

KHOA CÔNG NGHỆ THÔNG TIN 120 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối - Resolve Flowbits – Yes - Use IPS Policy – Yes - IPS Policy Selection – Connectivity

Hình 4.37- enable tính năng IPS và chọn policy tên Connectivity. Sau khi kết thúc cấu hình, bấm vào nút Save, và Start service Snort ở Interface này.

Hình 4.38- Hoàn tất quá trình chỉnh sửa card WAN. Như vậy là chúng ta đã hoàn thành cài đặt và cấu hình service Snort trên Interface. 4.2 Proxy: chia sẻ mạng 4.2.1 Cài đặt squid 4.2.1.1 Giới thiệu Một Proxy Server, giống như firewall, được thiết kế để bảo vệ tài nguyên trong các mạng cục bộ khi kết nối các mạng khác như mạng internet. Chúng ta cũng khó phân biệt sự khác nhau giữa Proxy Server và Firewall. Mục đích sử dụng Proxy:

- Lướt web nhanh hơn (do proxy có sử dụng cache đệm) - Có thể lợi dụng proxy để vào 1 số web mà ISP của bạn không cho vào. (vượt tường lửa - Firewall) - Lướt web an toàn hơn. Ví dụ để mua hàng trực tuyến, ...

KHOA CÔNG NGHỆ THÔNG TIN 121 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối 4.2.1.2 Chuẩn bị - Đặt IP (192.168.9.106) - Tắt Firewall, Selinux - Cài đặt squid bằng lệnh yum hoặc rpm

#yum install -y squid* Hoặc #rpm -ivh squid- → 4.2.1.3 Lệnh khởi động/dừng/khởi động lại Squid

#service squid start #service squid stop #service squid restart 4.2.1.4 Xem log squid #tail -f /var/log/squid/access.log #tail -f /var/log/squid/cache.log #tail -f /var/log/squid/store.log 4.2.2 Cấu hình chia sẻ internet trên mạng đơn 4.2.2.1 Lưu Cache trên ổ cứng HDD - Sửa dòng 993 trong file cấu hình

cache_dir ufs /var/spool/squid 100 16 256 Trong đó: /var/spool/squid là thư mục chứa Cache 100 là dung lượng chứa Cache (MB) 16 là số lượng thư mục con L1 256 là số lượng thư mục con L2 4.2.2.2 Lưu Cache trên Ram - Sửa dòng 738

Cache_nem 20 MB

KHOA CÔNG NGHỆ THÔNG TIN 122 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối 4.2.2.3 Sử dụng Proxy trên client Trên Firefox: Vào Tools → Options → Advanced → Network → Settings → Manual proxy configuration

Http proxy: 192.168.9.106 Port: 3128 4.2.2.4 Cấu hình port - Sửa dòng 73

http_port 8080 - restart dịch vụ

#service squid restart Chú ý: Mặc định khi start Proxy thì không ra được Internet! 4.2.2.5 Một số cấu hình nâng cao: Mô hình mạng 1 nhánh 192.168.9.0/24

192.168.9.1/24

.1 Internet .2 ADSL

Proxy PC2 192.168.9.2/24 Hình 4.39- Mô hình proxy. Lab 1: Cấu hình squid cho phép các client của 192.168.9.0/24 truy cập web. Thêm vào dòng 2518 trong file cấu hình acl Mang9 src 192.168.9.0/24 http_access allow Mang9 - restart dịch vụ #service squid restart - Kiểm tra: trên mạng 192.168.9.0/24 dùng một máy có cấu hình Proxy truy cập vào internet. Lab 2: Cấu hình squid cấm truy cập trang google.com - Thêm vào dòng 2518 KHOA CÔNG NGHỆ THÔNG TIN 123 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối acl CamGoogle dstdomain .google.com http_access deny CamGoogle - restart dịch vụ #service squid restart - Kiểm tra

Lab 3: Cấu hình squid để cấm client truy cập các trang sau: tranxuanchien.blogspot.com linuxwhoami.blogspot.com yahoo.com - thêm vào dòng 2518 acl CamWeb dstdomain "etc/squid/CamWeb" http_access deny CamWeb - tạo file /etc/squid/CamWeb với nội dung sau: .tranxuanchien.blogspot.com .linuxwhoami.blogspot.com .yahoo.com - restart dịch vụ #service squid restart - Kiểm tra

Lab 4: Cấu hình squid cấm các client truy cập web trong giờ làm việc (thứ 2 đến thứ 6, từ 8:00 đến 17:00) - thêm vào dòng 2518 acl giolamviec time M T W H F 8:00-17:00 http_access deny giolamviec - restart dịch vụ #service squid restart - Kiểm tra

KHOA CÔNG NGHỆ THÔNG TIN 124 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối - Chú thích:

- S là chủ nhật - M là thứ 2 - T là thứ 3 - W là thứ 4 - H là thứ 5 - F là thứ 6 - A là thứ 7 Lab 5: Cấu hình squid sao cho khi client yêu cầu truy cập web thì được yêu cầu phải nhập user và password - tạo file rỗng /etc/squid/squid-passwd #touch /etc/squid/squid-passwd - tạo password cho squid #htpasswd /etc/squid/squid-passwd w01 (nhập vào password, user đăng nhập là txchien) - Chỉnh sửa dòng 1565 trong file cấu hình auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid-passwd - thêm vào dòng 2518 acl ncsa_access proxy_auth REQUIRED http_access allow ncsa_users - restart dịch vụ #service squid restart - Kiểm tra Trên máy Client:

- Cài đặt proxy cho trình duyệt, chỉ định IP và port là IP mặt trong của Squid Server và port được khai báo trong file cấu hình (dòng 73) - Tiến hành truy cập trang google

KHOA CÔNG NGHỆ THÔNG TIN 125 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối 4.2.3 Cấu hình chia sẻ nhiều nhánh mạng và tạo bộ luật kiểm soát truy cập 4.2.3.1 Mô hình mạng nhiều nhánh

.2 192.168.9.1/24

.1

PC2 Internet 192.168.9.2/24 ADSL .2 Proxy

172.16.8.2/24 PC1 172.16.8.9/24 Hình 4.40- Mô hình Proxy 2 nhánh mạng. Cấu hình squid cho phép các client của nhánh mạng 192.168.9.0/24 và 172.16.8.0/24 được truy cập web. Thêm vào dòng 2518 trong file cấu hình acl Mang9 src 192.168.9.0/24 http_access allow Mang9 acl Mang8 src 172.16.8.0/24 http_access allow Mang8 - restart dịch vụ #service squid restart - Kiểm tra: trên mạng 192.168.9.0/24 và 172.16.8.0/24 dùng một máy có cấu hình Proxy truy cập vào internet. 4.2.3.2 Kiểm soát truy cập: Để kiểm soát truy cập cần tạo ra các tập luật ACL (Access List) 4.2.3.2.1 Hạn chế truy cập web theo thời gian: Code:

acl home_network src 192.168.1.0/24 acl allow_hours time M T W H F 9:00-17:00 acl RestrictedHost src 192.168.1.23 http_access deny RestrictedHost http_access allow home_network allow_hours

KHOA CÔNG NGHỆ THÔNG TIN 126 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối Nếu bạn có các dòng trên trong file squid.conf thì các máy trong mạng nội bộ chỉ truy cập được vào mạng vào các ngày thứ 3 đến thứ 6 và trong thời gian 9h đến 17h. Trừ máy 192.168.1.23, vì bị cấm tất cả. M, T, W, H, F là viết tắt các ngày trong tuần (chủ nhật : S, thứ bảy : A). Có thể dùng D để thay bằng các ngày trong tuần (M - F) 4.2.3.2.2 Hạn chế truy cập các website được ấn định trước : Đầu tiên tạo 2 file ở trong thư mục /etc/squid là allowed-sites.squid và restricted-sites.squid để chứa tên các domain cho phép truy cập và cấm truy cập. Code:

# File: /squid/allowed-sites.squid www.hvaonline.net fotech.org # File: /etc/squid/restricted-sites.squid www.sex.com xxx.net Nếu bạn muốn trong thời gian làm việc, cấm vào một số site và cho phép vào một số site nó thì : Code:

acl home_network src 192.168.1.0/24 acl work_hours time M T W H F 9:00-17:00 acl GoodSites dstdomain "/etc/squid/allowed- sites.squid" acl BadSites dstdomain "/etc/squid/restricted- sites.squid" http_access deny BadSites http_access allow home_network work_hours GoodSites Bạn có thể dùng url_regex để hạn chế vào các domain name được ấn định: Code: acl domainname url_regex -i ^http://www http_access deny domainname

KHOA CÔNG NGHỆ THÔNG TIN 127 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối 4.2.3.2.3 Hạn chế truy cập web theo địa chỉ ip : Bạn có thể tạo một access control list để hạn chế truy cập web trên một mạng nào đó. Code:

acl home_network src 192.168.1.0/255.255.255.0 http_access allow home_network acl localhost dst 127.0.0.0/8 http_access allow localhost 4.2.3.2.4 Hạn chế nội dung các file download: Tạo một file chứ nội dung các phần đuôi của các tập tin mà bạn muốn hạn chế là blocks.files.acl nằm trong /etc/squid Code: \.[Ee][Xx][Ee]$ \.[Aa][Vv][Ii]$ \.[Mm][Pp][Gg]$ \.[Mm][Pp][Ee][Gg]$ \.[Mm][Pp]3$ Thêm vào squid.conf dòng Code: acl blockfiles urlpath_regex “/etc/squid/blocks.files.acl” http_access deny blockfiles 4.2.3.2.5 Hạn chế truy cập theo cổng : Ví dụ xây dựng Access List cho truy cập http bằng các port 80, 8000 đến 8010 và 8080 Code: acl httpports port 80 8000-8010 8080 http_access allow httpports Các bạn nên duy trì và allow một số cổng. Dưới đây là một số cổng được cho là an toàn (mặc định tỏng file squid.conf) Code: acl safe_ports port 80 # http

KHOA CÔNG NGHỆ THÔNG TIN 128 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối acl safe_ports port 21 # ftp acl safe_ports port 443 563 # https snews acl safe_ports port 70 # gopher acl safe_ports port 210 # wais acl safe_ports port 1025-65535 # unregistered ports acl safe_ports port 280 # http-mgmt acl safe_ports port 480 # gss-http acl safe_ports port 591 # filemaker acl safe_ports port 777 # multiling http http_access deny !safe_ports 4.2.3.2.6 Hạn chế truy cập thep giao thức : Code:

acl FTP proto FTP http_access deny FTP 4.2.3.2.7 Dùng NCSA kiểm định password: Đầu tiên tạo một file password,vd /etc/squid/squid_passwd touch /etc/squid/squid_passwd chmod o+r /etc/squid/squid_passwd Dùng htpasswd để add user vào pass vào file squid_passwd đó htpasswd /etc/squid/squid_passwd vicki New password: Re-type new password: Adding password for user vicki Giờ thêm vào file squid.conf auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users Như vậy phải dùng user và pass được add vào file squid_passwd mới có thể truy cập vào internet được. Cũng có thể kết hợp thời gian để bắt kiểm định pass vào mốc thời gian nhất định (tham khảo đầu bài) KHOA CÔNG NGHỆ THÔNG TIN 129 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối Nếu bạn muốn mọi deny đều có một thông báo cho người dùng biết thì: Tạo một file deny.php với nội dung tùy bạn, đặt vào /var/www chẳng hạn. acl blacklist url_regex yahoo\.com vietnamnet\.vn http_access deny blacklist deny_info domain/deny.php blacklist 4.3 Xuất bản dịch vụ nội bộ ra ngoài mạng 4.3.1 Cài đặt và cấu hình iptables 4.3.1.1 IPtables là gì? IPtables là một chương trình chạy ở không gian người dùng, cho phép người quản trị hệ thống có thể cấu hình các bảng của tường lửa trong nhân Linux (được cài đặt trong các mô đun khác nhau) và lưu trữ các chuỗi, luật. Các mô đun nhân và chương trình khác nhau được áp dụng cho từng giao thức; iptables cho IPv4, ip6tables cho IPv6, arptables cho ARP, và ebtables cho Ethernet frames. Trước iptables, các gói chương trình dùng để quản lý tường lửa trên Linux là ipchains trên Linux 2.2; ipfwadm trên Linux 2.0, dựa trên chương trình ipfw trên BSD. Iptables giữ lại những ý tưởng chính trong ipfwadmi: các danh sách luật, trong đó mỗi luật chỉ ra những dấu hiệu cần tìm trong một gói tin, và các hành động sẽ thực hiện với một gói tin thỏa mãn các dấu hiệu. ipchains thêm khái niệm chuỗi luật, và iptables mở rộng ra bảng: một bảng được tra cứu khi cần quyết định phải NAT một gói tin, và một bảng khác chỉ ra phải lọc gói tin như thế nào. Thêm vào đó, ba điểm lọc trên hành trình của một gói tin được biến đổi sao cho mỗi gói tin thông qua một điểm lọc. (Theo wikipedia) 4.3.1.2 Cài đặt IPtables Iptables được cài đặt mặc định trong hệ thống Linux, nhưng chúng ta cũng có thể tự cài package của Iptables hiện tại là iptables-1.4.7-11, việc cài đặt sẽ khác nhau tùy thuộc vào từng OS. # rpm –ivh iptables-1.4.7-11.el6.x86_64.rpm hoặc: # yum install iptables IPtables mặc định sử dụng giao diện Console, nhưng chúng cũng có giao diện đồ họa (GUI) và đã được thiết lập sẵn 1 số Rules. Có thể tham khảo 1 số tools to build iptables rule sau: o fwbuilder có thể download http://www.fwbuilder.org/

KHOA CÔNG NGHỆ THÔNG TIN 130 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối o Turtle Firewall Project có thể download tại đây o Easy Firewall Generator for IPTables tại đây o tại đây 4.3.1.3 Cấu hình IPtables Có 3 cách để cấu hình IPtables là:

▪ Dùng giao diện đồ họa. ▪ Dùng lệnh ▪ Sửa file /etc/sysconfig/iptables 4.3.1.3.1 Dùng giao diện đồ hoạ dạng text (gui hoặc tui: text user interface): Tại Terminal gõ setup hoặc system-config-firewall để cấu hình.

Hình 4.41- Giao diện Enable Firewall.

Hình 4.42- Cấu hình chi tiết cho firewall. Chỉnh sửa cấu hình IPv4 /etc/sysconfig/iptables, sử dụng lệnh: KHOA CÔNG NGHỆ THÔNG TIN 131 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối # vi /etc/sysconfig/iptables Kiểm tra cấu hình trong file /etc/sysconfig/iptables

Hình 4.43- Cấu hình firewall cho máy chủ Web Server. 4.3.2 Xây dựng các luật (ACL) IPtables bao gồm 4 tables chính là Filter, Nat, Mangle, Raw trong từng Tbale sẽ bao gồm các Chains và tương ứng sẽ gồm các rules. Chúng ta cùng quan sát lưu đồ sau:

Hình 4.44- Firewall chain trong Linux.

KHOA CÔNG NGHỆ THÔNG TIN 132 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối Chức năng cụ thể của Tables, Chains, Rules

Hình 4.45- Chức năng cụ thể của Firewall Chain. (nguồn anninhmang.net) 4.3.2.1 Filter Table Chịu trách nhiệm thiết lập bộ lọc packet (packet filtering), có ba loại built-in chains là INPUT, OUTPUT, FORWARD được mô tả để thực hiện các chính sách về firewall (firewall policy rules). Filter là table mặc định cho iptable, nếu không xác định table thì iptables sẽ sử dụng Filter table

- INPUT – gửi đến Firewall. Cho các gói tin đến máy chủ Local. - OUTPUT – gửi đi từ Firewall. Cho các gói tin đi ra khỏi máy chủ Local. - FORWARD – Cho các gói tin định tuyến thông qua các máy chủ Local. 4.3.2.2 Nat Table Thực thi chức năng NAT (Network Address Translation) bao gồm các chains PREROUTING, INPUT, OUTPUT và POSTROUTING

- PREROUTING – sửa địa chỉ đích của gói tin trước khi nó được routing bởi bảng routing của hệ thống (destination NAT hay DNAT). - POSTROUTING – ngược lại với PREROUTING, nó sửa địa chỉ nguồn của gói tin sau khi gói tin đã được routing bởi hệ thống (SNAT). 4.3.2.3 Mangle Table Bảng này dùng để chỉnh sửa thông số QOS(qulity of service) bit trong phần TCP Header của gói tin, thông thường loại table này được ứng dụng trong SOHO KHOA CÔNG NGHỆ THÔNG TIN 133 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối (Small Office/Home Office). Bảng này bao gồm các chains PREROUTING, INPUT, FORWARD, OUTPUT and POSTROUTING 4.3.2.4 Raw Table Bảng Raw trong iptables là cho excemptions cấu hình. Bảng này bao gồm 2 chain là PREROUTING vàOUTPUT 4.3.2.5 Targets và Jumps Những iptables rules kiểm tra những gói ip và cố gắng xác định nó sẽ được xử lý theo kiểu nào (target), khi đã được xác định gói ip sẽ được xử lý theo kiểu đó. Sau đây là một số build-in targets thường được sử dụng.

- ACCEPT: iptables chấp nhận gói tin, đưa nó qua hệ thống mà không tiếp tục kiểm tra nó nữa. - DROP: iptables loại bỏ gói tin, không tiếp tục xử lý nó nữa. - REJECT: chức năng của nó cũng giống như DROP tuy nhiên nó sẽ gửi một error message tới host đã gửi gói tin. - LOG: thông tin của gói tin sẽ được ghi lại bởi syslog hệ thống, iptables tiếp tục xử lý gói tin bằng những rules tiếp theo. - DNAT: dùng để sửa lại địa chỉ đích của gói tin. - SNAT: dùng để sửa lại địa chỉ nguồn của gói tin - MASQUERADE: cũng là một kiểu dùng để sửa địa chỉ nguồn của gói tin.

KHOA CÔNG NGHỆ THÔNG TIN 134 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối 4.3.2.6 Quá trình xử lý packet trong Iptables

Hình 4.46- Đường đi của gói tin trong iptables. Các gói tin từ ngoài đi vào sẽ được kiểm tra bởi các Pre-routing chain đầu tiên xem xem nó có cần DNAT không sau đó gói tin được routing. Nếu gói tin cần đi tới một hệ thống khác (protected network) nó sẽ được lọc bởi các FORWARD chain của bảng FILTER và nếu cần nó có thể được SNAT bởi các Post-routing chain trước khi đến được hệ thống đích.

KHOA CÔNG NGHỆ THÔNG TIN 135 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối Tương tự khi hệ thống đích cần trả lời, gói tin sẽ đi theo thứ tự như vậy nhưng theo chiều ngược lại. Lưu ý trong hình vẽ những FORWARD và Post-routing chain của bảng mangle chỉ tác động vào đặc điểm QoS (Quality of Service) của gói tin. Nếu gói tin được gửi tới hệ thống (hệ thống chứa iptables) nó sẽ được xử lý bởi các INPUT chain và nếu không bị lọc bỏ nó sẽ được xử lý bởi một dịch vụ (System Service) nào đó chạy trên hệ thống. Khi hệ thống gửi trả lời, gói tin mà nó gửi đi được xử lý bởi các OUTPUT chain và có thể được xử ký bởi các Post-routing chain của bảng FILTER và bảng MANGLE nếu nó cần SNAT hay QoS. 4.3.3 NAT IN bằng iptables: chia sẻ dịch vụ web, mail, ftp

Hình 4.47- Sơ đồ hệ thống mạng dùng dịch vụ NAT. Cấu hình Fillter, Nat-in, Nat-out trong IPtables Yêu cầu:

- 1 PC cài đặt iptables có ít nhất 2 interface nhận dải mạng 192.168.138.0/24 và dải mạng được nat ra ISP - 1 PC đóng vai trò là server nằm trong dải mạng 192.168.138.0/24 - 1 PC đóng vai trò là ISP trong bài lab này tôi sử dụng máy thật làm ISP 4.3.3.1 Hướng dẫn thực hiện: Trước hết chúng ta phải enable Forwarding ta có thể hiểu đơn giản là nó giúp forward các packet qua các interface. Ta có thể enable bằng 2 cách sau:

KHOA CÔNG NGHỆ THÔNG TIN 136 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối echo ‘1’ > /proc/sys/net/ipv4/ip_forward hoặc vào /etc/sysctl.conf và chuyển net.ipv4.ip_forward về 1

net.ipv4.ip_forward = 1 4.3.3.2 Cấu hình Filter

- Hạn chế ping bởi giao thức ICMP -A INPUT -p icmp -j DROP

- Hạn chế 1 địa chỉ IP truy cập vào server -I INPUT -s 70.78.x.x -j DROP Phần này trình bày cách DROP 1 list IP bằng script vào phần sau.

- Chấp nhận các packet vào cổng 80 trên card mạng eth0 -A INPUT -i eth0 –dport 80 -j ACCEPT

- Thả các packet đến cổng 23 dùng giao thức TCP trên card mạng eth0 -A INPUT -i eth0 -p tcp –dport 23 -j DROP

- Gởi gói TCP với cờ RST=1 cho các kết nối không đến từ dãy địa chỉ IP 10.0.0.1..5 trên cổng 22, card mạng eth1 -A INPUT -i eth1 -s ! 192.168.138.1- 192.168.138.5 –dport 22 -j REJECT –reject-with tcp-reset

- Gởi gói ICMP `port-unreachable` cho các kết nối đến cổng 139, dùng giao thức UDP -A INPUT -p udp –dport 139 -j REJECT –reject-with icmp-port-unreachable 4.3.3.3 Cấu hình NAT OutBound

-A POSTROUTING -s 192.168.138.0/24 -d 0/0 -o eth0 -j MASQUERADE POSTROUTING tức nó sẽ NAT sau khi đươc routing, còn MASQUERADE là 1 target đặc biệt của POSTROUTING vì không cần phải dùng IP cụ thể của network interface nào tiếp diện với Internet bạn cũng có thể thay bằng SNAT nhưng bạn phải binding khi thay đổi IP 4.3.3.4 Cấu hình NAT IntBound Nat vào Web server có IP 192.168.138.2 từ địa chỉ External 192.168.1.5

KHOA CÔNG NGHỆ THÔNG TIN 137 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối -A PREROUTING -d 192.168.1.5 -i eth0 -p tcp -m tcp –dport 80 -j DNAT –to-destination 192.168.138.2:80 PREROUTING tức là NAT trước khi routing, còn DNAT là quá trình chuyển đổi 1 địa chỉ Public IP thành Private IP Hint: “kết hợp giữa iptables với 1 proxy để có thể NAT hiệu quả hơn”. 4.4 Cấu hình VPN trên linux VPN, virtual private network, có thể được dịch là mạng ảo nội bộ. Bạn có thể tự hỏi, đã trong mạng nội bộ rồi thì còn dùng ảo làm chi? Người dùng khi đi công tác xa sử dụng VPN để nối tới các dịch vụ đang chạy hoặc những chương trình có thể dùng như khi họ đang ngồi trong văn phòng. Đó là lý do cho cái tên ảo (virtual). VPN cũng có thể sử dụng với mạng không dây hoặc giữa hai (hay nhiều hơn) địa điểm khác nhau. Bài viết này sẽ đi thẳng vào cách thiết lập mạng ảo nội bộ sử dụng OpenVPN mà nhắc nhiều đến các loại VPN khác nhau và các protocols đi theo phương thức VPN (pptp, l2tp, ipsec, gre, mpls). OpenVPN sử dụng thiết bị tun/tap (hầu như có sẵn trên các bản Linux) và openssl để xác nhận (authenticate), mã hóa (khi gởi) và giải mã (khi nhận) đường truyền giữa hai bên thành chung một network. Có nghĩa là khi người dùng nối vào máy chủ OpenVPN từ xa, họ có thể sử dụng các dịch vụ như chia sẻ tập tin sử dụng Samba/NFS/FTP/SCP, đọc thư (bằng cách khai báo địa chỉ nội bộ trên máy họ, ví dụ, 192.168.1.1), duyệt intranet, sử dụng các phần mềm khác..v..v..như là họ đang ngồi trong văn phòng. Tại sao người dùng nên dùng OpenVPN mà không dùng FreeS/WAN (sử dụng ipsec) hay PoPToP (sử dụng pptp)? Bởi vì việc thiết lập VPN sử dụng các chương trình này tương đối rắc rối, hay bị vấn đề với các máy trạm sử dụng NAT, người dùng hay bị ràng buộc/hạn chế với một vài phần mềm để kết nối đến máy chủ từ nhiều hệ điều hành khác nhau..v..v.. Với OpenVPN bạn không phải lo lắng vấn đề NAT traversal, thiết lập rất dễ dàng và có thể chạy trên nhiều hệ điều hành khác nhau như *BSD, Linux, Mac OS X, Solaris và Windows 2000 trở lên. Việc cài đặt OpenVPN khá đơn giản. Rất có thể nó đã có sẵn trên bản Linux bạn đang dùng. Nếu chưa có thì bạn có thể tải về từ trang web của OpenVPN. Phiên bản beta hiện tại là 2.0 beta15. Phiên bản stable hiện tại là 1.6.0. Ví dụ bên dưới sẽ hướng dẫn cách thiết lập VPN ở 2 chế độ khác nhau: Sử dụng thiết bị tun với một chìa khóa (static key) và sử dụng thiết bị tun với TLS-based để thiết lập đường nối giữa 2 máy hoặc một máy chủ và nhiều máy trạm.

KHOA CÔNG NGHỆ THÔNG TIN 138 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối 4.4.1.1 Dùng một chìa khóa Trên máy Linux

- Nạp thiết bị tun: modprobe tun - Chỉnh tường lửa cho phép kết nối UDP (hay TCP) cổng 5000: iptables -A INPUT -p UDP --dport 5000 -j ACCEPT - Chỉnh tường lửa cho phép thiết bị tun qua lại: iptables -A INPUT -i tun+ -j ACCEPT iptables -A FORWARD -i tun+ -j ACCEPT - Mài chìa khóa: openvpn --genkey --secret chiakhoa - Chạy OpenVPN: openvpn --dev tun0 --ifconfig 10.4.0.1 10.4.0.2 --verb 5 -- secret chiakhoa - Chép chiakhoa lên đĩa mềm hay copy nó qua máy mà bạn muốn nối vào máy Linux. --verb 5 có nghĩa bạn muốn xem openvpn đang làm gì trên màn hình. Nếu không muốn xem thì đừng dùng --verb 5 4.4.1.2 Trên máy Windows

- Tải OpenVPN cho Windows từ trang web OpenVPN Sau khi cài đặt phần mềm OpenVPN bạn sẽ thấy trong phần Control Panel → Network Connections đã có sẵn một thiết bị với tên là TAP-Win32 Adapter. Nếu bạn không thấy có nghĩa phần cài đặt đã bị sự cố. b. Khởi động VPN: Chọn Start → Run, gõ vào cmd để mở cửa sổ command prompt. Gõ cd pro*\openvpn Gõ openvpn.exe --remote địa_chỉ_máy_Linux --dev tun0 --ifconfig 10.4.0.2 10.4.0.1 --verb 5 --secret chiakhoa chiakhoa là tập tin chiakhoa bạn tạo từ máy Linux bên trên

- Kiểm thử trên máy Client Vậy thì làm sao để biết VPN đã hoạt động? Trên máy Windows Gõ ping 10.4.0.1 Trên máy Linux Gõ ping 10.4.0.2 4.5 Bài tập cuối chương 4 4.5.1 Cấu hình NAT bằng iptables Cho mô hình sau:

KHOA CÔNG NGHỆ THÔNG TIN 139 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

192.168.x.1 255.255.255.0 NAT

.1 .Auto Internet

.2

Client Win FIREWALL - NAT OUT - NAT in

DC1 Client Linux IP: 192.168.x.2 Remote PC SN: 255.255.255.0 DC, DNS GW: 192.168.x.1 DHCP, DNS: 192.168.x.2 WEB, FTP SSH MAIL Yêu cầu: 1. Xây dựng hệ thống mạng như mô hình. Gán IP các máy Client tự chọn (không trùng IP DC1 và Firewall) 2. Cấu hình DNS, Web, FTP trên máy DC1 3. Cấu hình tường lửa trên máy Firewall a. Cấu hình cho máy bên trong truy cập mạng Internet. Dùng các máy Client bên trong để truy cập google.com b. Chia sẻ dịch vụ ở câu 2 trên máy DC1 ra ngoài internet. Dùng máy Remote PC truy cập Web, FTP Hướng dẫn 1. Có thể dùng DHCP cài trên máy DC1 để cấp IP cho toàn mạng bên trong. 2. Xem hướng dẫn bài “Xây dựng hạ tầng mạng” để cấu hình DNS. Xem bài “Mail – Web – FTP” để cấu hình. 3. Thực hiện 2 lệnh NAT để thực hiện a. Cấu hình NAT IN b. Cấu hình Nat OUT 4.5.2 BÀI TẬP SQUID - APACHE 1. Thiết kế mô hình mạng sau:

KHOA CÔNG NGHỆ THÔNG TIN 140 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối

Yêu cầu:

- Xây dựng hệ thống mạng như sơ đồ trên - Cấu hình Squid proxy cho phép Client 1 và Client 2 truy cập internet - Cấu hình proxy trên các máy Client - Truy cập internet trên máy Client Lưu ý: – Switch: đường mạng VMNET 3. – Nếu có Internet thì dùng trực tiếp không qua máy Apache, khi đó IP card 1 máy Squid không cần đánh, dùng IP động được cấp phát từ trên xuống. Đánh IP cho các máy theo bảng sau: Máy Hệ điều hành IP Card 1 IP Card 2 APACHE Linux 192.168..254 SQUID Linux 192.168..254 172.16..1 CLIENT1 Linux 172.16..2 CLIENT2 Win XP 172.16..3 2. Khởi động máy linux APACHE và cấu hình dịch vụ Apache (khi không có NET) – Mở tập tin /etc/httpd/conf/httpd.conf – Tìm xem thư mục web mặc định nằm ở đâu trên thư mục gốc / – Khởi động dịch vụ httpd – Dùng máy Web Server kiểm tra truy cập bằng localhost và bằng địa chỉ IP 3. Khởi động máy linux SQUID và cấu hình dịch vụ Squid Nghi thức truy cập web

KHOA CÔNG NGHỆ THÔNG TIN 141 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối http_port 8080 // mặc định là 3128. #icp_port 3130 // mặc định là 3130. //cache_dir: khai báo kích thước thư mục cache cho squid, mặc định là: cache_dir ufs /var/spool/squid/cache 100 16 256 //Đây là cách xây dựng các rule trong squid: (chưa quan tâm đến) //Ví dụ “cho phép”: Ta chỉ cho phép mạng 172.16.1.0/24 được dùng proxy server bằng từ khoá src trong acl. acl MyNetwork src 172.16.1.0/255.255.255.0 http_access allow MyNetwork http_access deny all //Ví dụ “cấm”: Ta cũng có thể cấm các máy truy xuất đến những site không được phép bằng từ khoá dstdomain trong acl, ví dụ: acl BadDomain dstdomain yahoo.com http_access deny BadDomain http_access deny all Tìm mở dòng: http_access allow all Công việc sau khi sửa file cấu hình xong: a- Khởi tạo swap directory: #squid -z b- Khởi động squid #service squid start Kết quả là một chữ [OK] màu xanh lá là xong hết mọi chuyện c- Mở tường lửa #iptables -F 4. Cấu hình proxy vào net cho máy Client Windows XP: IE Tools → Internet Options… → Connections → Lan Seetings …  Use a proxy server for your LAN → Đánh IP của card 2 của máy SQUID và port 8080

KHOA CÔNG NGHỆ THÔNG TIN 142 Chương 4. Bảo Mật Và Chia Sẻ Kết Nối  Bypass proxy for local adress → OK

Linux: FireFox Edit → Preference → Advanced / Network → Setting…  Manual proxy configuration Đánh IP của card 2 của máy SQUID và port 8080  Use this proxy for all protocol → OK

Thử nghiệm: – Trên máy Client, mở trình duyệt, đánh vào địa chỉ cần truy cập đến web server Apache.

KHOA CÔNG NGHỆ THÔNG TIN 143 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom) CHƯƠNG 5. MẠNG KHÔNG ĐĨA CỨNG VỚI MÁY CHỦ LINUX (BOOTROM)

➢ Giới thiệu chương: Chương trình CSMBoot View là ứng dụng chạy trên hệ điều hành Linux và Windows giúp người sử dụng tương tác với hệ thống máy chủ CSMBoot thông qua giao diện giao tiếp người dùng để cài đặt cấu hình và điều kiển các chức năng CSMBoot. Chương trình CSMBoot View kết nối trực tiếp xuống các dịch vụ CSMBoot để hiển thị các thông tin trực quan giúp người sử dụng dễ dàng tương tác với hệ thống CSMBoot từ xa thông qua hệ thống mạng LAN nội bộ trong phòng máy. ➢ Mục tiêu chương:

- Trình bày được vai trò và chức năng dịch vụ quản lý boot không đĩa cứng. - Cấu hình được dịch vụ quản lý bootrom bằng CMS của VNG.

KHOA CÔNG NGHỆ THÔNG TIN 144 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom) 5.1 Chuẩn bị và cài đặt máy chủ bootrom 5.1.1 Cấu hình máy tính Máy chủ bootrom là gì? Máy chủ Bootrom phòng net là một hệ thống máy tính chủ có chức năng quản lý các máy trạm trong phòng net bao gồm: Hệ điều hành, dữ liệu, Game… Giúp hệ thống máy trạm có thể hoạt động bình thường mà không cần ổ cứng. Tất cả các phần mềm dữ liệu hay hệ điều hành sẽ được lưu trên máy chủ và được chia sẻ qua mạng Lan tới các máy trạm. Khi khởi động máy chủ, tất cả các máy trạm sẽ thông qua card mạng LAN để kết nối tín hiệu đến máy chủ và khởi động bằng hệ điều hành trên máy chủ. Những Lưu Ý Khi Lựa Chọn Cấu Hình Sever Bootrom Cho Quán Net Nguyên lý hoạt động của hệ thống bootrom phòng net:

- Hệ thống bootrom không ổ cứng hiện nay sẽ hoạt động như sau: Máy trạm sẽ vẫn chạy trên phần cứng của mình (Main, Ram, CPU…) và sẽ lấy dữ liệu (hệ điều hành, Game…) từ Máy chủ bootrom thông qua mạng LAN - Do vậy, để tăng tốc độ cho phòng máy bạn cần tập chung chủ yếu vào ổ cứng (HDD, SSD) và cổng kết nối mạng Để có thể xây dựng cho mình một bộ máy chủ bootrom cho phòng game phù hợp về giá tiền, hiệu năng cũng như khả năng vận hành ổn định thì bạn cần lưu ý một số vấn đề dưới đây. 5.1.1.1 Cấu hình máy chủ bootrom nên cao hơn số lượng máy cần quản lý Nghĩa là khi bạn lựa chọn một 1 bộ sever bootrom quản lý 20 máy trạm, thì bạn nên xây dựng cấu hình sao cho sever của bạn có thể chạy mượt tối thiểu từ 30 PC trở lên. Điều này sẽ giúp phòng máy của bạn hoạt động ổn định hơn trong quá trình sử dụng. Ngoài ra, sau này nếu bạn có ý định tăng thêm máy thì sẽ không cần phải nâng cấp sever của mình. 5.1.1.2 Tập chung vào ổ cứng, SSD Hiện nay, có rất nhiều các tựa game nặng yêu cầu tốc độ truy suất ổ cứng rất cao. Do vậy khi đầu tư cây sever bạn nên tập chung hơn vào các dòng ổ cứng. Ví du: + HDD thì nên sử dụng các dòng Gold để có tốc độ truy xuất cao hơn. + Bạn cũng có thể sử dụng các ổ SSD để lưu game, inmage…

KHOA CÔNG NGHỆ THÔNG TIN 145 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom) 5.1.1.3 Thêm cổng giao tiếp mạng Lưu ý tiếp theo nếu bạn muốn phòng net bootrom của bạn hoạt động một cách mượt mà đó chính là thêm cho mình cổng giao tiếp mạng(Card mạng), lý do thì chắc chắn bởi vì hệ thống bootrom hoạt động thông qua mạng LAN. Chuẩn Card mạng chủ yếu hiện nay sẽ chạy với tốc độ 1G qua LAN. Thế nhưng hiện nay, với công nghệ mới các loại card LAN đã có tốc độ truyền tải lên tới 10G – 20G, Với các dự án Cyber Game thì bạn nên sử dụng các dòng Card mạng này để đảm bảo tốc độ truyền tải nhanh nhất. 5.1.1.4 Lựa chọn các linh kiện chuyên dụng cho sever Một lưu ý quan trọng khi bạn lựa chọn các linh kiện cho sever bootrom đó chính là lựa chọn các linh kiện chuyên dụng dành cho sever. Với đặc điểm tại các quán net Việt Nam hiện nay, Sever luôn luôn hoạt động 24/24h do vậy với các linh kiện bình thường mà chạy với cường độ này thì tuổi thọ sẽ không cao. Trong trường hợp gặp sự cố sever sẽ ảnh hưởng tới toàn bộ hoạt động của hệ thống máy trạm do vậy bạn cần đặc biệt phải lưu ý. Ví dụ: Mainboard cần sử dụng mainboard của Intel chuyên dụng cho sever 5.1.1.5 Ram cần sử dụng dòng EEC Ổ cứng nên dùng các dòng chuyên Sever: HDD Black , Gold… Các dòng SSD chuyên dụng 5.1.2 Chọn phần mềm CMS CSM Boot là phần mềm quản lý phòng máy không ổ cứng (Bootrom), đáp ứng hầu như tất cả nhu cầu của chủ phòng máy hiện nay. Với nhiều tính năng vượt trội sẽ giúp chủ phòng máy Internet quản lý phòng máy dễ dàng hơn. Tính năng vượt trội của CSM Boot

- Hỗ trợ nhiều game và cập nhật game nhanh nhất. - Hỗ trợ trên tất cả các hệ điều hành đang có như: Window, Linux... - Chi phí đầu tư cấu hình máy chủ thấp hơn các sản phẩm khác hiện có trên thị trường, tận dụng hiệu quả các thiết bị hiện hữu tại các phòng máy đang hoạt động. - Không tốn phí bản quyền và các vấn đề pháp lý về bản quyền phần mền liên quan tích hợp trong hệ thống. - Miễn phí trọn gói chi phí cài đặt, sử dụng và bảo trì.

KHOA CÔNG NGHỆ THÔNG TIN 146 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom) - Đội ngũ kỹ thuật viên địa phương hỗ trợ 24/24, bảo trì nhanh chóng và kịp thời xử lý các yêu cầu của khách hàng. - Luôn có các chương trình ưu đãi cho chủ phòng máy và game thủ. Các tính năng mới của CSM Boot

- Cập nhật kernel Ubuntu mới nhất - Hỗ trợ fail-over, auto-balancing cho phòng máy nhiều máy chủ - Nâng cấp tính năng cache trên máy chủ: cache RAM ảnh đĩa, cache ổ game qua 2 lớp RAM và SSD - Cải thiện tốc độ đọc / ghi ổ game - Thông tin đọc / ghi, tốc độ truyền tải ảnh đĩa giữa máy chủ - máy trạm - Tích hợp công cụ dùng RAM máy trạm làm ổ ảo, giúp giảm lưu lượng truyền tải giữa máy chủ - máy trạm 5.1.3 Quy trình cài đặt phần mềm CMS Việc cài đặt bất kì một chương trình và ứng dụng nào đều không quá khó đối với người sử dụng kể cả những người không am hiểu về vi tính. Tuy nhiên, có những phần mềm khiến bạn gặp chút rắc rối trong việc cài đặt. Và CSM Boot không quá khó, nhưng cũng không dễ nếu bạn không làm theo những hướng dẫn cài đặt CSM Boot sau đây: 5.1.3.1 Các bước cài đặt CSMBoot cho Server

- Bước 1: Bạn vào bios sửa Sata mode thành AHCI, tiếp theo cho máy tính boot với USB đã tạo; - Bước 2: Chọn ổ đĩa, cài đặt OS, nhấp chuột vào Install Now và chờ trong giây lát; - Bước 3: Khi cài đặt hoàn tất bạn bấm khởi động lại Server với tài khoản root, mật khẩu root; - Bước 4: Update kernel, bấm OK hoàn tất rồi khởi động lại; đăng nhập lại Server với mật khẩu root; - Bước 5: Tiến hành kiểm tra card mạng, vào Network Connections, chọn Ethernet connection 1 never. - Bước 6: Config card mạng, vào Wired connection, nhấp vào Add, ấn tiếp mụ IPV4 Settings, chọn Manual rồi bấm Add, rồi chọn Save. Sau đó khởi động lại Server. - Bước 7: Bạn vào CSMBoot cài đặt lại các thông số, nếu đòi mật khẩu thì bạn nhập vào ‘abc123’. DHCP Server: IP của máy Server. Sau khi điền các

KHOA CÔNG NGHỆ THÔNG TIN 147 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom) dãy số IP bắt đầu và IP kết thúc (không được chứa IP Server) thì việc cài đặt Server hoàn thành. 5.1.3.2 Các bước Upload hình ảnh CSMBoot Sau khi cài đặt xong Server, bạn tiến hành Upload hình ảnh lên Server.

- Bước 1: Trước tiên bạn cài đặt soft và Driver cho Win; - Bước 2: Cài tiếp CSM Client vào rồi nhập IP của Server; - Bước 3: Tiến hành chạy CSMBoot Client, vào chọn độ phân giải màn hình sau đó cập nhật lên máy chủ. Tiếp theo upload ảnh đĩa, chọn tên và kích thước tùy thích rồi ấn vào chọn tạo ảnh đĩa. - Bước 4: Vào tiếp Disk Management, chọn Next, Next, rồi đánh dấu vào ổ đĩa ảo, Next và hoàn thành. - Bước 5: Sau khi đã tạo ổ ảo 10G, bạn Convert ổ sảo sang Basic Dick rồi tạo Partition mới cho ổ ảo, và chờ Format cho xong sau đó cài đặt Active. - Bước 6: Bạn trở lại CSMBoot Client, chọn ổ nguồn và ổ đích, sau đó copy rồi quay lại Server cài đặt chỉnh lại ‘ảnh đĩa mẫu’ thành đĩa vừa copy lên Server là boot được. 5.2 Thiết lập các thông số trên server bootrom 5.2.1 Cấu hình PXE 5.2.1.1 Thiết lập thông tin máy chủ

Hình 5.1- Menu chính của chương trình. Thực hiện khai báo thông tin cấu hình phần cứng máy chủ CSMBoot Linux để chương trình được vận hành đúng đắn. Chọn danh mục “Máy chủ” >> để thực hiện cài đặt, chương trình hiện hộp hội thoại với các thông tin chính như sau:

KHOA CÔNG NGHỆ THÔNG TIN 148 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom) - Máy trạm: Thiết lập các thông số mặc định cho máy trạm, khi một máy trạm mới được thêm vào danh sách sẽ lấy các thông tin này để khởi động. - Máy chủ: Thiết lập các thông số liên quan đến thông tin cấu hình mạng máy chủ, cấp IP cho máy trạm, cửa ngõ giao tiếp với các máy khác trong hệ thống mạng cục bộ CSMBoot cũng như hệ thống mạng toàn cầu. - Ảnh đĩa: Quản lý ảnh đĩa và các bản sao lưu của nó giúp việc tạo và sử dụng ảnh đĩa hiệu quả, đáp ứng đúng đủ yêu cầu hoạt động phòng mày. 5.2.1.2 Thiết lập thông tin máy trạm

Hình 5.2- Thiết lập thông tin máy trạm. Bảng 5.1: Giải thích thông tin tab Máy trạm trong form thiết lập chung [1] Thành phần Ý nghĩa Số máy trạm Tổng số máy trạm phòng máy Lưu ý: Nên khai báo nhiều hơn số máy thực có để khi gắn thêm máy mới hoặc khi thay đổi card mạng máy trạm vẫn được cấp IP để hoạt động Tên máy trạm Tiền tố tên máy trạm. Ví dụ: khai báo “MAY-“ tên máy trạm sẽ là “MAY- 01”

KHOA CÔNG NGHỆ THÔNG TIN 149 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom) Máy trạm mới Mở / tắt chức năng cho phép thêm máy trạm mới vào danh sách. Chọn tự động: Tên máy trạm được chọn tự động theo thứ tự boot Chọn thủ công: Cho người sử dụng chọn tên máy Lưu ý: - Trường hợp gắn thêm máy mới hoặc thay đổi card mạng đều được xem là máy mới nên cần cấp IP cho các thiết bị mới này. - Tắt chức năng thêm máy trạm mới, chương trình sẽ tắt chức năng DHCP cấp IP

Preboot PXE File ROM mẫu tiền khởi động.

Lưu ý: Tùy theo cấu hình phần cứng máy trạm mà chọn file ROM cho phù hợp, việc không tương thích có thể gây khởi động chậm hoặc không khởi động được

Cân bằng tải Danh sách card mạng cân bằng cải Nơi chứa ảnh đĩa Nơi chứa ảnh đĩa boot lưu trữ trên máy chủ. Để thay đổi nơi lưu trữ, tham khảo thêm tài liệu ngay File Ảnh mẫu Ảbênnh dư đĩaớ im ẫu mặc định cho máy trạm khởi động Ổ đĩa game Ổ đĩa chứa game gắn trên máy chủ Nơi chứa writeback Nơi chứa file tạm khi máy trạm hoạt động Giới hạn writeback Giới hạn kích thước file writeback, nếu writeback quá giới hạn sẽ tự động reset Lưu Lưu thông tin cài đặt máy trạm

Lưu ý: Khi chọn lưu các thông cài đặt mới có tác dụng Chọn thư mục “Nơi chứa ảnh đĩa”

KHOA CÔNG NGHỆ THÔNG TIN 150 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom)

Hình 5.3- Chọn thư mục chứa ảnh đĩa. - Click vào dấu “…” để về thư mục cha - Click vào “tên thư mục” để chọn Chọn “Ổ đĩa Game” – click vào danh sách để chọn ổ Game

Hình 5.4- Chọn ổ đĩa và ảnh đĩa làm ổ game máy trạm. - Thư mục đĩa Game: Nơi chứa ảnh đĩa làm ổ Game - Check vào ô ổ đĩa để chọn ổ đĩa làm ổ Game trên máy trạm - Check vào ô ảnh đĩa để chọn ảnh đĩa làm ổ Game trên máy trạm Ghi chú: những ảnh đĩa được chọn làm ảnh khởi động cho máy trạm KHÔNG được làm ổ đĩa game. Trong hình trên, ảnh đĩa WinXP.img được chọn làm ảnh đĩa khởi động cho máy trạm nên bị “mờ đi” và không cho phép chọn làm ổ đĩa game Chọn danh sách “Nơi chứa write-back”

KHOA CÔNG NGHỆ THÔNG TIN 151 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom)

Hình 5.5- Chọn danh sách thư mục writeback. Bảng 5.2: Ý nghĩa các thành phần trong form danh sách Write Back Nội dung Ý nghĩa Thêm thư mục … Chọn thư mục thêm vào danh sách write-back Xóa Chọn thư mục write-back và nhấn “Xóa” để xóa khỏi danh sách Đồng ý Cập nhật danh sách mới chọn Hủy Hủy chọn Chọn danh sách card mạng cân bằng tải

Hình 5.6- Chọn danh sách card mạng cân bằng tải. Check vào tên card mạng để chọn danh sách cân bằng tải, chương trình sẽ tính toán tự động cân bằng tải theo cách chia đều xoay vòng các card mạng.

KHOA CÔNG NGHỆ THÔNG TIN 152 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom) 5.2.2 Cấu hình cấp phát IP

Hình 5.7- Thiết lập thông tin máy chủ. Bảng 5.3: Giải thích thông tin tab Máy chủ trong form thiết lập chung # Ý nghĩa

Máy chủ DHCP Chọn IP làm máy chủ DHCP Netmask Chọn subnetmask Gateway Chọn IP gateway IP bắt đầu Chọn IP bắt đầu cho máy trạm IP kết thúc Chọn IP kết thúc cho máy trạm DNS1 Chọn DNS thứ nhất DNS2 Chọn DNS thứ hai IP dành riêng Chọn danh sách các IP dành riêng như camera, máy tính tiền, các thiết bị khác … có IP nằm trong khoảng từ ‘IP bắt đầu’ – ‘IP kết thúc’. Lưu ý: những IP dành riêng sẽ không được DHCP cấp lại cho bất kỳ mày nào khác, vì vậy không đặt IP dành riêng cho những máy trạm đang hoạt động. Các IP dành riêng đặt cách nhau bằng dấu ‘,’

KHOA CÔNG NGHỆ THÔNG TIN 153 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom) Tìm Thực hiện tìm kiếm các IP hiện diện trong hệ thống, chức năng này chỉ thực hiện khi chạy chương trình trên máy chủ CSMBoot và không thực hiện khi chạy từ các máy Windows. Khởi động dịch Khi lưuthự cthông hiện tìmtin càikiế m:đặt chươngchương trìnhtrình ssẽẽ quétkhở i tđừộ ‘IPng cácbắt vụ Boot dđịầchu’ vchoụ boot đến liên‘IP kquanết thúc’

Lưu Lưu thông tin cài đặt máy chủ Lưu ý: Khi chọn lưu các thông cài đặt mới có tác dụng Tìm kiếm IP dành riêng

Hình 5.8- Chọn IP dành riêng. Thực hiện tìm kiếm IP hiện hữu trong hệ thống và đưa vào danh sách như hình trên để chọn làm dành riêng.

- Những IP trong danh sách “IP dành riêng” sẽ được đánh dấu chọn nếu được tìm thấy. - Những IP trong danh sách “IP dành riêng” được đánh dấu nếu không tìm thấy (có thể thiết bị tạm thời tắt đi nên trong quá trình tìm kiếm không nhận ra) và được đưa vào danh sách để người sử dụng quyết định chọn/bỏ chọn cho phù hợp. Thiết lập thông tin cache

KHOA CÔNG NGHỆ THÔNG TIN 154 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom)

Hình 5.9- Thiết lập thông tin cache. Thiết lập cache cho ổ đĩa game gồm hai lớp: Cache trên RAM và cache trên ổ đĩa SSD Cache ổ đĩa game: Thực hiện cache cho ổ đĩa game Bảng 5.4: Giải thích thông tin tab Cache trong form thiết lập chung # Ý nghĩa Ổ đĩa game Chọn ổ đĩa game để cache Nơi chứa cache Nơi chứa file cache cho ổ đĩa game trên ổ SSD Lưu ý: Thư mục “Nơi chứa cache” phải có tốc độ đọc/ghi cao hơn tốc độ đọc “Ổ đĩa Game” thì cache mới phát huy tác dụng. Ví dụ: - Ổ đĩa Game: /dev/sdb là ổ đĩa cứng HDD. Kích thước cache -Kích Nơi thưchứớac cache:file cache /writeback/cache trên ổ SSD dùng là ổlàm đĩa cache SDD. ổ game, (SSD) đơn vị GB Kích thước cache Kích thước RAM dung làm cache cho ổ game, đơn vị GB (RAM) Cache RAM ảnh đĩa: Thực hiện cache trên RAM cho từng ảnh đĩa. Ghi chú: Lượng RAM được sử dụng = kích thước cache x số ảnh đĩa sử dụng Nội dung Ý nghĩa Kích thước cache Kích thước RAM dung làm cache cho ảnh đĩa, đơn vị MB

KHOA CÔNG NGHỆ THÔNG TIN 155 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom) Lưu ý: Chức năng lưu chỉ thực hiện khi có sự thay đổi thông tin cache. Sau khi lưu xong phải khởi động lại máy chủ cache mới có hiệu lực 5.2.3 Cấu hình đĩa ảo Chức năng quản lý các ảnh đĩa đang được chọn làm ảnh khởi động máy trạm Lưu ý: Những ảnh đĩa KHÔNG được chọn làm ảnh đĩa khởi động sẽ không xuất hiện trong danh sách ảnh đĩa boot, ví dụ như ảnh đĩa Gamehost.img không hiện ra ở đây.

Điểm khởi động

Hình 5.10- Thiết lập thông tin máy trạm. - Gộp điểm sao lưu vào ảnh gốc: hệ thống gộp tất cả các điểm sao lưu vào ảnh đĩa gốc nhằm tạo một ảnh đĩa nhỏ gọn ít chiếm dung lượng đĩa - Xóa điểm sao lưu đang được chọn - Chọn điểm sao lưu làm điểm khởi động mặc định cho máy trạm 5.2.4 Cấu hình user và danh mục máy client Chức năng Kiểm tra cấu hình cài đặt thực hiện kiểm tra các thông số cài đặt so sánh với thực trạng phần cứng hệ thống máy chủ CSMBoot Linux để tìm ra sai sót nếu có và đưa ra gợi ý cho người sử dụng điều chỉnh cho phù hợp. Trong một vài trường hợp sau thời gian sử dụng thiết bị phần cứng bị lỗi như card mạng trên máy chủ bị chết gây máy trạm không khởi động được - chương trình kiểm tra để phát hiện ra các sai sót này nếu có. Lưu ý: Chức năng này chỉ có hiệu lực khi chạy CSMBoot View trên môi trường Linux, trên môi trường Windows không thực hiện được do cần phải thực thi các câu lệnh xuống hệ thống để kiểm tra thông tin.

Chọn danh mục “Máy chủ” >> để thực hiện lệnh kiểm tra, kết quả kiểm tra được hiển thị giống bảng sau: KHOA CÔNG NGHỆ THÔNG TIN 156 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom)

Hình 5.11- Bảng kết quả kiểm tra thông tin cài đặt. Trong bản trên, hệ thống phát hiện card mạng với IP 192.168.1.252 không tồn tại – có thể do card mạng bị hỏng hoặc do sai sót khai báo, ngoài ra trên danh sách còn phát hiện ra thêm ba lỗi khác và các gợi ý sửa chữa.

Hình 5.12- Thiết lập cấu hình chung cho máy chủ BootRom CMS. 5.3 Cài đặt máy Client và build imange lên server 5.3.1 Download phần mềm client Truy cập máy chủ theo đường link http://192.168.101.254/csm và download hai chương trình CSMBootClient Setup và CSMDiskCreator để cài máy trạm và tạo ảnh đĩa

KHOA CÔNG NGHỆ THÔNG TIN 157 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom)

Hình 5.13- Tải phần mềm CMS Client. Lưu ý: Không nên download về ổ đĩa C: chứa tập tin hệ thống Windows, bởi những file này không cần thiết để trong ảnh đĩa mẫu Chạy chương trình CSMBootClient Setup để cài đặt CSM drivers và các chương trình vận hành máy trạm qua hệ thống CSMBoot

Hình 5.14- Màn hình chào mừng. Nhấn “Tiếp theo >” và thực hiện theo các yêu cầu để cài đặt chương trình vào hệ thống.

KHOA CÔNG NGHỆ THÔNG TIN 158 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom)

Hình 5.15- Khai báo IP máy chủ CMS. Kết thúc quá trình cài đặt, hãy nhập IP máy chủ CSMBoot Linux theo yêu cầu để hoàn thành quá trình cài đặt Nhấn OK để đóng cửa sổ nhận IP máy chủ và kết thúc quá trình cài đặt

Hình 5.16- Kết thúc quá trình cài đặt. Lưu ý: Trên Windows 7 – 32/64 bits, nên khởi động lại ngay sau khi cài đặt xong 5.3.2 Tạo ảnh đĩa Cài đặt card mạng đa cấu hình

KHOA CÔNG NGHỆ THÔNG TIN 159 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom)

Hình 5.17- Cài đặt image đa cấu hình. Chọn card mạng active trong hệ thống và chọn “Cài đặt đa cấu hình”

- Windows XP tạo khoảng 10 - 15 G - Windows 7 tạo khoảng 25 – 35 G tùy theo dung lượng file trên đĩa chứa Windows nhiều hay ít, trong quá trình hoạt động Windows sinh ra file tạm tmp, swap file, data từ các chương trình khác … vì vậy cần tạo đĩa lớn đủ để chạy ngon Windows nhưng cũng không nên lớn quá, bởi quá lớn sẽ chiếm nhiều dung lượng trên ổ đĩa SSD của CSMBoot

Hình 5.18- Tạo ảnh đĩa. Lưu ý: Trên Windows 7 - 64bits, khi CSMDisk Creator thực hiện initialize ổ đĩa, hoặc tạo partion thì Windows sẽ popup cửa sổ yêu cầu user thực hiện format đĩa

KHOA CÔNG NGHỆ THÔNG TIN 160 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom) để có thể sử dụng được … v/v lúc này, user cứ để mặc hệ thống thông báo hoặc đóng các popup đi mà không thực hiện bất kỳ thao tác format hay initialize nào, mọi việc để cgi CSMDisk Creator thực hiện, nếu user chọn format hoặc active ổ đĩa sẽ dẫn đến xung đột và chương trình không sao chép được ảnh đĩa và thông báo lỗi. Nếu đã lỡ tay format và CSMDisk Creator báo lỗi, user có thể thực hiện sao chép disk-to-disk thủ công như bản 2.0.0 trước đây, lúc này ảnh đĩa trên máy chủ có tên mở rộng “.orig” và user phải tự tạo cấu hình để tạo file ảnh đĩa “.img” mới boot được ảnh đĩa. 5.3.3 Capture ảnh đĩa đưa lên Server

Hình 5.19- Chuẩn bị bộ cài đặt csm bootclient và csm diskcreator.

Hình 5.20- Khai báo IP Server CSM để up ảnh. Đầu tiên cài đặt csm bootclient, sau đó máy sẽ yêu cầu ip của máy csm server. Hãy nhập chính xác ip của máy csm server, khi hoàn tất máy sẽ tự động khởi động lại.

KHOA CÔNG NGHỆ THÔNG TIN 161 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom)

Hình 5.21- Tạo File ảnh đĩa. Sau khi máy đã khởi động trở lại thì tiếp tục tiến hành tạo ảnh đĩa bằng CSM Disk Creator.

Hình 5.22- Quá trình tạo ảnh đĩa đang được thực hiện.

KHOA CÔNG NGHỆ THÔNG TIN 162 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom)

Hình 5.23- Quá trình tạo ảnh đĩa thành công. 5.3.4 Điều chỉnh chế độ protect

Hình 5.24- Chuyển trạng thái của image. Trên giao diện CSMBoot UI, right click vào Máy-01 để mở pop-up danh mục và chọn “Mở Super OS”. Chương trình sẽ yêu cầu bạn nhập vào “nhãn sao lưu” để tạo bản lưu trữ nhằm phục hồi nếu ảnh đĩa có bị sai sót trong quá trình cập nhật.

KHOA CÔNG NGHỆ THÔNG TIN 163 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom)

Hình 5.25- Tạo Snap shoot cho Image. Khởi động lại Máy-1 để quyền Super OS có hiệu lực, người sử dụng có thể khởi động Máy-01 một hoặc nhiều lần tùy theo yêu cầu chỉnh sửa chường trình cho đến khi nào nhu cầu chỉnh sửa hoàn thành và thực hiện “Đóng Super OS” để kết thúc việc chỉnh sửa ảnh đĩa.

Hình 5.26- Mở super cho hệ điều hành. Chương trình sẽ hỏi để Lưu thông tin thay đổi / bỏ quả những thay đổi

Hình 5.27- Xác nhận khi đóng super OS. - Lưu: Lưu thông tin thay đổi theo điểm phục hồi mới

KHOA CÔNG NGHỆ THÔNG TIN 164 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom) - Không lưu: Bỏ qua thông tin thay đổi và quay về điểm ảnh trước đó 5.3.5 Khởi động máy Client Chế độ chọn tên máy thủ công :

Hình 5.28- Nhận dạng các máy Client. Dùng phím Lên Xuống để chọn tên máy và Enter để chọn Hoặc boot trực tiếp vào Windows nếu chọn tên máy tự động

Hình 5.29- Quá trình khởi động máy Client không đĩa cứng. Sau khi Windows máy 1 khởi động xong, thông tin hiển thị trên cả hai hệ thống CSMClick và CSMBoot 5.4 Bài tập cuối chương: Thực hiện mô hình sau:

KHOA CÔNG NGHỆ THÔNG TIN 165 Chương 5: Mạng không đĩa cứng với máy chủ Linux (bootrom)

Yêu cầu: Xây dựng phòng học môn Tin học (Cơ bản, Văn phòng, Ứng dụng CNTT) 1. Cài đặt phần mềm làm server bootrom lên máy Server (dùng CMS hoặc nghiên cứu PXE trong Centos) a. Cấu hình quản lý Bootrom: DHCP, Chỉ định thư mục chứa Image, máy ảo mẫu. b. Tạo đĩa ảo và map vào máy ảo mẫu 2. Dùng 1 máy Client có đĩa cứng, cài đặt Windows (7/10). Cài Driver và các ứng dụng cần thiết. 3. Khởi động bằng ROM cho nhận máy ảo mẫu. Định dạng đĩa ảo. Cài đặt phần mềm Build Image cho Client. Tiến hành build ảnh đĩa cứng máy PC lên đĩa ảo. 4. Rút đĩa cứng, cho khởi động PC bằng Image. Tinh chỉnh hệ điều hành và ứng dụng. 5. Khoá đĩa cứng ảo. Tiến hành khởi động các máy và chọn kết nối với các máy ảo trên server. Cho khởi động Windows kiểm tra các ứng dụng đã cài đặt. Hướng dẫn:

- Thực hiện theo các bước trong chương 5 - Xem tài liệu tham khảo.

KHOA CÔNG NGHỆ THÔNG TIN 166

PHỤ LỤC DANH MỤC HÌNH ẢNH Hình 1.1 Mô hình triển khai hệ thống domain với samba. [3] ...... 10

Hình 1.2 Phân giải tên miền hotec.vn...... 10

Hình 1.3 Cấu hình file hosts...... 11

Hình 1.4 Kiểm tra host name...... 11

Hình 1.5 Bổ sung tên máy chủ samba để thành FQDN...... 11

Hình 1.6 Kiểm tra các thành phần samba được cài đặt...... 12

Hình 1.7 Mô hình Additional Domain trên Samba (ADC) [5]...... 14

Hình 1.8 Nhập máy Client Windows vào domain thành công...... 19

Hình 1.9 Group policy management trong máy chạy RSAT...... 24

Hình 1.10 Lưu trữ file script...... 25

Hình 1.11 Tạo GPO...... 25

Hình 1.12 Chọn file Script cho logon...... 25

Hình 1.13 Cập nhật policy...... 26

Hình 1.14 Quyền truy cập tập tin thư mục và giá trị tương ứng...... 27

Hình 1.15 Các quyền có thể áp đặt cho tập tin bằng giá trị số...... 27

Hình 2.1- Cấu trúc hệ thống tên miền ...... 31

Hình 2.2-Sơ đồ bài toán định tuyến ...... 39

Hình 2.3-Thông tin định tuyến trên các card mạng R1 ...... 39

Hình 2.4-Thông tin định tuyến trên các card mạng R2 ...... 40

Hình 2.5-Lệnh ifconfig trên card mạng eth2 ...... 40

Hình 2.6-Thông tin bảng định tuyến trên Ubuntu ...... 40 Hình 2.7-Thông tin bảng định tuyến R1 chưa thấy Destination 192.168.10.0/24 ...... 41

Hình 2.8-Chuyển Control packet forwarding ...... 41

Hình 2.9-Lệnh thêm một định tuyến ...... 42

Hình 2.10-Thông tin định tuyến trên các card mạng R2 ...... 42

Hình 2.11-Kiểm tra liên lạc 2 mạng bằng lệnh ping từ máy .200 ...... 43

KHOA CÔNG NGHỆ THÔNG TIN 167

Hình 2.12-Kiểm tra liên lạc 2 mạng bằng lệnh ping từ máy .100 ...... 43

Hình 2.13-Sơ đồ định tuyến với 2 router ...... 44

Hình 2.14-Download phần mềm quagga ...... 44

Hình 2.15-telnet vào quagga tại bộ định tuyến ...... 45

Hình 2.16-Cấu hình ip route cho bộ định tuyến tĩnh ...... 46

Hình 2.17-Cấu hình định tuyến tĩnh cho card thứ 2 ...... 47

Hình 2.18-Cấu hình rip cho bộ định tuyến tĩnh ...... 47

Hình 2.19-Kiểm thử bằng telnet ...... 48

Hình 2.20-Đặt IP cho card eth0 và eth1 ...... 48

Hình 2.21-Khởi động dịch vụ ripd ...... 48

Hình 2.22-Telnet đến cổng 2602 ...... 49

Hình 2.23-Telnet đến cổng 2602 ...... 49

Hình 2.24-Xem bảng định tuyến router 1 ...... 49

Hình 2.25-Xem bảng định tuyến router 2 ...... 49

Hình 2.26-Ping qua máy 172.16.2.2 ...... 50

Hình 2.27-Ping qua máy 172.16.3.2 ...... 50

Hình 2.28-Mô hình 3 nhành mạng cấp xuyên Router ...... 58

Hình 2.29-Mô hình DHCP Relay Agent trên Router ...... 62

Hình 2.30-Bảng định tuyến ...... 62

Hình 2.31-Máy Client 1 nhận IP từ Server ...... 65

Hình 2.32-Máy Client2 nhận IP từ Serve ...... 65

Hình 3.1-Cài đặt Zimbra trên hệ thống ...... 71

Hình 3.2-Chọn các gói để cài đặt ...... 72

Hình 3.3-Khai báo ban đầu cho mail server ...... 72

Hình 3.4-Xem License của Zimbra ...... 75

Hình 3.5-Truy cập mail Zimbra qua giao diện web ...... 75

Hình 3.6-Mail được gửi từ zimbra ra ngoài Gmail ...... 76

Hình 3.7-Hệ thống user trên domain quản lý qua RSAT ...... 77

Hình 3.8-Thuộc tính của tài khoản người dùng ...... 78

KHOA CÔNG NGHỆ THÔNG TIN 168

Hình 3.9-Cấu hình Zimbra quan giao diện đồ hoạ ...... 78

Hình 3.10-Cấu hình tuỳ chọn Authentication ...... 79

Hình 3.11-Cài đặt External Active Directory ...... 79

Hình 3.12-chỉ định địa chỉ ldap cho việc tích hợp Zimbra ...... 79

Hình 3.13-Cài đặt External Active Directory ...... 80

Hình 3.14-Khai báo user chứng thực trên domain ...... 80

Hình 3.15-Hai bước cuối cùng, bấm Finish kết thúc ...... 81

Hình 3.16-Màn hình Manage ...... 81

Hình 3.17-Tạo user mới ...... 81

Hình 3.18-Khai báo user ...... 82

Hình 3.19-Hoàn tất quá trình tạo user ...... 82

Hình 3.20-Màn hình đăng nhập mail bằng user mới ...... 83

Hình 3.21-Màn hình mail Client Zimbra ...... 83

Hình 3.22-Đăng nhập bằng vuser1 ...... 97 Hình 3.23-User vuHình 3.24ser1 upload file web lên web root home directory ...... 98

Hình 4.1-Sơ đồ mạng với tường lửa pfSense ...... 102

Hình 4.2-Màn hình giới thiệu pfSense...... 103

Hình 4.3-Nhấn Accept để tiếp tục cài đặt ...... 103

Hình 4.4-Chọn Install để bắt đầu ...... 104

Hình 4.5-Chọn Select để tiến hành cài đặt ...... 104

Hình 4.6-Tiến trình cài đặt ...... 104

Hình 4.7-Bấm “No” để không mở Shell ...... 105

Hình 4.8-Chọn Reboot để khởi động lại máy ...... 105

Hình 4.9-Cấu hình IP cho card mạng ...... 106

Hình 4.10-Quy trình cấu hình IP cho card LAN ...... 106

Hình 4.11-Bỏ IPv6 và thông tin remote vào pfSense ...... 107 Hình 4.12-Đăng nhập vào pfSense từ trình duyệt trên máy thành viên ...... 107

KHOA CÔNG NGHỆ THÔNG TIN 169

Hình 4.13-Màn hình làm việc của pfSense ...... 108

Hình 4.14-Cấu hình proxy server...... 109

Hình 4.15-Chọn lựa trên tab General ...... 109

Hình 4.16-Thiết lập cấm truy xuất vào các domain ...... 110

Hình 4.17-Cấm tải file chương trình dạng .exe ...... 110

Hình 4.18-Áp đặt Access List (ACL) ...... 111

Hình 4.19-Nhấn Accept để tiếp tục cài đặt ...... 111

Hình 4.20-Cấu hình ngôn ngữ, báo cáo, thời gian trên Proxy ...... 112

Hình 4.21-Nhấn Accept để tiếp tục cài đặt ...... 112 Hình 4.22-Mô hình bảo vệ phát hiện tấn công kết hợp pfSense cùng với Snort sensor ...... 113

Hình 4.23-Mô hình bảo vệ mạng với DMZ ...... 113

Hình 4.24-Tỉ lệ nguồn tấn công mạng (Nguồn: acunetix.com) ...... 114

Hình 4.25-Đăng nhập vào pfSense ...... 116

Hình 4.26-Dashboard của pfSense ...... 116

Hình 4.27-Menu Package Manager trong pfSense ...... 117

Hình 4.28-Cài đặt snort ...... 117

Hình 4.29-Chọn Snort ...... 118

Hình 4.30-Nhập Oinkcode ...... 118

Hình 4.31- Cấu hình update time...... 119

Hình 4.32- Cấu hình Block...... 119

Hình 4.33- Update rules để tải Rule Snort...... 119

Hình 4.34- Thiết lập Interface để Snort kiểm soát lưu thông mạng. .. 120

Hình 4.35- Thiết lập trạng thái log của Snort...... 120

Hình 4.36- Chỉnh sửa interface WAN (em0)...... 120

Hình 4.37- enable tính năng IPS và chọn policy tên Connectivity. ... 121

Hình 4.38- Hoàn tất quá trình chỉnh sửa card WAN...... 121

Hình 4.39- Mô hình proxy...... 123

Hình 4.40- Mô hình Proxy 2 nhánh mạng...... 126

KHOA CÔNG NGHỆ THÔNG TIN 170

Hình 4.41- Giao diện Enable Firewall...... 131

Hình 4.42- Cấu hình chi tiết cho firewall...... 131

Hình 4.43- Cấu hình firewall cho máy chủ Web Server...... 132

Hình 4.44- Firewall chain trong Linux...... 132 Hình 4.45- Chức năng cụ thể của Firewall Chain. (nguồn anninhmang.net)...... 133

Hình 4.46- Đường đi của gói tin trong iptables...... 135

Hình 4.47- Sơ đồ hệ thống mạng dùng dịch vụ NAT...... 136

Hình 5.1- Menu chính của chương trình...... 148

Hình 5.2- Thiết lập thông tin máy trạm...... 149

Hình 5.3- Chọn thư mục chứa ảnh đĩa...... 151

Hình 5.4- Chọn ổ đĩa và ảnh đĩa làm ổ game máy trạm...... 151

Hình 5.5- Chọn danh sách thư mục writeback...... 152

Hình 5.6- Chọn danh sách card mạng cân bằng tải...... 152

Hình 5.7- Thiết lập thông tin máy chủ...... 153

Hình 5.8- Chọn IP dành riêng...... 154

Hình 5.9- Thiết lập thông tin cache...... 155

Hình 5.10- Thiết lập thông tin máy trạm...... 156

Hình 5.11- Bảng kết quả kiểm tra thông tin cài đặt...... 157

Hình 5.12- Thiết lập cấu hình chung cho máy chủ BootRom CMS. . 157

Hình 5.13- Tải phần mềm CMS Client...... 158

Hình 5.14- Màn hình chào mừng...... 158

Hình 5.15- Khai báo IP máy chủ CMS...... 159

Hình 5.16- Kết thúc quá trình cài đặt...... 159

Hình 5.17- Cài đặt image đa cấu hình...... 160

Hình 5.18- Tạo ảnh đĩa...... 160

Hình 5.19- Chuẩn bị bộ cài đặt csm bootclient và csm diskcreator. .. 161

Hình 5.20- Khai báo IP Server CSM để up ảnh...... 161

Hình 5.21- Tạo File ảnh đĩa...... 162

KHOA CÔNG NGHỆ THÔNG TIN 171

Hình 5.22- Quá trình tạo ảnh đĩa đang được thực hiện...... 162

Hình 5.23- Quá trình tạo ảnh đĩa thành công...... 163

Hình 5.24- Chuyển trạng thái của image...... 163

Hình 5.25- Tạo Snap shoot cho Image...... 164

Hình 5.26- Mở super cho hệ điều hành...... 164

Hình 5.27- Xác nhận khi đóng super OS...... 164

Hình 5.28- Nhận dạng các máy Client...... 165

Hình 5.29- Quá trình khởi động máy Client không đĩa cứng...... 165

KHOA CÔNG NGHỆ THÔNG TIN 172

DANH MỤC BẢNG Bảng 5.1: Giải thích thông tin tab Máy trạm trong form thiết lập chung [1] ...... 149 Bảng 5.2: Ý nghĩa các thành phần trong form danh sách Write Back ...... 152 Bảng 5.3: Giải thích thông tin tab Máy chủ trong form thiết lập chung ...... 153

Bảng 5.4: Giải thích thông tin tab Cache trong form thiết lập chung 155

Bảng 5.5 Danh mục từ viết tắt ...... 174

KHOA CÔNG NGHỆ THÔNG TIN 173

DANH MỤC TỪ VIẾT TẮT Bảng 5.5 Danh mục từ viết tắt Viết tắt Từ nguyên thuỷ Ý nghĩa DNS Domain Name System hệ thống phân giải tên miền DHCP Dynamic Host Configuration Giao thức cấu hình host động Protocal WAN Wire Area Network Mạng diện rộng LAN Local Area Network Mạng nội bộ DMZ Demilitarized Zone Vùng chứa máy chủ IDS Instruction Detection System Hệ thống phát hiện xâm nhập

FTP File Tranfer Protocol Nghi thức chuyển tập tin ACL Access Control List Danh sách kiểm soát truy cập NAT Network Address Translation Chuyển đổi địa chỉ mạng LDAP Lightweight Directory Giao thức truy cập nhanh các dịch vụ Access Protocol thư mục

KHOA CÔNG NGHỆ THÔNG TIN 174

TÀI LIỆU THAM KHẢO

[1] Zing Corp. (2019). "Hướng dẫn sử dụng CMS BootRom". Zing Site, pp. [2] Nguyễn Đăng Khánh. (2016). "Định Tuyến Trong Linux". Linux Networking Series, pp. [3] Nhất Nghệ. (2018). "Linux Thay Thế Windows". Nhat Nghe Book, pp. [4] Nhất Nghệ. (2015). "Cấu hình Primary Domain Controller with Samba + OpenLDAP". Nhat Nghe Forum, pp. [5] TechMint. (2018). "Domain Group Policy Management in Samba Domain". TechMint Sites, pp. [6] TechMint. (2018). Join an Additional Ubuntu DC to Samba4 AD DC for FailOver Replication. Series: Samba Domain. [7] Samba Wiki. (2012). "Implementing System Policies with Samba". Samba Wiki, pp.

KHOA CÔNG NGHỆ THÔNG TIN 175