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à Destroy và Deploy 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
usermod -aG sudo, adm, docker
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
....
sudo systemctl restart ssh
7.Sử dụng proxy truy cập và xác thực hai yếu tố
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

10.Không để lộ các giao diện quản trị lên internet
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.!