Chúng ta đã nói về rất nhiều dịch vụ, DNS, DHCP, NTP và các dịch vụ khác. Là một chuyên gia hỗ trợ CNTT, điều quan trọng là phải hiểu cách các chương trình cung cấp các dịch vụ này hoạt động để bạn có thể quản lý chúng và khắc phục mọi sự cố phát sinh. Các chương trình này chạy dưới dạng các tiến trình nền, còn được gọi là daemon hoặc chỉ là dịch vụ. Điều này có nghĩa là chương trình không cần phải tương tác với người dùng thông qua giao diện đồ họa hoặc giao diện dòng lệnh để cung cấp dịch vụ cần thiết. Hệ điều hành đảm bảo rằng chương trình đang chạy.
Mỗi dịch vụ có một hoặc nhiều tệp cấu hình mà bạn, với tư cách là quản trị viên hệ thống, sẽ sử dụng để xác định cách bạn muốn dịch vụ hoạt động. Một số dịch vụ có thể cung cấp các giao diện tương tác cho phép người dùng chỉnh sửa cấu hình và kiểm tra trạng thái hiện tại hoặc lịch sử sử dụng. Các dịch vụ khác có thể dựa vào cơ sở hạ tầng hệ thống cho việc này, có nghĩa là bạn sẽ cần phải tự chỉnh sửa các tệp cấu hình. Bạn phải biết cách khởi động và dừng dịch vụ và cách xem qua nhật ký của nó để xem bất kỳ hoạt động hiện tại hoặc trước đó nào.
Các dịch vụ thường được định cấu hình để khởi động khi máy khởi động, do đó nếu có sự cố mất điện hoặc sự kiện tương tự khiến máy phải khởi động lại, bạn sẽ không cần quản trị viên hệ thống phải khởi động thủ công dịch vụ. Nếu bạn muốn tự quyết định khi nào dịch vụ khởi động, thay vì khởi động khi khởi động, bạn cần thay đổi cấu hình phần mềm để làm cho nó khởi động khi bạn muốn. Tương tự, các dịch vụ thường được định cấu hình để khởi động lại nếu chúng gặp sự cố bất ngờ. Nếu đây không phải là cách bạn muốn thiết lập, bạn có thể cần thay đổi cấu hình hệ thống xử lý các thuộc tính này.
Có rất nhiều dịch vụ ngoài kia và mỗi dịch vụ có thể yêu cầu kiến thức cụ thể về cách định cấu hình nó và khi nào và cách sử dụng nó, nhưng các khái niệm chung liên quan đến việc quản lý và định cấu hình dịch vụ là giống nhau trên toàn bộ. Trong phần còn lại của bài học này, chúng ta sẽ xem xét các ví dụ về cách thực hiện việc này trên cả Windows và Linux.
Là một quản trị viên hệ thống, bạn sẽ cần biết cách xem trạng thái của một dịch vụ đang chạy và cách dừng, khởi động và khởi động lại các dịch vụ đang chạy. Cách chính xác để làm điều này sẽ phụ thuộc vào hệ điều hành bạn đang sử dụng. Nhưng các khái niệm là giống nhau.
Hãy xem xét một dịch vụ rất đơn giản là Giao thức thời gian mạng (NTP). Chúng ta đã nói trước đó rằng NTP cho phép các máy đồng bộ hóa đồng hồ của chúng. Các bản cài đặt Ubuntu bao gồm một daemon chạy trên máy và chịu trách nhiệm đồng bộ hóa đồng hồ bằng NTP.
Chúng ta có thể kiểm tra xem có NTP Daemon đang chạy trên máy này hay không bằng lệnh service: service ntp status.
(thực hiện lệnh)
Chúng ta có thể thấy rằng có một dịch vụ NTP và hệ thống cho chúng ta biết rằng nó đang chạy. Dịch vụ này giúp đồng hồ của chúng ta chạy đúng giờ mà chúng ta thậm chí không nhận ra. Nếu tại bất kỳ thời điểm nào nó phát hiện ra rằng đồng hồ đã bị trôi, nó sẽ điều chỉnh thời gian theo một gia số rất nhỏ. Nó sẽ thêm hoặc bớt 0,5 mili giây mỗi giây cho đến khi đạt được thời gian mong muốn. Nó sử dụng các gia số rất nhỏ để các dịch vụ khác phụ thuộc vào đồng hồ để thực hiện nhiệm vụ của chúng sẽ không bị ảnh hưởng bởi sự điều chỉnh thời gian đột ngột.
Trong điều kiện hoạt động bình thường, đồng hồ máy tính sẽ chỉ thấy sự trôi rất nhỏ so với Thời gian chuẩn. Vì vậy, những điều chỉnh rất nhỏ này là hợp lý. Nếu daemon phát hiện thời gian đã thay đổi hơn 128 mili giây, nó sẽ giả định rằng có điều gì đó khác đang diễn ra và sẽ không can thiệp.
Hãy kiểm tra điều này bằng cách sửa đổi thủ công ngày của hệ thống thành một ngày trong quá khứ. Tôi sẽ tiếp tục và nhập sudo date và cung cấp cho nó một ngày cụ thể, 2017-01-01 00:00:00.
(thực hiện lệnh)
Đã chỉ định ngày đó và Enter, rồi nhập date.
(thực hiện lệnh)
Chúng ta đã đặt ngày thành ngày 1 tháng 1 năm 2017 lúc 12:00 sáng. Nếu chúng ta kiểm tra ngày sau một vài giây, nó sẽ vẫn được đặt thành ngày 1 tháng 1 năm 2017.
(đợi vài giây)
Một vài giây sau nửa đêm, nó không được điều chỉnh. NTP Daemon đã thấy sự thay đổi, nhưng vì nó vượt quá ngưỡng 128 mili giây nên nó không điều chỉnh đồng hồ.
Làm cách nào để chúng ta làm cho nó bắt kịp hiện tại? Có một tùy chọn trong NTP daemon cho phép nó điều chỉnh mạnh mẽ đồng hồ khi nó đang khởi động. Điều này là do daemon dự kiến sẽ khởi động rất sớm trong quá trình khi máy đang khởi động. Không nên có bất kỳ dịch vụ phụ thuộc thời gian nào đang chạy tại thời điểm đó. Nếu chúng ta khởi động lại dịch vụ theo cách thủ công ngay bây giờ, chúng ta sẽ thấy rằng ngày và giờ được điều chỉnh.
Hãy nhập sudo service ntp stop, date, sudo service ntp start, nhập date, rồi Enter.
(thực hiện lệnh)
Chúng ta sử dụng hành động stop để dừng dịch vụ và hành động start để khởi động lại dịch vụ. Ngay sau khi khởi động dịch vụ, chúng ta có thể thấy rằng ngày và giờ được đặt lại về hiện tại. Chúng ta sử dụng lệnh sudo để dừng và khởi động dịch vụ vì bất kỳ người dùng nào cũng có thể kiểm tra trạng thái của dịch vụ, nhưng chỉ quản trị viên mới có thể khiến nó dừng và khởi động.
Một cách thay thế có sẵn trong hầu hết các dịch vụ là hành động restart, thực hiện dừng sau đó là khởi động. Hãy xem cái đó trông như thế nào. Đầu tiên, hãy đặt lại ngày thành ngày 1 tháng 1 năm 2017 lúc 12:00 sáng, sau đó chúng ta sẽ khởi động lại dịch vụ NTP. Tôi đang nhập sudo date, chỉ định thời gian. 2017-01-01 00:00:00, nhấn Enter, sau đó nhấn date, sau đó nhấn sudo service ntp restart, sau đó nhấn date.
(thực hiện lệnh)
Bây giờ bạn đã thấy cách kiểm tra trạng thái, khởi động, dừng và khởi động lại dịch vụ trong Linux. NTP là một dịch vụ rất đơn giản, nhưng bạn cũng có thể sử dụng các lệnh tương tự để quản lý các dịch vụ phức tạp hơn nhiều.
Giống như Linux, Windows cũng cho phép quản trị viên hệ thống quản lý các dịch vụ đang chạy trên hệ thống. Đối với ví dụ này, hãy xem xét dịch vụ Windows Update. Dịch vụ này chịu trách nhiệm phát hiện các bản cập nhật phần mềm cho hệ điều hành hoặc các chương trình đã cài đặt khác, tải xuống chúng và chuẩn bị sẵn sàng để áp dụng cho hệ thống.
Hãy lấy trạng thái của dịch vụ đang chạy bằng lệnh get-service. Vì vậy, tôi sẽ tiếp tục và mở PowerShell và tôi sẽ tiếp tục và nhập get-service. Tôi sẽ nhập dạng viết tắt cho dịch vụ Windows Update, đó là wuauserv. wuauserv là tên viết tắt của dịch vụ Windows Update.
(thực hiện lệnh)
Chúng ta có thể thấy rằng dịch vụ Windows Update đang chạy và có thể nhận thêm thông tin về nó bằng cách chạy lệnh tiếp theo này, đó là get-service wuauserv | format-list *.
(thực hiện lệnh)
Điều này sẽ cho chúng ta biết đó là loại dịch vụ nào và cách nó được định cấu hình để chạy. Đó là một cách tốt để có thêm thông tin về dịch vụ mà bạn quan tâm.
Như với Linux, bất kỳ người dùng nào cũng có thể truy vấn trạng thái của dịch vụ, nhưng chỉ quản trị viên mới có thể khởi động hoặc dừng dịch vụ. Nếu bạn cố gắng thực hiện các bước tiếp theo với shell người dùng thông thường, bạn sẽ không thể chạy các lệnh.
Bây giờ, hãy thử dừng dịch vụ và sau đó kiểm tra trạng thái. Đối với việc này, tôi sẽ mở PowerShell của quản trị viên và chạy lệnh stop-service. Vì vậy, tôi sẽ vào Start của mình và thay vì nhấp vào nó, tôi sẽ nhấp chuột phải và sau đó nhập "Run as administrator". Có, để kiểm soát bảo mật.
(thực hiện)
Vì vậy, bây giờ, tôi sẽ tiếp tục và nhập stop-service wuauserv. Tiếp theo tôi muốn nhập get-service wuauserv.
(thực hiện lệnh)
Vì vậy, dịch vụ này đã bị dừng. Để khởi động lại, chúng ta thực hiện lệnh start-service, tôi sẽ làm start-service wuauserv để khởi động dịch vụ. Và sau đó tôi sẽ nhập get-service để hiển thị rằng dịch vụ hiện đang chạy.
(thực hiện lệnh)
Cuối cùng, bạn có thể liệt kê tất cả các dịch vụ đã được đăng ký trong hệ thống bằng lệnh get-service.
Chúng ta cũng có thể thực hiện các hành động tương tự này một cách trực quan bằng cách sử dụng bảng điều khiển quản lý dịch vụ. Vì vậy, tôi sẽ tiếp tục và nhấp vào Start.
(thực hiện)
Bảng điều khiển này hiển thị cho chúng ta tất cả các dịch vụ trong hệ thống. Những cái đang chạy sẽ ghi "Running" trong cột trạng thái, trong khi những cái không chạy sẽ không ghi gì trong cột trạng thái. Chúng ta có thể tìm thấy tiện ích Windows Update ở cuối danh sách. Chúng ta có thể dừng nó bằng cách nhấp chuột phải vào nó và sau đó nhấp vào Stop.
(thực hiện)
Và sau đó nhấp chuột phải một lần nữa và nhấn Start.
(thực hiện)
Và bạn đã có nó. Đó là cách bạn nhận được trạng thái, dừng và khởi động dịch vụ trong Windows.
Ngoài việc biết cách truy vấn trạng thái, dừng và khởi động dịch vụ với tư cách là quản trị viên hệ thống, bạn phải biết cách cấu hình dịch vụ để đáp ứng nhu cầu của tổ chức. Ví dụ: nếu bạn đang chạy máy chủ DNS, bạn sẽ cần định cấu hình các vùng DNS mà bạn muốn phục vụ. Nếu bạn đang chạy máy chủ web, bạn sẽ cần định cấu hình các trang web và ứng dụng web khác nhau mà bạn muốn bật. Và nhìn chung, bạn muốn áp dụng bất kỳ chính sách bảo mật và sao lưu cụ thể nào cho tất cả các dịch vụ của mình.
Các chi tiết sẽ phụ thuộc rất nhiều vào hệ điều hành và dịch vụ. Nhưng hãy nói về những điều cơ bản mà bạn cần biết cho tất cả các dịch vụ.
Hầu hết các dịch vụ được bật ngay sau khi bạn cài đặt chúng. Đây là những chương trình được xuất xưởng với các mặc định đủ tốt để bắt đầu phục vụ ngay lập tức một cách an toàn. Nhưng không phải tất cả các dịch vụ đều có thể cung cấp các giá trị mặc định phù hợp với tất cả mọi người. Trong một số trường hợp, bạn sẽ cần chỉnh sửa các tệp cấu hình trước khi dịch vụ có thể hoạt động.
Trên Windows, hầu hết cấu hình được lưu trữ trong registry. Điều này có thể được sửa đổi bằng cách sử dụng trình hướng dẫn đồ họa hoặc bằng cách sử dụng lệnh set-service. Trên Linux, các tệp cấu hình cho các dịch vụ đã cài đặt nằm trong thư mục /etc. Và trong khi một số phần mềm có thể xuất xưởng trình chỉnh sửa cấu hình đồ họa, bạn thường phải chỉnh sửa các tệp cấu hình bằng trình soạn thảo văn bản.
Hãy thử nghiệm với một máy chủ ftp đơn giản có tên là vsftpd. Một dịch vụ được bật theo mặc định khi cài đặt. Vì vậy, tôi sẽ tiếp tục và nhập sudo apt install vsftpd để cài đặt dịch vụ.
(thực hiện lệnh)
Sau khi cài đặt xong, dịch vụ đã được chạy. Chúng ta có thể truy vấn trạng thái của dịch vụ bằng cách chạy service vsftpd status và thấy rằng nó đang chạy.
(thực hiện lệnh)
Điều này cho chúng ta biết rằng dịch vụ đã được chạy. Chúng ta cũng có thể xác minh rằng nó đang chạy bằng cách kết nối với máy chủ ftp bằng máy khách ftp. Để làm điều này, tôi sẽ tiếp tục và nhập lftp localhost. lftp là một chương trình máy khách ftp cho phép chúng ta kết nối với máy chủ ftp. Khi chúng ta yêu cầu nó kết nối với localhost, nó sẽ cố gắng kết nối với máy chủ ftp đang chạy trên localhost.
(thực hiện lệnh)
Bây giờ, hãy thử chạy lệnh ls để liệt kê nội dung của thư mục hiện tại.
(thực hiện lệnh ls, sau đó exit)
Điều này không thành công vì nó yêu cầu tên người dùng và mật khẩu và chúng ta không cung cấp chúng. Điều hợp lý là hành vi mặc định của máy chủ ftp là bị khóa. Nếu chúng ta thực sự muốn bật kết nối ẩn danh, chúng ta sẽ phải thực hiện điều đó một cách rõ ràng.
Hãy sửa đổi tệp cấu hình để cho phép kết nối ẩn danh. Để làm điều đó, tôi sẽ chỉnh sửa tệp cấu hình cho dịch vụ này nằm trong /etc/vsftpd.conf để thay đổi cài đặt anonymous_enable từ No thành Yes. Chúng ta gõ sudo vim /etc/vsftpd.conf.
(thực hiện lệnh)
Điều này sẽ mở tệp cấu hình của tôi và tôi sẽ tiếp tục và thay đổi anonymous_enable từ No thành Yes. Lưu tệp cấu hình của tôi.
(thực hiện)
Bằng cách thay đổi giá trị của cài đặt anonymous_enable từ No thành Yes, chúng ta đang yêu cầu chương trình máy chủ ftp cho phép kết nối ẩn danh. Chúng ta đã thực hiện thay đổi nhưng chúng ta vẫn chưa hoàn thành. Nếu chúng ta cố gắng kết nối lại, ls sẽ vẫn không thành công.
(thực hiện lệnh lftp localhost, ls, sau đó exit)
ls không thành công. Điều này cũng sẽ xảy ra với các dịch vụ khác vì hầu hết các dịch vụ đều đọc cấu hình của chúng khi chúng khởi động và sau đó giữ nó trong bộ nhớ khi chúng đang chạy. Để dịch vụ của chúng ta đọc lại cấu hình, chúng ta cần yêu cầu nó tải lại. Tải lại có nghĩa là dịch vụ đọc lại tệp cấu hình mà không cần phải dừng và khởi động. Bằng cách đó, các kết nối đang diễn ra sẽ không bị gián đoạn nhưng các kết nối mới sẽ sử dụng cấu hình mới.
Hãy làm điều này cho dịch vụ ftp của chúng ta. Ai đó đang nhập sudo service vsftpd reload.
(thực hiện lệnh)
Sau khi chúng ta đã làm điều này, chúng ta có thể thử kết nối lại và lần này việc thực hiện ls sẽ thành công.
(thực hiện lệnh lftp localhost, ls)
Hãy xem nó đã hoạt động.
Bây giờ chúng ta đã thấy cách khởi động, dừng, khởi động lại, sửa đổi cấu hình và tải lại cấu hình này cho các dịch vụ Linux. Hãy xem cách bạn có thể làm điều gì đó tương tự bằng Windows. Đối với ví dụ này, chúng ta sẽ sử dụng Internet Information Services (IIS), tính năng được cung cấp bởi Windows để phục vụ các trang web.
Đầu tiên, chúng ta sẽ cần bật tính năng này. Chúng ta sẽ sử dụng tùy chọn "Turn Windows features on and off" trong Control Panel của Windows. Nhấp vào "Turn Windows features on and off".
(thực hiện)
Thao tác này sẽ mở Server Manager, bây giờ chúng ta có thể sử dụng để bật Internet Information Services. Tôi sẽ tiếp tục và nhấp vào "Next", "Next" lần nữa, "Next" lần nữa, tổng cộng là ba lần. Tôi sẽ tiếp tục cuộn xuống và tìm kiếm máy chủ web IIS. Tôi sẽ nhấp vào đó và tôi sẽ nhấp vào "Add Features". Nhấp vào "Next". Nhấp vào "Next" lần nữa, "Next" lần nữa, "Next" lần nữa, rồi nhấn "Install".
(thực hiện)
Tôi đã chọn tùy chọn máy chủ web để bật dịch vụ này trên Windows Instance này. Bây giờ nó đang cài đặt tất cả các phần cần thiết để bật máy chủ web trên máy này.
(đợi cài đặt)
Bây giờ nó đã cài đặt xong. Khi chúng ta đóng cửa sổ này, chúng ta nhận thấy rằng có một tùy chọn mới trên trình quản lý dịch vụ có tên là IIS. Chúng ta thấy ở đây rằng chúng ta có một dịch vụ IIS đang chạy trên máy chủ này. Chúng ta có thể định cấu hình dịch vụ này bằng cách nhấp chuột phải vào mục nhập, sau đó chọn Internet Information Services (IIS) Manager.
(thực hiện)
Sau đó, tôi sẽ mở rộng máy chủ của chúng ta, rồi nhấp vào "Sites". Đây là những trang web được xử lý bởi dịch vụ này. Hiện tại, chỉ có một trang web được gọi là "Default Web Site". Hãy xem trang web này trông như thế nào bằng cách điều hướng đến localhost. Tôi sẽ tiếp tục và nhấp vào "Internet Explorer" và nhập localhost.
(thực hiện)
Tuyệt quá. Máy chủ của chúng ta đang phục vụ trang web mặc định. Bây giờ hãy thêm một trang web khác vào đó. Chúng ta quay lại Windows Information Services của mình. Tôi đã tạo một trang web ví dụ và lưu trữ trong thư mục tài liệu của mình. Bây giờ, tôi sẽ sao chép trang web ví dụ này vào thư mục inetpub, là thư mục thường được sử dụng để phục vụ trang web khi sử dụng IIS. Tôi sẽ nhấn "Copy".
(thực hiện)
Sau đó, tôi sẽ vào thư mục inetpub, chỉ cần C:\inetpub. Tôi sẽ dán thư mục ví dụ đó từ tài liệu của tôi vào thư mục inetpub. Sau đó, nhấn "Continue". Kiểm soát bảo mật. Tôi đã sao chép trang web của mình.
(thực hiện)
Bây giờ, hãy bật nó trong bảng điều khiển IIS Manager. Hãy quay lại bảng điều khiển. Tôi có thể thêm một trang web mới bằng cách nhấp chuột phải vào danh sách trang web và chọn tùy chọn "Add Website". Bây giờ tôi được trình bày với một loạt các tùy chọn mà tôi cần điền vào. Hãy chọn "example" làm tên trang web của tôi. Hãy chọn thư mục mà tôi vừa sao chép làm đường dẫn vật lý cho trang web.
(thực hiện)
Cuối cùng, hãy chọn 8080 làm cổng. Cái cuối cùng này là để trang web mặc định có thể chạy ở cổng mặc định, cổng 80, trong khi trang web ví dụ của chúng ta có thể chạy ở một cổng riêng biệt. Tôi đã thiết lập trang web mới. IIS cho tôi biết rằng trang web đã hoạt động. Hãy xem điều đó có đúng không. Tôi sẽ tiếp tục và nhấp vào "Internet Explorer", nhập localhost và nhập dấu hai chấm cổng 8080, rồi nhấn "Enter".
(thực hiện)
Thành công. Chúng ta đã thêm trang web thứ hai vào máy chủ web của mình.
Bây giờ chúng ta đã thấy cách cài đặt, quản lý và định cấu hình các dịch vụ Linux và Windows. Trong các bài tập thực hành nhanh tiếp theo, bạn sẽ có thể tự mình thử các hành động này. Chúc vui vẻ.