Hướng dẫn khắc phục lỗ hổng bảo mật CVE-2019-11477 trên Cloud365
Hướng dẫn khắc phục lỗ hổng bảo mật CVE-2019-11477 trên Cloud365
Nơi chứa các tài liệu tham khảo của dịch vụ Cloud365.
Trong bài viết mình sẽ hướng dẫn các bạn một số cách kiếm tra dung lương bộ nhớ (RAM) sử dụng trong hệ điều hành Linux (Ở đây mình sử dụng OS CentOS 7).
Linux hỗ trợ rất nhiều command khác nhau để kiếm tra dung lượng RAM thực tế cũng như dung lượng RAM đã sử dụng. Ví dụ như câu lệnh free
hiển thị tổng dung lượng bộ nhớ vật lý (Physical memory) và dung lượng bộ nhớ chuyển đổi (Swap memory) đã sử dụng. Hoặc câu lệnh top
để xem dung lượng RAM đã sử dụng thời gian thực (realtime)
Mình sẽ truy cập https://cloud365.vn/
, đăng ký gói Cloud VPS B
với cấu hình 2 core, 2 GB RAM, 25 GB ở đĩa.
Cách đơn giản nhất để kiếm tra dung lượng bộ nhớ của Cloud VPS là các bạn sử dụng câu lệnh free
ở đây mình sẽ thực hiện câu lệnh free -h
free -h
Kết quả
Kết quả cho thấy, Cloud VPS của mình có thông số bộ nhớ RAM như sau:
total
)used
)free
)buff/cache
)Lưu ý:
free
) nhưng thực tế bạn có thể sử dụng nhiều hơn thế. Tổng số bộ nhớ có thể sử dụng sẽ bằng free
+ buff/cache
. Vậy ở đây, số RAM thực sự có thể sử dụng được sẽ bằng 1.728 GB.buff/cache
thường được sử dụng để cải thiện hiệu năng đọc ghi ổ đĩa. Vì bộ RAM sẽ có tốc độ truy vấn, đọc ghi cao hơn rất nhiều so với tốc độ truy vấn, đọc ghi ổ đĩa nên hệ điều hành sử dụng lượng RAM còn trống để cài thiện hiệu năng.Vậy mình đã hướng dẫn các kiểm tra thông số bộ nhớ đơn giản. Tiếp theo mình sẽ hướng dẫn phương pháp nâng cao.
Để kiếm tra các thông số chi tiết về bộ nhớ RAM, chúng ta sẽ kiểm tra file /proc/meminfo
. Bản thân câu lệnh free
cũng sử dụng file meminfo
để kiếm tra dung lượng bộ nhớ RAM của Cloud VPS.
Thống số trong file /proc/meminfo
khá nhiều nên mình sẽ chỉ tập trung vào các tham số quan trọng về bộ nhớ.
Thực hiện câu lệnh
egrep --color 'Mem|Cache' /proc/meminfo
Mình sẽ giải thích kết quả ở bên dưới
MemTotal
: Đây là tổng số bộ nhớ RAM hiện có (Đơn vị kilobyte). Ở đây giá trị bằng 1882868 kB
tức bằng 1,8 GB đúng như kết quả của câu lệnh free
MemFree
: Đây là số bộ nhớ RAM trống, giá trị bằng 1581892 kB
tức bằng 1,5 GB.MemAvailable
: Đây tổng số RAM có thể sử dụng, giá trị bằng 1616352 kB
tức bằng 1,6 GB. Như mình đã nói tuy số dung lượng bộ nhớ trống bằng 1,5 GB tuy nhiên bạn có thể sử dụng nhiều hơn.Cached
: Đây là dung lượng bố nhớ sử dụng làm bộ lưu đệm. Vì bộ nhớ RAM sẽ có tốc độ truy vấn đọc ghi rất cao nên hệ điều hành sử dụng lượng RAM còn trống để cài thiện hiệu năng, tuy nhiên khi cần sử dụng bộ nhớ RAM hệ điều hành sẽ tự động giải phóng bộ nhớ đệm.Các cách kiểm tra tương tự
cat /proc/meminfo
less /proc/meminfo
Hiện thị dung lượng bộ nhớ có thể sử dụng bằng câu lệnh free -m
, câu lệnh hiện thị dung lượng bộ nhớ dạng megabytes:
free -m
Kết quả
Hiện thị dung lượng bộ nhớ có thể sử dụng bằng câu lệnh vmstat -s
vmstat -s
Kết quả
Đến đây mình nghĩ một số bạn sẽ thắc mắc tại sao mình đăng ký gói Cloud VPS gói B với 2 GB RAM bộ nhớ nhưng khi kiểm tra thì hệ điều hành chỉ nhận 1.8 GB. Vậy có phải hệ điều hành đã nhận thiếu RAM hoặc nhà cung cấp đã cung cấp thiếu bộ nhớ cho Cloud VPS?.
Sau đây mình sẽ giải thích lý do. Thực ra, hệ điều hành Linux đã nhận đủ dung lượng bộ nhớ RAM là 2 GB tuy nhiên trong quá trình khởi động hệ điều hành một phần RAM đã bị chiếm dụng bởi nhân hệ thống (Kernel Linux).
Mình sẽ kiểm tra bằng câu lệnh
dmesg | grep -i memory
Kết quả
Nhìn vào (1) dễ thấy tổng dung lượng bộ nhớ hệ điều hành Linux đã nhận được thực sự là 2047 MB (System RAM: 2047MB
).
Tới (2), chúng ta thấy tuy tổng dung lượng là 2 GB (2097124kB
) nhưng lại chỉ sử dụng được 1,8 GB (1837732k
).
Để ý tới (3), chúng ta sẽ lưu ý giá trị 259000k reserved
, giá thị thể hiện trong quá trình khởi động nhân hệ điều hành đã sử dụng 259 MB để thực hiện một số module đặc biệt.
Nếu cộng giá trị 259000k
với dung lượng bộ nhớ có thể sử dụng 1837732k
chúng ta sẽ được giá trị gần bằng hoặc bằng dung lượng bộ nhớ vật lý của Cloud VPS. Tuy nhiên, bạn không phải lo lắng vì dung lượng bộ nhớ sử dụng cho nhân hệ điều hành sẽ được giải phóng một phần, trả lại cho bộ nhớ RAM. Vì vậy tuy dung lượng bộ nhớ là 1.8 GB nhưng bạn có thể sử dụng nhiều hơn thế.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/proc.txt
https://serverfault.com/questions/219987/why-doesnt-the-value-in-proc-meminfo-seem-to-map-exactly-to-the-system-ram/219990#219990
Thực hiện bởi cloud365.vn