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
Trang 1TRƯỜ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
Trang 2TRƯỜ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
Tháng 12, năm 2017
Trang 3TUYÊ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
Trang 4LỜ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
Trang 5MỤC LỤC
1.1 Giới thiệu mô hình domain trên linux 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
Trang 62.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
Trang 7Chươ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 squid 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 iptables 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
Trang 85.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
Trang 9GIÁ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Ở
+ 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 đề
Trang 10CHƯƠ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
-
Trang 111.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
Trang 12Hì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
Trang 131.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
Trang 14Bướ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 rfc2307 interactive
Trang 15- 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
[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\'
Trang 16Forest 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
Trang 17Trê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
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 Name,CN=Sites,CN=Configuration,DC= hotec,DC=vn
Settings,CN=ADC2,CN=Servers,CN=Default-First-Site-Adding SPNs to CN=ADC2,OU=Domain Controllers,DC= hotec,DC=vn
Setting account password for ADC2$
Trang 18Enabling 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
Analyze and apply schema objects
Partition[CN=Configuration,DC= hotec,DC=vn] objects[402/1614]
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]
Trang 19Done 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)
template shell = /bin/bash
winbind use default domain = true
winbind offline logon = false
Trang 20Kiể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!
Trang 21Hì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
open_6.1.0.406-0ubuntu10_amd64.deb
http://launchpadlibrarian.net/153427240/likewise-Install likewise:
root@ubuntu:~# dpkg -i likewise-open* 0_2.6.4*
libglade2-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)
Trang 22Selecting 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
Để tạo mới 1 user trên domain:
samba-tool user add <username> [password]
Ví dụ: tạo user demo với password Aa#123456; mã user 123; email
demo@demo.com, tên công ty: demo; phải đổi password lần logon đầu tiên
mail-address=demo@demo.com company="demo" at-next-login
must-change-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:demo@demo.com", 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
Trang 23- 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 <username>
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 <username>
enable user: samba-tool user enable <username>
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 <groupname>
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 <groupname> <username>
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
<groupname>
# samba-tool group listmembers gdemo
demo
Trang 24Để 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:
Trang 25Kiể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 <option>
- 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)
Trang 26- 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 length=8 min-pwd-age=0 max-pwd-age=180
min-pwd-Để 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 us/download/details.aspx?id=7887
http://www.microsoft.com/en-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:
Trang 27Hình 1.10 Lưu trữ file script
Vào Administrator tool → Group policy Management Tạo GPO tên welcome
Trang 28Sau 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:
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
Trang 291.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
Trang 30Câ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:
DC1 Smb Domain DNS: hotec.vn
IP: 192.168.x.2 SN: 255.255.255.0
GW: Để trắng
DNS: 192.168.x.1
IP: 192.168.x.3 SN: 255.255.255.0
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
Trang 316 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)
Trang 32CHƯƠ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
Trang 332.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” …
Trang 34Second-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
- 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;
};
Trang 35zone “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
Trang 36Cấu trúc như sau:
[Tên_miền] IN SOA [Tên_Primarry_Server] [Tên_Second_Server] Serial number
- 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
Trang 37- 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
- 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:
Trang 38rndc 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:
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
Trang 392.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
Trang 40Tiế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