I. Giới thiệu

Memcached là gì?

Theo định nghĩa trên trang chủ Memcached:

Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.
Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular languages.

DDOS là gì?

Theo Wikipedia, tấn công từ chối dịch vụ phân tán(DDOS - viết tắt của Distributed Denial of Service) là một cuộc tấn công mạng trong đó thủ phạm tìm cách làm cho máy hoặc tài nguyên mạng không khả dụng cho người dùng dự định của nó bằng cách làm gián đoạn tạm thời hoặc vô thời hạn các dịch vụ của máy chủ được kết nối với Internet. Từ chối dịch vụ thường được thực hiện bằng cách làm ngập máy hoặc tài nguyên được nhắm mục tiêu với các yêu cầu thừa nhằm cố gắng làm quá tải hệ thống và ngăn một số hoặc tất cả các yêu cầu hợp pháp được thực hiện.

II. Ngăn chặn DDOS qua Memcached

File cấu hình mặc định của memcached sẽ nằm tại vị trí /etc/sysconfig/memcached, và file này sẽ có nội dung như sau:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

Với cấu hình này thì memcached sẽ lắng nghe ở giao thức TCP và UDP, cổng 11211, không cần xác thực để truy cập memcached.

Vì vậy, để cấu hình tắt kết nối qua UDP và chỉ cho phép kết nối qua TCP, bạn sẽ cần cấu hình sửa đổi lại giá trị OPTIONS như sau:

OPTIONS="-U 0"

Và để cấu hình bắt buộc memcached chỉ cho phép kết nối truy cập từ trên máy chủ cài đặt(localhost), hạn chế kết nối từ bên ngoài thì bạn sẽ cần cấu hình sửa đổi giá trị OPTIONS như sau:

OPTIONS="-l 127.0.0.1"

Và để kết hợp cấu hình vừa chặn UDP, vừa bắt buộc memcache kết nối qua localhost thì bạn sẽ cấu hình sửa đổi giá trị OPTIONS như sau:

OPTIONS="-U 0 -l 127.0.0.1"

Tổng hợp lại cấu hình file /etc/sysconfig/memcached sau khi được thay đổi tắt kết nối qua UDP và tắt kết nối từ bên ngoài như sau.

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

Bây giờ bạn có thể kiểm tra lại kết nối của memcached đã không còn qua UDP nữa bằng lệnh netstat -tulpn | grep memcached

 
[root@server ~]# netstat -tulpn | grep memcached
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      830/memcached
    

III. Tổng kết

Như vậy là mình đã hướng dẫn các bạn thao tác cấu hình Memcached để ngăn chặn DDOS thông qua UDP chỉ với vài dòng lệnh cơ bản. Việc này cũng sẽ giúp bảo mật, đem lại hiệu quả sử dụng VPS, server của bạn hơn. Chúc các bạn thành công.

Bài viết tham khảo: Preventing DDoS amplification attacks using memcached

Tổng hợp hướng dẫn về hosting-vps.