[Linux] Bảo vệ Server Linux của bạn trước Hacker và Malware
Bài đăng này đã không được cập nhật trong 3 năm
Là một quản trị viên của hệ thống điều đầu tiên bạn nghĩ đến chắc chắn là bảo mật và ổn định. Và câu hỏi đặt ra là bạn cần làm gì để làm được điều này? Dưới đây là một số cách hy vọng giúp ích được các bạn 😋😋😋
1.Luôn cập nhập phần mềm mới nhất
Đây là điều cơ bản và đơn giản nhất mà bạn luôn nên làm! Đây cũng là cách hiệu quả nhất để bảo vệ Máy chủ Linux của bạn. Bởi vì đối với hầu hết các lỗ hổng bảo mật đã có sẵn một bản vá, một khi chúng được công khai. Vì vậy, bạn có thể muốn nâng cấp phần mềm của mình ngay khi có bản vá bảo mật mới.
Mình ví dụ như trên máy chủ Ubuntu mình sử dụng gói “unattended-upgrades“, gói này đã được cài đặt sẵn. Bạn chỉ cần cấu hình nó bằng hai lệnh này.
sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
2.Đừng quên cập nhật Docker Containers của bạn
Một thực tế quan trọng khác mà hầu hết mọi người hay quên, là hãy cập nhật các Container Docker của bạn. Bởi vì Docker Containers không tự động lưu trữ và tải xuống bất kỳ bản cập nhật nào. Cách đơn giản để nâng cấp chúng là Destroy và Deploy lại nó bằng một Images mới (note: nhớ backup 😀😀😀)
Nếu không muốn làm việc này theo cách thủ công ở trên, bạn tham khảo tool này Watchtower.
3.Bảo mật SSH server của bạn
Có rất nhiều hướng dẫn về cách bảo mật SSH Server trên Google. Và vì đây là công cụ quản lý chính mà mọi người đang sử dụng trên Linux, nên việc bảo vệ Máy chủ Linux của bạn chống lại các cuộc tấn công SSH là rất quan trọng. Nhưng điều quan trọng là phải hiểu rằng bản thân SSH là một giao thức rất an toàn theo mặc định nếu bạn không thay đổi cấu hình. Hầu hết các vấn đề với SSH chỉ là kết quả của những thói quen xấu 🤗🤗
Nếu bạn đang sử dụng thông tin đăng nhập để xác thực với máy chủ của mình, hãy luôn chọn một mật khẩu mạnh. Nhưng với mình, mình thích tạo một người dùng riêng và thiết lập cặp khóa SSH privatekey và publickey. Điều đó có hai lợi thế:
Thứ nhất, nó thoải mái hơn so với việc sử dụng mật khẩu.
Thứ hai, tránh vô tình sử dụng lại mật khẩu của mình.
4.Tạo một người dùng riêng trên Linux
Hãy tạo một người dùng riêng trên Linux.
useradd <username> -m -s /bin/bash
Note: Với -m sẽ tự động tạo một thư mục chính cá nhân và -s sẽ đặt trình mặc định thành bash.
Đồng thời thêm người dùng vào bất kỳ nhóm quản trị nào, như sudo và adm. Ví dụ: Bạn đang sử dụng docker, bạn có thể thêm người dùng vào nhóm này
usermod -aG sudo, adm, docker
Lưu ý: Vì thực hiện các lệnh sudo, nên bạn phải thiết lập một mật khẩu mạnh cho người dùng này.
passwd <username>
5.Tắt tính năng đăng nhập root và xác thực mật khẩu trong SSH
Bạn cũng nên vô hiệu hóa đăng nhập root và buộc tất cả người dùng xác thực bằng khóa riêng tư và khóa công khai. Chỉ cần thay đổi hai dòng này trong tệp “/ etc/ssh/sshd_config“.
...
# Authentication:
PermitRootLogin no
...
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
....
Sau khi thay đổi tệp cấu hình, khởi động lại máy chủ SSH của mình.
sudo systemctl restart ssh
6.Sử dụng proxy truy cập và xác thực hai yếu tố
Nếu bạn muốn quản lý quyền truy cập shell trong một nhóm, có ghi nhật ký kiểm tra tốt hơn, mình khuyên bạn nên tham khảo dùng proxy truy cập và 2FA. Bạn tham khảo bài viết xác thực bằng 2FA
7.Chỉ mở các dịch vụ mà bạn cần
Mọi ứng dụng muốn nhận dữ liệu từ máy khách cần lắng nghe trên một cổng riêng biệt. Hầu hết chúng được định nghĩa là cổng 80 cho HTTP, 443 cho HTTPS, 22 cho SSH…
Bạn có thể dễ dàng kiểm tra thông qua lệnh “ss -lptn” trong dòng lệnh Linux, sau đó bạn sẽ nhận được danh sách tất cả các ứng dụng hiện đang lắng nghe trên các cổng mạng.
Và bạn nên xem qua tất cả chúng và tìm hiểu xem có thực sự cần chúng không, chúng để làm gì và chính xác là chúng đang làm gì.
Ví dụ: Bạn có thể thấy rằng tôi có một máy chủ SSH đang lắng nghe trên cổng 22 và tất cả các Địa chỉ IP có 0.0.0.0 là các ứng dụng lắng nghe trên tất cả các giao diện đến.
8.Sử dụng hệ thống tường lửa
Tường lửa dựa trên các quy tắc IPtables trên Máy chủ Linux của bạn có thể dễ dàng bật trên máy chủ của mình và sau đó nó sẽ loại bỏ tất cả lưu lượng truy cập và chỉ cho phép những lưu lượng cần thiết.
9.Sử dụng hệ thống ngăn chặn xâm nhập
Có một số hệ thống IPS mã nguồn mở phổ biến có sẵn, phổ biến nhất là fail2ban. Fail2ban rất đơn giản và dễ thiết lập vì đây là một dịch vụ duyệt qua các tệp nhật ký của các ứng dụng của bạn và từ chối các địa chỉ IP đã cố gắng truy cập vào máy chủ của bạn và thực hiện quá nhiều mật khẩu sai.
Bạn xem thêm cách thiết lập trong bài viết này
Lời kết
Trên đây là 9 cách giúp bảo vệ hệ thống máy chủ Linux bạn tốt hơn. Chúc các bạn thành công.!
Tham khảo:
All rights reserved