Bảo vệ Server Linux của bạn chống Hacker và Malware

 

Hãy bảo vệ máy chủ Linux của bạn trước Tin tặc, Phần mềm độc hại và những thứ xấu khác. Dưới đây là một số cách bảo mật mà bạn có thể sử dụng để bảo vệ khỏi các cuộc tấn công phổ biến. Tối ưu hóa các triển khai của mình để giảm bề mặt tấn công nhất là các ứng dụng public.

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.

Trên máy chủ Ubuntu của mình, tôi 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 các hướng dẫn đều 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 chính xác để nâng cấp chúng là DestroyDeploy lại nó bằng một Images mới.

Nếu không muốn làm việc này theo cách thủ công mọi lúc, bạn tham khảo một công cụ có tên là Watchtower.

3.Bảo mật máy chủ SSH của bạn

Có rất nhiều hướng dẫn về cách bảo mật máy chủ SSH của bạn 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ác khóa SSH riêng tư và công khai. Đ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. 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.

useradd <username> -m -s /bin/bash
Đồng thời thêm người dùng vào bất kỳ nhóm quản trị nào, như sudoadm. Nếu bạn đang sử dụng docker, bạn cũng có thể thêm người dùng vào nhóm này.
usermod -aG sudo, adm, docker
Vì muốn thực hiện các lệnh sudo, nê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.Thiết lập khóa SSH riêng tư và công khai

Tạo cặp khóa riêng tư và khóa công khai này trên bất kỳ máy khách nào mà bạn đang sử dụng để kết nối. Bạn có thể thực hiện việc này trong PowerShell hoặc Linux Shell.

ssh-keygen -b 4096

Không chia sẻ khóa riêng tư (id_rsa) với bất kỳ ai! Bảo vệ nó giống như bạn bảo vệ mật khẩu gốc của mình. Nhưng khóa công khai (id_rsa.pub) có thể được phân phối trên tất cả các máy chủ Linux của bạn để xác thực.

scp ~/.ssh/id_rsa.pub root@<ip-address-linux-server>:/home/<username>/.ssh/authorized_keys

6.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

7.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

8.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.

9.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.

10.Không để lộ các giao diện quản trị lên internet

Một lời khuyên chung khác là không để lộ bất kỳ giao diện quản trị nào lên internet công cộng! Điều này có thể làm giảm bề mặt tấn công xuống nhiều.
Sử dụng giao diện web quản trị với mạng nội bộ và sử dụng VPN hoặc truy cập proxy để xác thực chúng một cách an toàn.

11.Sử dụng hệ thống ngăn chặn xâm nhập

Có một số hệ thống IPS 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ác bước thiết lập trong bài viết này

12.Lời kết

Trên đây là 11 cách giúp bảo vệ hệ thống máy chủ Linux bạn tốt hơn. Ngoài ra cũng còn nhiều cách khác bạn có thể tìm hiểu thêm trên Google. Chúc các bạn thành công.!

Bài viết liên quan

Leave a Reply

Your email address will not be published. Required fields are marked *