OpenSearch là một nhánh mã nguồn mở của Elasticsearch và Kibana do Amazon phát triển. Đây là một công cụ tìm kiếm theo thời gian thực, phân tán và có thể mở rộng cho phép tìm kiếm toàn văn bản cũng như phân tích. Nó được sử dụng để lập chỉ mục và tìm kiếm qua lượng dữ liệu lớn. Nó thường được triển khai cùng với OpenSearch Dashboards (một nhánh của Kibana), một bảng điều khiển trực quan hóa dữ liệu mạnh mẽ cho OpenSearch. OpenSearch Dashboards cho phép bạn khám phá dữ liệu nhật ký OpenSearch và xây dựng bảng điều khiển và truy vấn để hiểu sâu hơn về ứng dụng của bạn.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt OpenSearch trên máy chủ Debian 12. Bạn cũng sẽ học cách bảo mật cài đặt của mình bằng chứng chỉ TLS tùy chỉnh và bật xác thực trên OpenSearch.
Kiểm tra trạng thái của tường lửa.
Bạn sẽ thấy nội dung tương tự như sau.
Cho phép HTTP và HTTPs ports.
Kiểm tra lại trạng thái để xác nhận.
Đầu tiên, hãy kiểm tra xem bạn đã bật bộ nhớ hoán đổi chưa.
Nếu bạn đã bật hoán đổi, thì bạn sẽ thấy thông báo tương tự đầu ra.
Chạy các lệnh sau để vô hiệu hóa không gian hoán đổi vĩnh viễn.
Kiểm tra lại bộ nhớ hoán đổi và nó sẽ hiển thị sau đây.
OpenSearch sử dụng thư mục
Kiểm tra giá trị hiện tại cho
Để tăng số lượng bản đồ bộ nhớ được sử dụng bởi mỗi quy trình, hãy chạy lệnh sau.
Điều này sẽ chỉ có hiệu lực cho đến khi hệ thống được khởi động lại. Để làm cho giá trị này trở nên vĩnh viễn, hãy thêm dòng
Bạn có thể thực hiện thay đổi vĩnh viễn bằng cách khởi động lại hệ thống hoặc chạy lệnh sau.
Bước cuối cùng là thiết lập tên máy chủ. Tùy thuộc vào nơi bạn lưu trữ máy chủ, một số công ty đám mây cho phép bạn thiết lập tên máy chủ trực tiếp thông qua bảng điều khiển của họ. Tuy nhiên, tốt hơn là thực hiện thông qua thiết bị đầu cuối.
Chạy lệnh sau để đặt tên máy chủ.
Thêm FQDN (Tên miền đủ điều kiện) vào tệp
Kiểm tra tên máy chủ và FQDN bằng cách sử dụng lệnh sau lệnh.
Như vậy là hoàn tất quá trình tối ưu hóa hệ thống của chúng ta để hoạt động với OpenSearch.
Tạo kho lưu trữ APT OpenSearch tệp.
Cập nhật danh sách kho lưu trữ hệ thống.
Kiểm tra tất cả các phiên bản có sẵn của OpenSearch available.
Phiên bản mới nhất của OpenSearch v2.12.0 yêu cầu bạn phải đặt mật khẩu demo quản trị viên trước khi cài đặt, nếu không sẽ không cài đặt được.
Bạn có thể cài đặt phiên bản mới nhất của OpenSearch bằng lệnh sau. Chúng ta có thể đặt mật khẩu demo quản trị viên bằng biến môi trường trong chính lệnh cài đặt. Chọn một mật khẩu mạnh.
Nếu bạn thấy cảnh báo sau trong quá trình cài đặt, bạn có thể bỏ qua một cách an toàn.
Hoặc bạn có thể cài đặt một phiên bản.
Tải lại trình nền dịch vụ.
Kích hoạt OpenSearch dịch vụ.
Khởi động dịch vụ OpenSearch.
Xác minh trạng thái của OpenSearch dịch vụ.
Bạn sẽ nhận được kết quả sau.
Bạn sẽ nhận được kết quả tương tự.
Truy vấn điểm cuối plugin OpenSearch để xem danh sách các plugin khả dụng plugin.
Bạn cũng có thể sử dụng lệnh sau cho mục đích tương tự.
Bạn sẽ nhận được kết quả tương tự.
Bạn có thể cài đặt thêm các plugin khác bằng lệnh sau lệnh.
Bạn có thể tìm thấy danh sách các plugin OpenSearch khả dụng trên trang web chính thức của họ.
OpenSearch lưu trữ cấu hình của mình trong tệp
Tìm dòng
Thêm các dòng sau vào cuối tệp.
Vì chúng tôi đang cài đặt trên một máy chủ duy nhất, chúng tôi đã thiết lập
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Chúng ta cũng cần chỉ định kích thước heap JVM (Java Virtual Memory) ban đầu và tối đa. Thiết lập này phụ thuộc vào kích thước RAM của máy chủ của bạn. Ví dụ, chúng tôi đang sử dụng máy chủ có 4GB RAM nên chúng tôi đang đặt kích thước heap thành 3GB.
Tạo và mở
Thêm các dòng sau vào nó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại dịch vụ OpenSearch để triển khai các thay đổi.
Bạn có thể kiểm tra kích thước heap hiện tại và bộ nhớ tối đa bằng cách sử dụng lệnh sau lệnh.
Bạn sẽ nhận được kết quả sau.
Chuyển sang thư mục OpenSearch.
Xóa các chứng chỉ mặc định.
Mở tệp cấu hình OpenSearch cho chỉnh sửa.
Bình luận đoạn mã sau ở cuối tệp bằng cách đặt dấu thăng trước mỗi dòng bên trong phần Cấu hình bản demo bảo mật OpenSearch như hiển thị bên dưới.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tiếp theo, tạo một thư mục để lưu trữ chứng chỉ bên trong thư mục
Thay đổi quyền của thư mục thành người dùng hiện đang đăng nhập để tránh sử dụng sudo trong khi tạo chứng chỉ.
Chuyển sang thư mục chứng chỉ.
Tạo chứng chỉ CA gốc tự ký. Chúng tôi đang sử dụng tham số
Bạn có thể thay đổi thông tin để phù hợp với máy chủ cụ thể của mình.
Các biến trong Tham số
C = Tên quốc gia (mã gồm 2 chữ cái), ST = Tên tiểu bang hoặc tỉnh (Tên đầy đủ), L = Tên địa phương (ví dụ: thành phố), O = Tên tổ chức, OU = Tên đơn vị tổ chức (ví dụ: bộ phận), CN = Tên chung (ví dụ: FQDN của máy chủ)
Chứng chỉ gốc của bạn hiện đã hoạt động.
Chuyển đổi khóa riêng sang định dạng PKCS#8 để sử dụng trong Java bằng thuật toán tương thích PKCS#12 (3DES).
Tạo CSR (Yêu cầu ký chứng chỉ) của Quản trị viên từ khóa riêng. Vì chứng chỉ này không liên kết với bất kỳ máy chủ nào và được sử dụng để xác thực quyền truy cập nâng cao, chúng tôi đang sử dụng giá trị
Ký CSR của Quản trị viên bằng chứng chỉ gốc và khóa riêng mà bạn vừa đã tạo.
Chuyển đổi khóa riêng của nút thành PKCS#8 format.
Tạo CSR mới cho chứng chỉ Node từ khóa riêng. Đảm bảo thay đổi giá trị của biến
Tạo tệp mở rộng SAN (Tên thay thế chủ thể) chứa tên máy chủ của nút hoặc FQDN hoặc địa chỉ IP.
Ký CSR của chứng chỉ nút bằng chứng chỉ gốc và khóa riêng mà bạn vừa đã tạo.
Tiếp theo, chúng ta sẽ cài đặt chứng chỉ CA gốc trên máy chủ. Để thực hiện việc đó, hãy chuyển đổi chứng chỉ CA gốc sang định dạng
Sao chép
Thêm chứng chỉ CA gốc vào máy chủ Debian của bạn bằng lệnh sau.
Bạn sẽ thấy đầu ra sau (
Thay đổi quyền sở hữu thư mục trở lại
Thay đổi quyền trên thư mục thành 0700.
Thay đổi quyền trên chứng chỉ thành 0600.
Bước đầu tiên là tạo một tập lệnh bash sẽ thêm tất cả các chứng chỉ đã tạo và cài đặt plugin bảo mật TLS vào tệp cấu hình OpenSearch (
Tạo một tệp có tên
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tạo tệp có thể thực thi.
Chạy tập lệnh.
Bạn sẽ nhận được thông báo sau đầu ra.
Mở tệp
Cuộn xuống cuối tệp và bạn sẽ thấy nội dung sau.
Khi bạn đã hài lòng, hãy lưu tệp bằng cách nhấn Ctrl + X.
Chuyển sang thư mục công cụ plugin bảo mật OpenSearch.
Chạy
Tập lệnh sẽ không thành công và bạn sẽ nhận được lỗi sau vì đường dẫn đến tệp thực thi Java (JDK) chưa được đã định nghĩa.
Chạy lại lệnh bằng cách khai báo biến môi trường
Bạn sẽ nhận được kết quả tương tự.
Nó sẽ tạo ra hàm băm mật khẩu mà chúng ta sẽ cần sau.
Mở tệp cấu hình Người dùng OpenSearch
Bình luận tất cả người dùng demo bằng cách thêm băm vào trước họ như được hiển thị.
Thêm người dùng quản trị với băm bạn đã tạo ở trên là đã hiển thị.
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Bây giờ chứng chỉ TLS đã được cài đặt và người dùng demo đã xóa hoặc chỉ định mật khẩu mới, đã đến lúc áp dụng các thay đổi cấu hình. Để áp dụng các thay đổi, chúng tôi sẽ gọi tập lệnh
Khởi động lại dịch vụ OpenSearch.
Chuyển sang
Chạy tập lệnh bằng lệnh sau.
Plugin bảo mật lưu trữ cấu hình của nó - bao gồm người dùng, quyền, vai trò và cài đặt phụ trợ trong chỉ mục hệ thống trên cụm OpenSearch. Lưu trữ các cài đặt này trong cụm cho phép bạn thay đổi cài đặt mà không cần khởi động lại cụm và loại bỏ nhu cầu chỉnh sửa tệp cấu hình trên mọi nút. Điều này được thực hiện bằng cách chạy tập lệnh
Bạn sẽ nhận được kết quả tương tự như hiển thị bên dưới với lệnh.
Xác minh thông tin xác thực mới bằng lệnh sau.
Trong lần kiểm tra trước, chúng tôi đã chuyển hướng yêu cầu đến
Bạn sẽ thấy phản hồi sau.
Để cài đặt bảng điều khiển OpenSearch, hãy chạy lệnh sau để tạo kho lưu trữ APT cho nó.
Cập nhật danh sách kho lưu trữ hệ thống.
Liệt kê tất cả các phiên bản OpenSearch có sẵn Bảng điều khiển.
Bạn sẽ thấy kết quả tương tự.
Cài đặt phiên bản mới nhất của OpenSearch Bảng điều khiển.
Hoặc cài đặt phiên bản cụ thể của Bảng điều khiển OpenSearch.
Phiên bản của bảng điều khiển OpenSearch và OpenSearch phải giống nhau, nếu không, bạn có thể gặp phải nhiều sự cố.
Tải lại dịch vụ daemon.
Kích hoạt dịch vụ Bảng điều khiển OpenSearch.
Khởi động Bảng điều khiển OpenSearch dịch vụ.
Xác minh trạng thái của dịch vụ Bảng điều khiển OpenSearch.
Bạn sẽ thấy thông tin sau đầu ra.
Tìm dòng
Đặt giá trị của
Cuộn xuống để tìm phần sau.
Thay đổi các giá trị được cấu hình cho cài đặt OpenSearch của chúng tôi.
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại dịch vụ OpenDashboards.
Mở cổng 5601 trong tường lửa UFW.
Mở URL
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22491%22%20height=%22418%22%3E%3C/svg%3E
Nếu bạn hài lòng khi truy cập Bảng điều khiển OpenSearch qua HTTP và có số cổng trong URL, bạn có thể dừng ở đây. Tuy nhiên, tốt hơn là phục vụ Bảng điều khiển qua SSL. Đối với điều này, chúng tôi sẽ cài đặt Nginx làm proxy ngược và phục vụ SSL qua đó.
Nhập khóa ký của Nginx.
Thêm kho lưu trữ cho phiên bản chính của Nginx.
Cập nhật hệ thống kho lưu trữ.
Cài đặt Nginx.
Xác minh cài đặt. Trên hệ thống Debian, lệnh sau chỉ hoạt động với
Khởi động Nginx máy chủ.
Kiểm tra trạng thái dịch vụ.
Debian 12 không đi kèm Snapd đã cài đặt. Cài đặt gói Snapd.
Chạy các lệnh sau để đảm bảo phiên bản Snapd của bạn được cập nhật.
Cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến
Kiểm tra xem Certbot có hoạt động bình thường không.
Chạy lệnh sau để tạo SSL Chứng chỉ.
Lệnh trên sẽ tải chứng chỉ xuống thư mục
Tạo nhóm Diffie-Hellman chứng chỉ.
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Bạn sẽ tìm thấy
Thực hiện chạy thử quy trình để kiểm tra xem việc gia hạn SSL có hoạt động không tốt.
Nếu bạn không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.
Thêm dòng sau vào trước dòng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tạo và mở tệp
Dán mã sau vào đó. Thay thế
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xác minh Nginx của bạn cấu hình.
Khởi động lại máy chủ Nginx.
Truy cập
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22511%22%20height=%22444%22%3E%3C/svg%3E
Nhập
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22585%22%20height=%22750%22%3E%3C/svg%3E
Nhấp vào nút Thêm dữ liệu để bắt đầu thêm dữ liệu trực tiếp hoặc nhấp vào liên kết Khám phá theo cách của riêng tôi nếu bạn muốn duyệt trước. Chúng tôi sẽ duyệt trước và nó sẽ đưa bạn đến một cửa sổ bật lên nói về chế độ tối của Bảng điều khiển OpenSearch.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22473%22%3E%3C/svg%3E
Nhấp vào nút Bỏ qua để tiếp tục. Tiếp theo, bạn sẽ được yêu cầu chọn một người thuê.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22530%22%3E%3C/svg%3E
Người thuê trong Bảng điều khiển OpenSearch là không gian để lưu các mẫu chỉ mục, hình ảnh trực quan, bảng điều khiển và các đối tượng Bảng điều khiển OpenSearch khác. Mỗi người dùng có thể tạo nhiều người thuê cho nhiều mục đích sử dụng. Người thuê hữu ích để chia sẻ công việc của bạn một cách an toàn với những người dùng Bảng điều khiển OpenSearch khác. OpenSearch cung cấp cho bạn tùy chọn lựa chọn giữa ba tùy chọn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22457%22%3E%3C/svg%3E
Tiếp theo, chúng tôi sẽ xác minh kết nối giữa OpenSearch và Bảng điều khiển OpenSearch.
Nhấp vào nút Công cụ dành cho nhà phát triển ở góc trên bên phải và bạn sẽ thấy một cửa sổ bật lên nhỏ về giao diện người dùng bảng điều khiển dành cho Bảng điều khiển OpenSearch.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22548%22%20height=%22750%22%3E%3C/svg%3E
Nhấp vào nút Bỏ qua, nhập truy vấn GET / vào bảng điều khiển bên trái và nhấp vào nút phát nhỏ ở giữa. Bạn sẽ thấy đầu ra sau ở bên phải.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22360%22%3E%3C/svg%3E
Điều này xác nhận rằng OpenSearch Dashboards đang nhận dữ liệu từ OpenSearch và cả hai đều hoạt động tốt. Bạn có thể bắt đầu thêm dữ liệu từ đây.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt OpenSearch trên máy chủ Debian 12. Bạn cũng sẽ học cách bảo mật cài đặt của mình bằng chứng chỉ TLS tùy chỉnh và bật xác thực trên OpenSearch.
Điều kiện tiên quyết
-
Máy chủ chạy Debian 12 với tối thiểu 4GB RAM.
-
Người dùng không phải root có quyền sudo.
-
Tường lửa đơn giản (UFW) được bật và đang chạy.
-
Tên miền đủ điều kiện (FQDN) nhưopensearch.example.com
trỏ đến máy chủ của bạn. Điều này có lợi nếu bạn muốn phục vụ Bảng điều khiển OpenSearch qua SSL bằng cách sử dụng máy chủ proxy.
-
Mọi thứ đều được cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade
-
Cần có một số gói thiết yếu để chạy hướng dẫn và Craft CMS. Một số trong số này sẽ có sẵn trên máy chủ của bạn.
Mã:$ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y
Bước 1 - Cấu hình Tường lửa
Bước đầu tiên trước khi cài đặt bất kỳ gói nào là cấu hình tường lửa để cho phép kết nối HTTP và HTTPS.Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo ufw status
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Mã:
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
Bước 2 - Chuẩn bị hệ thống
Trước khi cài đặt OpenSearch, chúng ta cần chuẩn bị và tối ưu hóa hệ thống của mình cho nó. Có một số bước liên quan bao gồm vô hiệu hóa bất kỳ bộ nhớ hoán đổi nào nếu bạn có, thiết lập số lượng bản đồ bộ nhớ cho hệ thống của bạn và thiết lập tên máy chủ hệ thống.Đầu tiên, hãy kiểm tra xem bạn đã bật bộ nhớ hoán đổi chưa.
Mã:
$ free -m
Mã:
total used free shared buff/cache available
Mem: 7945 1083 6492 34 636 6861
Swap: 4242 0 4242
Mã:
$ sudo swapoff -a
$ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
Mã:
total used free shared buff/cache available
Mem: 7945 1113 6449 37 651 6831
Swap: 0 0 0
mapfs
theo mặc định để lưu trữ các chỉ mục của nó. Giới hạn mặc định của hệ điều hành đối với số lượng nmap quá thấp, có thể gây ra lỗi hết bộ nhớ.Kiểm tra giá trị hiện tại cho
vm.max_map_count
biến.
Mã:
$ sysctl -n vm.max_map_count
65530
Mã:
$ sudo sysctl -w vm.max_map_count=262144
vm.max_map_count=262144
vào tệp /etc/sysctl.conf
bằng cách sử dụng lệnh sau lệnh.
Mã:
$ echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
Mã:
$ sudo sysctl -p
Chạy lệnh sau để đặt tên máy chủ.
Mã:
$ sudo hostnamectl set-hostname opensearch
/etc/hosts
. Tại đây, chúng tôi ánh xạ tên máy chủ opensearch
thành tên miền opensearch.example.com
và trỏ nó đến địa chỉ IP của máy chủ. Thay thế
trong lệnh bên dưới bằng địa chỉ IP của máy chủ của bạn.
Mã:
$ echo " opensearch.example.com opensearch" | sudo tee -a /etc/hosts
Mã:
$ hostname
opensearch
$ hostname -f
opensearch.example.com
Bước 3 - Cài đặt OpenSearch
Nhập khóa GPG OpenSearch được sử dụng để ký gói cài đặt.
Mã:
$ curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list
Mã:
$ sudo apt update
Mã:
$ sudo apt list -a opensearch
Listing... Done
opensearch/stable 2.12.0 amd64
opensearch/stable 2.11.1 amd64
opensearch/stable 2.11.0 amd64
opensearch/stable 2.10.0 amd64
opensearch/stable 2.9.0 amd64
opensearch/stable 2.8.0 amd64
opensearch/stable 2.7.0 amd64
opensearch/stable 2.6.0 amd64
opensearch/stable 2.5.0 amd64
Bạn có thể cài đặt phiên bản mới nhất của OpenSearch bằng lệnh sau. Chúng ta có thể đặt mật khẩu demo quản trị viên bằng biến môi trường trong chính lệnh cài đặt. Chọn một mật khẩu mạnh.
Mã:
$ sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD= apt install opensearch
Mã:
......
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
......
Mã:
$ sudo apt install opensearch=2.11.1
Mã:
$ sudo systemctl daemon-reload
Mã:
$ sudo systemctl enable opensearch
Mã:
$ sudo systemctl start opensearch
Mã:
$ sudo systemctl status opensearch
Mã:
? opensearch.service - OpenSearch Loaded: loaded (/lib/systemd/system/opensearch.service; enabled; preset: enabled) Active: active (running) since Sat 2024-03-02 06:37:01 UTC; 5s ago Docs: https://opensearch.org/ Main PID: 31109 (java) Tasks: 75 (limit: 4652) Memory: 1.3G CPU: 1min 3.128s CGroup: /system.slice/opensearch.service ??31109 /usr/share/opensearch/jdk/bin/java -Xshare:auto -Dopensearch.networkaddress.cache.ttl=60 -Dopensearch.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true...
Bước 4 - Kiểm tra OpenSearch
Trước khi tiến hành thêm, chúng ta hãy kiểm tra xem quá trình cài đặt có hoạt động tốt hay không. Chạy lệnh sau để xác minh xem OpenSearch có chạy như mong đợi không.
Mã:
$ curl -X GET https://localhost:9200 -u 'admin:' --insecure
Mã:
{ "name" : "opensearch", "cluster_name" : "opensearch", "cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g", "version" : { "distribution" : "opensearch", "number" : "2.12.0", "build_type" : "deb", "build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221", "build_date" : "2024-02-20T02:18:31.541484890Z", "build_snapshot" : false, "lucene_version" : "9.9.2", "minimum_wire_compatibility_version" : "7.10.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "The OpenSearch Project: https://opensearch.org/"
}
Mã:
$ curl -X GET https://localhost:9200/_cat/plugins?v -u 'admin:' --insecure
Mã:
$ /usr/share/opensearch/bin/opensearch-plugin list
Mã:
name component version
opensearch opensearch-alerting 2.12.0.0
opensearch opensearch-anomaly-detection 2.12.0.0
opensearch opensearch-asynchronous-search 2.12.0.0
opensearch opensearch-cross-cluster-replication 2.12.0.0
opensearch opensearch-custom-codecs 2.12.0.0
opensearch opensearch-flow-framework 2.12.0.0
opensearch opensearch-geospatial 2.12.0.0
opensearch opensearch-index-management 2.12.0.0
opensearch opensearch-job-scheduler 2.12.0.0
opensearch opensearch-knn 2.12.0.0
opensearch opensearch-ml 2.12.0.0
opensearch opensearch-neural-search 2.12.0.0
opensearch opensearch-notifications 2.12.0.0
opensearch opensearch-notifications-core 2.12.0.0
opensearch opensearch-observability 2.12.0.0
opensearch opensearch-performance-analyzer 2.12.0.0
opensearch opensearch-reports-scheduler 2.12.0.0
opensearch opensearch-security 2.12.0.0
opensearch opensearch-security-analytics 2.12.0.0
opensearch opensearch-skills 2.12.0.0
opensearch opensearch-sql 2.12.0.0
Mã:
$ /usr/share/opensearch/bin/opensearch-plugin install
Bước 5 - Cấu hình OpenSearch
Cài đặt mặc định của OpenSearch không phù hợp với môi trường sản xuất. Theo mặc định, OpenSearch không bị ràng buộc với giao diện mạng và không thể truy cập từ bên ngoài. Ngoài ra, tên người dùng và mật khẩu mặc định đang được sử dụng, điều này có thể gây ra các vấn đề về bảo mật nếu sử dụng trực tiếp trong môi trường sản xuất.OpenSearch lưu trữ cấu hình của mình trong tệp
/etc/opensearch/opensearch.yml
. Mở nó để chỉnh sửa.
Mã:
$ sudo nano /etc/opensearch/opensearch.yml
#network.host: 192.168.0.1
và bỏ chú thích bằng cách xóa dấu thăng (#) ở phía trước và thay đổi giá trị của nó như hiển thị. Thao tác này sẽ liên kết OpenSearch với tất cả các giao diện khả dụng. Bạn cũng có thể chọn nhập một IP cụ thể để liên kết nó với một giao diện cụ thể.
Mã:
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0
Mã:
# Unless you have already configured a cluster, you should set
# discovery.type to single-node, or the bootstrap checks will
# fail when you try to start the service.
discovery.type: single-node
# If you previously disabled the Security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false
discovery.type
thành single-node
. Thiết lập plugins.security.disabled
thành false
sẽ kích hoạt plugin bảo mật OpenSearch.Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Chúng ta cũng cần chỉ định kích thước heap JVM (Java Virtual Memory) ban đầu và tối đa. Thiết lập này phụ thuộc vào kích thước RAM của máy chủ của bạn. Ví dụ, chúng tôi đang sử dụng máy chủ có 4GB RAM nên chúng tôi đang đặt kích thước heap thành 3GB.
Tạo và mở
heapsize.options
trong thư mục /etc/opensearch/jvm.options.d
để chỉnh sửa. Nó sẽ ghi đè lên giá trị mặc định được đặt trong tệp /etc/opensearch/jvm.options
.
Mã:
$ sudo nano /etc/opensearch/jvm.options.d/heapsize.options
Mã:
-Xms3g
-Xmx3g
Khởi động lại dịch vụ OpenSearch để triển khai các thay đổi.
Mã:
$ sudo systemctl restart opensearch
Mã:
$ curl -sS "https://localhost:9200/_cat/nodes?h=heap*&v" -u 'admin:' --insecure
Mã:
heap.current heap.percent heap.max 345.5mb 11 3gb
Bước 6 - Cấu hình TLS cho OpenSearch
Tại đây, chúng tôi sẽ tạo chứng chỉ để bảo mật OpenSearch. Chứng chỉ TLS cung cấp bảo mật bằng cách cho phép khách hàng xác nhận danh tính của máy chủ và mã hóa lưu lượng giữa máy khách và máy chủ. Chúng tôi sẽ tạo các chứng chỉ sau- Chứng chỉ CA gốc - Đây là các chứng chỉ chính sẽ ký tất cả các chứng chỉ khác.
- Chứng chỉ quản trị - Các chứng chỉ này được sử dụng để có được các quyền nâng cao khi thực hiện các tác vụ quản trị liên quan đến plugin Bảo mật.
- Chứng chỉ nút - Các chứng chỉ này được sử dụng để giao tiếp giữa một nút và máy khách.
/etc/opensearch
. Bước đầu tiên là xóa các chứng chỉ mặc định được thiết lập trong quá trình cài đặt OpenSearch.Chuyển sang thư mục OpenSearch.
Mã:
$ cd /etc/opensearch
Mã:
$ sudo rm -f *.pem
Mã:
$ sudo nano opensearch.yml
Mã:
######## Start OpenSearch Security Demo Configuration ########
# WARNING: revise all the lines below before you go into production
#plugins.security.ssl.transport.pemcert_filepath: esnode.pem
#plugins.security.ssl.transport.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.transport.pemtrustedcas_filepath: root-ca.pem
#plugins.security.ssl.transport.enforce_hostname_verification: false
#plugins.security.ssl.http.enabled: true
#plugins.security.ssl.http.pemcert_filepath: esnode.pem
#plugins.security.ssl.http.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.http.pemtrustedcas_filepath: root-ca.pem
#plugins.security.allow_unsafe_democertificates: true
#plugins.security.allow_default_init_securityindex: true
#plugins.security.authcz.admin_dn: ['CN=kirk,OU=client,O=client,L=test,C=de']
#plugins.security.audit.type: internal_opensearch
#plugins.security.enable_snapshot_restore_privilege: true
#plugins.security.check_snapshot_restore_write_privileges: true
#plugins.security.restapi.roles_enabled: [all_access, security_rest_api_access]
#plugins.security.system_indices.enabled: true
#plugins.security.system_indices.indices: [.plugins-ml-config, .plugins-ml-connector,
# .plugins-ml-model-group, .plugins-ml-model, .plugins-ml-task, .plugins-ml-conversation-meta,
# .plugins-ml-conversation-interactions, .plugins-ml-memory-meta, .plugins-ml-memory-message,
# .opendistro-alerting-config, .opendistro-alerting-alert*, .opendistro-anomaly-results*,
# .opendistro-anomaly-detector*, .opendistro-anomaly-checkpoints, .opendistro-anomaly-detection-state,
# .opendistro-reports-*, .opensearch-notifications-*, .opensearch-notebooks, .opensearch-observability,
# .ql-datasources, .opendistro-asynchronous-search-response*, .replication-metadata-store,
# .opensearch-knn-models, .geospatial-ip2geo-data*, .plugins-flow-framework-config,
# .plugins-flow-framework-templates, .plugins-flow-framework-state]
#node.max_local_storage_nodes: 3
######## End OpenSearch Security Demo Configuration ########
Tiếp theo, tạo một thư mục để lưu trữ chứng chỉ bên trong thư mục
/etc/opensearch
.
Mã:
$ sudo mkdir /etc/opensearch/certs
Mã:
$ sudo chown $USER:$USER /etc/opensearch/certs -R
Mã:
$ cd /etc/opensearch/certs
Tạo chứng chỉ gốc
Tạo khóa riêng cho gốc chứng chỉ.
Mã:
$ openssl genrsa -out root-ca-key.pem 2048
-subj
để cung cấp thông tin được nhúng trong chứng chỉ. Nếu bạn không sử dụng cờ -subj
, bạn sẽ được yêu cầu cung cấp tất cả thông tin này.
Mã:
$ openssl req -new -x509 -sha256 -key root-ca-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ROOT" -out root-ca.pem -days 730
Các biến trong Tham số
-subj
có nghĩa như sau.C = Tên quốc gia (mã gồm 2 chữ cái), ST = Tên tiểu bang hoặc tỉnh (Tên đầy đủ), L = Tên địa phương (ví dụ: thành phố), O = Tên tổ chức, OU = Tên đơn vị tổ chức (ví dụ: bộ phận), CN = Tên chung (ví dụ: FQDN của máy chủ)
Chứng chỉ gốc của bạn hiện đã hoạt động.
Tạo chứng chỉ quản trị
Tạo khóa riêng cho chứng chỉ quản trị bằng lệnh sau.
Mã:
$ openssl genrsa -out admin-key-temp.pem 2048
Mã:
$ openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem
A
cho Tên chung (CN).
Mã:
$ openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr
Mã:
$ openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730
Certificate request self-signature ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = A
Tạo chứng chỉ nút
Tạo khóa riêng cho chứng chỉ nút.
Mã:
$ openssl genrsa -out node1-key-temp.pem 2048
Mã:
$ openssl pkcs8 -inform PEM -outform PEM -in node1-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out node1-key.pem
CN
bằng tên máy chủ của node của bạn. Chứng chỉ này được liên kết với máy chủ của bạn và nó phải khớp với tên máy chủ hoặc địa chỉ IP của nút.
Mã:
$ openssl req -new -key node1-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=opensearch.example.com" -out node1.csr
Mã:
$ sh -c 'echo subjectAltName=DNS:opensearch.example.com > node1.ext'
Mã:
$ openssl x509 -req -in node1.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node1.pem -days 730 -extfile node1.ext
Certificate request self-signature ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = opensearch.example.com
Chuẩn bị chứng chỉ để cài đặt
Xóa mọi chứng chỉ tạm thời, CSR và tệp mở rộng SAN.
Mã:
$ rm -f *temp.pem *csr *ext
.crt
.
Mã:
$ openssl x509 -outform der -in root-ca.pem -out root-ca.crt
root-ca.crt
tệp vào /usr/local/share/ca-certificates/
thư mục.
Mã:
$ sudo cp root-ca.crt /usr/local/share/ca-certificates/
Mã:
$ sudo update-ca-certificates
1 added
) xác nhận rằng chứng chỉ CA gốc đã được thêm vào hệ thống của bạn.
Mã:
Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
rehash: warning: skipping root-ca.pem,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
opensearch
người dùng.
Mã:
$ sudo chown opensearch:opensearch /etc/opensearch/certs -R
Mã:
$ sudo chmod 0700 /etc/opensearch/certs
Mã:
$ sudo chmod 0600 /etc/opensearch/certs/{admin-key,admin,node1-key,node1,root-ca-key,root-ca}.pem
$ sudo chmod 0600 /etc/opensearch/certs/root-ca.crt
Bước 7 - Cài đặt TLS vào OpenSearch
Bây giờ tất cả các chứng chỉ đã được tạo và thiết lập, đã đến lúc cài đặt và thêm các chứng chỉ vào Cài đặt OpenSearch.Bước đầu tiên là tạo một tập lệnh bash sẽ thêm tất cả các chứng chỉ đã tạo và cài đặt plugin bảo mật TLS vào tệp cấu hình OpenSearch (
/etc/opensearch/opensearch.yml
).Tạo một tệp có tên
add-opensearch-tls.sh
và mở tệp đó để chỉnh sửa.
Mã:
$ cd ~
$ nano add-opensearch-tls.sh
Mã:
#! /bin/bash
# Before running this script, make sure to replace the CN in the
# node's distinguished name with a real DNS A record.
echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.enabled: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.allow_default_init_securityindex: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.authcz.admin_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo " - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.nodes_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo " - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.audit.type: internal_opensearch" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.enable_snapshot_restore_privilege: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.check_snapshot_restore_write_privileges: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.restapi.roles_enabled: [\"all_access\", \"security_rest_api_access\"]" | sudo tee -a /etc/opensearch/opensearch.yml
Tạo tệp có thể thực thi.
Mã:
$ chmod +x add-opensearch-tls.sh
Mã:
$ ./add-opensearch-tls.sh
Mã:
plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn: - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn: - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]
/etc/opensearch/opensearch.yml
để kiểm tra xem cài đặt của bạn đã được đã áp dụng.
Mã:
$ sudo nano /etc/opensearch/opensearch.yml
Mã:
# If you previously disabled the Security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false
....
plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn: - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn: - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]
Bước 8 - Tạo người dùng OpenSearch
Trong bước này, chúng tôi sẽ xóa tất cả người dùng demo ngoại trừ người dùngadmin
và thay thế người dùng mặc định admin
mật khẩu bằng cách sử dụng một tập lệnh.Chuyển sang thư mục công cụ plugin bảo mật OpenSearch.
Mã:
$ cd /usr/share/opensearch/plugins/opensearch-security/tools
hash.sh
tập lệnh để tạo mật khẩu mới.
Mã:
$ ./hash
Mã:
**************************************************************************
** This tool will be deprecated in the next major release of OpenSearch **
** https://github.com/opensearch-project/security/issues/1755 **
**************************************************************************
WARNING: nor OPENSEARCH_JAVA_HOME nor JAVA_HOME is set, will use
./hash.sh: line 35: java: command not found
OPENSEARCH_JAVA_HOME
với vị trí của JDK.
Mã:
$ OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh
Mã:
**************************************************************************
** This tool will be deprecated in the next major release of OpenSearch **
** https://github.com/opensearch-project/security/issues/1755 **
**************************************************************************
[Password:]
$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2
Mở tệp cấu hình Người dùng OpenSearch
internal_users.yml
trong thư mục /etc/opensearch/opensearch-security/
cho chỉnh sửa.
Mã:
$ sudo nano /etc/opensearch/opensearch-security/internal_users.yml
Mã:
---
# This is the internal user database
# The hash value is a bcrypt hash and can be generated with plugin/tools/hash.sh
_meta: type: "internalusers" config_version: 2
# Define your internal users here
## Demo users
#admin:
# hash: "$2y$12$Twy84uxOX0SQ1QMQ68og8O/i1MvqWItt/phZX3DiJMjpBoT9u9KX6"
# reserved: true
# backend_roles:
# - "admin"
# description: "Demo admin user"
#anomalyadmin:
Mã:
---
# This is the internal user database
# The hash value is a bcrypt hash and can be generated with plugin/tools/hash.sh
_meta: type: "internalusers" config_version: 2
# Define your internal users here
admin: hash: "$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2" reserved: true backend_roles: - "admin" description: "Admin user"
## Demo users
#admin:
Bây giờ chứng chỉ TLS đã được cài đặt và người dùng demo đã xóa hoặc chỉ định mật khẩu mới, đã đến lúc áp dụng các thay đổi cấu hình. Để áp dụng các thay đổi, chúng tôi sẽ gọi tập lệnh
securityadmin.sh
bên trong thư mục /usr/share/opensearch/plugins/opensearch-security/tools
. Tập lệnh yêu cầu dịch vụ OpenSearch chạy.Khởi động lại dịch vụ OpenSearch.
Mã:
$ sudo systemctl restart opensearch
/usr/share/opensearch/plugins/opensearch-security/tools
thư mục.
Mã:
$ cd /usr/share/opensearch/plugins/opensearch-security/tools
Mã:
$ sudo OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h opensearch.nspeaks.com -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv
securityadmin.sh
.- Tùy chọn
-cd
chỉ định vị trí lưu trữ các tệp cấu hình plugin bảo mật. - Tùy chọn
-icl
Tùy chọn (--ignore-clustername
) yêu cầu plugin bảo mật tải cấu hình lên bất kể tên cụm. Bạn cũng có thể chỉ định tên cụm thay vì sử dụng tùy chọn-cn
(--clustername
). - Vì chứng chỉ được tự ký nên chúng tôi sử dụng
-nhnv
(--disable-host-name-verification
) tùy chọn. -
--cacert
,--cert
và--key
các tùy chọn xác định vị trí của chứng chỉ gốc, chứng chỉ quản trị và khóa riêng cho chứng chỉ quản trị. Nếu khóa riêng có mật khẩu, bạn có thể định nghĩa mật khẩu bằng tùy chọn-keypass
.
Bạn sẽ nhận được kết quả tương tự như hiển thị bên dưới với lệnh.
Mã:
**************************************************************************
** This tool will be deprecated in the next major release of OpenSearch **
** https://github.com/opensearch-project/security/issues/1755 **
**************************************************************************
Security Admin v7
Will connect to opensearch:9200 ... done
Connected as "CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA"
OpenSearch Version: 2.12.0
Contacting opensearch cluster 'opensearch' and wait for YELLOW clusterstate ...
Clustername: opensearch
Clusterstate: GREEN
Number of nodes: 1
Number of data nodes: 1
.opendistro_security index already exists, so we do not need to create one.
Populate config from /etc/opensearch/opensearch-security/
Will update '/config' with /etc/opensearch/opensearch-security/config.yml SUCC: Configuration for 'config' created or updated
Will update '/roles' with /etc/opensearch/opensearch-security/roles.yml SUCC: Configuration for 'roles' created or updated
Will update '/rolesmapping' with /etc/opensearch/opensearch-security/roles_mapping.yml SUCC: Configuration for 'rolesmapping' created or updated
Will update '/internalusers' with /etc/opensearch/opensearch-security/internal_users.yml SUCC: Configuration for 'internalusers' created or updated
Will update '/actiongroups' with /etc/opensearch/opensearch-security/action_groups.yml SUCC: Configuration for 'actiongroups' created or updated
Will update '/tenants' with /etc/opensearch/opensearch-security/tenants.yml SUCC: Configuration for 'tenants' created or updated
Will update '/nodesdn' with /etc/opensearch/opensearch-security/nodes_dn.yml SUCC: Configuration for 'nodesdn' created or updated
Will update '/whitelist' with /etc/opensearch/opensearch-security/whitelist.yml SUCC: Configuration for 'whitelist' created or updated
Will update '/audit' with /etc/opensearch/opensearch-security/audit.yml SUCC: Configuration for 'audit' created or updated
Will update '/allowlist' with /etc/opensearch/opensearch-security/allowlist.yml SUCC: Configuration for 'allowlist' created or updated
SUCC: Expected 10 config types for node {"updated_config_types":["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"],"updated_config_size":10,"message":null} is 10 (["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"]) due to: null
Done with success
Trong lần kiểm tra trước, chúng tôi đã chuyển hướng yêu cầu đến
localhost
. Bây giờ chứng chỉ TLS đã được thiết lập và chứng chỉ mới tham chiếu đến bản ghi DNS thực tế của máy chủ, các yêu cầu tới localhost
sẽ không vượt qua được kiểm tra CN và chứng chỉ sẽ được coi là không hợp lệ. Do đó, hãy thêm bản ghi DNS thực tế của bạn vào lệnh bên dưới để xác minh.
Mã:
$ curl https://your.host.address:9200 -u admin:yournewpassword -k
Mã:
{ "name" : "opensearch", "cluster_name" : "opensearch", "cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g", "version" : { "distribution" : "opensearch", "number" : "2.12.0", "build_type" : "deb", "build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221", "build_date" : "2024-02-20T02:18:31.541484890Z", "build_snapshot" : false, "lucene_version" : "9.9.2", "minimum_wire_compatibility_version" : "7.10.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "The OpenSearch Project: https://opensearch.org/"
}
Bước 9 - Cài đặt Bảng điều khiển OpenSearch
Vì chúng ta đã cài đặt OpenSearch, nên chúng ta có thể bỏ qua bước nhập khóa GPG OpenSearch.Để cài đặt bảng điều khiển OpenSearch, hãy chạy lệnh sau để tạo kho lưu trữ APT cho nó.
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-dashboards-2.x.list
Mã:
$ sudo apt update
Mã:
$ sudo apt list -a opensearch-dashboards
Mã:
Listing... Done
opensearch-dashboards/stable 2.12.0 amd64
opensearch-dashboards/stable 2.11.1 amd64
opensearch-dashboards/stable 2.11.0 amd64
opensearch-dashboards/stable 2.10.0 amd64
opensearch-dashboards/stable 2.9.0 amd64
opensearch-dashboards/stable 2.8.0 amd64
opensearch-dashboards/stable 2.7.0 amd64
opensearch-dashboards/stable 2.6.0 amd64
opensearch-dashboards/stable 2.5.0 amd64
Mã:
$ sudo apt install opensearch-dashboards
Mã:
$ sudo apt install opensearch-dashboards=2.12.0
Tải lại dịch vụ daemon.
Mã:
$ sudo systemctl daemon-reload
Mã:
$ sudo systemctl enable opensearch-dashboards
Mã:
$ sudo systemctl start opensearch-dashboards
Mã:
$ sudo systemctl status opensearch-dashboards
Mã:
? opensearch-dashboards.service - "OpenSearch Dashboards" Loaded: loaded (/lib/systemd/system/opensearch-dashboards.service; enabled; preset: enabled) Active: active (running) since Sat 2024-03-02 16:01:25 UTC; 4s ago Main PID: 7098 (node) Tasks: 11 (limit: 9484) Memory: 175.4M CPU: 5.389s CGroup: /system.slice/opensearch-dashboards.service ??7098 /usr/share/opensearch-dashboards/node/bin/node /usr/share/opensearch-dashboards/src/cli/dist
Mar 02 16:01:25 opensearch systemd[1]: Started opensearch-dashboards.service - "OpenSearch Dashboards".
Bước 10 - Cấu hình Bảng điều khiển OpenSearch
Bảng điều khiển OpenSearch lưu trữ cấu hình của nó trong tệp/etc/opensearch-dashboards/opensearch_dashboards.yml
. Mở nó để chỉnh sửa.
Mã:
$ sudo nano /etc/opensearch-dashboards/opensearch_dashboards.yml
# server.host: "localhost"
và bỏ chú thích bằng cách xóa dấu thăng ở phía trước và thay đổi giá trị của nó thành hiển thị.
Mã:
# Specifies the address to which the OpenSearch Dashboards server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: 0.0.0.0
server.host
thành 0.0.0.0
liên kết Bảng điều khiển OpenSearch với bất kỳ IP bên ngoài nào khiến nó có thể truy cập được trên World Wide Web. Nếu bạn muốn phục vụ Dashboards qua SSL bằng proxy ngược, hãy giữ nguyên giá trị này.Cuộn xuống để tìm phần sau.
Mã:
opensearch.hosts: [https://localhost:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver
opensearch.requestHeadersWhitelist: [authorization, securitytenant]
Mã:
opensearch.hosts: [https://opensearch:9200]
opensearch.ssl.verificationMode: none
opensearch.username: admin
opensearch.password:
opensearch.requestHeadersWhitelist: [authorization, securitytenant]
Khởi động lại dịch vụ OpenDashboards.
Mã:
$ sudo systemctl restart opensearch-dashboards
Mã:
$ sudo ufw allow 5601
http://:5601
hoặc http://opensearch.example.com:5601
để khởi chạy trang web Bảng điều khiển OpenSearch.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22491%22%20height=%22418%22%3E%3C/svg%3E
Nếu bạn hài lòng khi truy cập Bảng điều khiển OpenSearch qua HTTP và có số cổng trong URL, bạn có thể dừng ở đây. Tuy nhiên, tốt hơn là phục vụ Bảng điều khiển qua SSL. Đối với điều này, chúng tôi sẽ cài đặt Nginx làm proxy ngược và phục vụ SSL qua đó.
Bước 11 - Cài đặt Nginx
Debian 12 đi kèm với phiên bản Nginx cũ hơn. Bạn cần tải xuống kho lưu trữ Nginx chính thức để cài đặt phiên bản mới nhất.Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
sudo
.
Mã:
$ sudo nginx -v
nginx version: nginx/1.25.4
Mã:
$ sudo systemctl start nginx
Mã:
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled) Active: active (running) since Sat 2024-03-02 12:53:57 UTC; 4s ago Docs: https://nginx.org/en/docs/ Process: 3976 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 3977 (nginx) Tasks: 3 (limit: 9484) Memory: 2.7M CPU: 9ms CGroup: /system.slice/nginx.service ??3977 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf" ??3978 "nginx: worker process" ??3979 "nginx: worker process"
Mar 02 12:53:57 opensearch systemd[1]: Starting nginx.service - nginx - high performance web server...
Mar 02 12:53:57 opensearch systemd[1]: Started nginx.service - nginx - high performance web server.
Bước 12 - Cài đặt SSL
Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Debian hoặc tải phiên bản mới nhất bằng công cụ Snapd. Chúng tôi sẽ sử dụng phiên bản Snapd.Debian 12 không đi kèm Snapd đã cài đặt. Cài đặt gói Snapd.
Mã:
$ sudo apt install snapd
Mã:
$ sudo snap install core && sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
/usr/bin
thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ certbot --version
certbot 2.9.0
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d craftcms.example.com
/etc/letsencrypt/live/craftcms.example.com
trên máy chủ của bạn.Tạo nhóm Diffie-Hellman chứng chỉ.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Mã:
$ sudo systemctl list-timers
snap.certbot.renew.service
là một trong những dịch vụ được lên lịch chạy.
Mã:
NEXT LEFT LAST PASSED UNIT ACTIVATES ---------------------------------------------------------------------------------------------------------------------------------------
Sat 2024-03-02 16:25:00 UTC 3h 27min left - - snap.certbot.renew.timer snap.certbot.renew.service
Sat 2024-03-02 23:00:51 UTC 10h left Sat 2024-03-02 06:29:02 UTC 6h ago apt-daily.timer apt-daily.service
Sun 2024-03-03 00:00:00 UTC 11h left - - dpkg-db-backup.timer dpkg-db-backup.service
.....
Mã:
$ sudo certbot renew --dry-run
Bước 13 - Cấu hình Nginx
Mở tệp/etc/nginx/nginx.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
.
Mã:
server_names_hash_bucket_size 64;
Tạo và mở tệp
/etc/nginx/conf.d/opensearch.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/opensearch.conf
opensearch.example.com
bằng tên miền của bạn.
Mã:
server { listen 443 ssl; listen [::]:443 ssl; http2 on; http3 on; quic_retry on; server_name opensearch.example.com; access_log /var/log/nginx/opensearch.access.log; error_log /var/log/nginx/opensearch.error.log; ssl_certificate /etc/letsencrypt/live/opensearch.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/opensearch.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/opensearch.example.com/chain.pem; ssl_session_timeout 5m; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_early_data on; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; location / { proxy_pass http://localhost:5601; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
}
# enforce HTTPS
server { listen 80; listen [::]:80; server_name opensearch.example.com; return 301 https://$host$request_uri;
}
Xác minh Nginx của bạn cấu hình.
Mã:
$ sudo nginx -t
Mã:
$ sudo systemctl restart nginx
https://opensearch.example.com
trong trình duyệt của bạn để khởi chạy Bảng điều khiển OpenSearch.Bước 14 - Truy cập và sử dụng Bảng điều khiển OpenSearch
Nếu bạn sử dụng Nginx, hãy truy cập Bảng điều khiển thông qua URLhttps://opensearch.example.com
hoặc sử dụng http://opensearch.example.com:5601
và bạn sẽ nhận được trang đăng nhập.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22511%22%20height=%22444%22%3E%3C/svg%3E
Nhập
admin
và mật khẩu quản trị tùy chỉnh mà bạn đã cấu hình cho OpenSearch ở bước 4 và nhấp vào nút Đăng nhập để tiếp tục.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22585%22%20height=%22750%22%3E%3C/svg%3E
Nhấp vào nút Thêm dữ liệu để bắt đầu thêm dữ liệu trực tiếp hoặc nhấp vào liên kết Khám phá theo cách của riêng tôi nếu bạn muốn duyệt trước. Chúng tôi sẽ duyệt trước và nó sẽ đưa bạn đến một cửa sổ bật lên nói về chế độ tối của Bảng điều khiển OpenSearch.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22473%22%3E%3C/svg%3E
Nhấp vào nút Bỏ qua để tiếp tục. Tiếp theo, bạn sẽ được yêu cầu chọn một người thuê.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22530%22%3E%3C/svg%3E
Người thuê trong Bảng điều khiển OpenSearch là không gian để lưu các mẫu chỉ mục, hình ảnh trực quan, bảng điều khiển và các đối tượng Bảng điều khiển OpenSearch khác. Mỗi người dùng có thể tạo nhiều người thuê cho nhiều mục đích sử dụng. Người thuê hữu ích để chia sẻ công việc của bạn một cách an toàn với những người dùng Bảng điều khiển OpenSearch khác. OpenSearch cung cấp cho bạn tùy chọn lựa chọn giữa ba tùy chọn.
- Toàn cầu - Đối tượng thuê này được chia sẻ giữa mọi người dùng Bảng điều khiển OpenSearch.
- Riêng tư - Đối tượng thuê này dành riêng cho từng người dùng và không thể chia sẻ.
- Tùy chỉnh - Quản trị viên có thể tạo đối tượng thuê tùy chỉnh và chỉ định chúng cho các vai trò cụ thể. Sau khi tạo, bạn có thể sử dụng các đối tượng thuê này để cung cấp không gian cho một nhóm người dùng cụ thể.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22457%22%3E%3C/svg%3E
Tiếp theo, chúng tôi sẽ xác minh kết nối giữa OpenSearch và Bảng điều khiển OpenSearch.
Nhấp vào nút Công cụ dành cho nhà phát triển ở góc trên bên phải và bạn sẽ thấy một cửa sổ bật lên nhỏ về giao diện người dùng bảng điều khiển dành cho Bảng điều khiển OpenSearch.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22548%22%20height=%22750%22%3E%3C/svg%3E
Nhấp vào nút Bỏ qua, nhập truy vấn GET / vào bảng điều khiển bên trái và nhấp vào nút phát nhỏ ở giữa. Bạn sẽ thấy đầu ra sau ở bên phải.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22360%22%3E%3C/svg%3E
Điều này xác nhận rằng OpenSearch Dashboards đang nhận dữ liệu từ OpenSearch và cả hai đều hoạt động tốt. Bạn có thể bắt đầu thêm dữ liệu từ đây.