Cách cài đặt và bảo mật Redis trên CentOS 7

theanh

Administrator
Nhân viên
Redis là kho lưu trữ cấu trúc dữ liệu trong bộ nhớ mã nguồn mở, được sử dụng làm cơ sở dữ liệu, bộ đệm và môi giới tin nhắn. Đây là cơ sở dữ liệu khóa-giá trị trong bộ nhớ phân tán với độ bền tùy chọn. Hỗ trợ các cấu trúc dữ liệu chính như chuỗi, hàm băm, danh sách, tập hợp, bitmap, tập hợp được sắp xếp, HyperlogLog, luồng và chỉ mục không gian địa lý với các truy vấn bán kính.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình Redis Server trên CentOS 7. Chúng tôi sẽ cài đặt Redis Server từ kho lưu trữ Remi, sau đó bảo mật cài đặt.

Điều kiện tiên quyết

Đối với hướng dẫn này, chúng tôi sẽ cài đặt Redis trên CentOS 7 Server với 1GB RAM và 2CPU. Đây chỉ là để thử nghiệm và bạn sẽ cần nhiều hơn thế này cho sản xuất của mình.

Những gì chúng ta sẽ làm:
  • Cài đặt và kích hoạt Remi Repository
  • Cài đặt Redis Server
  • Cấu hình Redis Server
  • Bảo mật Redis Server
  • Kiểm tra

Bước 1 - Cài đặt và kích hoạt Remi Repository​

Đầu tiên, chúng ta sẽ thêm Remi repository vào hệ thống CentOS 7. Kho lưu trữ Remi cung cấp phiên bản mới nhất của gói Redis cho cài đặt của chúng tôi.

Trước khi thêm kho lưu trữ Remi, hãy cài đặt kho lưu trữ EPEL và các gói tiện ích yum.
Mã:
sudo yum install epel-release yum-utils
Bây giờ hãy thêm kho lưu trữ Remi cho CentOS 7 bằng lệnh yum bên dưới.
Mã:
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Sau đó, hãy bật kho lưu trữ 'remi' bằng công cụ yum-config-manager như bên dưới.
Mã:
sudo yum-config-manager --enable remi
Kho lưu trữ Remi đã được thêm và bật trên hệ thống CentOS 7, hãy kiểm tra bằng lệnh yum bên dưới.
Mã:
yum repolist enabled
Và bạn sẽ nhận được kết quả như sau bên dưới.


Bước 2 - Cài đặt Redis trên CentOS 7​

Sau khi cài đặt kho lưu trữ Remi, chúng tôi sẽ cài đặt gói Redis mới nhất. Bạn có thể kiểm tra phiên bản Redis khả dụng bằng lệnh yum bên dưới.
Mã:
yum search redis
yum info redis
Bây giờ bạn sẽ nhận được Redis 5.0.5 có sẵn trên kho lưu trữ Remi.



Cài đặt Redis bằng lệnh bên dưới.
Mã:
sudo yum -y install redis
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ redis và thêm vào hệ thống khởi động.
Mã:
systemctl start redis
systemctl enable redis
Dịch vụ Redis đang hoạt động với cấu hình mặc định, hãy kiểm tra trạng thái dịch vụ và cổng mà máy chủ sử dụng.
Mã:
systemctl status redis
netstat -plntu
Và bạn sẽ nhận được kết quả như bên dưới.



Máy chủ Redis đang hoạt động trên hệ thống CentOS 7, đang chạy địa chỉ IP localhost '127.0.0.1' với cổng TCP mặc định '6379'.

Bước 3 - Cấu hình Redis​

Trong bước này, chúng ta sẽ cấu hình cài đặt Redis Server trên máy chủ CentOS 7.

Chỉnh sửa tệp cấu hình Redis '/etc/redis.conf' bằng trình soạn thảo vim.
Mã:
vim /etc/redis.conf
Bây giờ hãy thay đổi địa chỉ 'bind' bằng địa chỉ IP nội bộ của bạn. Nếu bạn đang chạy dưới dạng cụm, bạn có thể thay đổi bằng địa chỉ IP riêng. Nên chạy Redis Server trên địa chỉ IP nội bộ riêng.
Mã:
bind 127.0.0.1
Bây giờ hãy thay đổi giá trị 'daemonize' thành 'yes', vì chúng ta sẽ chạy dịch vụ Redis dưới dạng daemon.
Mã:
daemonize yes
Vì chúng ta đang sử dụng máy chủ CentOS 7 và systemd, nên chúng ta cần thay đổi cấu hình dòng 'supervised' thành 'systemd'.
Mã:
supervised systemd
Lưu và đóng.

Bây giờ hãy khởi động lại dịch vụ redis.
Mã:
systemctl restart redis
Cấu hình cơ bản của Redis Server đã hoàn tất. Bây giờ hãy kết nối với Redis Server bằng lệnh redis-cli như bên dưới.
Mã:
redis-cli
Chạy lệnh ping bên dưới.
Mã:
ping
ping "Hello Redis"
Nếu cài đặt của bạn đúng, bạn sẽ nhận được phản hồi 'PONG' và thông báo bạn viết sau lệnh.


Bước 4 - Bảo mật cài đặt Redis​

Trong bước này, chúng ta sẽ bảo mật cài đặt Redis của mình. Có 3 điều bạn phải biết về việc bảo mật Redis Server.

1. Bảo mật mạng​

Bảo mật mạng cho máy chủ redis liên quan đến cấu hình 'bind' trên cấu hình redis 'redis.conf'. Bạn nên sử dụng mạng riêng nội bộ để cài đặt Redis và không nên sử dụng mạng công cộng.

Chỉnh sửa tệp cấu hình Redis '/etc/redis.conf' bằng trình soạn thảo vim.
Mã:
vim /etc/redis.conf
Trong phần 'bind', hãy thay đổi địa chỉ IP bằng địa chỉ IP mạng nội bộ của bạn.
Mã:
bind INTERNAL-IP-ADDRESS
Lưu và đóng.

Và bây giờ dịch vụ redis sẽ chạy dưới 'INTERNAL-IP-ADDRESS'.

2. Xác thực mật khẩu​

Xác thực mật khẩu cho Redis sẽ cung cấp cho bạn quyền kiểm soát truy cập vào máy chủ Redis của mình. Đây là một lớp bảo mật nhỏ sẽ tăng cường bảo mật máy chủ Redis của bạn và nó vẫn chưa được bật theo mặc định khi cài đặt.

Để bật Xác thực mật khẩu cho máy chủ Rediser, bạn sẽ cần bỏ chú thích phần 'requirepass' trên tệp 'redis.conf' và nhập mật khẩu mạnh của bạn sau đó.
Mã:
requirepass hakase-labs321@#$
Thay đổi 'hakase-labs321@#$' bằng mật khẩu mạnh của bạn. Và bây giờ xác thực mật khẩu cho Redis đã được bật.

3. Vô hiệu hóa lệnh Redis nguy hiểm​

Redis cung cấp một tính năng để vô hiệu hóa một số lệnh Redis cụ thể. Tính năng này có thể được sử dụng để đổi tên hoặc vô hiệu hóa một số lệnh nguy hiểm như 'FLUSHALL' để xóa toàn bộ dữ liệu, lệnh 'CONFIG' để thiết lập tham số cấu hình thông qua Redis CLI, v.v.

Để thay đổi hoặc vô hiệu hóa lệnh Redis, bạn có thể sử dụng tùy chọn 'rename-command'. Chỉnh sửa tệp cấu hình redis 'redis.conf' và thêm một số cấu hình bên dưới.
Mã:
# rename-command COMMAND "CUSTOM"
rename-command CONFIG "REDISCONFIG"
rename-command FLUSHALL "DELITALL"
Lưu và đóng.

Sau khi hoàn tất, hãy khởi động lại dịch vụ redis bằng lệnh systemctl bên dưới.
Mã:
systemctl restart redis
Và bảo mật Redis cơ bản để bảo mật cài đặt Redis đã được áp dụng cho máy chủ của chúng tôi.



Cân nhắc thêm, bạn cũng có thể cần hỗ trợ 'Mã hóa dữ liệu' cho Redis, cũng như mã hóa bảo mật cần thiết ở phía ứng dụng.

Bước 5 - Kiểm tra​

Trong bước này, chúng ta sẽ kiểm tra triển khai Redis Server của mình bằng dòng lệnh 'redis-cli'.

- Kiểm tra máy chủ và xác thực​

Kết nối với Redis Server bằng lệnh redis-cli bằng cách chỉ định tên máy chủ/địa chỉ IP và cổng của redis server.
Mã:
redis-cli -h 10.5.5.15 -p 6379
Thay đổi '10.5.5.15' bằng địa chỉ IP của bạn.

Sau khi bạn đã kết nối với máy chủ, hãy thử lệnh ping.
Mã:
ping
ping "Hello Redis"
Bây giờ bạn sẽ nhận được kết quả như bên dưới.



Bạn đang nhận được lỗi ann vì bạn cần xác thực trước khi gọi bất kỳ lệnh nào trên shell Redis CLI.

Chạy lệnh sau để xác thực với Redis Server.
Mã:
AUTH hakase-labs321@#$
Sau khi bạn đã được xác thực, bạn có thể thử lệnh ping và bạn sẽ nhận được phản hồi từ máy chủ Redis.
Mã:
ping
ping "Hello Redis"
Dưới đây là kết quả sau khi bạn đã được xác thực với Máy chủ Redis.


- Kiểm tra Lệnh bị Vô hiệu hóa/Đổi tên​

Chạy tất cả các lệnh mà chúng tôi đã đổi tên trên shell và bạn sẽ nhận được lỗi lệnh.
Mã:
CONFIG
FLUSHALL
Dưới đây là kết quả lỗi của các lệnh đó.



Tiếp theo, chạy các lệnh 'CUSTOM' cho từng lệnh.

Tạo Khóa mới bằng lệnh 'SET' như bên dưới.
Mã:
SET Tên "Hakase Labs"
SET Blog "Howtoforge.com"

Khóa *
Bây giờ hãy xóa tất cả các khóa và dữ liệu bằng lệnh 'FLUSHALL' được đổi tên thành 'DELITALL'.
Mã:
DELITALL
Đối với lệnh 'CONFIG', bạn có thể thử truy xuất hoặc thiết lập giá trị mới của cấu hình Redis Server. Lệnh 'CONFIG' được đổi tên thành 'REDISCONFIG'.
Mã:
REDISCONFIG get bind
REDISCONFIG get requirepass
Và bên dưới là kết quả của lệnh tùy chỉnh mới được đổi tên này.



Quá trình cài đặt cơ bản của Redis Server trên CentOS 7 Server đã hoàn tất và bảo mật cơ bản cho Redis Server đã được áp dụng.

Tham khảo​

 
Back
Bên trên