Bài giảng Hệ điều hành Linux (Phần 2) - Trần Quốc Vương

pdf 67 trang Gia Huy 16/05/2022 3230
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành Linux (Phần 2) - Trần Quốc Vương", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

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

  • pdfbai_giang_he_dieu_hanh_linux_phan_2_tran_quoc_vuong.pdf

Nội dung text: Bài giảng Hệ điều hành Linux (Phần 2) - Trần Quốc Vương

  1. BÀI 5: QUẢN TRỊ NGƯỜI DÙNG VÀ NHÓM Mã bài: MĐ 40-05 Mục tiêu: - Hiểu cơ chế quản lý người dùng trong hệ điều hành Linux; - Thực hiện việc tạo lập, quản lý người dùng. Nội dung chính: 1. Thông tin của người dùng Mục tiêu: Trình bày cơ chế quản lý người dùng trong hệ điều hành Linux, giúp người học biết được cách quản lý và lưu trữ các thống tin người dùng trên hệ thống. 1.1. Superuser Trong Linux, tài khoản root có quyền cao nhất được sử dụng bởi người quản trị. Tài khoản này thường được sử dụng vào các mục đích cấu hình, bảo trì hệ thống. Khi quản trị hệ thống, cần tạo ra các tài khoản (account) cho người sử dụng thường sớm nhất có thể được. Với những server quan trọng và có nhiều dịch vụ khác nhau, có thể tạo ra các superuser thích hợp cho từng dịch vụ, tránh dùng root cho các công việc này. Ví dụ như superuser cho công việc backup chỉ cần chức năng đọc (read-only) mà không cần chức năng ghi. Tài khoản root có quyền hạn rất lớn nên nó thường là mục tiêu chiếm đoạt; do vậy, người sử dụng tài khoản root phải cẩn thận, không sử dụng bừa bãi trên qua telnet hay kết nối từ xa mà không có công cụ kết nối an toàn. Trong Linux, chúng ta có thể tạo tài khoản có tên khác nhưng có quyền của root, bằng cách tạo user có UserID bằng 0. Cần phân biệt tài khoản đang đăng nhập sử dụng là tài khoản root hay người sử dụng thường thông qua dấu nhắc của shell. Để thay đổi tài khoản đăng nhập, sử dụng lệnh su [tên tài khoản] Ví dụ: login: nsd1 Password: [nsd1@DanaVTC nsd1]$ su - Password: [root@DanaVTC /root]# `61
  2. Trong ví dụ trên, dòng thứ ba ([nsd1@DanaVTC nsd1]$) với dấu $ cho thấy người sử dụng thường (nsd1) đang kết nối; dòng cuối cùng với dấu # cho thấy đang thực hiện các lệnh với root. 1.2. User Để đăng nhập và sử dụng hệ thống Linux cần phải có 1 tài khoản. Trừ tài khoản root, các tài khoản khác do người quản trị tạo ra. Mỗi tài khoản người dùng cần có tên sử dụng (username) và mật khẩu (password) riêng. Các thông tin về tài khoản người dùng của hệ thống chứa trong tập tin /etc/passwd. 1.2.1. Tập tin /etc/passwd Tập tin /etc/passwd được lưu dưới dạng văn bản, nó có vai trò rất quan trọng trong hệ thống Unix/Linux. Mọi người đều có thể đọc được tập tin này nhưng chỉ có root mới có quyền thay đổi nó. Ví dụ sau cho thấy nội dung của một tập tin passwd: root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail: news:x:9:13:news:/var/spool/news: ftp:x:14:50:FTP User:/var/ftp: nobody:x:99:99:Nobody:/: nscd:x:28:28:NSCD Daemon:/:/bin/false mailnull:x:47:47::/var/spool/mqueue:/dev/null rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/bin/false xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false nthung:x:525:526:nguyen tien hung:/home/nthung:/bin/bash natan:x:526:527::/home/natan:/bin/bash Trong đó, các thông tin bao gồm: - Dòng đầu tiên của tập tin /etc/passwd mô tả thông tin user root (tất cả những tài khoản có user_ID = 0 đều là root hoặc có quyền như root), tiếp theo là `62
  3. các tài khoản khác của hệ thống (đây là các tài khoản không có thật và không thể login vào hệ thống), cuối cùng là các tài khoản người dùng thường. - Cột 1: Tên người sử dụng; - Cột 2: Mã liên quan đến mật khẩu của tài khoản và “x” đối với Linux. Linux lưu mã này trong một tập tin khác /etc/shadow mà chỉ có root mới có quyền đọc; - Cột 3, cột 4: Mã định danh tài khoản (user ID) và mã định danh nhóm (group ID); - Cột 5: Tên đầy đủ của người sử dụng; - Cột 6: Thư mục cá nhân (Home Directory); - Cột 7: Chương trình sẽ chạy đầu tiên sau khi người dùng đăng nhập vào hệ thống. 1.2.2. Username và UserID Để quản lý người dùng, Linux sử dụng tên người dùng (user name) và định danh người dùng (user ID) để đăng nhập và truy xuất tài nguyên. Trong đó, tên người dùng là chuỗi ký tự xác định duy nhất một người dùng; số định danh người dùng dùng để kiểm soát hoạt động của người dùng. Theo qui định, người dùng có định danh 0 là người dùng quản trị (root); số định danh từ 1- 99 sử dụng cho các tài khoản hệ thống, số định danh của người dùng bình thường sử dụng giá trị bắt đầu từ 100-500. 1.2.3. Mật khẩu người dùng Mỗi người dùng có mật khẩu tương ứng, mật khẩu có thể được thay đổi tùy theo người dùng; tuy nhiên, người quản trị có thể thay đổi mật khẩu của những người dùng khác. Mật khẩu người dùng được lưu trong tập tin /etc/passwd. 1.2.4. Group ID Group ID (GID) dùng để định danh nhóm của người dùng. Thông qua Group ID có thể xác định người dùng đó thuộc nhóm nào. Thông thường, trên Linux, GID được mặc định tạo ra khi tạo một user và có giá trị >= 500. 1.2.5. Home directory Khi login vào hệ thống người dùng được đặt làm việc tại thư mục cá nhân của mình (home directory). Thông thường mỗi người dùng có một thư mục cá nhân riêng và người dùng có toàn quyền trên đó. Nó dùng để chứa dữ liệu cá nhân và các thông tin hệ thống cho hoạt động của người dùng như biến môi trường, `63
  4. script khởi động, profile khi sử dụng X Window, Home directory của người dùng thường là /home, của root là /root. Tuy nhiên, chúng ta cũng có thể đặt vào vị trí khác thông qua lệnh useradd hoặc usermod. 2. Quản lý người dùng Mục tiêu: Trình bày các thao tác quản trị người dùng thông qua tài khoản người dùng. 2.1. Tạo tài khoản người dùng Để tạo tài khoản, root có thể sử dụng lệnh useradd với cú pháp: #useradd [-c mô_tả_người_dùng] [-d thư_mục_cá_nhân] [-m] [-g nhóm_người_dùng] [tên_tài_khoản] Trong đó: - Tham số –m sử dụng để tạo thư mục cá nhân nếu nó chưa tồn tại. - Chỉ có root được phép sử dụng lệnh này. Ví dụ: # useradd –c “Nguyen van B“ nvb Để đặt mật khẩu cho tài khoản, dùng lệnh passwd . Ví dụ: # passwd nvb Changing password for user nvb New password: Retype new password: passwd: all authentication tokens updated successfully Lưu ý: Khi đặt password nên: - Đặt với độ dài tối thiểu 6 ký tự; - Phối hợp giữa ký tự hoa, thường, ký số và ký tự đặc biệt. - Không nên đặt password liên quan đến tên tuổi, ngày sinh, của mình và người thân. Khi nhiều người dùng có cùng một chức năng và cùng chia xẻ nhau dữ liệu, nên nhóm những người dùng này vào trong cùng nhóm. Mặc định, khi tạo một tài khoản, Linux sẽ tạo cho mỗi tài khoản một nhóm, tên nhóm trùng với tên tài khoản. Chẳng hạn, đọc tập tin /etc/passwd ta thấy: nvb:x:1013:1013::/home/nvb:/bin/bash nghĩa là người dùng nvb có user_ID 1012 và thuộc nhóm 1013. `64
  5. Xem tập tin /etc/group ta thấy: # more /etc/group root:x:0:root users:x:100: nvb:x:1013: Lúc này, có thể kết nạp tài khoản nvb vào nhóm users bằng cách thay số 1013 bằng 100, là group_ID của nhóm users. Có thể dùng lệnh useradd –d để xem các thông số mặc định khi ta tạo tài khoản người dùng (các thông tin này được lưu trong thư mục /etc/default/useradd): # useradd -d GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel 2.2. Thay đổi thông tin của tài khoản Để thay đổi thông tin của tài khoản, có thể thay đổi từ tập tin /etc/passwd hoặc dùng lệnh usermod. Cú pháp lệnh usermod: #usermod [-c thông_tin_người_dùng] [-d thư_mục_cá_nhân] [-m] [-g nhóm_ người_dùng] [tên_tài_khoản] Ví dụ: Cho tài khoản nvb vào nhóm admin #usermod –g admin nvb 2.3. Tạm khóa tài khoản người dùng Để tạm thời khóa tài khoản trong hệ thống ta có thể dùng nhiều cách: Khóa (locking) Mở khóa (unlock) passwd –l passwd –u usermod –L usermod –U Có thể tạm khóa tài khoản bằng cách chỉnh sửa tập tin /etc/shadow và thay thế từ khóa x bằng từ khóa * hoặc có thể gán /bin/false vào shell mặc định của user trong file /etc/passwd. `65
  6. 2.4. Hủy tài khoản Lệnh userdel dùng để xóa một tài khoản. Ngoài ra, cũng có thể xóa một tài khoản bằng cách xóa đi dòng dữ liệu tương ứng với tài khoản đó trong tập tin /etc/passwd. Cú pháp: #userdel [username] Ví dụ: xóa tài khoản nvb (dùng tùy chọn –r để xóa toàn bộ thông tin liên quan tới user đó): #userdel –r nvb 3. Nhóm người dùng Mục tiêu: Khi nhiều người dùng có cùng một chức năng, cùng chia xẻ nhau dữ liệu, có chung quyền trên tài nguyên, thường được nhóm thành một nhóm. Trong Linux, mỗi nhóm được xác định bởi tên riêng và định danh nhóm; một nhóm có thể có nhiều người dùng và người dùng có thể là thành viên của nhiều nhóm khác nhau. Tuy nhiên tại một thời điểm, một người dùng chỉ có thể là thành viên của một nhóm duy nhất. Thông tin về nhóm lưu tại tập tin /etc/group. Mỗi dòng định nghĩa một nhóm, các trường trên dòng cách nhau bởi dấu : : : 3.1. Tạo nhóm Để tạo một nhóm, có thể chỉnh sửa trực tiếp trong tập tin /etc/group hoặc dùng lệnh groupadd. Cú pháp: #groupadd [tên-nhóm] 3.2. Thêm người dùng vào nhóm Khi muốn thêm người dùng vào nhóm, có thể sửa từ tập tin /etc/group, các tên tài khoản người dùng cách nhau bằng dấu “;”, hoặc có thể thêm người dùng vào nhóm bằng lệnh: #usermod –g [tên-nhóm tên-tài-khoản] 3.3. Hủy nhóm Để hủy nhóm, có thể xóa trực tiếp nhóm trong tập tin /etc/group, hoặc dùng lệnh: #groupdel [ tên-nhóm] 3.4. Xem thông tin về user và group Cú pháp: #id Lệnh cho phép xem thông tin về tài khoản hay nhóm trong hệ thống. `66
  7. Trong đó, tham số -g cho phép xem thông tin về nhóm. Ví dụ: xem groupID của một user vanphong: #id –g vanphong Để xem tên nhóm của một user nào đó, dùng lệnh: groups Ví dụ: [root@server root]# groups root root: root bin daemon sys adm disk wheel Câu hỏi 1. Trình bày các loại tài khoản trên Linux. 2. Cho biết ý nghĩa các thành phần trên tập tin /etc/passwd. Bài tập thực hành 1. Quản lý người dùng Linux trên giao diện text - Xem thông tin chi tiết liên quan đến người dùng trong tập tin /etc/passwd. - Xem thông tin chi tiết liên quan đến nhóm người dùng trong tập tin /etc/group. - Xem thông tin chi tiết về mật khẩu trong tập tin /etc/shadow. - Tạo user và nhóm: Tạo nhóm hocvien gồm các user hv1, hv2, hv3 và đặt mật khẩu cho các user vừa tạo Tạo nhóm admin gồm các user admin1, admin2 đặt mật khẩu cho các user vừa tạo Thay đổi UID của hai user admin1, admin2 là 0 - Thay đổi thông tin mô tả của người dùng Thông tin mô tả hv1 là học viên thứ nhất, hv2 là học viên thứ 2, hv3 là học viên thứ 3 Thông tin mô tả admin1 là người quản trị 1, admin2 là người quản trị 2 - Thay đổi mật khẩu cho những người dùng trên - Khóa tài khoản người dùng hv3 - Thử đăng nhập bằng tài khoản hv3 - Mở khóa tài khoản người dùng hv3 - Thử đăng nhập bằng tài khoản hv3 - Xóa tài khoản người dùng hv3 2. Quản lý người dùng trên giao diện đồ họa - Tạo người dùng và nhóm: - hocvien (tung, thuy, thanh) - admin (adm1, adm2) - user (u1, u2) - Thay đổi các thuộc tính liên quan đến người dùng - Thay đổi nhóm của người dùng - Giới hạn thời gian sử dụng tài khoản - Tạm khóa tài khoản người dùng - Giới hạn thời hạn sử dụng mật khẩu `67
  8. BÀI 6: CẤU HÌNH MẠNG Mã bài: MĐ 40-06 Mục tiêu: - Nắm được cách khai báo và thay đổi cấu hình mạng cho máy tính; - Truy cập và điều khiển máy tính từ xa; - Thực hiện các thao tác an toàn với máy tính. Nội dung chính: 1. Cấu hình địa chỉ IP cho card mạng Mục tiêu: Trình bày các thao tác : Xem địa chỉ IP, cấu hình địa chỉ IP, kiểm tra trạng thái của tất cả các card mạng. 1.1. Xem địa chỉ IP Lệnh ifconfig cho phép xem thông tin địa chỉ IP của PC. Ví dụ: để xem thông tin cấu hình mạng, dùng lệnh ifconfig -a # ifconfig –a eth0 Link encap:Ethernet HWaddr 00:0C:29:6D:F0:3D inet addr:172.29.14.150 Bcast:172.29.14.159 Mask:255.255.255.224 inet6 addr: fe80::20c:29ff:fe6d:f03d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6622 errors:0 dropped:0 overruns:0 frame:0 TX packets:1425 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:793321 (774.7 Kb) TX bytes:240320 (234.6 Kb) Interrupt:10 Base address:0x1080 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:76 errors:0 dropped:0 overruns:0 frame:0 TX packets:76 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:8974 (8.7 Kb) TX bytes:8974 (8.7 Kb) `68
  9. Trong đó, eth0 là tên của card mạng trong, lo là tên của loopback interface. 1.2. Thay đổi địa chỉ IP Trong bài 4 – mục 4, trình tiện ích cho phép thiết lập cấu hình mạng; ngoài ra, có thể sử dụng các cách sau để thay đổi địa chỉ IP: Sử dụng lệnh: ifconfig netmask up Ví dụ: [root@bigboy tmp]# ifconfig eth0 10.0.0.1 netmask 255.255.255.0 up Chú ý: Sau khi dùng lệnh này, hệ thống lưu trữ tạm thời thông tin cấu hình này trong bộ nhớ và sẽ bị mất khi hệ thống reboot lại; để thông tin này có thể được lưu giữ lại sau khi reboot hệ thống, phải thêm lệnh trên vào tập tin /etc/rc.local. Hoặc: Thay đổi thông tin cấu hình mạng trực tiếp trong file /etc/sysconfig/network-scripts/ifcfg-eth0 Gán địa chỉ IP tĩnh (tham khảo file ifcfg-eth0) #Advanced Micro Devices [AMD]|79c970 [PCnet32LANCE] DEVICE=eth0 BOOTPROTO=static BROADCAST=172.29.14.159 HWADDR=00:0C:29:6D:F0:3D IPADDR=172.29.14.150 NETMASK=255.255.255.224 NETWORK=172.29.14.128 ONBOOT=yes TYPE=Ethernet Gán địa chỉ IP động (tham khảo file ifcfg-eth0) DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes Sau đó dùng lệnh: # ifdown eth0 # ifup eth0 `69
  10. 1.3. Tạo nhiều địa chỉ IP trên card mạng Phương thức tạo nhiều địa chỉ IP trên card mạng được gọi là IP alias. Alias này phải có tên dạng: parent-interface-name:X, trong đó X là chỉ số của interface thứ cấp (subinterface number). Sử dụng một trong các cách sau để tạo Alias IP: Cách 1: - Bước 1: Đảm bảo rằng tên interface thật phải tồn tại, và kiểm tra các IP Alias trong hệ thống có tồn tại hay không. - Bước 2: Tạo Virtual interface dùng lệnh ifconfig: # ifconfig ifcfg-eth0:0 192.168.1.99 netmask 255.255.255.0 up Hoặc tạo một tên file /etc/sysconfig/network-scripts/ifcfg-eth0:0 từ file /etc/sysconfig/network-scripts/ifcfg-eth0; sau đó, thay đổi thông tin địa chỉ trong file này. - Bước 3: Bật và tắt alias interface thông qua lệnh ifconfig # ifup eth0:0 # ifdown eth0:0 Hoặc dùng lệnh /etc/init.d/network restart - Bước 4: Kiểm tra thông tin cấu hình alias interface dùng lệnh ifconfig: # ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:6D:F0:3D inet addr:172.29.14.150 Bcast:172.29.14.159 Mask:255.255.255.224 inet6 addr: fe80::20c:29ff:fe6d:f03d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7137 errors:0 dropped:0 overruns:0 frame:0 TX packets:1641 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:848367 (828.4 Kb) TX bytes:265688 (259.4 Kb) Interrupt:10 Base address:0x1080 eth0:0 Link encap:Ethernet HWaddr 00:0C:29:6D:F0:3D inet addr:172.29.15.150 Bcast:172.29.15.159 Mask:255.255.255.224 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7137 errors:0 dropped:0 overruns:0 frame:0 TX packets:1641 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 `70
  11. RX bytes:848367 (828.4 Kb) TX bytes:265688 (259.4 Kb) Interrupt:10 Base address:0x1080 Cách 2: - Tạo tập tin parent-interface-name:X bằng cách copy file /etc/sysconfig/network-scripts/ifcfg-eth0 thành file /etc/sysconfig/network- scripts/ifcfg-eth0:X (trong đó X là số thứ tự của subinterface). - Thay đổi thông tin cấu hình mạng trong file ifcfg-eth0:X (các thông tin in đậm là thông tin bắt buộc phải thay đổi) DEVICE=eth0:0 ONBOOT=yes BOOTPROTO=static IPADDR=172.29.14.151 NETMASK=255.255.255.224 GATEWAY=172.29.129 1.4. Lệnh netstat Lệnh netstat cho phép kiểm tra trạng thái của tất cả các card mạng. Cú pháp: #netstat –in Ngoài ra, có thể dùng lệnh netstat –rn để xem bảng routing table của router. 2. Truy cập từ xa Mục tiêu: Trình bày cơ chế hoạt động của dịch vụ truy cập từ xa. Khi cấu hình hệ thống kết nối vào mạng, máy chủ sẽ cung cấp một số dịch vụ Internet. Thông thường mỗi dịch vụ Internet gắn liền với một daemon và thực hiện trong chế độ background. Những daemon này hoạt động bằng cách liên kết đến một cổng nào đó và sau đó đợi những yêu cầu kết nối được gởi đến từ chương trình client. Khi một kết nối xảy ra nó sẽ tạo ra một tiến trình con đảm nhiệm kết nối này và tiếp tục lắng nghe những yêu cầu kết nối khác. Nếu hệ thống có quá nhiều daemon sẽ làm tăng xử lý của CPU. Để khắc phục điều này, Linux tạo ra một super-server gọi là Xinetd. 2.1. xinetd Mỗi dịch vụ Internet đều gắn liền với một cổng chẳng hạn như: smtp – 25, pop3 – 110, dns – 53 Việc phân bổ này do một tổ chức qui định. Xinetd là một Internet server daemon. Xinetd quản lý tập trung tất cả các dịch vụ Internet. Xinetd quản lý mỗi dịch vụ tương ứng với một cổng (port). `71
  12. Xinetd “lắng nghe” và khi nhận được một yêu cầu kết nối từ các chương trình client, nó sẽ đưa yêu cầu đến dịch vụ tương ứng xử lý; sau đó, Xinetd tiếp tục “lắng nghe” những yêu cầu kết nối khác. Khi hệ điều hành được khởi động, Xinetd được khởi tạo ngay lúc này bởi script /etc/rc.d/init.d/xinetd. Khi Xinetd được khởi tạo, nó sẽ đọc thông tin từ tập tin cấu hình /etc/xinetd.conf và sẽ dẫn đến thư mục /etc/xinetd – nơi lưu tất cả những dịch vụ mà Xinetd quản lý. Trong thư mục /etc/xinetd, thông tin cấu hình của mỗi dịch vụ được lưu trong một tập tin có tên trùng với tên dịch vụ đó. Nội dung tập tin của dịch vụ telnet như sau: service telnet { disable = yes flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID } Những thuộc tính trong tập tin bao gồm: Tên Ý nghĩa Disable Tạm đình chỉ dịch vụ này. Có 2 giá trị: yes, no Socket_type Loại socket. Trong trường hợp này là stream – một loại socket cho những kết nối connection-oriented (chẳng hạn như TCP) Wait Thường chỉ liên quan đến những kết nối có loại socket là datagram. Giá trị của nó có thể là: - nowait nghĩa là xinetd sẽ tiếp tục nhận và xử lý những yêu cầu khác trong lúc xử lý kết nối này - wait nghĩa là tại một thời điểm xinetd chỉ có thể xử lý một kết nối tại một cổng chỉ định User Chỉ ra user chạy dịch vụ này. Thông thường là root Server Chỉ ra đường dẫn đầy đủ đến nơi quản lý dịch vụ 2.2. Tập tin /etc/services Khi xinetd được khởi tạo nó sẽ truy cập đến tập tin /etc/services để tìm cổng tương ứng với từng dịch vụ. Nội dung của tập tin này như sau: echo 7/tcp echo 7/udp `72
  13. discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users systat 11/udp users daytime 13/tcp daytime 13/udp qotd 17/tcp quote qotd 17/tcp quote msp 18/tcp# message send protocol msp 18/udp# message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp-data 20/udp # 21 is registered to ftp, but also used by fsp ftp 21/tcp ftp 21/udp fsp fspd ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp telnet 23/udp # 24 - private mail system smtp 25/tcp mail smtp 25/udp mail time 37/tcp timserver time 37/udp timserver rlp 39/tcp resource # resource location rlp 39/udp resource # resource location nameserver 42/tcp name # IEN 116 nameserver 42/udp name # IEN 116 Mỗi dòng trong tập tin mô tả cho một dịch vụ, bao gồm những cột sau: - Cột 1: tên của dịch vụ; - Cột 2: số cổng và giao thức mà dịch vụ này hoạt động; - Cột 3: danh sách những tên gọi khác của dịch vụ này. `73
  14. 2.3. Khởi động xinetd Sau khi chỉnh sửa tập tin cấu hình của từng dịch vụ trong thư mục /etc/xinetd, ta thực hiện lệnh sau để đọc lại nội dung của tập tin cấu hình: /etc/rc.d/init.d/xinetd restart 3. Dịch vụ Telnet Mục tiêu: Trình bày cách cài đặt, cấu hình và các phương án bảo mật đối với dịch vụ truy cập từ xa Telnet. 3.1. Khái niệm telnet Vì một lý do nào đó người dùng không thể ngồi trực tiếp trên máy Linux làm việc. Dịch vụ telnet hỗ trợ cho người dùng trong vấn đề làm việc từ xa; Nhưng để đảm bảo tính bảo mật cho hệ thống, một điều cảnh báo là chúng ta không nên làm việc từ xa bằng telnet mà nên làm việc trực tiếp tại máy Linux. 3.2. Cài đặt Thông thường khi cài đặt Linux, dịch vụ telnet đã được cài sẵn. Nếu chưa cài, có thể cài telnet server từ packet bằng dòng lệnh sau: rpm –i telnet-server-0.17-20.i386.rpm 3.3. Cấu hình Có nhiều cách cấu hình telnet server, sau đây là hai cách cấu hình cơ bản nhất: - Cách 1: Dựa vào tập tin cấu hình, Khi cài đặt xong trong thư mục /etc/xinetd.d sẽ xuất hiện tập tin telnet. Tập tin này lưu những thông tin cấu hình về dịch vụ telnet. service telnet { disable = yes flags = REUSE socket_type = stream wait = no user = root server =/usr/sbin/in.telnetd log_on_failure += USERID } `74
  15. Nếu disable là no thì TELNET server được khởi động, ngược lại nếu disable là yes thì TELNET server không được khởi động. Sau khi chỉnh sửa tập tin cấu hình trên ta start, stop bằng lệnh: /etc/rc.d/init.d/xinetd restart Hoặc dùng lệnh: # service xinetd restart - Cách 2: Cấu hình telnet Server bằng dòng lệnh: chkconfig telnet on Kiểm tra telnet thông qua lệnh: #netstat-a|grep telnet tcp 0 0 *:telnet *:* LISTEN Kiểm tra telnet có được đặt như dịch vụ hệ thống: # chkconfig list | grep telnet telnet: on Dừng telnet server: # chkconfig telnet off 3.4. Bảo mật dịch vụ telnet 3.4. 1. Cho phép telnet server hoạt động trên tcp port khác Vì telnet traffic không được mã hóa nên nếu cho telnet server hoạt động trên tcp port 23 thì không được an toàn. Do vậy, có thể đặt telnet server hoạt động trên tcp port khác 23. Để làm điều này ta thực hiện các bước sau: - Bước 1: Mở tập tin /etc/services và thêm dòng # Local services stelnet 7777/tcp # "secure" telnet - Bước 2: Chép file telnet thành file stelnet # cp /etc/xinetd.d/telnet /etc/xinetd.d/stelnet - Bước 3: Thay đổi một số thông tin trong file file /etc/xinetd.d/stelnet service stelnet { flags = REUSE socket_type = stream wait = no user = root `75
  16. server = /usr/sbin/in.telnetd log_on_failure += USERID disable = no port = 7777 } - Bước 4: Kích hoạt stelnet thông qua lệnh chkconfig # chkconfig stelnet on - Bước 5: Kiểm tra hoạt động stelnet thông qua lệnh netstat # netstat -an | grep 777 tcp 0 0 0.0.0.0:7777 0.0.0.0:* LISTEN Ta có thể logon vào stelnet Server thông qua lệnh: # telnet 192.168.1.100 7777 3.4.2. Cho phép một số địa chỉ truy xuất telnet Ta hiệu chỉnh một số thông số sau:: service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = no only_from = 192.168.1.100 127.0.0.1 192.168.1.200 } 4. SSH Mục tiêu: Trình bày cách cài đặt và sử dụng dịch vụ truy cập từ xa SSH với phương thức mã hóa dữ liệu. Chương trình telnet trong Linux cho phép người dùng đăng nhập vào hệ thống Linux từ xa. Nhược điểm của chương trình này là tên người dùng và mật khẩu gởi qua mạng không được mã hóa. Do đó, dễ bị những người khác nắm giữ và sẽ là mối nguy hiểm cho hệ thống. `76
  17. Phần mềm Secure Remote Access là một hỗ trợ mới của Linux nhằm khắc phục nhược điểm của telnet. Nó cho phép đăng nhập vào hệ thống Linux từ xa và mật khẩu sẽ được mã hóa. Vì thế, SSH an toàn hơn nhiều so với telnet. 4.1. Cài đặt SSH Server trên Server Linux Dùng lệnh rpm để cài package openssh-server. *.rpm rpm –ivh openssh-server.*.rpm Tập tin cấu hình /etc/ssh/sshd_config và /etc/ssh/ssh_config. Để start hay stop server dùng lệnh sau: /etc/init.d/sshd start/stop/restart 4.2. Sử dụng SSH Client trên Linux Trên client (Linux hoặc Unix) dùng lệnh ssh để login vào server. Cú pháp của lệnh: $ssh [tùy_chọn] [tên/IP_máy] [tùy_chọn] [lệnh] Ví dụ: $ssh [–l ] 4.3. Quản trị hệ thống Linux thông qua SSH client for Windows SSH client for Windows được thiết kế để cho phép người dùng có thể sử dụng/quản trị Unix/Linux từ hệ điều hành Windows. Có thể download phần mềm này từ site: Phần mềm này hỗ trợ cho người dùng có thể làm việc từ xa, cung cấp dịch vụ sftp. Màn hình “SSH Client for Windows” `77
  18. Câu hỏi 1. Trình bày các cách thay đổi địa chỉ IP (lệnh ifconfig, thay đổi từ file /etc/sysconfig/network-scripts/ifcfg-eth0). 2. Trình bày các cách tạo nhiều địa chỉ IP trên card mạng (IP alias). Bài tập thực hành Bài 1: Cho hệ thống theo hình vẽ sau: 1. Thay đổi tên máy, sau đó khởi động lại bằng lệnh init 6 2. Xem địa chỉ mạng 3. Xem trạng thái kết nối vật lý của NIC 4. Đặt địa chỉ mạng và cập nhật 5. Dùng lệnh ping và ifconfig để kiểm tra cấu hình mạng 6. Kiểm tra cáp đã gắn vào card mạng hay chưa. Bài 2: Cho hệ thống theo hình vẽ sau: `78
  19. Thực hiện các yêu cầu sau: 1. Thêm địa chỉ IP cho card mạng eth0 với: - tên interface eth0:0 - IP address: 192.168.100.100 - netmask: 255.255.255.0 - Gateway: 192.168.100.1 - DNS: 192.168.100.1 2. Chỉ định default route cho hệ thống 3. Xem bảng định tuyến 4. Thống kê kết nối mạng Bài 3: Cho hệ thống theo hình vẽ sau: Cài đặt và cấu hình các dịch vụ hỗ trợ: 1. Cho phép mọi người kết nối từ xa vào máy chủ Linux qua telnet `79
  20. 2. Cho phép mọi người kết nối từ xa vào máy chủ Linux qua ssh 3. Cho phép mọi người kết nối từ xa vào máy chủ Linux qua VNC `80
  21. BÀI 7: CÀI ĐẶT DỊCH VỤ TRÊN MÁY CHỦ Mã bài: MĐ 40-07 Mục tiêu: - Hiểu cách thức hoạt động của các dịch vụ Samba, DNS, DHCP, Web; - Nắm được cách cấu hình các dịch vụ Samba, DNS, DHCP, Web trên máy chủ Linux; - Thực hiện các thao tác an toàn với máy tính. Nội dung chính: 1. Dịch vụ SAMBA Mục tiêu: Cung cấp cho người học chương trình hỗ trợ chia xẻ tài nguyên hệ thống Linux với các hệ thống khác. Ở đây, người học sẽ thực hiện được các thao tác: cài đặt, cấu hình, truy xuất vào các tài nguyên đã chia xẻ. Samba là chương trình tiện ích hỗ trợ việc chia xẻ tài nguyên từ hệ thống Linux với các hệ thống khác (Linux, Windows), nó hỗ trợ tính năng gia nhập (join) Linux với Windows như gia nhập Linux vào PDC trên Windows, gia nhập vào Windows Workgroup, Bộ Samba gồm nhiều thành phần. Daemon mang tên smbd cung cấp dịch vụ in ấn và tập tin. Tập tin cấu hình của Daemon này là smb.conf, còn daemon nmbd thì hỗ trợ dịch vụ tên NETBIOS, cho phép các máy tính khác truy cập và sử dụng các tài nguyên được cấp bởi máy chủ Samba. Trình smbclient, một thành phần khác của bộ Samba, hoạt động như một client bình thường giống như ftp. Trình tiện ích này dùng khi muốn truy cập những tài nguyên trên các server tương thích khác. 1.1. Cài đặt SAMBA Có thể cài đặt Samba trong quá trình cài Linux hoặc cài sau bằng tiện ích RPM, các bộ này được tích hợp vào Fedora CD, các file này bao gồm: system-config-samba-1.2.15-0.fc2.1 : hỗ trợ cấu hình trên giao diện X window samba-3.0.7-2.FC2 : package chính của SAMBA samba-client-3.0.7-2.FC2 : package cho SAMBA Client samba-common-3.0.7-2.FC2 : hỗ trợ các thư viện cho SAMBA samba-swat-3.0.7-2.FC2 : hỗ trợ cấu hình SAMBA qua Web 1.2. Khởi động SAMBA Có thể khởi động dịch vụ samba tại thời điểm boot của hệ thống chkconfig. `81
  22. # chkconfig smb on Ta có thể start/stop/restart samba thông qua lệnh: # service smb restart Để kiểm tra samba có hoạt động trong hệ thống hay không # pgrep smb 1.3. Cấu hình SAMBA Tập tin cấu hình /etc/samba/smb.conf. Đây là một tập tin có dạng text. Các thành phần trong file cấu hình: Thành phần Giải thích [global] Chứa các tham số cấu hình chung của samba server [printers] Chứa các tham số sử dụng cho việc cấu hình máy in [homes] Chỉ định SMB chia xẻ thư mục home directory của user [netlogon] Chia xẻ logon script [profile] Chia xẻ profile 1.3.1. Đoạn [global] Đoạn này kiểm soát tất cả tham số cấu hình chung của server smb. Đoạn này cũng cung cấp giá trị mặc định cho những đoạn khác: [global] workgroup = LINUX ; chỉ ra nhóm mà máy này sẽ tham gia server string = Samba Server ; hosts allow = 192.168.1. 192.168.2. 127. ; host được phép truy xuất đến samba Guest account = pcguest ; cung cấp username cho account khách trên server. Account này để nhận diện những user nào được dùng các dịch vụ samba dành cho khách Log file = /var/log/samba/smb.%m ; xác định vị trí tập tin log của từng client truy cập samba Max log size = 50 ; kích thước tối đa của một tập tin log (tính bằng kb) encrypt passwords = yes ; cần hay không cần mã hoá password khi đăng nhập vào máy chủ Samba. Mọi password gửi từ Windows 9x đều mã hoá. Do đó, nếu ta chọn “no” thì máy chủ samba sẽ không chấp nhận sự đăng nhập của bất kỳ user nào. Nếu giá trị là “yes” thì chỉ có các user có password trong tập tin /etc/samba/password là có thể thấy máy chủ Samba. `82
  23. smb passwd file = /etc/samba/smbpasswd ; tập tin lưu trữ những user được phép truy cập đến server smb. Một số biến cần tham khảo: Tên biến Mô tả giá trị %S Tên của dịch vụ hiện hành, nếu có %P Thư mục gốc của dịch vụ hiện hành, nếu có %u tên user của dịch vụ hiện hành %g tên của nhóm chính của %u %U tên phiên làm việc của user %G tên của nhóm chính của %U %H thư mục gốc của user %v phiên bản của Samba %h tên của host mà Samba đang chạy %m tên NETBIOS của máy khách %L tên NETBIOS của máy chủ %M tên Internet của máy khách %I Địa chỉ IP của máy khách %T ngày và giờ hiện hành %a kiến trúc của máy từ xa. Chỉ có một số máy được nhận diện là Win9x, WinNT, Win2k 1.3.2. Đoạn [homes] Mặc định SMB chia xẻ home của từng người dùng trong hệ thống để cho phép các user có thể truy xuất vào home directory của mình từ máy trạm. [homes] comment = Home Directories ; path = %H ; read only = no ; valid users = %S ; Chỉ định tên user được phép truy xuất, nếu ta cho phép group ta dùng cú pháp @group_name. browseable = no ; writeable = yes ; create mask = 0750 ; 1.3.3. Chia xẻ máy in dùng SMB Để chia xẻ máy in, ta mô tả đoạn [printers] trong file /etc/smb.conf [printers] comment = All Printers `83
  24. path = /var/spool/samba browseable = no public = yes guest ok = no writable = no printable = yes ; cho phép in create mask = 0700 1.3.4. Chia xẻ thư mục Sau khi lập cấu hình mặc định cho server Samba, có thể tạo ra nhiều thư mục dùng chung, và quyết định xem cá nhân nào hoặc group nào được phép sử dụng chúng. [dirshare] comment =”chia xẻ thư mục” path = /usr/local/share valid users = hv1 browseable = yes public = no writable = yes Đoạn trên đã tạo ra một thư mục chia xẻ mang tên dirshare. Đường dẫn đến thư mục này là /usr/local/share. Vì public là no nên chỉ có user hv1 được truy cập đến thư mục này. 1.4. Sử dụng SAMBA SWAT Swat là một công cụ cho phép cấu hình SAMBA qua giao diện Web. Nếu ta muốn sử dụng công cụ này thì ta phải cài thêm package samba-swat-3.0.7- 2.FC2.rpm (trong Fedora Core). 1.4.1. Tập tin cấu hình SAMBA SWAT Trước khi cấu hình SAMBA-SWAT, cần thiết lập một số thông số: disable = no only_from = 172.29.14.149 localhost Trong file /etc/xinetd.d/swat để khởi động dịch vụ SWAT và cho phép các host nào có quyền truy xuất SAMBA SWAT qua Web. service swat { disable = no port = 901 `84
  25. socket_type = stream wait = no only_from = 172.29.14.149 localhost user = root server = /usr/sbin/swat log_on_failure += USERID } 1.4.2. Truy xuất SWAT từ Internet Explorer Truy xuất SMB SWAT thông qua địa chỉ từ IE; Sau đó, chỉ định username (root nếu ta muốn quản lý SMB), và mật khẩu để đăng nhập: Màn hình đăng nhập Sau khi đăng nhập thành công Giao diện Samba SWAT 1.4.3. Cấu hình SAMBA SWAT Thành phần Giải thích Cung cấp các tài liệu tham khảo về samba `85
  26. Quản lý thông tin cấu hình Quản lý tài nguyên chia xẻ Quản lý việc chia xẻ máy in Quản lý Server Type, Wins và một số tham số khác Quản lý trạng thái của SAMBA, theo dõi các connection Xem các thông tin cấu hình trong file smb.conf Quản lý mật khẩu 2. Dịch vụ DNS Mục tiêu: Trình bày cơ chế hoạt động của dịch vụ DNS, cách cấu hình dịch vụ DNS trên máy chủ Linux. 2.1. Giới thiệu về DNS Các máy tính trong mạng muốn liên lạc hay trao đổi thông tin, dữ liệu cho nhau cần phải biết địa chỉ IP của nhau. Nếu số lượng máy tính nhiều thì việc nhớ những địa chỉ IP này là rất khó. Mỗi máy tính ngoài địa chỉ IP còn có tên (computer name). Đối với con người việc nhớ những cái tên này dù sao cũng dễ dàng hơn vì chúng có tính trực quan và gợi nhớ hơn địa chỉ IP. Vì thế, người ta nghĩ ra cách làm sao ánh xạ địa chỉ IP thành tên máy tính. Ban đầu do quy mô mạng ARPAnet (tiền thân của mạng Internet) còn nhỏ chỉ vài trăm máy, nên chỉ có một tập tin đơn HOSTS.TXT lưu thông tin về ánh xạ tên máy thành địa chỉ IP. Trong đó tên máy là chuỗi văn bản không phân cấp (flat name). Tập tin này được duy trì tại 1 máy chủ và các máy chủ khác lưu giữ bản sao của nó. Tuy nhiên khi quy mô mạng lớn hơn, việc sử dụng tập tin HOSTS.TXT có các nhược điểm như sau: - Lưu lượng mạng và máy chủ duy trì tập tin HOSTS.TXT bị quá tải do hiệu ứng “cổ chai”. - Xung đột tên: Không thể có 2 máy tính có cùng tên trong tập tin HOSTS.TXT. Tuy nhiên do tên máy không phân cấp và không có gì đảm bảo để `86
  27. ngăn chặn việc tạo 2 tên trùng nhau vì không có cơ chế uỷ quyền quản lý tập tin nên có nguy cơ bị xung đột tên. - Không đảm bảo sự toàn vẹn: việc duy trì 1 tập tin trên mạng lớn rất khó khăn. Ví dụ như khi tập tin HOSTS.TXT vừa cập nhật chưa kịp chuyển đến máy chủ ở xa thì đã có sự thay đổi địa chỉ trên mạng. Tóm lại, việc dùng tập tin HOSTS.TXT không phù hợp cho mạng lớn vì thiếu cơ chế phân tán và mở rộng. Do đó, dịch vụ DNS ra đời nhằm khắc phục các nhược điểm này. Người thiết kế cấu trúc của dịch vụ DNS là Paul Mockapetris - USC's Information Sciences Institute, và các khuyến nghị RFC của DNS là RFC 882 và 883, sau đó là RFC 1034 và 1035 cùng với 1 số RFC bổ sung như bảo mật trên hệ thống DNS, cập nhật động các bản ghi DNS Lưu ý: Hiện tại trên các máy chủ vẫn sử dụng được tập tin hosts.txt để phân giải tên máy tính thành địa chỉ IP (trong Linux là /etc/hosts) Dịch vụ DNS hoạt động theo mô hình Client - Server: phần Server gọi là máy chủ phục vụ tên nameserver, còn phần Client là trình phân giải tên resolver. Nameserver chứa các thông tin CSDL của DNS, còn resolver chỉ là các hàm thư viện dùng để tạo các truy vấn (query) và gửi chúng đến name server. DNS được thi hành như một giao thức tầng Application trong mạng TCP/IP. DNS là 1 CSDL phân tán. Điều này cho phép người quản trị cục bộ quản lý phần dữ liệu nội bộ thuộc phạm vi của họ, đồng thời dữ liệu này cũng dễ dàng truy cập được trên toàn bộ hệ thống mạng theo mô hình Client - Server. Hiệu suất sử dụng dịch vụ được tăng cường thông qua cơ chế nhân bản (replication) và lưu tạm (caching). Một hostname trong domain là sự kết hợp giữa những từ phân cách nhau bởi dấu chấm. Ví dụ hostname là cntt.danavtc.edu, trong đó cntt là hostname và danavtc.edu là domain name. Domain name phân bổ theo cơ chế phân cấp tương tự như sự phân cấp của hệ thống tập tin Unix/Linux. `87
  28. Cơ sở dữ liệu (CSDL) của DNS là một cây đảo ngược. Mỗi nút trên cây cũng lại là gốc của 1 cây con. Mỗi cây con là 1 phân vùng con trong toàn bộ CSDL DNS gọi là 1 miền (domain). Mỗi domain có thể phân chia thành các phân vùng con nhỏ hơn gọi là các miền con (subdomain). Mỗi domain có 1 tên (domain name). Tên domain chỉ ra vị trí của nó trong CSDL DNS. Trong DNS tên miền là chuỗi tuần tự các tên nhãn tại nút đó đi ngược lên nút gốc của cây và phân cách nhau bởi dấu chấm. Tên nhãn bên phải trong mỗi domain name được gọi là top- level domain. Trong ví dụ trước cntt.danavtc.edu, vậy .edu là top-level domain. Bảng sau đây liệt kê top-level domain Tên miền Mô tả .com Các tổ chức, công ty thương mại .org Các tổ chức phi lợi nhuận .net Các trung tâm hỗ trợ về mạng `88
  29. .edu Các tổ chức giáo dục .gov Các tổ chức thuộc chính phủ .mil Các tổ chức quân sự .int Các tổ chức được thành lập bởi các hiệp ước quốc tế Vì sự quá tải của những domain name đã tồn tại, do đó đã làm phát sinh những top-level domain mới. Bảng sau đây liệt kê những top-level domain mới. Tên miền Mô tả .arts Những tổ chức liên quan đến nghệ thuật và kiến trúc .nom Những địa chỉ cá nhân và gia đình .rec Những tổ chức có tính chất giải trí, thể thao .firm Những tổ chức kinh doanh, thương mại .info Những dịch vụ liên quan đến thông tin Bên cạnh đó, mỗi nước cũng có một top-level domain. Ví dụ top-level domain của Việt Nam là vn, Mỹ là us Mỗi nước khác nhau có cơ chế tổ chức phân cấp domain khác nhau. Ví dụ về tổ chức domain của Việt Nam: 2.2. Cách phân bố dữ liệu quản lý Domain Name Những root name server (.) quản lý những top-level domain trên Internet. Tên máy và địa chỉ IP của những name server này được công bố cho mọi người biết và chúng được liệt kê trong bảng sau. Những name server này cũng có thể đặt khắp nơi trên thế giới. `89
  30. Tên máy tính Địa chỉ IP H.ROOT-SERVERS.NET 128.63.2.53 B.ROOT-SERVERS.NET 128.9.0.107 C.ROOT-SERVERS.NET 192.33.4.12 D.ROOT-SERVERS.NET 128.8.10.90 E.ROOT-SERVERS.NET 192.203.230.10 I.ROOT-SERVERS.NET 192.36.148.17 F.ROOT-SERVERS.NET 192.5.5.241 F.ROOT-SERVERS.NET 39.13.229.241 G.ROOT-SERVERS.NET 192.112.88.4 A.ROOT-SERVERS.NET 198.41.0.4 Thông thường một tổ chức được đăng ký một hay nhiều domain name. Sau đó, mỗi tổ chức sẽ cài đặt một hay nhiều name server và duy trì cơ sở dữ liệu cho tất cả những máy tính trong domain. Những name server của tổ chức được đăng ký trên Internet. Một trong những name server này được biết như là Primary Name Server. Nhiều Secondary Name Server được dùng để làm backup cho Primary Name Server. Trong trường hợp Primary bị lỗi, Secondary được sử dụng để phân giải tên. Primary Name Server có thể tạo ra những subdomain và ủy quyền những subdomain này cho những Name Server khác. 2.3. Cơ chế phân giải tên 2.3.1. Phân giải tên thành IP Root name server: Là máy chủ quản lý các nameserver ở mức top-level domain. Khi có truy vấn về một tên miền nào đó thì Root Name Server phải cung cấp tên và địa chỉ IP của name server quản lý top-level domain (Thực tế là hầu hết các root server cũng chính là máy chủ quản lý top-level domain) và đến lượt các name server của top-level domain cung cấp danh sách các name server có quyền trên các second-level domain mà tên miền này thuộc vào. Cứ như thế đến khi nào tìm được máy quản lý tên miền cần truy vấn. Qua trên cho thấy vai trò rất quan trọng của root name server trong quá trình phân giải tên miền. Nếu mọi root name server trên mạng Internet không liên lạc được thì mọi yêu cầu phân giải đều không thực hiện được. Hình vẽ dưới mô tả quá trình phân giải grigiri.gbrmpa.gov.au trên mạng Internet. `90
  31. Client sẽ gửi yêu cầu cần phân giải địa chỉ IP của máy tính có tên girigiri.gbrmpa.gov.au đến name server cục bộ. Khi nhận yêu cầu từ resolver, Nameserver cục bộ sẽ phân tích tên này và xét xem tên miền này có do mình quản lý hay không. Nếu tên miền do server cục bộ quản lý, nó sẽ trả lời địa chỉ IP của tên máy đó ngay cho resolver. Ngược lại, server cục bộ sẽ truy vấn đến một Root Name Server gần nhất mà nó biết được. Root Name Server sẽ trả lời địa chỉ IP của Name Server quản lý miền au. Máy chủ name server cục bộ lại hỏi tiếp name server quản lý miền au và được tham chiếu đến máy chủ quản lý miền gov.au. Máy chủ quản lý gov.au chỉ dẫn máy name server cục bộ tham chiếu đến máy chủ quản lý miền gbrmpa.gov.au. Cuối cùng máy name server cục bộ truy vấn máy chủ quản lý miền gbrmpa.gov.au và nhận được câu trả lời. Các loại truy vấn: truy vấn có thể ở 2 dạng: - Truy vấn đệ quy (recursive query): Khi nameserver nhận được truy vấn dạng này, nó bắt buộc phải trả về kết quả tìm được hoặc thông báo lỗi nếu như truy vấn này không phân giải được. Nameserver không thể tham chiếu truy vấn đến một name server khác. Nameserver có thể gửi truy vấn dạng đệ quy hoặc tương tác đến nameserver khác nhưng nó phải thực hiện cho đến khi nào có kết quả mới thôi. `91
  32. - Truy vấn tương tác: khi nameserver nhận được truy vấn dạng này, nó trả lời cho resolver với thông tin tốt nhất mà nó có được vào thời điểm lúc đó. Bản thân nameserver không thực hiện bất cứ một truy vấn nào thêm. Thông tin tốt nhất trả về có thể lấy từ dữ liệu cục bộ (kể cả cache). Trong trường hợp nameserver không tìm thấy trong dữ liệu cục bộ nó sẽ trả về tên miền và địa chỉ IP của nameserver gần nhất mà nó biết. 2.3.2. Phân giải IP thành tên máy tính Ánh xạ địa chỉ IP thành tên máy tính được dùng để diễn dịch các tập tin log cho dễ đọc hơn. Nó còn dùng trong một số trường hợp chứng thực trên hệ thống UNIX (kiểm tra các tập tin .rhost hay host.equiv). Trong không gian tên miền đã nói ở trên dữ liệu – bao gồm cả địa chỉ IP – được lập chỉ mục theo tên miền. Do đó với một tên miền đã cho việc tìm ra địa chỉ IP khá dễ dàng. Để có thể phân giải tên máy tính của một địa chỉ IP, trong không gian tên miền người ta bổ sung thêm một nhánh tên miền mà được lập chỉ mục theo địa chỉ IP. Phần không gian này có tên miền là in-addr.arpa. Mỗi nút trong miền in-addr.arpa có một tên nhãn là chỉ số thập phân của địa chỉ IP. Ví dụ miền in-addr.arpa có thể có 256 subdomain, tương ứng với 256 giá trị từ 0 đến 255 của byte đầu tiên trong địa chỉ IP. Trong mỗi subdomain lại có 256 subdomain con nữa ứng với byte thứ hai. Cứ như thế và đến byte thứ tư có các bản ghi cho biết tên miền đầy đủ của các máy tính hoặc các mạng có địa chỉ IP tương ứng. `92
  33. Lưu ý : khi đọc tên miền địa chỉ IP sẽ xuất hiện theo thứ tự ngược. Ví dụ nếu địa chỉ IP của máy winnie.corp.hp.com là 15.16.192.152, khi ánh xạ vào miền in-addr.arpa sẽ là 152.192.16.15.in-addr.arpa. 2.4. So sánh Domain Name – Zone Một miền gồm nhiều thực thể nhỏ hơn gọi là miền con (subdomain). Ví dụ: miền ca bao gồm nhiều miền con như ab.ca, on.ca, qc.ca, (như hình vẽ dưới). Có thể ủy quyền một số miền con cho những DNS Server khác quản lý. Những miền và miền con mà DNS Server được quyền quản lý gọi là zone. Như vậy, một zone có thể gồm một miền, một hay nhiều miền con. Hình sau mô tả sự khác nhau giữa zone và domain. 2.5. Phân loại Domain Name Server Có nhiều loại Domain Name Server được tổ chức trên Internet. Sự phân loại này tùy thuộc vào nhiệm vụ mà chúng sẽ đảm nhận. Tiếp theo sau đây mô tả những loại Domain Name Server: 2.5.1. Primary Name Server Mỗi miền phải có một Primary Name Server. Server này được đăng kí trên Internet để quản lý miền. Mọi người trên Internet đều biết tên máy tính và địa chỉ IP của server này. Người quản trị DNS sẽ tổ chức những tập tin CSDL trên Primary Name Server. Server này có nhiệm vụ phân giải tất cả các máy trong miền hay zone. 2.5.2. Secondary Name Server Mỗi miền có một Primary Name Server để quản lý CSDL của miền. Nếu server này tạm ngưng hoạt động vì một lý do nào đó thì việc phân giải tên máy tính thành địa chỉ IP và ngược lại xem như bị gián đoạn. Vấn đề này ảnh hưởng rất lớn đến những tổ chức có nhu cầu trao đổi thông tin ra ngoài Internet cao. `93
  34. Nhằm khắc phục nhược điểm này, những nhà thiết kế đã đưa ra một Server dự phòng gọi là Secondary (hay Slave) Name Server. Server này có nhiệm vụ sao lưu tất cả những dữ liệu trên Primary Name Server; khi Primary Name Server bị gián đoạn, nó sẽ đảm nhận việc phân giải tên máy tính thành địa chỉ IP và ngược lại. Trong một miền có thể có một hay nhiều Secondary Name Server. Theo một chu kỳ, Secondary sẽ sao chép và cập nhật CSDL từ Primary Name Server. 2.5.3. Caching Name Server Caching Name Server có chức năng phân giải tên máy trên những mạng ở xa thông qua những Name Server khác. Nó lưu giữ lại những tên máy đã được phân giải trước đó và được sử dụng lại những thông tin này nhằm mục đích: - Làm tăng tốc độ phân giải bằng cách sử dụng cache. - Giảm bớt gánh nặng phân giải tên máy cho các Name Server. - Giảm việc lưu thông trên những mạng lớn. 3. Dịch vụ DHCP Mục tiêu: Trình bày cơ chế hoạt động của dịch vụ DHCP, cách cấu hình dịch vụ DHCP trong việc quản trị hệ thống mạng. DHCP – Dynamic Host Configuration Protocol – là một dịch vụ hữu ích trong việc quản trị những mạng lớn hay mạng có những người dùng di động. DHCP Server là máy cấp phát địa chỉ IP cho những máy tính khác trong mạng, DHCP client là các máy nhận địa chỉ IP và những thông tin về mạng khác từ DHCP Server. 3.1. Một số lưu ý trên DHCP - Phải có một địa chỉ IP tĩnh; - Không phải là một DHCP client; - Cấp phát địa chỉ IP cho những máy tính trong một khoảng địa chỉ IP mà người quản trị đã định nghĩa; - Có thể cung cấp địa chỉ default gateway, DNS server, tên domain và NetBIOS name server cho máy tính; - Không có hai máy nhận cùng địa chỉ IP; - Địa chỉ IP cấp cho DHCP client sẽ được làm mới khi máy tính khởi động lại. `94
  35. 3.2. Ưu điểm của DHCP Người quản trị không cần đặt địa chỉ IP cho từng máy tính trong mạng. Người quản trị không cần cung cấp thông tin cho từng máy điều này tiết kiệm được thời gian và một số chi phí khác. 3.3. Cấu hình DHCP server Để cấu hình DHCP server cần phải cài package dhcpd.*.rpm này trong đĩa CD Linux. Cài đặt DHCP bằng lệnh: #rpm –ivh dhcpd.*.rpm Để hoàn thành việc cấu hình DHCP cần phải tạo ra tập tin cấu hình /etc/dhcpd.conf và chỉnh sửa tập tin này. Ví dụ về nội dung cấu hình chính của tập tin dhcpd.conf ddns-update-style interim; default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "example.com"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; } Tập tin /var/lib/dhcp/dhcpd.leases. Tập tin này được sử dụng bởi daemon dhcpd để lưu những thông tin về các địa chỉ IP đã được cấp phát 3.4. Khởi động DHCP Sau khi thiết lập những tập tin cấu hình, ta cần khởi động dịch vụ bằng lệnh: #/etc/init.d/dhcpd start 4. Dịch vụ Web Mục tiêu: Trình bày các giao thức giao tiếp giữa trình duyệt web và server, cách thức hoạt động, cài đặt và cấu hình Web server. `95
  36. 4.1. Web server 4.1.1. Giao thức HTTP HTTP là một giao thức cho phép trình duyệt Web Browser và server có thể giao tiếp với nhau. Nó chuẩn hoá các thao tác cơ bản mà một Web Server phải làm được. HTTP bắt đầu là 1 giao thức đơn giản giống như với các giao thức chuẩn khác trên Internet, thông tin điều khiển được truyền dưới dạng văn bản thô thông qua kết nối TCP. Do đó, kết nối HTTP có thể thay thế bằng cách dùng lệnh "telnet" chuẩn. Ví dụ: > telnet www.extropia 80 GET /index.html HTTP/1.0 Cổng 80 là cổng mặc định dành cho Web server "lắng nghe" các kết nối được gửi đến. Để đáp ứng lệnh HTTP GET, Web server trả về cho client trang "index.html" thông qua phiên làm việc telnet này, và sau đó đóng kết nối. Thông tin trả về dưới dạng code HTML: eXtropia Homepage Giao thức chỉ thực thi đơn giản hai thao thác yêu-cầu/đáp-ứng (request/response). Một trong các thay đổi lớn nhất trong HTTP/1.1 là nó hỗ trợ kết nối lâu dài (persistent connection). `96
  37. Trong HTTP/1.0, một kết nối phải được thiết lập đến server cho mỗi đối tượng mà Browser muốn download. Nhiều trang Web có rất nhiều hình ảnh, ngoài việc tải trang HTML cơ bản, browser phải lấy về một số lượng hình ảnh. Nhiều cái trong chúng thường là nhỏ hoặc chỉ đơn thuần là để trang trí cho phần còn lại của trang HTML. Thiết lập một kết nối cho mỗi hình ảnh thật là phí phạm, vì sẽ có nhiều gói thông tin mạng sẽ được luân chuyển giữa Web browser và Web server trước khi dữ liệu ảnh được truyền về. Ngược lại, mở một kết nối TCP truyền tài liệu HTML và sau đó mỗi hình ảnh sẽ truyền nối tiếp theo như thế sẽ thuận tiện hơn và quá trình thiết lập các kết nối TCP sẽ được giảm xuống. 4.1.2. Web Server và cách hoạt động Ở mức độ cơ bản, Web server chỉ phục vụ các nội dung tĩnh. Nghĩa là khi Web server nhận 1 yêu cầu từ Web browser, nó sẽ ánh xạ đường dẫn này (Uniform Resource Locator - URL) thành một tập tin cục bộ trên máy Web server. Máy chủ sau đó sẽ nạp tập tin này từ đĩa và đưa nó thông qua mạng đến Web browser của người dùng. Web browser và web server sử dụng giao thức HTTP trong quá trình trao đổi dữ liệu. Các trang tài liệu HTML là một văn bản thô (raw text) chứa các thẻ định dạng (HTML tag). Ví dụ: WWW `97
  38. Ngày nay, Web Server đã được phát triển với nhiều thông tin phức tạp hơn được chuyển giữa Web Server và Web Browser, trong đó quan trọng nhất là nội dung động (dynamic content). Với phiên bản đầu tiên, Web server hoạt động theo mô hình sau: - Tiếp nhận các yêu cầu từ browsers. - Trích nội dung từ đĩa. - Chạy các chương trình CGI. - Truyền dữ liệu ngược lại cho client. - Chạy càng nhanh càng tốt. Điều này sẽ thực hiện tốt đối với các Web site đơn giản, nhưng server sẽ bắt đầu gặp phải vấn đề khi có nhiều người truy cập hoặc có quá nhiều trang web động phải mất thời gian để tính toán cho ra kết quả. Ví dụ: Nếu một chương trình CGI mất 30 giây để sinh ra nội dung, trong thời gian này Web server có thể sẽ không phục vụ các trang khác nữa. Do vậy, mặc dù mô hình này hoạt động được, nhưng nó vẫn cần phải thiết kế lại để phục vụ được nhiều người trong cùng 1 lúc. Web server có xu hướng tận dụng ưu điểm của 2 phương pháp khác nhau để giải quyết vấn đề này là: đa tiểu trình (multi-threading) hoặc đa tiến trình (multi-processing) hoặc các hệ lai giữa multi-processing và multi-threading. 4.1.3. Web client Web client là những chương trình duyệt Web ở phía người dùng (Internet Explorer, Netscape Communicator ) để hiển thị những thông tin trang Web cho người dùng. Web client sẽ gửi yêu cầu đến Web Server. Sau đó, đợi Web Server xử lý trả kết quả về cho web client hiển thị cho người dùng. Tất cả mọi yêu cầu đều được xử lý bởi Web Server. 4.1.4. Web động Một trong các nội dung động (gọi tắt là Web động) cơ bản là các trang Web được tạo ra để đáp ứng các dữ liệu nhập vào của người dùng trực tiếp hay gián tiếp. Cách cổ điển nhất được dùng phổ biến nhất cho việc tạo nội dung động là sử dụng Common Gateway Interface (CGI). Cụ thể là CGI định nghĩa cách thức `98
  39. Web server chạy một chương trình cục bộ, sau đó nhận kết quả và trả về cho Web browser của người dùng đã gửi yêu cầu. Web browser thực sự không biết nội dung của thông tin là động, bởi vì CGI về cơ bản là một giao thức mở rộng của Web Server. Hình vẽ sau minh họa khi Web browser yêu cầu một trang Web động phát sinh từ chương trình CGI. Một giao thức mở rộng nữa của HTTP là HyperText Transmission Protocol Secure (HTTPS) dùng để bảo mật các các thông tin “nhạy cảm” khi chuyển chúng qua mạng. 4.2. Apache 4.2.1. Giới thiệu Apache Apache là một phần mềm có nhiều tính năng mạnh và linh hoạt dùng để làm Web Server. - Hỗ trợ đầy đủ những giao thức HTTP trước đây như HTTP/1.1; - Có thể cấu hình và mở rộng với những module của công ty thứ ba; - Cung cấp source code đầy đủ với license không hạn chế; - Chạy trên nhiều hệ điều hành như Windows NT/9x, Netware 5.x, OS/2 và trên hầu hết các hệ điều hành Unix. 4.2.2. Cài đặt Apache Ta chỉ cần cài đặt package httpd-2.0.40-21.i386.rpm (trên Fedora) trong hệ điều hành Linux. #rpm –ivh httpd-2.0.40-21.i386.rpm Vị trí cài đặt Apache trong môi trường Linux là /etc/httpd. Trong thư mục này lưu giữ những tập tin cấu hình của Apache. `99
  40. 4.2.3. Tạm dừng và khởi động lại Apache Để tạm dừng hay khởi động lại apache dùng script sau: # chkconfig httpd on #/etc/init.d/httpd start/stop/restart Hoặc dùng lệnh: # chkconfig httpd on #service httpd restart 4.3.4. Sự chứng thực, cấp phép, điều khiển việc truy cập Khi nhận một yêu cầu truy cập tài nguyên, web server sẽ xử lý như thế nào để trả kết quả về cho client. Apache có những hướng xử lý khác nhau như chứng thực, cấp phép và điều khiển truy cập. 4.3.4.1. Basic Authentication Đối với những thông tin cần bảo mật, khi có yêu cầu truy xuất thông tin này, Web Server phải chứng thực những yêu cầu này có hợp lệ hay không. Thông thường, thông tin chứng thực bao gồm username và password. + Nếu một tài nguyên được bảo vệ với sự chứng thực. Apache sẽ gửi một yêu cầu “401 Authentication” thông báo cho người dùng nhập vào username và password của mình. Nhận được yêu cầu này, client sẽ trả lời 401 đến server trong đó có chứa username và password. Server sẽ kiểm tra những thông số này khi nhận được. Nếu hợp lệ server sẽ trả về những thông tin yêu cầu, ngược lại nó sẽ trả về một thông báo lỗi. + Vì giao thức HTTP là một tiêu chuẩn không của riêng ai và cũng không thuộc một quốc gia nào, nên mỗi yêu cầu đều được xem như nhau. + Username và password được yêu cầu cung cấp chỉ có tác dụng trong lần giao dịch của browser với server lúc đó. Nếu lần sau truy cập lại website này, phải nhập lại username và password. + Song song với trả lời 401, toàn bộ thông tin sẽ trả ngược lại cho client. Trong những trường hợp riêng biệt, server sẽ cấp lại cho client một thẻ chứng thực để bảo vệ website. Thẻ này được gọi là realm hay là một tên chứng thực. Browser sẽ lưu lại username và password đã cung cấp cùng với realm. Như thế, nếu truy cập những tài nguyên khác mà có cùng realm, username và password thì user không cần nhập trở lại những thông tin chứng thực. Thông thường, việc lưu trữ này chỉ có tác dụng trong giao dịch hiện hành của browser. Nhưng cũng có `100
  41. một vài browser cho phép lưu chúng một cách cố định để không cần nhập lại username và password. Các bước cấu hình chứng thực: + Bước 1: tạo tập tin password, cấp quyền truy xuất cho tập tin mật khẩu dùng lệnh chmod 755 + Bước 2: cấu hình apache + Bước 3: tạo tập tin group (nếu muốn chứng thực cho nhóm) Bước 1: Tạo tập tin password dùng lệnh htpasswd. Cách sử dụng lệnh htppaswd theo cú pháp như sau: #htpasswd -c Ví dụ: # htpasswd -c /etc/httpd/conf/passwords rbowen htpasswd sẽ yêu cầu nhập password, sau đó xác thực lần nữa. New password: mypassword Re-type new password: mypassword + Tùy chọn –c sẽ tạo một tập tin password mới. Nếu tập tin này đã tồn tại nó sẽ xóa nội dung cũ và ghi vào nội dung mới. Khi tạo thêm một người dùng, tập tin password đã tồn tại nên không cần dùng tùy chọn –c. + : thông thường nó tạo tại thư mục gốc của apache Bước 2: Cấu hình sự chứng thực trên Apache: EnablePut On AuthType Basic AuthName Temporary AuthUserFile /etc/httpd/conf/passwd EnableDelete Off umask 007 require user rbowen sungo `101
  42. + AuthType: khai báo loại authentication sẽ sử dụng. Trong trường hợp này là Basic + AuthName: đặt tên cho sự chứng thực + AuthUserFile: vị trí của tập tin password + AuthGroupFile: vị trí của tập tin group + Require: những yêu cầu hợp lệ được cho phép truy cập tài nguyên. Bước 3: Tạo tập tin group: Nhằm tạo điều kiện thuận lợi cho người quản trị trong việc quản lý sự chứng thực, Apache hỗ trợ thêm tính năng nhóm người dùng. Người quản trị có thể tạo những nhóm người dùng được phép truy cập đến tài nguyên, thêm hay xóa những thành viên trong group ngoài việc chỉnh sửa lại tập tin cấu hình apache và khởi động lại apache. Định dạng của tập tin group: : user1 user2 user3 user n Ví dụ: authors: rich daniel allan Sau khi tạo tập tin nhóm, cần phải cấu hình để apache để chỉ ra tập tin nhóm này bằng những directive sau: AuthType Basic AuthName "Apache Admin Guide Authors" AuthUserFile /etc/httpd/conf/passwords AuthGroupFile /etc/httpd/conf/groups Require group authors 4.3.4.2. Digest Authentication Digest authentication cung cấp một phương pháp bảo vệ nội dung web một cách luân phiên. Digest authentication được cung cấp bởi module mod_auth_digest. Với phương pháp này tên user và mật khẩu sẽ không được gởi ở dạng plain text mà chúng được mã hóa (thông qua thuật toán MD5) Cấu hình: Tương tự như sự chứng thực cơ bản, cấu hình này cũng gồm 2 hoặc 3 bước sau: - Bước 1: Tạo file mật khẩu. - Bước 2: Cấu hình /etc/httpd/conf/httpd.conf để sử dụng file mật khẩu ở bước 1. `102
  43. - Bước 3: Tạo group file. Bước 1: Tạo tập tin password dùng lệnh htdigest –c realm Bước 2: Cấu hình /etc/httpd/conf/httpd.conf để sử dụng file mật khẩu AuthType Digest AuthName "Private" AuthDigestFile /usr/local/apache/passwd/digest AuthDigestGroupFile /usr/local/apache/passwd/digest.groups Require group admins Bước 3: Tạo tập tin nhóm (bước này chỉ thực hiện khi ta muốn chứng thực cho nhóm). Cấu trúc của tập tin nhóm cũng tương tự như tập tin nhóm của basic authentication. admins: joy danne sue 4.3.5. Điều khiển truy cập Ngoài việc bảo mật nội dung của website bằng sự chứng thực (username và password), apache còn giới hạn việc truy cập của người dùng dựa trên những thông tin khác được đề cập trong Access Control. Sử dụng directive Al ow/Deny để cho phép/cấm việc truy cập tài nguyên dựa trên tên máy tính hoặc địa chỉ IP. Allow/Deny Directive: Cú pháp khai báo Allow/Deny như sau Allow/Deny from [address] + Allow: cho phép các host/network/domain truy xuất vào Web server. + Deny: cấm các host/network/domain truy xuất vào Web server. + address: địa chỉ IP/địa chỉ đường mạng hay tên máy tính, tên miền. Ví dụ: Deny from 11.22.33.44 Deny from host.example.com Deny from 192.101.205 Deny from exampleone.com example Sử dụng Order để kết hợp giữa Allow và Deny trong việc giới hạn việc truy cập. Nếu thứ tự của Order là Deny, Allow thì Deny được kiểm tra trước tiên và `103
  44. bất kỳ những client nào không phù hợp với Deny hoặc phù hợp với một Allow thì được phép truy cập đến server. Ngược lại, nếu thứ tự của Order là Alow, Deny thì Allow được kiểm tra trước và bất kỳ client nào không phù hợp với một điều kiện Allow hoặc phù hợp với một điều kiện Deny thì bị cấm truy cập đến server. Ví dụ về một điều khiển truy cập ít giới hạn nhất. Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all Satisfy directive: - Satisfy directive được dùng để chỉ ra nhiều tiêu chuẩn cần phải được xem xét trong việc bảo mật nội dung website. Satisfy có 2 giá trị là all và any. Mặc định, Satisfy nhận giá trị all, điều này có nghĩa là nếu nhiều tiêu chuẩn được chỉ ra thì tất cả những tiêu chuẩn này phải thoả mãn thì người dùng mới được phép truy cập tài nguyên. Còn giá trị any có nghĩa là một trong những tiêu chuẩn này hợp lệ thì user được phép truy cập đến tài nguyên. - Một ứng dụng của việc sử dụng access control là giới hạn, những người dùng bên ngoài mạng khi truy cập tài nguyên cần phải có username và password còn tất cả những máy tính trong mạng thì không cần. AuthType Basic AuthName intranet AuthUserFile /etc/httpd/conf/users AuthGroupFile /etc/httpd/conf/groups Require group customers Allow from internal.com Satisfy any 4.3.6. Khảo sát log file trên apache Apache có nhiều tập tin log khác nhau nhằm ghi lại những hoạt động của Web Server. Sau đây mô tả tính năng của từng tập tin. File error_log: Là một tập tin log quan trọng nhất. Tên và vị trí của nó được xét trong ErrorLog directive. ErrorLog là nơi mà httpd sẽ gửi những thông tin nhận dạng và bất kỳ những lỗi nào gặp phải trong quá trình xử lý những yêu `104
  45. cầu. Tập tin này chính là nơi mà ta cần xem xét đầu tiên khi gặp phải những lỗi khởi động httpd hay những thao tác của server, vì nó lưu những thông tin chi tiết về những lỗi và cách sửa lỗi. Định dạng của tập tin error_log không bị bó buộc. Nội dung của file error_log như sau: [Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test Cột đầu tiên chỉ ra ngày giờ entry này được tạo ra. Cột thứ 2 chỉ ra đây là entry lỗi. Cột thứ 3 cho biết địa chỉ IP của client tạo ra lỗi. Tiếp theo là message có nội dung chỉ ra rằng server được cấu hình để từ chối việc truy cập của client. Tiếp theo là đường dẫn của document mà client cần truy cập. Trong quá trình kiểm tra, có thể theo dõi error_log một cách liên tục bằng dòng lệnh sau: #tail –f /var/log/httpd/error_log File access_log: Access_log là nơi ghi lại tất cả những yêu cầu được xử lý bởi server. Vị trí và nội dung của access log được điều khiển bởi CustomLog directive. Có thể dùng LogFormat directive trong việc định dạng nội dung của tập tin access_log. LogFormat chỉ ra những thông tin mà server cần theo dõi để ghi lại trong access log. Để theo dõi yêu cầu xử lý trên Web Server ta dùng lệnh: #tail –f /var/log/httpd/access_log Luân chuyển log file: Theo thời gian, thông tin lưu trong các tập tin log lớn làm cho kích thước của các tập tin này có thể vượt quá 1MB. Do đó, cần phải xóa, di chuyển hay sao lưu những tập tin log này một cách luân phiên và có chu kỳ. Cách thực hiện như sau: mv access_log access_log.old mv error_log error_log.old apachectl graceful sleep 600 gzip access_log.old error_log.old 4.3. Cấu hình Web server Các tập tin và thư mục cấu hình của Apache: - /etc/httpd/conf: thư mục lưu giữ các tập tin cấu hình như httpd.conf. - /etc/httpd/modules: lưu các module của Web Server. - /etc/httpd/logs: lưu các tập tin log của Apache. `105
  46. - /var/www/html: lưu các trang Web. - /var/www/cgi-bin: lưu các script sử dụng cho các trang Web. Tập tin cấu hình Apache được tạo thành từ nhiều chỉ dẫn (directive) khác nhau. Mỗi dòng/một đoạn là một directive và phục vụ cho một cấu hình riêng biệt. Có những directive có ảnh hưởng với nhau. Những dòng bắt đầu bằng dấu # là những dòng chú thích. 4.3.1. Định nghĩa về ServerName 4.3.1.1. Chỉ định một số thông tin cơ bản Cấu hình tên máy tính (hostname) của server. Nó được dùng trong việc tạo ra những URL chuyển tiếp (redirection URL). Nếu không chỉ ra, server sẽ cố gắng suy luận từ địa chỉ IP của nó. Tuy nhiên, điều này có thể không tin cậy hoặc không trả ra tên máy tính đúng. Cú pháp khai báo: ServerName Ví dụ: ServerName www.soft.com ServerAdmin: Địa chỉ Email của người quản trị hệ thống Cú pháp: ServerAdmin Ví dụ: ServerAdmin root@soft.com ServerType: Qui định cách nạp chương trình. Có hai cách: + inetd: chạy từ hệ thống. + standalone: chạy từ các init level. Cú pháp: ServerType Ví dụ: ServerType standalone `106
  47. 4.3.2. Thư mục Webroot và một số thông tin cần thiết Chỉ định DocumentRoot: Cấu hình thư mục gốc lưu trữ nội dung của Website. Web Server sẽ lấy những tập tin trong thư mục này phục vụ cho yêu cầu của client. Cú pháp: DocumentRoot Ví dụ: DocumentRoot /usr/web Một yêu cầu sẽ được đưa vào trang web /usr/web/index.html ServerRoot: Vị trí cài đặt web server. Cú pháp: ServerRoot Mặc định: ServerRoot /usr/local/apache (trong Linux là /etc/httpd) Error log: Chỉ ra tập tin để server ghi vào bất kỳ những lỗi nào mà nó gặp phải Cú pháp: ErrorLog Ví dụ: ErrorLoglogs/error_log Nếu đường dẫn vị trí không có dấu / thì vị trí tập tin log liên quan đến ServerRoot. DirectoryIndex: Các tập tin mặc định khi truy cập tên web site. Cú pháp: DirectoryIndex Ví dụ: DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php3 index.cgi `107
  48. 4.3.3. Cấu hình mạng MaxClients: Qui định số yêu cầu tối đa từ các client có thể gởi đồng thời đến server. Cú pháp: MaxClients Ví dụ: MaxClients 256 Listen: Qui định địa chỉ IP hoặc Cổng mà Apache nhận kết nối từ Client. Cú pháp: Listen Ví dụ: Listen 80 BindAddress: Qui định địa chỉ card mạng để chạy Apache trên Server. Cú pháp: BindAddress Sử dụng dấu “*” để có thể sử dụng tất cả các địa chỉ có trên máy. Ví dụ: BindAddress172.29.7.225 Mặc định là: BindAddress * TimeOut: quy định thời gian sống của một kết nối (được tính bằng giây). Cú pháp: TimeOut Ví dụ: TimeOut 300 KeepAlive: cho phép hoặc không cho phép Client gửi được nhiều yêu cầu dựa trên một kết nối với Web Server. Cú pháp: KeepAlive Ví dụ: KeepAlive On `108
  49. MaxKeepAliveRequests: số Request tối đa trên một kết nối (nếu cho phép nhiều Request trên một kết nối). Cú pháp: MaxKeepAliveRequests Ví dụ: MaxKeepAliveRequests KeepAliveTimeout: qui định thời gian để chờ cho một Request kế tiếp từ cùng một Client trên cùng một kết nối (được tính bằng giây). Cú pháp: KeepAliveTimeout Ví dụ: KeepAliveTimeout 4.3.4. Alias Cung cấp cơ chế ánh xạ đường dẫn cục bộ (không nằm trong DocumentRoot) thành đường dẫn địa chỉ URL. Cú pháp: Alias Ví dụ: Alias /doc /usr/share/doc Khi truy cập sẽ đưa vào /usr/share/doc Để giới hạn việc truy cập của người dùng ta có thể kết hợp với Directory directive. Ví dụ: Alias /usr/share/doc AuthType Basic AuthName intranet AuthUserFile /etc/httpd/passwd Require userhally tom Allow from internal.com `109
  50. 4.3.5. UserDir Cho phép người dùng tạo Home page của user trên WebServer Cấu hình: #UserDir disable UserDir www; thư mục Web của user. Trong thư mục Home Directory của người dùng tạo thư mục www. Ví dụ /home/nva/www. Khi đó cú pháp truy cập từ Web Browser có dạng: . Ví dụ: Khi người dùng cố gắng truy cập đến thư mục của mình có thể gặp một message lỗi “Forbidden”. Điều này có thể là quyền truy cập đến home directory của người dùng bị giới hạn. Lúc này có thể giới hạn lại quyền truy cập home directory của người dùng với những câu lệnh như sau: chown jack /home/jack /home/jack/www chmod 750 /home/jack /home/jack/www 4.3.6. VirtualHost Là tính năng của Apache giúp ta duy trì nhiều hơn một web server trên một máy tính. Nhiều tên cùng chia xẻ một địa chỉ IP gọi là named-based virtual hosting, và sử dụng những địa chỉ IP khác nhau cho từng domain gọi là IP-based virtual hosting. 4.3.6.1. IP-based Virtual Host VirtualHost dựa trên IP yêu cầu những server phải có một địa chỉ IP khác nhau cho mỗi virtualhost dựa trên IP. Như vậy, một máy tính phải có nhiều interface hay sử dụng cơ chế virtual interface mà những hệ điều hành sau này hỗ trợ. Nếu máy có một địa chỉ IP: 97.158.253.26, chúng ta có thể cấu hình một địa chỉ IP khác trên cùng một card mạng như sau: ifconfig eth0:1 97.158.253.27 netmask 255.255.255.0 up `110
  51. Sau đó ta mô tả thông tin cấu hình trong file httpd.conf ; VirtualHost default DocumentRoot /tmp ServerName www.domain ; VirtualHost cho site1 DocumentRoot /home/www/site1 ServerName www1.domain ; VirtualHost cho site2 DocumentRoot /home/www/site2 ServerName www2.domain 4.3.6.2. Named-based Virtual Hosts: IP-based Virtual Host dựa vào địa chỉ IP để quyết định Virtual Host nào đúng để truy cập. Vì thế, cần phải có địa chỉ IP khác nhau cho mỗi Virtual Host. Với Named-based Virtual Host, server dựa vào HTTP header của client để biết được hostname. Sử dụng kỹ thuật này, một địa chỉ IP có thể có nhiều tên máy tính khác nhau. Named-based Virtual Host rất đơn giản, chỉ cần cấu hình DNS sao cho nó phân giải mỗi tên máy đúng với một địa chỉ IP và sau đó cấu hình Apache để tổ chức những web server cho những miền khác nhau. Cấu hình: Tham khảo đoạn cấu hình VirtualHost cho www.hcm.vn và www.tatavietnam.hcm.vn, www.ntc.hcm.vn sử dụng chung một IP 172.29.14.150 NameVirtualHost 172.29.14.150 #Virtualhost mặc định ServerAdmin webmaster@dummy-host.example.com DocumentRoot /tmp RewriteEngine on RewriteLogLevel 0 ServerName dummy-host.example.com `111
  52. ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common #Virtualhost cho WebServer chính ServerAdmin webmaster@dummy-host.example.com RewriteEngine on RewriteLogLevel 0 DocumentRoot /var/www/html ServerName www.hcm.vn ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common #virtualhost cho host Web Server tatavietnam ServerAdmin webmaster@dummy-host.example.com DocumentRoot /webdata RewriteEngine on RewriteLogLevel 0 ServerName www.tatavietnam.hcm.vn ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common #virtualhost cho host Web Server ntc ServerAdmin webmaster@dummy-host.example.com DocumentRoot /ntc RewriteEngine on RewriteLogLevel 0 ServerName www.ntc.hcm.vn ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common Câu hỏi 1. Samba là gì? Cho biết các thành phần cùng chức năng mỗi thành phần. 2. Chức năng của công cụ Samba swat? Trình bày cách cấu hình Samba swat. 3. DNS là gì? DNS hoạt động theo mô hình nào? 4. Trình bày cơ chế phân giải tên thành IP. Cho ví dụ minh họa. `112
  53. 5. Trình bày cơ chế phân giải IP thành tên máy tính. Cho ví dụ minh họa. 6. DHCP là gì? Cho biết các thành phần của DHCP và chức năng của mỗi thành phần. 7. Web Server là gì? Trình bày cách hoạt động của Web Server. Bài tập thực hành Bài 1. Cấu hình DHCP server: Cấu hình máy Linux làm máy chủ DHCP cung cấp địa chỉ IP động cho các máy trạm với: - scope: 192.168.100.50 – 192.168.100.100 - SM: 255.255.255.0 - GW: 192.168.100.1 - DNS: 192.168.100.10 - Domain: danavtc.edu.vn Bài 2. Cấu hình dịch vụ samba: 1. Chia xẻ home directory cho người dùng 2. Chia xẻ thư mục dùng chung 3. Chia xẻ máy in cục bộ cho người dùng 4. Truy cập tài nguyên dùng chung 5. Giới hạn truy cập tài nguyên dùng chung 6. mount tài nguyên dùng chung Bài 3. Quản trị SAMBA trên giao diện đồ họa: Đăng nhập và mode X và thực hiện các yêu cầu sau: 1. User và group: hocvien (hv1, hv2, hv3) giaovien (gv1, gv2) admin (admin1, admin2) 2. Cấu hình samba trên mode X theo yêu cầu sau: Chia xẻ home directory cho từng người dùng Chia xẻ thư mục /softs với tên share tailieu cho người dùng trong nhóm admin có quyền RW, những người khác có quyền R 3. Truy cập tài nguyên share từ mode X 4. Truy cập tài nguyên share từ Windows để kiểm tra Bài 4. Quản trị samba swat: Cho mô hình sau: `113
  54. Hãy thực hiện các yêu cầu: 1. Cài đặt samba swat 2. Cấu hình samba swat để có thể cấu hình samba qua web với port 8090 3. Chỉ cho phép máy có địa chỉ x.y.z.t được quyền quản lý samba qua web Cấu hình share máy in Cấu hình share home directory Cấu hình share thư mục dùng chung `114
  55. BÀI 8: QUẢN LÝ MÁY CHỦ LINUX BẰNG WEBMIN Mã bài: MĐ 40-08 Mục tiêu: - Biết cài đặt và sử dụng Webmin; - Sử dụng webmin để quản lý cấu hình hệ thống; - Thực hiện các thao tác an toàn với máy tính. Nội dung chính: 1. Giới thiệu Mục tiêu: Giới thiệu ứng dụng hỗ trợ quản trị hệ thống Linux qua giao diện web Webmin là ứng dụng Web hỗ trợ cho công tác quản trị hệ thống Unix/Linux qua Web; hầu hết các chương trình ứng dụng của Webmin được Jamie Cameron phát triển. Thông qua Webmin người dùng có thể logon vào hệ thống Unix/Linux để thực hiện các thao tác quản trị hệ thống một cách bình thường. Webmin cho phép người quản trị có thể: - Tổ chức tài khoản người dùng; - Tổ chức và cài đặt các dịch vụ như: apache, DNS, Mail, ; - Cập nhật các thông số cấu hình cho hệ thống; - Cấu hình mạng; - Cấu hình hardware; - Cấu hình Cluster; - Thực thi lệnh trên SHELL; - Quản trị hệ thống từ xa qua telnet/ssh; - Quản lý hệ thống tập tin và thư mục. 2. Cài đặt Webmin Mục tiêu: Trình bày các thao tác cài đặtcông cụ Webmin. 2.1. Cài đặt từ file nhị phân Webmin được cung cấp miễn phí tại Website Ta download package webmin-1.190-1.noarch.rpm. sau đó thực hiện lệnh: rpm -ivh webmin-1.190-1.noarch.rpm 2.2. Cài đặt từ file nguồn *.tar.gz # tar zxvf webmin-0.87.tar.gz [root@delilah webmin-1.050]#./setup.sh `115
  56. Web server port (default 10000): Login name (default admin): root Login password: Password again: The Perl SSLeay library is not installed. SSL not available. Start Webmin at boot time (y/n): n Sau khi cài đặt hoàn tất Webmin ta truy xuất Server theo địa chỉ: 3. Cấu hình Webmin Mục tiêu: Trình bày các thao tác đăng nhập, cấu hình và quản trị các đối tượng qua ứng dụng webmin. 3.1. Đăng nhập Webmin Sau khi cài xong Webmin ta có thể dùng Web Browser để truy xuất vào Webmin Server thông qua địa chỉ Màn hình đăng nhập Nhập username: root và mật khẩu tương ứng để logon vào hệ thống `116
  57. Giao diện Webmin 3.2. Cấu hình Webmin Thay đổi mật khẩu cho Webmin Password bằng dòng lệnh: #/usr/libexec/webmin/changepass.pl /etc/webmin root 123456 Restart Webmin bằng dòng lệnh: #/etc/webmin/stop #/etc/webmin/start Tìm hiểu file cấu hình Webmin /etc/webmin/miniserv.conf cho phép ta thay đổi một số thông tin cấu hình Webmin Server #chỉ định port number port=10000 root=/usr/libexec/webmin #chỉ định Webmin Type mimetypes=/usr/libexec/webmin/mime.types addtype_cgi=internal/cgi realm=Webmin Server #chỉ định logfile lưu trữ log cho Webmin logfile=/var/webmin/miniserv.log #lưu trữ error log errorlog=/var/webmin/miniserv.error #chỉ định pid file pidfile=/var/webmin/miniserv.pid logtime=168 ppath= ssl=1 #khai báo biến môi trường lưu trữ thông tin cấu hình Webmin env_WEBMIN_CONFIG=/etc/webmin env_WEBMIN_VAR=/var/webmin atboot=0 logout=/etc/webmin/logout-flag #listen port listen=10000 denyfile=\.pl$ log=1 blockhost_failures=5 blockhost_time=60 `117
  58. syslog=1 session=1 #chỉ file lưu trữ Webmin User userfile=/etc/webmin/miniserv.users keyfile=/etc/webmin/miniserv.pem passwd_file=/etc/shadow passwd_uindex=0 passwd_pindex=1 passwd_cindex=2 passwd_mindex=4 passwd_mode=0 passdelay=1 preroot=mscstyle3 3.3. Cấu hình Webmin qua Web Browser Sau khi đăng nhập vào Webmin Server ta chọn biểu tượng Webmin Configuration Cho phép hay cấm truy xuất Webmin từ host nào đó trên mạng thông qua IP Access Control. `118
  59. Allow from all addresses: cho phép tất cả các host khác truy xuất Webmin. Only allow from listed addresses: Chỉ cho phép các host trong ListBox mới được sử dụng Webmin (ta có thể mô tả địa chỉ như sau 172.29.1.0/255.255.255.0 để chỉ định cho network address) Deny from listed addresses: cho phép tất cả các host khác được truy xuất Webmin nhưng cấm các host nằm trong ListBox. Save: Lưu trữ lại những gì ta thay đổi. Port and Addresses: Cho phép hiệu chỉnh Webmin hoạt động trên địa chỉ IP và Port, nếu ta muốn Webmin hoạt động trên cổng khác thì ta có thể vào mục này để hiệu chỉnh lại cho phù hợp. Bind to IP address và Listen on port chỉ định Webmin listen 10000 tại địa chỉ IP(mặc định Webmin listen port 10000 trên tất cả các IP của Server) Operating System and Environment: Chỉ định loại hệ điều hành và một số đường dẫn chương trình `119
  60. Index Page Options: hiệu chỉnh màn hình chính của thực đơn Webmin Chọn ngôn ngữ sử dụng cho Webmin `120
  61. Chọn Webmin Themes để hiệu chỉnh giao diện sử dụng cho Webmin như icons, colours, background, và cách trình bày Web page cho Webmin `121
  62. 3.4. Quản lý Webmin 3.4.1. Quản lý Webmin User Tạo Webmin User thông qua mục Create a new Webmin user Ta nhập username, password, và đặt một số quyền hạn cho User `122
  63. 3.4.2. Webmin cho Users (Usermin) Với Webmin được sử dụng chủ yếu để quản trị hệ thống. Usermin là một công cụ cung cấp cho user có thể sử dụng hệ thống qua Web: Usermin có thể cung cấp cho user: - sử dụng mail client qua Web(web-based mail client). - Quản lý Java file applet. - Cấu hình SSH configuration và client modules - GnuPG encryption and decryption. - Mail forwarding. - Changing passwords - Cron jobs - web-based command shell - Cài đặt Usermin: - Cài đặt bằng file nhị phân Trước khi cài Usermin ta phải cài Authen-PAM Perl module [root@server openwebmail]# rpm -ivh usermin-1.120-1.noarch.rpm warning: usermin-1.120-1.noarch.rpm: V3 DSA signature: NOKEY, key ID 11f63c51 Preparing ########################################### [100%] Operating system is Redhat Linux Fedora 2 1:usermin ########################################### [100%] Usermin install complete. You can now login to as any user on your system. Cài đặt Usermin thông qua file .tar.gz # cp usermin-0.6.tar.gz /usr/local # cd /usr/local # gunzip usermin-0.6.tar.gz # tar xf usermin-0.6.tar # cd usermin-0.6 # ./setup.sh 3.4.3. Sử dụng Usermin Để login vào Usermin Server ta sử dụng địa chỉ `123
  64. Nhập username và password để login vào hệ thống Mail: hỗ trợ các thao tác về việc sử dụng mail cho User (Sau đây là ví dụ về sử dụng Usermin để đọc mail) Login: hỗ trợ user có thể sử dụng command shell, logon script `124
  65. Application: hỗ trợ cho user sử dụng một số ứng dụng như SQL, upload và download file Others: Hỗ trợ cho user có thể xem cấu trúc file, mount file, hiểu chỉnh lệnh Câu hỏi 1. Webmin là gì? Cho biết các thao tác quản trị thông qua webmin. Bài tập thực hành 1. Cài đặt và cấu hình webmin. 2. Cài đặt và cấu hình usermin. `125
  66. PHƯƠNG PHÁP VÀ NỘI DUNG ĐÁNH GIÁ: - Về kiến thức: Trình bày được các khái niệm cơ bản, cấu trúc, chức năng các thành phần trong hệ điều hành Linux Giải thích được các khái niệm cơ bản của hệ điều hành Linux Mô tả được cấu trúc, chức năng của các thành phần trong hệ điều hành Linux - Về kỹ năng: Cài đặt và sử dụng hệ điều hành Linux Thực thi được các thao tác tập tin, thư mục, quản lý người dùng Cài đặt và cấu hình các dịch vụ mạng Tổ chức hệ thống cho phép người sử dụng làm việc từ xa - Đánh giá thái độ: Đánh giá tính tự giác, tính kỷ luật, tham gia đầy đủ thời lượng mô đun, cẩn thận, tỉ mỉ, chính xác trong công việc. `126
  67. TÀI LIỆU THAM KHẢO [1]. Phan Vĩnh Thịnh - Tự học sử dụng Linux, 2011. [2]. Trung tâm Tin học, Đại học Khoa học Tự nhiên thành phố Hồ Chí Minh - Hướng dẫn giảng dạy Quản trị mạng Linux, 2011. [3]. Trường Đại học công nghệ, Đại học quốc gia Hà Nội - Giáo trình hệ điều hành Unix – Linux, 2004. [4]. VSIC Education Corp - Tài liệu Linux Fundamentals & Lan management. `127