NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
12/06/2023
Lượt xem

Hướng dẫn cách cài đặt và bảo mật Memcached trên CentOS 7

12/06/2023
15 phút đọc
Lượt xem

Đánh giá

5/5 - (53 bình chọn)

Các hệ thống cache đối tượng bộ nhớ (memory object caching system) như Memcached có thể tối ưu hóa cơ sở dữ liệu (database) backend bằng cách lưu trữ tạm thời thông tin trong bộ nhớ. Nhờ đó giảm được lượng request trực tiếp tới database. Memcached có thể dẫn đến nhiều vấn đề bảo mật nghiêm trọng nếu được cấu hình không đúng cách, vì thế việc bảo mật bảo mật các servers Memcached rất quan trọng. Trong hướng dẫn này, Vietnix sẽ hướng dẫn bạn cách bảo vệ server Memcached trên CentOS 7.

Bước 1: Cài đặt Memcached từ Official Repository

Trong bài viết này, Vietnix sẽ đề cập đến cách bảo vệ máy chủ Memcached bằng cách bind các thiết lập vào interface mạng cục bộ/riêng tư cũng như tạo user được ủy quyền vào Memcached.

Trước tiên bạn cần có sẵn một server CentOS 7, user non-root có quyền sudo và một tường lửa cơ bản để làm theo hướng dẫn dưới đây

Nếu chưa cài đặt Memcached trên server, bạn có thể cài đặt từ repo chính thức của CentOS. Trước tiên, cập nhật index package bằng lệnh sau:

sudo yum update

Tiếp theo, cài đặt package chính thức:

sudo yum install memcached

Bạn cũng có thể cài đặt libmemcached – thư viện cung cấp một số tool để làm việc với server Memcached:

sudo yum install libmemcached

Memcached nên được cài đặt như một dịch vụ trên server cùng với các tool cho phép bạn kiểm tra khả năng kết nối. Tiếp theo bạn tiến hành thiết lập tùy chỉnh phần bảo mật.

Bước 2: Bảo mật cài đặt cấu hình Memcached

Để đảm bảo rằng phiên bản Memcached đang nghe trên interface local 127.0.0.1, bạn cần sửa đổi biến OPTIONS trong file cấu hình ở /etc/sysconfig/memcached. Bên cạnh đó hãy disable cả UDP listener, bảo vệ server khỏi các cuộc tấn công từ chối dịch vụ (Denial of Service – DoS).

Mở /etc/sysconfig/memcached bằng vi:

sudo vi /etc/sysconfig/memcached

Xác định vị trí biến OPTIONS:

. . . OPTIONS=""

Bind với interface mạng cục bộ của sẽ hạn chế lưu lượng (traffic) cho các client trên cùng một máy, bạn có thể giới hạn bằng cách thêm -l 127.0.0.1 vào biến OPTIONS. Mặc dù thiết lập này có thể rất hạn chế và khó tương thích đối với vài môi trường nhưng đây vẫn là một biện pháp bảo mật đơn giản, hiệu quả.

So với TCP thì các cuộc tấn công DoS vào UDP thường có hiệu quả hơn nhiều, nên bạn cũng có thể vô hiệu hóa trình UDP listener bằng cách thêm tham số -U 0 vào biến OPTIONS. Bây giờ file đầy đủ sẽ có dạng như sau:

 PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 127.0.0.1 -U 0" 

Khi hoàn thành bạn hãy lưu lại thay đổi và đóng file (trong trình sửa đổi vi: nhấn Esc thoát chế độ sửa đổi, nhấn :wq để lưu và tự đóng file)

Restart lại dịch vụ Memcached để áp dụng các thay đổi đã thực hiện:

sudo systemctl restart memcached

Xác thực Memcached đã được bound (gán giá trị ràng buộc) với interface cục bộ và chỉ nghe các kết nối TCP bằng cách nhập:

sudo netstat -plunt

Bạn sẽ thấy output sau:

Output Active Internet connections (only servers) Proto     Recv-Q     Send-Q      Local Address           Foreign Address         State        PID/Program name . . . tcp             0                 0          127.0.0.1:11211         0.0.0.0:*                   LISTEN      2383/memcached . . .

Như vậy là memcached đã được liên kết với địa chỉ 127.0.0.1 chỉ sử dụng TCP.

Để tăng cường hiệu suất và bảo mật tốt nhất cho Memcached trên CentOS 7, bạn nên sử dụng VPS để thực hiện cài đặt.

Vietnix hiện đang cung cấp nhiều gói VPS linh hoạt và đa dạng, bạn có thể lựa chọn giữa VPS Giá Rẻ, Cloud Server, VPS Cao Cấp hay VPS NVMe sao cho phù hợp với nhu cầu và ngân sách của bạn. Với Vietnix, bạn sẽ được trải nghiệm dịch vụ VPS với hiệu suất ổn định, tốc độ nhanh, bảo mật và an toàn.

Gói VPS Giá Rẻ của Vietnix là một lựa chọn tuyệt vời cho những dự án nhỏ với mức giá chỉ từ 89.000 VND/Tháng. Trong khi VPS Phổ Thông và VPS Cao Cấp cung cấp tài nguyên mạnh mẽ cho những ứng dụng trung bình đến lớn. Nếu bạn đang tìm kiếm sự tối ưu hóa về hiệu suất, VPS NVMe sẽ đáp ứng nhu cầu của bạn với tốc độ đọc/ghi siêu nhanh.

Với Vietnix, bạn không chỉ được cung cấp một VPS mạnh mẽ, mà còn nhận được sự hỗ trợ kỹ thuật 24/7 từ đội ngũ chuyên nghiệp. Đảm bảo môi trường cài đặt Memcached trên CentOS 7 của bạn được an toàn và ổn định. Liên hệ ngay với Vietnix để được tư vấn chi tiết.

Bước 3: Thêm user được ủy quyền

Để thêm user đã được xác thực ủy quyền vào dịch vụ Memcached, bạn có thể sử dụng Simple Authentication and Security Layer (SASL) – một framework tách các quy trình xác thực khỏi các giao thức ứng dụng. Ở bước này, ta sẽ kích hoạt SASL trong file cấu hình Memcached và thêm user bằng thông tin đăng nhập đã xác thực.

Cấu hình hỗ trợ SASL

Trước tiên, kiểm tra khả năng kết nối của phiên bản Memcached bằng lệnh memstat. Việc này sẽ giúp bạn thiết lập SASL và enable chế độ xác thực user sau khi thay đổi các file cấu hình.

Để kiểm tra xem Memcached đã hoạt động chưa, nhập lệnh sau:

memstat --servers="127.0.0.1"

Bạn sẽ thấy output như sau:

Output Server: 127.0.0.1 (11211)      pid: 3831      uptime: 9      time: 1520028517      version: 1.4.25      . . .

Bây giờ hãy kích hoạt SASL. Đầu tiên, thêm tham số -S vào biến OPTIONS trong file /etc/sysconfig/memcached để kích hoạt SASL. Mở lại file:

sudo vi /etc/sysconfig/memcached

Thêm cả hai tham số -S-vv vào biến OPTIONS. Option -vv sẽ cung cấp output chi tiết cho /var/log/memcached giúp quá trình debug thuận tiện hơn. Thêm các option này vào biến OPTIONS như sau:

. . .  OPTIONS="-l 127.0.0.1 -U 0 -S -vv"

Sau đó lưu và đóng file.

Restart lại dịch vụ Memcached:

sudo systemctl restart memcached

Tiếp theo, xem nhật ký để đảm bảo rằng mục hỗ trợ SASL đã được bật:

sudo journalctl -u memcached

Bạn sẽ thấy trong output có thông báo như sau, dòng này cho biết hỗ trợ SASL đã được khởi tạo:

Output . . . Mar 05 18:16:11 memcached-server memcached[3846]: Initialized SASL. . . .

Bạn có thể kiểm tra lại kết nối, nhưng vì SASL đã được khởi tạo nên lệnh này sẽ thất bại nếu không có xác thực:

memstat --servers="127.0.0.1"

Lệnh này sẽ không tạo ra output. Bạn có thể sử dụng lệnh sau để kiểm tra trạng thái:

echo $?

$? sẽ luôn trả về code exit của lệnh cuối cùng vừa thoát. Thông thường, bất cứ trạng thái nào khác 0 sẽ hiển thị lỗi quá trình. Trong trường hợp này, bạn sẽ thấy trạng thái exit là 1, trạng thái này cho biết rằng lệnh memstat không thành công.

Thêm user đã xác thực

Bây giờ bạn có thể tải hai package để làm việc với Library Cyrus SASL và các cơ chế xác thực, trong đó bao gồm các plugin hỗ trợ scheme xác thực PLAIN. Hai package cyrus-sasl-develcyrus-sasl-plain cho phép tạo và xác thực user. Trước tiên hãy cài đặt các package bằng lệnh sau:

sudo yum install cyrus-sasl-devel cyrus-sasl-plain

Tiếp theo, người dùng tạo directory và file mà Memcached sẽ kiểm tra cài đặt cấu hình SASL:

sudo mkdir -p /etc/sasl2 sudo vi /etc/sasl2/memcached.conf

Thêm phần sau vào file cấu hình SASL:

mech_list: plain log_level: 5 sasldb_path: /etc/sasl2/memcached-sasldb2

Bên cạnh đó, sau khi xác định giá trị của log_level thì bạn cần đặt mech_list thành plain để Memcached biết rằng nên sử dụng file mật khẩu của chính Memcached và xác minh mật khẩu ở dạng plaintext (thuần văn bản). Bạn cũng phải chỉ định đường dẫn đến file database của user. Lưu và đóng file khi hoàn tất.

Tiếp đến, ta cần tạo một database SASL với thông tin xác thực user. Sử dụng lệnh saslpasswd2 để tạo một entry mới cho user trong database bằng option -c. User sẽ là vietnix, bạn có thể thay thế tên này bằng user của riêng bạn. Sử dụng option -f để chỉ định đường dẫn đến database và cũng sẽ được đặt trong /etc/sasl2/memcached.conf:

sudo saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 vietnix

Cuối cùng, cấp cho user memcached quyền sở hữu database SASL:

sudo chown memcached:memcached /etc/sasl2/memcached-sasldb2

Sau đó restart lại dịch vụ Memcached:

sudo systemctl restart memcached

Khởi động lại memstat để xác nhận xem quy trình xác thực của có hoạt động hay không. Chạy với thông tin đăng nhập xác thực:

memstat --servers="127.0.0.1" --username=vietnix --password=your_password

Bạn sẽ thấy output như sau:

Như vậy là dịch vụ Memcached đã khởi động thành công, có hỗ trợ SASL và có xác thực user.

Output Server: 127.0.0.1 (11211)      pid: 3831      uptime: 9      time: 1520028517      version: 1.4.25      . . .

Bước 4: Cho phép truy cập qua mạng riêng

Vietnix đã hướng dẫn bạn cách cấu hình Memcached để listen trên interface cục bộ nhằm giúp ngăn chặn tấn công DoS bằng cách bảo vệ interface Memcached không bị lộ ra ngoài. Tuy nhiên, có những trường hợp cần cho phép các server khác truy cập. Khi đó, bạn có thể điều chỉnh cài đặt cấu hình để liên kết Memcached với interface mạng riêng.

Lưu ý: Vietnix sẽ giới thiệu cách cấu hình cài đặt firewall bằng FirewallD trong phần này.

Hạn chế truy cập IP bằng tường lửa

Trước khi điều chỉnh cài đặt cấu hình, bạn nên thiết lập các rule tường lửa để giới hạn các máy có thể kết nối với server Memcached. Nếu bạn đáp ứng các yêu cầu trước khi thực hiện hướng dẫn, cài đặt FirewallD trên server và không kết nối với Memcached từ một host khác thì bạn không cần thực hiện điều chỉnh các rule tường lửa. Instance độc lập của Memcached sẽ nghe trên 127.0.0.1 nhờ biến OPTIONS đã được xác định trước đó. Vì vậy bạn không cần lo về lưu lượng truy cập đến.

Tuy nhiên, nếu muốn cho phép host khác truy cập vào server Memcached thì bạn sẽ cần thực hiện các thay đổi cài đặt firewall bằng lệnh firewall-cmd.

Bắt đầu bằng cách thêm zone Memcached chuyên dụng vào chính sách firewalld:

sudo firewall-cmd --permanent --new-zone=memcached

Sau đó, chỉ định port muốn tiếp tục mở. Theo mặc định thì Memcached sử dụng cổng 11211:

sudo firewall-cmd --permanent --zone=memcached --add-port=11211/tcp

Tiếp theo, chỉ định các địa chỉ IP private được phép truy cập Memcached. Dĩ nhiên bạn sẽ phải biết địa chỉ IP private của client:

sudo firewall-cmd --permanent --zone=memcached --add-source=client_server_private_IP

Reload firewall để đảm bảo rằng các rule mới có hiệu lực:

sudo firewall-cmd --reload

Các packet từ địa chỉ IP của client bây giờ sẽ được xử lý theo các rule trong zone Memcached chuyên dụng. Tất cả các kết nối khác sẽ được xử lý bởi zone public mặc định.

Với những thay đổi này, bạn có thể chuyển sang thực hiện các thay đổi cấu hình cần thiết cho dịch vụ Memcached, bind dịch vụ này vào interface mạng riêng của máy chủ.

Tiến hành bind Memcached với Interface mạng riêng

Bạn cần sửa đổi biến OPTIONS đã đặt trước đó.

Mở lại /etc/sysconfig/memcached bằng lệnh sau:

sudo vi /etc/sysconfig/memcached

Tìm vị trí biến OPTIONS. Bây giờ có thể đổi -l 127.0.0.1 thành địa chỉ IP riêng của server Memcached:

. . .  OPTIONS="-l memcached_servers_private_IP -U 0 -S -vv"

Lưu và đóng file khi hoàn tất.

Khởi động lại dịch vụ Memcached:

sudo systemctl restart memcached

Kiểm tra cài đặt mới bằng netstat để kiểm tra thay đổi:

sudo netstat -plunt

Output

Active Internet connections (only servers) Proto     Recv-Q    Send-Q        Local Address                                               Foreign Address         State       PID/Program name . . . tcp             0              0              memcached_servers_private_IP:11211         0.0.0.0:*                   LISTEN      2383/memcached . . .

Kiểm tra kết nối từ client bên ngoài để đảm bảo rằng bạn vẫn có thể truy cập dịch vụ. Bạn cũng nên kiểm tra quyền truy cập từ client khác để đảm bảo rằng các rule firewall có hiệu lực.

Với hơn 11 năm kinh nghiệm và đồng hành hơn 50.000 khách hàng đồng hành, Vietnix tự hào là một trong những nhà cung cấp VPS tốc độ cao hàng đầu tại Việt Nam. Chúng tôi đã kích hoạt thành công hơn 100.000 dịch vụ, điều này chứng tỏ sự tin tưởng từ phía khách hàng.

Đánh giá 5 sao của 97% khách hàng sau khi sử dụng dịch vụ của Vietnix là một minh chứng rõ ràng về chất lượng dịch vụ mà chúng tôi mang đến. Không chỉ vậy, 89% khách hàng đã duy trì việc sử dụng dịch vụ của Vietnix đến thời điểm hiện tại, đây là một sự khẳng định sự tin cậy và sự hài lòng từ phía khách hàng.

Sự uy tín của Vietnix được thể hiện rõ qua việc đạt giải thưởng Thương hiệu Việt Nam xuất sắc vào năm 2022.

Với tất cả những thành tựu trên, Vietnix là đối tác đáng tin cậy cho bạn khi bạn có nhu cầu sở hữu VPS tốc độ cao. Liên hệ ngay với chúng tôi để được tư vấn giải pháp phù hợp với bạn.

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn

Trong hướng dẫn này, Vietnix đã giới thiệu cách cài đặt và bảo mật Memcached trên CentOS 7 bằng cách cấu hình để liên kết với interface mạng cục bộ hoặc mạng riêng và bật xác thực SASL. Nếu có bất kỳ thắc mắc nào khác, hãy comment bên dưới để được Vietnix hỗ trợ nhanh nhất nhé.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG