Xinetd mồi

Xinetd mồi

Xinetd là người giám hộ quản lý quyền truy cập vào máy tính của bạn từ internet. Nó là một daemon chạy mọi lúc và lắng nghe trên tất cả các cổng cho các yêu cầu kết nối hoặc dịch vụ. Nếu bạn không chạy máy chủ, bạn sẽ không cần xinetd. Tuy nhiên, ngay cả khi máy tính của bạn chỉ sử dụng tại nhà, bạn có thể cần cho phép người khác truy cập vào các dịch vụ trên máy tính của mình tại một thời điểm nào đó trong tương lai. Khi bạn làm, bạn sẽ cần cài đặt xinetd để bảo vệ máy tính của bạn khỏi hoạt động độc hại.

Hệ điều hành

Tiện ích xinetd được viết cho các hệ thống tương tự Unix và Unix. Vì vậy, nó sẽ cài đặt trên Linux và Mac OS, nhưng không phải trên Windows. Chương trình miễn phí sử dụng và có thể được truy cập từ GitHub.

Bạn có thể lấy chương trình từ kho lưu trữ chính này và cũng có một nhánh của mã. Đây là một chương trình nổi tiếng và đáng tin cậy đã được tải xuống và cài đặt nhiều lần, vì vậy bạn không nên lo lắng về sự nguy hiểm của chương trình là một giả mạo độc hại.

Mục đích của xinetd

Hệ thống xinet dự định hoạt động như Một máy chủ. Bạn có thể biết rằng trong một kết nối internet thông thường, một máy tính liên lạc với nhau. Máy tính khởi tạo liên lạc được gọi là máy tínhkhách hàngTổ chức và chương trình được liên hệ là tổ chứcngười phục vụ.Một lý do thông thường cho kết nối là để máy khách có thể nhận dịch vụ từ máy chủ. Tuy nhiên, máy tính được liên lạc cần phải có chương trình đang chạy, chờ yêu cầu. Đây là chức năng của xinetd.

Yêu cầu cơ bản cho xinetd là nó sẽ nhận được yêu cầu và chuyển tiếp chúng đến đúng ứng dụng, được chỉ định bởi số cổng được ghi trong tiêu đề của kết nối đến hoặc yêu cầu dịch vụ. Chương trình xinetd không thực sự cung cấp dịch vụ được yêu cầu, nhưng hoạt động như một người gác cổng.

Lựa chọn thay thế: xinetd vs inetd

Các nhà phát triển của xinetd không phải là những người đầu tiên nảy ra ý tưởng về một chương trình lắng nghe trên mạng cho các yêu cầu đến. Trong thực tế, xinetd được dự định là một cải tiến trên chương trình gốc đã thực hiện nhiệm vụ này, được gọi là inetd.

Cái tên Xin xindd là tên viết tắt củadaemon dịch vụ mở rộngMùi. Dịch vụ Internet daemon ‘mô tả bản gốc inetd. Với inetd, bạn nhận được cùng một giám sát yêu cầu máy chủ mà xinetd cung cấp. Tuy nhiên, daemon này không có cơ chế phòng thủ và vì vậy hiện được coi là không an toàn.

Các inetd cũ đã làm việc một mình. Nó đã chuyển yêu cầu đến tcpd, đã kiểm tra các tệp quyền (host.allowhost.deny). Như tên cho thấy, tcpd xử lý các yêu cầu kết nối TCP. Tuy nhiên, nó cũng kiểm tra các cổng UDP, do đó, nó là một triển khai giao diện Lớp vận chuyển. Bạn cũng có thể thấy đề cập đến trình bao bọc TCP – đây chỉ là một tên khác của tcpd. Việc bao gồm tcpd đã thêm một số cải tiến kiểm soát truy cập. Tuy nhiên, quá trình cấp phép được điều khiển bởi hai tệp được điền thủ công và do đó, nó không phải là một giải pháp bảo mật rất toàn diện.

Tính năng Xinetd

Chế độ hoạt động xinetd tương tự như inetd kết hợp với tcpd. Tuy nhiên, giải pháp xinetd có các tính năng bảo mật tốt hơn nhiều so với kết hợp inetd / tcpd. Các tính năng của daemon bao gồm:

  • kiểm soát truy cập cho TCP và UDP
  • ghi nhật ký sự kiện ghi lại kết nối thành công và thất bại
  • kiểm soát truy cập dựa trên các phân đoạn thời gian
  • giới hạn máy chủ đồng thời – Phòng thủ tấn công từ chối dịch vụ (DoS)
  • giới hạn kích thước tệp nhật ký
  • phân bổ dịch vụ cho các giao diện khác nhau, cho phép một số dịch vụ bị giới hạn trong mạng riêng
  • chức năng proxy bao gồm dịch địa chỉ mạng

Xinetd có thể hoạt động như một trung gian hòa giải cho Dịch vụ RPC. Tuy nhiên, chức năng này không được thực hiện tốt. Việc thiếu tính năng bảo mật trong RPC đã làm giảm nhu cầu truy cập vào dịch vụ đó, do đó, nghi ngờ rằng các nhà phát triển của xinetd sẽ dành thời gian để hoàn thiện giao diện RPC của nó.

Phương pháp kiểm soát truy cập

Giống như inetd, xinetd cho phép bạn cho phép hoặc chặn các kết nối theo địa chỉ IP của người yêu cầu. Với inetd, bạn cũng có thể xác định các nguồn kết nối được phép và bị chặn theo tên máy chủ hoặc theo tên miền. Mỗi tùy chọn này yêu cầu một quy trình tra cứu. Trong trường hợp tùy chọn tên máy chủ, bạn sẽ cần phải thiết lập các tên đó trong hệ thống DNS DNS mạng của riêng bạn. Đối với các tên miền, có lẽ bạn nên dựa vào hệ thống DNS công cộng.

Lựa chọn cho dù bạn xác định người yêu cầu theo địa chỉ IP, tên máy chủ hoặc tên miền là tùy thuộc vào bạn. Tuy nhiên, gắn bó với địa chỉ IP tạo kết nối nhanh hơn bởi vì nó loại bỏ sự cần thiết cho một giai đoạn tra cứu.

Cấu hình hệ thông

Để sử dụng xinetd, trước tiên bạn cần cài đặt nó và sau đó cập nhật tập tin cấu hình. Về cơ bản, tập tin cấu hình là trung tâm chỉ huy của bạn cho xinetd. Vì chương trình này là một daemon, nên khi bạn khởi động nó, nó sẽ tiếp tục chạy mãi mãi. Đây là một tiện ích tương tác mà bạn có thể điều chỉnh tại dòng lệnh. Tất cả các giao tiếp của bạn với chương trình xảy ra thông qua tập tin cấu hình.

Trình nền sẽ tiếp tục kiểm tra tệp cấu hình bất cứ khi nào nhận được yêu cầu từ thế giới bên ngoài. Nó không tải cấu hình vào bộ nhớ khi khởi động. Điều đó có nghĩa là bạn có thể điều chỉnh hiệu suất của trình nền trong khi nó đang chạy bằng cách thay đổi các hướng dẫn được giữ trong tệp cấu hình.

Tệp cấu hình cho xinet quan trọng hơn nhiều là các hệ thống cấu hình cho các tiện ích khác. Điều này là do bạn có thể thay đổi các hướng dẫn cho trình nền thông qua cấu hình mà không cần phải dừng chương trình xinetd và khởi động lại nó.

Thiết lập tập tin cấu hình

Tìm tập tin /etc/xinetd.conf. Đây là tệp cấu hình chính cho chương trình và nó hoạt động như một bảng tra cứu mà ứng dụng đọc để tìm ra kết nối nào cho phép và dịch vụ nào sẽ gọi.

Bạn có thể tạo tệp xinetd.conf từ một tệp hiện có inetd.conf tập tin với xconv.pl chương trình, tạo thành một phần của gói mà bạn có thể tải xuống từ kho GitHub cho xinetd. Chạy chương trình chuyển đổi với lệnh sau:

/usr/local/sbin/xconv.pl < /etc/inetd.conf > /etc/xinetd.conf

Tệp cấu hình mới không hoàn hảo và nó sẽ cần sửa đổi thêm trước khi bạn có thể khởi chạy xinetd.

Phần cấu hình tập tin mặc định

Khi bạn xem tệp xinetd.conf mới tạo, bạn cần tập trung vào hai phần cấu hình chính. Đầu tiên trong số này là mặc định phần thứ hai là dịch vụ phần.

Như bạn có thể đã đoán, phần mặc định cho xinetd biết phải làm gì nếu nó không tìm thấy hướng dẫn cụ thể cho nhiệm vụ hiện tại của nó trong phần dịch vụ.

Một số tùy chọn chính mà bạn có thể đặt trong phần mặc định là:

  • chỉ từ
  • không truy cập
  • log_type
  • log_on_success
  • log_on_failure
  • trường hợp
  • per_source

Các phần tiếp theo giải thích các tùy chọn này chi tiết hơn.

Điều kiện truy cập

Chỉ từkhông truy cập thực hiện hiệu quả cùng một nhiệm vụ, đó là chặn (không truy cập) hoặc cho phép (only_from) địa chỉ cụ thể hoặc phạm vi địa chỉ. Bạn nên sử dụng một trong các tùy chọn này để chặn mọi thứ theo mặc định và sau đó xây dựng danh sách các dịch vụ thấp hơn trong tệp cấu hình. Theo chiến lược này, bạn tự bảo vệ mình nếu xảy ra sự kiện mà tài khoản của bạn đã xảy ra.

Hai tùy chọn này cũng là các lệnh hợp lệ để đưa vào phần dịch vụ. Vì vậy bạn có thể bắt đầu cấm mọi thứ theo mặc định và sau đó thêm dịch vụ. Nếu có một phần dịch vụ liên quan đến loại yêu cầu kết nối mà xinetd nhận được, thì nó đã thắng Nhìn vào phần mặc định của cấu hình.

Các hướng dẫn của only_from và no_access trong phần mô tả cho dịch vụ sẽ ghi đè các câu lệnh only_from và no_access trong phần mặc định.

Định dạng cho hai tùy chọn này là

= =

Hãy nhớ rằng các địa chỉ có thể được thể hiện dưới dạng địa chỉ IP, tên máy chủ hoặc tên miền. Tuy nhiên, tốt hơn là nên bám vào địa chỉ IP. Bạn có thể sử dụng ký hiệu CIDR để chỉ định một phạm vi. Dưới đây là hai ví dụ về cách bạn có thể sử dụng các tùy chọn này:

no_access = 0.0.0.0/0

Đây có lẽ là dòng phổ biến nhất trong phần mặc định vì nó chặn tất cả mọi người. Phần mặc định chỉ có trong tệp cấu hình để cho xinetd biết phải làm gì trong trường hợp yêu cầu dịch vụ không được đề cập trong phần dịch vụ. Bạn nên làm việc với giả định rằng bạn sẽ có thể cung cấp các hướng dẫn cụ thể cho mọi loại dịch vụ mà máy tính của bạn có thể cung cấp, vì vậy thật hợp lý khi tuyên bố rằng tất cả các yêu cầu khác đều bị chặn. Như người gác cửa trong một bữa tiệc VIP độc quyền sẽ nói, nếu bạn không có tên trong danh sách, bạn sẽ không tham gia.

Một thay thế cho chiến lược này là cho phép mọi người tham gia. Bạn sẽ thực hiện điều này với:

chỉ_from = 0.0.0.0/0

Chính sách này không thực sự có ý nghĩa trong phần mặc định. Phần mặc định chỉ được đề cập đến nếu bạn không đặt hướng dẫn cho một dịch vụ, vì vậy khi xinetd đến các mặc định, nó đã có một trường hợp không có bất kỳ hướng dẫn nào được cung cấp cho nó. Vì vậy, việc cho phép truy cập trong những trường hợp đó sẽ dẫn đến lỗi vì bạn đã nói với Xinetd phải làm gì với yêu cầu. Thật hợp lý khi sử dụng tùy chọn Catch-all only_from này trong phần mô tả dịch vụ, vì vậy thông báo này sẽ cho xinetd cho phép các yêu cầu từ mọi nguồn có thể sử dụng dịch vụ đó.

Thật không may, có một tính năng của các tùy chọn only_from và no_access sẽ tạo ra xung đột nếu bạn thực hiện chính sách như được mô tả ở trên. Đó là, cả no_access và only_from đều là toàn cầu và xinetd kiểm tra cả hai mỗi khi nó có nhiệm vụ phải thực hiện. Vì vậy, nếu bạn đã đặt cả hai, trình nền sẽ xác thực yêu cầu đến đối với câu lệnh no_access đó trong phần mặc định mặc dù có một cấu hình dịch vụ hợp lệ được thiết lập.

Có thể khắc phục sự cố này của no_access và only_from là toàn cầu bằng cách quyết định chính sách chỉ sử dụng cái này hay cái khác trong tập tin xinetd.conf của bạn. Đó là thực tế phổ biến để gắn bó với only_from và bỏ qua tùy chọn no_access. Bạn có thể tạo một hướng dẫn chỉ bắt tất cả bằng cách để trống danh sách địa chỉ trong phần mặc định, ví dụ:chỉ_from = Và điều đó sẽ cho phép chương trình xinetd sử dụng cài đặt only_from trong các mô tả dịch vụ. Điều này sẽ xảy ra mà không gây ra xung đột vì phần mặc định giá trị only_from bị ghi đè bởi dịch vụ chỉ only_from cài đặt.

Khó chịu, nếu bạn không đặt một câu lệnh only_from hoặc no_access trong phần mặc định, xinetd sẽ cho phép tất cả các kết nối rằng bạn có phạm vi bảo hiểm trong phần dịch vụ, điều này có thể sẽ tạo ra lỗi.

Định dạng để liệt kê một số địa chỉ làm tham số của cả hai tùy chọn này là để lại một khoảng trắng giữa mỗi địa chỉ (không có dấu phẩy). Bạn cũng có thể bao gồm các phạm vi CIDR trong danh sách.

Đăng nhập lệnh tập tin

Các log_type, log_on_success, và log_on_failure tất cả các tùy chọn làm việc cùng nhau. Mỗi cái có một loạt các hằng số mà bạn cần đưa vào tùy chọn làm tham số.

Sử dụng thuộc tính log_type để đưa ra đường dẫn và tên của một tệp nhật ký và sử dụng thuộc tính log_on_success và log_on_failure để chỉ định trường nào sẽ được ghi vào bản ghi tệp nhật ký cho mỗi sự kiện.

Ví dụ: bạn sẽ viết một địa chỉ tệp nhật ký với:

log_type = TẬP_TIN / usr / log / internetlog

Một tùy chọn khác có sẵn với thuộc tính log_type là SYSLOG, đặt mức thông báo cho các sự kiện này sẽ được báo cáo bởi syslogd. Các giá trị có thể là:

  • daemon
  • xác thực
  • người dùng
  • địa phương0-7

Một ví dụ sẽ là:

log_type = SYSLOG cục bộ1

Các TRIỆU CHỨNG thuộc tính không cần thiết và nó ít quan trọng hơn TẬP TIN Lựa chọn. Bạn thực sự cần phải cung cấp cho xinetd tên của một tệp nhật ký để ghi vào; bạn không cần phải chỉ định cấp Syslog cho các thông báo sự kiện.

Các tùy chọn báo cáo có sẵn cho log_on_success là:

  • PID – 0 nếu đó là dịch vụ xinetd nội bộ
  • HOST – địa chỉ của khách hàng
  • USERID – danh tính của người dùng từ xa
  • EXIT – trạng thái thoát quá trình
  • THỜI GIAN – thời lượng phiên

Các tùy chọn báo cáo cho log_on_failure là:

  • HOST – địa chỉ của khách hàng
  • USERID – danh tính của người dùng từ xa
  • ATTEMPT – ghi lại nỗ lực truy cập không thành công
  • RECORD – tất cả thông tin có sẵn về khách hàng

Bạn có thể bao gồm nhiều tùy chọn trên mỗi dòng log_on_success và log_on_failure và chúng nên được phân tách bằng khoảng trắng mà không có bất kỳ loại dấu câu nào. Ví dụ:

log_type = TẬP_TIN / usr / log / internetlog
log_on_success = HOST EXIT EXUR DURATION EXIT
log_on_failure = HOST USERID ATTEMPT RECORD

Đó là thực tế phổ biến để giữ các câu lệnh log_type, log_in_success và log_on_failure trên các dòng liên tiếp trong tệp.

Kiểm soát năng lực

Hai tùy chọn khác mà bạn cần đưa vào xinetd.conf giới hạn số lượng kết nối đồng thời mà máy chủ của bạn sẽ chấp nhận. Đây là một yếu tố quan trọng và nó là một cách đơn giản nhưng mạnh mẽ để đánh bại các cuộc tấn công từ chối dịch vụ (DoS). Hai tùy chọn thực hiện chiến lược này là trường hợpper_source.

Tùy chọn phiên bản trong phần mặc định chỉ định số lượng kết nối mà xinetd sẽ cho phép chạy đồng thời và tùy chọn per_source chỉ định số lượng yêu cầu kết nối mà daemon sẽ phản hồi từ cùng một địa chỉ nguồn. Tấn công từ chối dịch vụ phân tán (DDoS) sẽ vượt qua giới hạn per_source, nhưng không phải tùy chọn phiên bản. Thật không may, việc thực hiện giới hạn dịch vụ này sẽ chặn người dùng chính hãng trong suốt thời gian bị tấn công.

Định dạng cho hai tùy chọn này rất đơn giản:

= số.

Giá trị per_source phải thấp hơn giá trị cá thể.

Mặc định phần ví dụ

Tổng hợp tất cả các chi tiết được giải thích trong phần này, câu lệnh mặc định xinetd.conf của bạn sẽ giống như thế này:

mặc định
{
trường hợp = 20
per_source = 5
log_type = TẬP_TIN / usr / log / internetlog
log_on_success = HOST EXIT EXUR DURATION EXIT
log_on_failure = HOST USERID ATTEMPT RECORD
chỉ_from =
}

Mỗi tệp xinetd.conf phải có câu lệnh mặc định. Bạn không cần phải có bất kỳ tuyên bố dịch vụ nào.

Phần cấu hình dịch vụ

Đối với mỗi dịch vụ mà bạn muốn máy chủ của mình cung cấp, bạn nên viết phần hướng dẫn dịch vụ trong xinetd.conf. Nếu bạn không viết bất kỳ dịch vụ nào trong tệp cấu hình, xinetd sẽ sử dụng các thông số kỹ thuật được nêu trong phần mặc định. Bạn cũng có thể ghi đè các cài đặt được xác định trong các phần mặc định bằng cách đặt lại các thuộc tính đó với các giá trị khác nhau trong phần được viết để xác định dịch vụ.

Các loại dịch vụ

Các thuộc tính có sẵn cho phần dịch vụ là khác nhau đối với mỗi ba loại dịch vụ. Đó là:

  • NỘI BỘ
  • KHÔNG GIỚI HẠN
  • RPC

Danh mục dịch vụ (INTERNAL / UNLISTED / RPC) có thể được chỉ định với thuộc tính kiểu. Tuy nhiên, thuộc tính này không bắt buộc và thường bị bỏ qua.

Định nghĩa thuộc tính dịch vụ

Khi viết một đặc tả thuộc tính, tất cả các trường được phân tách bằng dấu cách hoặc trả về vận chuyển – bạn không sử dụng bất kỳ hình thức phân tách hoặc dấu câu nào trong định nghĩa.

Bố cục của một câu lệnh dịch vụ là giống nhau cho phần mặc định:

dịch vụ
{
  giá trị toán tử thuộc tính
}

Toán tử được sử dụng cho các câu lệnh thuộc tính thường bằng (= =Cúc). Rất ít thuộc tính cho phép các giá trị được thêm vào danh sách hiện có với+= =Nghiêng hoặc đưa ra một danh sách với-= =Nghiêng – trong cả hai trường hợp này, bạn viết toán tử mà không có dấu ngoặc kép hiển thị ở đây.

Dưới đây là các thuộc tính có sẵn cho một NỘI BỘ loại dịch vụ:

  • socket_type
  • cờ
  • đẹp
  • chờ đợi
  • giao thức (nếu không được liệt kê trong / etc / services)
  • cổng (nếu không được liệt kê trong / etc / services)
  • cps
  • access_times

Các thuộc tính có sẵn cho một RPC dịch vụ là:

  • socket_type
  • cờ
  • người dùng
  • người phục vụ
  • máy chủ
  • đẹp
  • chờ đợi
  • giao thức
  • rpc_version
  • số điện thoại
  • cps
  • access_times

Các KHÔNG GIỚI HẠN các loại dịch vụ có thể có bất kỳ thuộc tính nào sau đây:

  • socket_type
  • cờ
  • người dùng
  • người phục vụ
  • máy chủ
  • tải trọng tối đa
  • đẹp
  • chờ đợi
  • giao thức (nếu không được liệt kê trong / etc / services)
  • cổng (nếu không được liệt kê trong / etc / services)
  • access_times
  • cps

Mục đích thuộc tính dịch vụ

Ý nghĩa của các thuộc tính này được hiển thị trong bảng dưới đây:

Thuộc tính mô tả
kiểu NỘI BỘ, RPC, UNLISTED, hoặc NỘI BỘ KHÔNG GIỚI HẠN
socket_type luồng (TCP), dgram (UDP), raw (truy cập trực tiếp IP) hoặc seqpacket ().
Tôi tạo một tên duy nhất cho dịch vụ này
cờ giải thích dưới đây
người dùng chỉ định mức độ ưu tiên của máy chủ
người phục vụ Đường dẫn và chương trình của dịch vụ
máy chủ lập luận đối số để vượt qua với cuộc gọi dịch vụ
tải trọng tối đa số lượng quy trình đồng thời cho một dịch vụ
đẹp tăng mức độ ưu tiên cho dịch vụ
chờ đợi vâng không – chặn hoặc cho phép xử lý đồng thời các yêu cầu mới
giao thức có thể bị bỏ qua nếu giao thức được liệt kê trong / etc / giao thức
Hải cảng số cổng cũng phải tồn tại trong / etc / services và phải là cùng một số
rpc_version phiên bản của RPC
số điện thoại Số RPC
cps giới hạn kết nối, đối số thứ hai là tùy chọn và đưa ra số giây chờ khi đạt đến giới hạn
access_times giờ trong ngày khi một dịch vụ có thể được chạy
trói buộc phản hồi các kết nối đến một địa chỉ IP cụ thể
chuyển hướng chuyển tiếp yêu cầu dịch vụ sang máy tính khác

Các cờ thuộc tính có thể có các giá trị sau:

TUYỆT VỜI: chỉ chấp nhận kết nối từ các máy khách có máy chủ nhận dạng

BÌNH THƯỜNG: ngăn chặn việc tạo ra một quy trình mới về lỗi kết nối

TÊN: đối số đầu tiên trong máy chủngười phục vụ giá trị. Được sử dụng khi gọi tcpd

Ngoài các thuộc tính trên, các tùy chọn có sẵn trong phần mặc định cũng có thể được viết thành định nghĩa dịch vụ. Đó là:

  • chỉ từ
  • không truy cập
  • log_type
  • log_on_success
  • log_on_failure
  • trường hợp
  • per_source

Sử dụng lại các thuộc tính này sẽ ghi đè bất kỳ giá trị nào được đặt cho chúng trong phần mặc định. Tuy nhiên, hãy nhớ rằng chỉ từkhông truy cập các thuộc tính là toàn cục, vì vậy bạn phải tổ chức sử dụng các tùy chọn này để tránh các tham số xung đột.

Ví dụ khai báo dịch vụ

Dưới đây là hai ví dụ về định nghĩa của dịch vụ.

dịch vụ ntalk
{
socket_type = dgram
chờ đợi
người dùng = không ai
máy chủ = /usr/sbin/in.ntalkd
access_times = 7: 00-12: 30 13: 30-21: 00
chỉ_from = 192.168.1.0/24
}

dịch vụ ftp
{
socket_type = luồng
chờ đợi = không
người dùng = root
máy chủ = /usr/sbin/in.ftpd
server_args = -l
trường hợp = 4
tốt đẹp = 10
}

Lưu ý việc sử dụng access_times bên trong ntalk Định nghĩa. Điều này sử dụng hai phạm vi thời gian với thời gian từ và đến thời gian được phân tách bằng dấu gạch ngang (Nhận – Trực) không có khoảng trắng. Hai phạm vi thời gian được phân tách bằng một khoảng trắng. Các định nghĩa thời gian sử dụng định dạng đồng hồ 24 giờ.

Các chỉ từ thuộc tính trong ntalk định nghĩa giới hạn quyền truy cập vào dịch vụ này để chỉ các địa chỉ trên mạng cục bộ mới có thể sử dụng dịch vụ này.

Các ntalk dịch vụ có một socket_type của chương trình, có nghĩa là nó là một dịch vụ UDP. Các socket_type bên trong ftp định nghĩa là suối, có nghĩa là đây là một dịch vụ TCP.

Tạo nhiều phiên bản của một dịch vụ

Định nghĩa dịch vụ sử dụng tên dịch vụ làm định danh theo mặc định. Tuy nhiên, bạn có thể muốn tạo một vài bản sao của một dịch vụ và cung cấp cho mỗi thuộc tính khác nhau. Vì tên dịch vụ cần tương ứng với tên được sử dụng trong / etc / dịch vụ tập tin, nhận được một số phiên bản của một dịch vụ đang chạy là không thể. Tuy nhiên, thuộc tính id cho phép chiến lược hoạt động này.

Một cách sử dụng rất phổ biến của kịch bản này là khi bạn muốn tạo máy chủ FTP khác nhau để truy cập nội bộ và bên ngoài. Theo phương pháp này, bạn có thể giữ cho bộ lưu trữ tệp của bạn cho văn phòng tách biệt hoàn toàn với các tệp có thể tải xuống mà bạn cung cấp cho công chúng.

Trong trường hợp sử dụng này, bạn sẽ xác định Dịch vụ ftp ft hai lần. Sau đó, bạn sẽ cung cấp cho một ví dụ thuộc tính id = ftp-nội bộ và điều khác id = ftp-bên ngoài. Từ đó trở đi, xinetd có thể phân biệt giữa hai. Để cung cấp từng phiên bản cho các đối tượng khác nhau, bạn sẽ sử dụng chỉ từ thuộc tính để giới hạn quyền truy cập vào dịch vụ nội bộ ftp chỉ các địa chỉ trên mạng và truy cập vào dịch vụ bên ngoài ftp cho tất cả các địa chỉ ngoài mạng.

Ràng buộc một địa chỉ cho một dịch vụ

Kịch bản tạo các dịch vụ khác nhau cho người dùng nội bộ và bên ngoài có thể được trợ giúp rất nhiều bởi thuộc tính bind. Thuật ngữtrói buộcPhần mềm thường được sử dụng trong lập trình TCP. Nó thường có nghĩa là liên kết một kết nối với một cổng, do đó tạo ra một id cho phiên. Tuy nhiên, trong trường hợp này, thì ràng buộc có nghĩa là khác nhau. Trong ví dụ về quyền truy cập bên trong và bên ngoài vào máy chủ FTP, bạn có thể liên kết địa chỉ mạng máy tính với phiên bản ftp-Internal và địa chỉ IP công cộng của máy tính đó với phiên bản ftp-bên ngoài.

Trong ví dụ này, có thể bỏ qua thuộc tính only_from trong định nghĩa dịch vụ. Tuy nhiên, sẽ an toàn hơn nếu để những hạn chế đó vào. Vì vậy, định nghĩa đầy đủ về máy chủ FTP bên trong và bên ngoài của bạn sẽ là:

dịch vụ ftp
{
id = ftp-bên ngoài
máy chủ = /usr/sbin/in.ftpd
server_args = -l
trường hợp = 4
chỉ_from = 0.0.0.0/0
liên kết = 202.19.244.130
}

dịch vụ ftp
{
id = ftp-nội bộ
socket_type = luồng
máy chủ = /usr/sbin/in.ftpd
server_args = -l
chỉ_from = 192.168.1.0/24
liên kết = 192.168.1.5
}

Chiến lược này yêu cầu máy chủ FTP của bạn có địa chỉ IP tĩnh được phân bổ cho nó để truy cập công khai. Ngoài ra, bạn sẽ cần thiết lập máy chủ DHCP của mình để dành cùng một địa chỉ cho máy chủ FTP nội bộ của bạn. Mặc dù kịch bản trên hoạt động khi một máy tính được sử dụng cho cả truy cập bên trong và bên ngoài, bạn cũng có thể phân bổ địa chỉ của các máy tính riêng biệt cho từng phiên bản FTP.

Vô hiệu hóa các dịch vụ cụ thể inetd

ba dịch vụ xinetd cung cấp thông tin về hệ thống.

  • máy chủ: báo cáo về các máy chủ đang sử dụng
  • dịch vụ: báo cáo về các dịch vụ có sẵn, giao thức của họ và cổng của họ
  • xadmin: kết hợp hai lệnh trên

Những dịch vụ này là một điểm yếu bảo mật bởi vì chúng có thể được tin tặc sử dụng để lấy thông tin về mạng và máy chủ của bạn. Do đó, tốt hơn là vô hiệu hóa chúng. Bạn có thể làm điều này với thuộc tính bị vô hiệu hóa, đi vào mặc định Định nghĩa. Chỉ cần bao gồm dòng sau trong phần mặc định của bạn để xóa các tiện ích này:

bị vô hiệu hóa = dịch vụ máy chủ xadmin

Với các thay đổi tệp cấu hình chi tiết ở trên, bây giờ bạn có thể bắt đầu sử dụng xinetd.

Chạy xinetd

Bạn bắt đầu xinetd tại dòng lệnh. Lệnh cũng có thể được chạy từ một tệp bó, vì vậy bạn có thể thêm nó vào quy trình khởi động máy tính của bạn. Chương trình có thể được chạy với các tùy chọn sau:

SwitchOptionDes mô tả
-d Chế độ kiểm tra sửa lỗi
-nhật ký hệ thống               syslog_facility Giống như logSLty log_type trong tệp conf mặc định
-filelog logfile Giống như log_type FILE trong mặc định tệp conf
-f  tập tin cấu hình Chỉ định tệp cấu hình – mặc định là /etc/xinetd.conf
-pidfile pid_file Viết ID tiến trình cho pid_file
-sống sót Không bao giờ chấm dứt
-giới hạn Proc_limit Số lượng quá trình tối đa có thể được chạy đồng thời
-logprocs giới hạn Số lượng máy chủ tối đa có thể chạy đồng thời
-phiên bản In phiên bản xinetd
-inetd_compat Đọc /etc/inetd.conf cũng như tệp cấu hình xinetd
-cc khoảng Thực hiện kiểm tra tính nhất quán mỗi khoảng thời gian giây

Cũng có thể khởi chạy xinetd mà không có tùy chọn nào.

Sử dụng xinetd

Nếu bạn có máy tính Linux, bạn có thể đã cài đặt xinetd rồi. Bạn có thể kiểm tra bằng cách chạy xin lỗi. Nếu máy tính của bạn đang chạy inetd thay vào đó, có khả năng là bạn không chạy Linux. Thay thế chương trình bằng xinetd và chuyển đổi tệp cấu hình của bạn từ khả năng tương thích inetd sang sử dụng xinetd như đã giải thích ở trên.

Bạn có sử dụng xinetd tại thời điểm này? Để lại tin nhắn trong Bình luận phần bên dưới để chia sẻ kinh nghiệm của bạn với cộng đồng.

Xem thêm: 15 máy chủ Syslog miễn phí tốt nhất

Hình ảnh: Kết nối mạng internet từ Pixabay. Được cấp phép theo Muff Creative Commons