Gần đây, tôi đã bước chân vào thế giới của các ứng dụng và dịch vụ tự lưu trữ. Khi đã bắt đầu, tôi nhanh chóng khám phá ra nhiều ứng dụng mới để lưu trữ trên mạng nội bộ của mình. Thay thế Google Photos bằng Immich và sử dụng Obsidian trên trình duyệt web thật thú vị cho đến khi tôi nhận ra rằng mình chỉ có thể truy cập các dịch vụ này khi kết nối với mạng nội bộ. Vậy khi không ở nhà mà muốn kiểm tra ghi chú hay xem dữ liệu lưu trữ cục bộ thì sao? Tôi hiểu rằng để làm được điều đó, tôi cần phải mở các dịch vụ này ra internet. Dù không gặp khó khăn trong việc này, tôi đã đánh giá thấp các biện pháp bảo mật cần thiết để bảo vệ dữ liệu của mình.
Vì mới làm quen với việc tự lưu trữ và muốn mọi thứ diễn ra nhanh chóng, tôi đã mở các dịch vụ tự lưu trữ của mình mà không có đủ biện pháp phòng ngừa. May mắn thay, tôi đã nhận ra rủi ro sớm và thực hiện các thay đổi cần thiết kịp thời. Tuy nhiên, bạn có thể không may mắn như tôi và có thể vô tình tiết lộ thông tin nhạy cảm cho người lạ trên mạng. Để ngăn chặn những sự cố như vậy, tôi quyết định lập một danh sách kiểm tra cần thực hiện trước khi các dịch vụ tự lưu trữ của bạn có thể được truy cập từ xa.
Bảo mật xác thực là điều không thể thương lượng
Mật khẩu mạnh và xác thực đa yếu tố là chìa khóa

Một trong những mối đe dọa phổ biến nhất khi bạn mở một dịch vụ ra internet là các nỗ lực đăng nhập trái phép. Vì vậy, giống như tài khoản email hay mạng xã hội của bạn, điều quan trọng là đặt mật khẩu mạnh ngay cả cho các dịch vụ tự lưu trữ. Sử dụng kết hợp chữ hoa, chữ thường, số và ký tự đặc biệt. Quan trọng hơn, không sử dụng tên người dùng và mật khẩu mặc định liên kết với một dịch vụ. Thay đổi nó ngay khi bạn thiết lập tài khoản.
Một số lưu ý quan trọng khác bao gồm sử dụng mật khẩu độc đáo mà bạn chưa từng sử dụng trên trang web khác và kích hoạt xác thực đa yếu tố ở bất cứ đâu có sẵn. Cả hai điều này có thể được xử lý bằng trình quản lý mật khẩu và ứng dụng như Google Authenticator hoặc Authy. Đối với nhiều dịch vụ, nên triển khai đăng nhập một lần với các giao thức như OAuth2 hoặc LDAP.
Sử dụng tường lửa và phân đoạn mạng
Chỉ hạn chế lưu lượng truy cập đến các cổng cần thiết

Cách tốt nhất để ngăn chặn khai thác là kiểm soát truy cập mạng. Thiết lập tường lửa có thể giới hạn sự phơi bày của dịch vụ lưu trữ của bạn, giúp ngăn chặn các vi phạm trong tương lai. Sử dụng các công cụ như iptables hoặc UFW để hạn chế lưu lượng chỉ đến một số cổng nhất định và chặn tất cả các cổng khác theo mặc định. Ngoài ra, sử dụng VLAN để tách biệt các dịch vụ để nếu một dịch vụ bị tấn công, kẻ tấn công không thể truy cập tất cả các hệ thống nhạy cảm.
Các công cụ như OPNsense rất phù hợp cho mục đích này vì chúng cung cấp khả năng tường lửa cấp doanh nghiệp. Sau khi thiết lập các công cụ cần thiết, nên thường xuyên kiểm tra các quy tắc tường lửa của bạn với dịch vụ như Nmap để đảm bảo chỉ có các cổng dự định được mở.
HTTPS là bắt buộc
Nhận và gia hạn chứng chỉ kịp thời

Các cuộc tấn công man-in-the-middle có thể tiết lộ toàn bộ dữ liệu, bao gồm cả thông tin đăng nhập và đầu vào, nếu bạn vẫn dùng HTTP. Nguyên nhân là do dữ liệu không được mã hóa. Vì lý do này, HTTPS không còn là tùy chọn. Sử dụng các giải pháp tự động như Let’s Encrypt để nhận và gia hạn chứng chỉ. Ngoài ra, các công cụ như Certbot đơn giản hóa việc thiết lập cho Nginx.
Một điều cần nhớ là nếu không gia hạn chứng chỉ, dịch vụ của bạn có thể bị ngắt kết nối, khiến nó không thể truy cập từ xa. Vì vậy, thiết lập tự động gia hạn chứng chỉ mỗi vài tuần hoặc tháng.
Cập nhật phần mềm thường xuyên
Tất cả các bản cập nhật đều tốt

Phần mềm lỗi thời có thể không chứa các bản vá bảo mật cần thiết để ngăn chặn các hình thức tấn công mới hơn. Đây chính là lý do tại sao việc cập nhật tất cả các dịch vụ lên phiên bản mới nhất là quan trọng. Nhiều lỗ hổng có thể ảnh hưởng đến các dịch vụ bạn đang lưu trữ, các ứng dụng được sử dụng để lưu trữ chúng và các ứng dụng khác trên máy tính của bạn. Ví dụ, có thể Docker chính nó bị ảnh hưởng bởi phần mềm độc hại. Vậy thì sao?
Giải pháp duy nhất để tránh các sự cố này là thường xuyên cập nhật tất cả các dịch vụ và ứng dụng liên quan đến thói quen tự lưu trữ của bạn. Điều này bao gồm cập nhật hệ điều hành, máy chủ web như Nginx, plugin, v.v. Sử dụng các công cụ như Watchtower để tự động cập nhật các container Docker lên phiên bản mới nhất. Ngoài ra, ghi lại số phiên bản của tất cả phần mềm của bạn và kiểm tra xem có lỗ hổng nào được báo cáo mà bạn có thể tránh không.
Ghi lại và giám sát tất cả các hoạt động
Thiết lập cảnh báo theo thời gian thực

Bạn cần có khả năng giám sát toàn diện hệ thống của mình mọi lúc để kiểm tra những gì đang diễn ra và xác minh tình trạng nếu mọi thứ không diễn ra như kế hoạch. Đối với nhật ký, sử dụng công cụ như Graylog để tổng hợp nhật ký từ tất cả các nền tảng — dịch vụ, máy chủ và ứng dụng. Bạn có thể sử dụng nó để thu thập các sự kiện quan trọng như các lần đăng nhập thất bại, thay đổi cấu hình, v.v.
Bạn cũng có thể tạo một bảng điều khiển trực quan bằng Grafana để hiển thị số liệu thống kê theo thời gian thực về tải CPU, sử dụng bộ nhớ, v.v. Các đột biến đột ngột mà không có bất kỳ sử dụng hoặc yêu cầu nào từ phía bạn có thể cảnh báo bạn về hoạt động đáng ngờ. Nói về cảnh báo, thiết lập cảnh báo để được thông báo mỗi khi có nhiều lần đăng nhập thất bại hoặc đĩa cứng sắp hết dung lượng có thể được thực hiện bằng PagerDuty. Cũng là một ý tưởng tốt để thường xuyên kiểm tra nhật ký, ngay cả khi không có cảnh báo nào, chỉ để đảm bảo.
Bảo vệ dữ liệu của bạn
Chăm sóc những yếu tố này trước khi mở các ứng dụng tự lưu trữ của bạn ra thế giới có thể đảm bảo không có cuộc tấn công hay vi phạm dữ liệu nào xảy ra. Một số dịch vụ tự lưu trữ như Immich và AdventureLog có thể chứa dữ liệu cá nhân như ảnh mà bạn không muốn người lạ trên internet tiếp cận. Vì vậy, trước khi bạn bắt đầu như một người mới, tốt nhất là giải quyết vấn đề bảo mật và sau đó tiếp tục với việc làm cho các dịch vụ trở nên trực tuyến.