Các biện pháp bảo mật được đề xuất để bảo vệ server của bạn
Bắt đầu và chạy các ứng dụng của bạn thường sẽ là mối quan tâm chính của bạn khi bạn đang làm việc trên cơ sở hạ tầng cloud . Là một phần của quá trình cài đặt và triển khai của bạn, điều quan trọng là phải xây dựng các biện pháp bảo mật mạnh mẽ và triệt để cho các hệ thống và ứng dụng của bạn trước khi chúng được công bố rộng rãi. Việc triển khai các biện pháp bảo mật trong hướng dẫn này trước khi bạn triển khai ứng dụng của bạn sẽ đảm bảo bất kỳ phần mềm nào bạn chạy trên cơ sở hạ tầng của bạn đều có cấu hình cơ sở an toàn, trái ngược với các biện pháp đặc biệt có thể được triển khai sau khi triển khai.Hướng dẫn này nêu bật một số biện pháp bảo mật thực tế mà bạn có thể thực hiện trong khi cấu hình và cài đặt cơ sở hạ tầng server của bạn . Danh sách này không phải là danh sách đầy đủ về mọi thứ bạn có thể làm để bảo vệ server của bạn , nhưng điều này cung cấp cho bạn một điểm khởi đầu mà bạn có thể xây dựng. Theo thời gian, bạn có thể phát triển một cách tiếp cận bảo mật được điều chỉnh phù hợp hơn với các nhu cầu cụ thể của môi trường và ứng dụng của bạn.
Phím SSH
SSH, hay shell an toàn, là một giao thức được mã hóa dùng để quản trị và giao tiếp với các server . Khi làm việc với một server , bạn có thể sẽ dành phần lớn thời gian trong một phiên terminal được kết nối với server của bạn thông qua SSH. Một giải pháp thay thế an toàn hơn cho thông tin đăng nhập dựa trên password , SSH key sử dụng mã hóa để cung cấp cách đăng nhập an toàn vào server của bạn và được khuyến khích cho tất cả user .
Với SSH key , một cặp private key và public key được tạo cho mục đích xác thực. Khóa riêng tư được giữ bí mật và an toàn bởi user , trong khi public key có thể được chia sẻ.
Để cấu hình xác thực SSH key , bạn phải đặt SSH key công khai của bạn trên server trong folder thích hợp của nó. Khi client của bạn kết nối với server lần đầu tiên, server sẽ yêu cầu bằng chứng rằng bạn có private key được liên kết. Nó thực hiện điều này bằng cách tạo ra một giá trị ngẫu nhiên và gửi nó đến client SSH của bạn. Sau đó, ứng dụng client SSH của bạn sẽ sử dụng private key của bạn để mã hóa phản hồi và sau đó gửi phản hồi đã mã hóa đến server . Sau đó, server sẽ giải mã câu trả lời của khách hàng của bạn bằng public key của bạn. Nếu server có thể giải mã giá trị ngẫu nhiên, thì điều đó nghĩa là client của bạn sở hữu private key và server sẽ cho phép bạn kết nối mà không cần password .
Để tìm hiểu thêm về cách hoạt động của xác thực dựa trên SSH key , hãy xem bài viết của ta , Hiểu về Quy trình kết nối và mã hóa SSH .
Làm thế nào để các SSH key tăng cường bảo mật?
Với SSH, bất kỳ loại xác thực nào - bao gồm xác thực bằng password - đều được mã hóa hoàn toàn. Tuy nhiên, khi cho phép đăng nhập dựa trên password , user độc hại có thể liên tục cố gắng truy cập vào server , đặc biệt nếu server có địa chỉ IP công khai. Với sức mạnh tính toán hiện đại, có thể truy cập vào server bằng cách tự động hóa các lần thử này và thử kết hợp sau kết hợp cho đến khi tìm thấy password phù hợp.
Cài đặt xác thực SSH key cho phép bạn vô hiệu hóa xác thực dựa trên password . Các SSH key thường có nhiều bit dữ liệu hơn password , nghĩa là có nhiều khả năng kết hợp hơn đáng kể mà kẻ tấn công sẽ phải chạy qua.Nhiều thuật toán SSH key được phần cứng máy tính hiện đại coi là không thể theo dõi được vì chúng sẽ đòi hỏi quá nhiều thời gian để chạy qua tất cả các kết quả phù hợp khả thi.
Cách triển khai SSH key
Khóa SSH là cách được khuyến khích để đăng nhập vào bất kỳ môi trường server Linux nào từ xa. Một cặp SSH key có thể được tạo trên máy local của bạn và bạn có thể chuyển public key tới server của bạn trong vòng vài phút.
Để cài đặt SSH key trên server của bạn, hãy làm theo hướng dẫn phân phối cụ thể của ta Cách cài đặt SSH key cho Ubuntu, Debian hoặc CentOS.
Nếu bạn vẫn muốn xác thực password , hãy xem xét triển khai một giải pháp như fail2ban trên server của bạn để hạn chế việc đoán password .
Trong cả hai trường hợp, cách tốt nhất là không cho phép user root
đăng nhập trực tiếp qua SSH. Thay vào đó, hãy đăng nhập với quyền user không có quyền và sau đó báo cáo các quyền khi cần bằng một công cụ như sudo
. Cách tiếp cận để hạn chế quyền này được gọi là nguyên tắc của quyền ít nhất . Khi bạn đã kết nối với server của bạn và tạo account không quyền mà bạn đã xác minh hoạt động với SSH, bạn có thể tắt thông tin đăng nhập root
bằng cách đặt chỉ thị PermitRootLogin no
trong /etc/ssh/sshd_config
trên server của bạn và sau đó khởi động lại quy trình SSH của server với lệnh như sudo systemctl restart sshd
.
Tường lửa
Tường lửa là một phần mềm hoặc thiết bị phần cứng kiểm soát cách các dịch vụ được tiếp xúc với mạng và những loại lưu lượng nào được phép vào và ra khỏi một server hoặc các server nhất định. Tường lửa được cấu hình đúng cách sẽ đảm bảo chỉ những dịch vụ được công bố công khai mới có thể truy cập được từ bên ngoài server hoặc mạng của bạn.
Trên một server thông thường, một số dịch vụ có thể đang chạy theo mặc định. Chúng có thể được phân loại thành các group sau:
- Các dịch vụ công cộng có thể được truy cập bởi bất kỳ ai trên internet, thường ẩn danh. Ví dụ về điều này là một web server có thể cho phép truy cập vào trang web .
- Các dịch vụ tư nhân chỉ nên được truy cập bởi một group account được ủy quyền chọn lọc hoặc từ một số địa điểm nhất định. Ví dụ, một console database như phpMyAdmin .
- Các dịch vụ nội bộ chỉ nên được truy cập từ bên trong chính server , mà không để lộ dịch vụ lên internet công cộng. Ví dụ, một database chỉ chấp nhận các kết nối local .
Tường lửa có thể đảm bảo quyền truy cập vào phần mềm của bạn bị hạn chế theo các danh mục ở trên với mức độ chi tiết khác nhau. Các dịch vụ công có thể để ngỏ và có sẵn trên internet, và các dịch vụ tư nhân có thể bị hạn chế dựa trên các tiêu chí khác nhau, chẳng hạn như loại kết nối. Các dịch vụ nội bộ có thể được thực hiện hoàn toàn không thể truy cập được vào internet. Đối với các cổng không được sử dụng, quyền truy cập bị chặn hoàn toàn trong hầu hết các cấu hình.
Làm thế nào để firewall tăng cường bảo mật?
Ngay cả khi các dịch vụ của bạn triển khai các tính năng bảo mật hoặc bị hạn chế đối với các giao diện mà bạn muốn chúng chạy, firewall sẽ đóng role là lớp bảo vệ cơ sở bằng cách giới hạn các kết nối đến và đi từ các dịch vụ của bạn trước khi ứng dụng xử lý lưu lượng truy cập.
Tường lửa được cấu hình đúng sẽ hạn chế quyền truy cập vào mọi thứ ngoại trừ các dịch vụ cụ thể mà bạn cần để vẫn mở.Chỉ để lộ một vài phần mềm làm giảm bề mặt tấn công của server của bạn, hạn chế các thành phần dễ bị khai thác.
Cách triển khai firewall
Có rất nhiều firewall có sẵn cho hệ thống Linux, một số phức tạp hơn những hệ thống khác. Mặc dù vậy, nói chung, việc cài đặt firewall sẽ chỉ mất vài phút và chỉ cần thực hiện trong quá trình cài đặt ban đầu của server hoặc khi bạn áp dụng các thay đổi đối với các dịch vụ đang chạy trên server của bạn . Dưới đây là một số tùy chọn để cài đặt và chạy:
UFW, hoặc Tường lửa không phức tạp, được cài đặt theo mặc định trong một số bản phân phối Linux như Ubuntu. Một bức firewall phổ biến, bạn có thể tìm hiểu thêm về nó trong hướng dẫn Cách cài đặt một bức firewall với UFW trên Ubuntu 20.04 của ta
Nếu bạn đang sử dụng CentOS, bạn có thể làm theo Cách cài đặt firewall bằng firewalld trên CentOS 8
Nếu bạn muốn tìm hiểu cách sử dụng Iptables, những điều cần biết về Iptables của ta : Các luật và lệnh firewall phổ biến
hướng dẫn cách sử dụng Iptables trực tiếp
thông tin
Nếu bạn đang sử dụng DigitalOcean, bạn cũng có thể tận dụng Tường lửa cloud mà không phải trả thêm phí, có thể cài đặt trong vài phút .
Với bất kỳ hướng dẫn nào được đề cập ở đây, hãy đảm bảo cấu hình firewall của bạn mặc định chặn lưu lượng không xác định. Bằng cách đó, bất kỳ dịch vụ mới nào mà bạn triển khai sẽ không vô tình bị tiếp xúc với Internet. Thay vào đó, bạn sẽ phải cho phép truy cập một cách rõ ràng, điều này sẽ buộc bạn phải đánh giá cách dịch vụ được chạy, được truy cập và ai sẽ có thể sử dụng nó.
Mạng VPC
Mạng cloud riêng ảo (VPC) là mạng riêng cho tài nguyên của cơ sở hạ tầng của bạn. Mạng VPC cung cấp kết nối an toàn hơn giữa các tài nguyên vì giao diện của mạng không thể truy cập được từ internet công cộng và các mạng VPC khác trên cloud .
Làm thế nào để Mạng VPC tăng cường bảo mật
Sử dụng mạng riêng thay vì mạng công cộng để liên lạc nội bộ được ưu tiên hơn khi có sự lựa chọn giữa hai mạng, vì mạng VPC cho phép bạn tách các group tài nguyên thành các mạng riêng cụ thể. Các mạng VPC sẽ chỉ kết nối với nhau bằng các network interface riêng của chúng qua mạng nội bộ, nghĩa là lưu lượng giữa các hệ thống của bạn sẽ không được định tuyến qua internet công cộng nơi nó có thể bị lộ hoặc bị chặn. Mạng VPC cũng được dùng để cô lập môi trường thực thi và người thuê.
Ngoài ra, bạn có thể cài đặt các cổng internet làm điểm truy cập duy nhất giữa các tài nguyên của mạng VPC và internet công cộng, giúp bạn có nhiều quyền kiểm soát và khả năng hiển thị hơn đối với lưu lượng công cộng kết nối với các tài nguyên của bạn.
Cách triển khai Mạng VPC
Nhiều nhà cung cấp cơ sở hạ tầng cloud cho phép bạn tạo và thêm tài nguyên vào mạng VPC bên trong trung tâm dữ liệu của họ.
thông tin
Nếu bạn đang sử dụng DigitalOcean và muốn cài đặt cổng VPC của riêng mình, bạn có thể làm theo Cách cấu hình server làm hướng dẫn VPC Gateway của ta để tìm hiểu cách thực hiện trên server dựa trên Debian, Ubuntu và CentOS.
DigitalOcean đặt mỗi tài nguyên có thể áp dụng (Server, bộ cân bằng tải, Kubernetes Cluster và database ) vào một VPC khi tạo mà không mất thêm chi phí
Việc cấu hình mạng riêng của bạn theo cách thủ công có thể yêu cầu cấu hình server nâng cao và kiến thức mạng.Một giải pháp thay thế cho việc cài đặt mạng VPC là sử dụng kết nối VPN giữa các server của bạn. Nếu bạn đang sử dụng Ubuntu hoặc CentOS, bạn có thể làm theo Cách cài đặt và cấu hình server OpenVPN trên Ubuntu 20.04 này
hướng dẫn.
Đối với một VPN ít phức tạp hơn giữa các server Ubuntu, hãy làm theo Cách cài đặt Tinc và Cài đặt VPN cơ bản trên Ubuntu 18.04 này
hướng dẫn.
Kiểm toán dịch vụ
Một phần lớn của bảo mật liên quan đến việc phân tích hệ thống của ta , hiểu các bề mặt tấn công có sẵn và khóa các thành phần tốt nhất có thể.
Kiểm tra dịch vụ là một cách để biết những dịch vụ nào đang chạy trên một hệ thống nhất định, những cổng nào chúng đang sử dụng để giao tiếp và những giao thức nào được chấp nhận. Thông tin này có thể giúp bạn cấu hình dịch vụ nào sẽ có thể truy cập , cài đặt firewall , giám sát và cảnh báo.
Kiểm toán dịch vụ tăng cường bảo mật như thế nào?
Server có thể chạy các quy trình cho các mục đích nội bộ và để xử lý các client bên ngoài. Mỗi dịch vụ đang chạy, cho dù nó dự định là nội bộ hay công khai, đều thể hiện một bề mặt tấn công mở rộng cho những user độc hại. Bạn càng chạy nhiều dịch vụ thì khả năng xảy ra lỗ hổng ảnh hưởng đến phần mềm của bạn càng lớn.
Khi bạn đã biết rõ về dịch vụ mạng nào đang chạy trên máy của bạn , bạn có thể bắt đầu phân tích các dịch vụ này. Khi bạn thực hiện kiểm tra dịch vụ, hãy tự hỏi mình những câu hỏi sau về từng dịch vụ đang chạy:
- Dịch vụ này có nên chạy không?
- Có phải dịch vụ đang chạy trên các network interface mà nó không nên chạy trên đó không?
- Dịch vụ có nên bị ràng buộc với network interface công cộng hay riêng tư?
- Các luật firewall của tôi có được cấu trúc để chuyển lưu lượng truy cập hợp lệ đến dịch vụ này không?
- Các luật firewall của tôi có đang chặn lưu lượng truy cập không hợp lệ không?
- Tôi có phương pháp nhận cảnh báo bảo mật về các lỗ hổng cho từng dịch vụ này không?
Loại kiểm tra dịch vụ này nên là thông lệ tiêu chuẩn khi cấu hình bất kỳ server mới nào trong cơ sở hạ tầng của bạn. Thực hiện kiểm tra dịch vụ vài tháng một lần cũng sẽ giúp bạn phát hiện bất kỳ dịch vụ nào có cấu hình có thể đã thay đổi ngoài ý muốn.
Cách thực hiện kiểm toán dịch vụ
Để kiểm tra các dịch vụ mạng đang chạy trên hệ thống của bạn, hãy sử dụng lệnh ss
để liệt kê tất cả các cổng TCP và UDP đang được sử dụng trên server . Một lệnh ví dụ hiển thị tên chương trình, PID và địa chỉ đang được sử dụng để lắng nghe lưu lượng TCP và UDP là:
- sudo ss -plunt
Bạn sẽ nhận được kết quả tương tự như sau:
OutputNetid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812,fd=3)) tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=69226,fd=6),("nginx",pid=69225,fd=6)) tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=812,fd=4)) tcp LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=69226,fd=7),("nginx",pid=69225,fd=7))
Các cột chính mà bạn cần chú ý là các cột Netid, Local Address: Port và Process name. Nếu Địa chỉ local : Cổng là 0.0.0.0
, thì dịch vụ đang chấp nhận kết nối trên tất cả các network interface IPv4. Nếu địa chỉ là [::]
thì dịch vụ đang chấp nhận kết nối trên tất cả các giao diện IPv6. Trong kết quả ví dụ ở trên, SSH và Nginx đều đang lắng nghe trên tất cả các giao diện công cộng, trên cả mạng IPv4 và IPv6.
Với kết quả ví dụ này, bạn có thể quyết định xem bạn có muốn cho phép SSH và Nginx lắng nghe trên cả hai giao diện hay chỉ trên giao diện này hay giao diện khác. Nói chung, bạn nên tắt các dịch vụ đang chạy trên các giao diện không sử dụng. Ví dụ: nếu trang web chỉ có thể truy cập được qua IPv4, bạn sẽ ngăn chặn một cách rõ ràng dịch vụ nghe trên giao diện IPv6 để giảm số lượng dịch vụ bị lộ.
Cập nhật không được giám sát
Giữ cho server của bạn được cập nhật các bản vá lỗi là điều bắt buộc đảm bảo mức độ bảo mật cơ bản tốt. Các server hết hạn sử dụng và các version phần mềm không an toàn là nguyên nhân gây ra phần lớn các vụ xâm nhập, nhưng các bản cập nhật thường xuyên có thể giảm thiểu các lỗ hổng và ngăn những kẻ tấn công có được chỗ đứng trên server của bạn.
Các bản cập nhật truyền thống yêu cầu administrator kiểm tra và cài đặt các bản cập nhật theo cách thủ công cho các gói khác nhau trên server của họ; điều này có thể tốn nhiều thời gian và có thể quên hoặc bỏ lỡ một bản cập nhật lớn. Ngược lại, các bản cập nhật không cần giám sát cho phép hệ thống tự động cập nhật phần lớn các gói.
Làm thế nào để cập nhật không giám sát tăng cường bảo mật?
Việc triển khai các bản cập nhật không cần giám sát làm giảm mức độ nỗ lực cần thiết để giữ an toàn cho server của bạn và rút ngắn thời gian server của bạn có thể dễ bị tấn công bởi các lỗi đã biết. Trong trường hợp có lỗ hổng bảo mật ảnh hưởng đến phần mềm trên server của bạn, server của bạn sẽ dễ bị tấn công trong thời gian bao lâu để bạn chạy các bản cập nhật. Việc nâng cấp không cần giám sát hàng ngày sẽ đảm bảo bạn không bỏ lỡ bất kỳ gói nào và bất kỳ phần mềm dễ bị tấn công nào cũng được vá ngay khi có bản sửa lỗi.
Cùng với việc kiểm tra dịch vụ đã đề cập trước đó, việc thực hiện cập nhật tự động có thể làm giảm đáng kể khả năng bị tấn công của bạn và giảm lượng thời gian dành cho việc duy trì bảo mật của server của bạn
Cách triển khai cập nhật không cần giám sát
Hầu hết các bản phân phối server hiện đều có các bản cập nhật không cần giám sát như một tùy chọn. Ví dụ: trên Ubuntu, administrator có thể chạy:
- sudo apt install unattended-upgrades
Để biết thêm chi tiết về cách triển khai cập nhật không cần giám sát, hãy xem các hướng dẫn này cho Ubuntu (trong Cập nhật tự động ) và Fedora .
[Ghi chú]
Lưu ý: Các cơ chế này sẽ chỉ tự động cập nhật phần mềm được cài đặt thông qua trình quản lý gói hệ thống của bạn. Đảm bảo rằng bất kỳ phần mềm bổ sung nào bạn có thể đang chạy như ứng dụng web đều được cấu hình để cập nhật tự động hoặc được kiểm tra thủ công thường xuyên.
Tắt index folder
Hầu hết các web server được cấu hình theo mặc định để hiển thị index folder khi user truy cập vào một folder thiếu file index . Ví dụ: nếu bạn tạo một folder được gọi là downloads
trên web server của bạn mà không có bất kỳ cấu hình bổ sung nào, tất cả các file sẽ hiển thị cho bất kỳ ai duyệt qua folder . Đối với nhiều trường hợp, đây không phải là một mối lo ngại về bảo mật, nhưng rất có thể một thứ gì đó bí mật có thể bị lộ. Ví dụ: nếu bạn định tạo folder index trên web server cho trang web của bạn , folder đó có thể chứa file cho trang chủ của trang web và file cấu hình chứa thông tin đăng nhập database backend của trang web. Nếu không tắt các index của folder , cả hai file trong folder sẽ hiển thị cho bất kỳ ai đang duyệt folder .
Làm thế nào để vô hiệu hóa index folder tăng cường bảo mật?
Chỉ mục folder có mục đích hợp lệ , nhưng chúng thường vô tình để lộ file cho khách truy cập. Việc vô hiệu hóa index folder làm mặc định cho web server của bạn giúp loại bỏ nguy cơ mất mát, rò rỉ hoặc khai thác dữ liệu ngẫu nhiên bằng cách làm cho các file folder ẩn với khách truy cập. Khách truy cập vẫn có thể truy cập các file nếu chúng tồn tại trong folder , nhưng việc vô hiệu hóa lập index sẽ khiến các file khó bị phát hiện ngoài ý muốn hơn nhiều.
Cách tắt index folder
Đối với hầu hết các trường hợp, việc tắt index folder là vấn đề của việc thêm một dòng vào cấu hình web server của bạn.
- Nginx vô hiệu hóa các index folder theo mặc định, vì vậy nếu bạn đang sử dụng Nginx, bạn không cần thực hiện bất kỳ thay đổi nào.
- Trang DirectoryListings trên Apache Wiki giải thích cách tắt danh sách folder . Đảm bảo sử dụng
Options -Indexes
được liệt kê ở đó cho bất kỳ đoạn cấu hình ApacheDirectory
nào của bạn.
Backup thường xuyên
Mặc dù không hoàn toàn là một biện pháp bảo mật, nhưng backup có thể rất quan trọng trong việc lưu các hệ thống và dữ liệu bị xâm phạm, cũng như phân tích cách hệ thống bị xâm phạm. Ví dụ: nếu server của bạn bị xâm nhập bởi ransomware (một công cụ độc hại hoặc vi rút mã hóa các file và sẽ chỉ giải mã chúng nếu kẻ tấn công được trả một số tiền), việc thiếu các bản backup có thể nghĩa là lựa chọn duy nhất của bạn là trả tiền để có được dữ liệu trở lại. Nếu hệ thống và dữ liệu được backup thường xuyên và an toàn, bạn có thể truy cập và khôi phục dữ liệu của bạn mà không cần tương tác với hệ thống bị xâm phạm.
Backup thường xuyên tăng cường bảo mật?
Các bản backup thường xuyên giúp khôi phục dữ liệu trong trường hợp vô tình xóa và trong trường hợp bị tấn công khiến dữ liệu bị xóa hoặc bị hỏng. Trong cả hai trường hợp, chúng giúp giảm thiểu nguy cơ mất dữ liệu bằng cách giữ lại các bản sao dữ liệu từ trước khi vô tình xóa hoặc trước khi xảy ra tấn công.
Ngoài các trường hợp ransomware, việc backup thường xuyên có thể giúp phân tích pháp y về các cuộc tấn công dài hạn. Nếu bạn không có lịch sử dữ liệu của bạn , có thể khó hoặc thậm chí không thể xác định khi nào một cuộc tấn công bắt đầu và dữ liệu nào đã bị xâm phạm.
Cách thực hiện backup thường xuyên
Khi triển khai backup cho hệ thống của bạn, hãy coi phục hồi có thể xác minh được đối với dữ liệu bị xâm phạm hoặc bị xóa là mục tiêu. Hãy tự hỏi bản thân: nếu ngày mai server của tôi biến mất, bạn cần thực hiện những bước nào để khôi phục và chạy an toàn với ít công việc nhất?
Dưới đây là một số câu hỏi khác cần xem xét khi phát triển kế hoạch khôi phục sau thảm họa:
- Có nên luôn sử dụng bản backup mới nhất không? Tùy thuộc vào tần suất dữ liệu thay đổi và thời điểm xảy ra xâm phạm hoặc xóa, thay vào đó, nó có thể giảm rủi ro chuyển sang mặc định cho bản backup cũ hơn.
- Quy trình thực tế để khôi phục bản backup là gì? Bạn có cần tạo một server mới hoặc khôi phục lại server hiện có không?
- Bạn có thể tồn tại bao lâu nếu không có server này hoạt động?
- Bạn có cần backup ngoại vi không?
thông tin
Nếu bạn đang sử dụng DigitalOcean Server, bạn có thể bật backup hàng tuần từ console theo hướng dẫn này .
Cách Backup Dữ liệu vào Dịch vụ Lưu trữ Đối tượng với Ứng dụng Khách Backup Restic là một hướng dẫn mà bạn có thể sử dụng để thiết kế hệ thống backup của riêng mình, hệ thống này sẽ mã hóa các bản backup của bạn và lưu trữ chúng khỏi hệ thống production của bạn. Hướng dẫn này sẽ hoạt động với server , hoặc thậm chí máy tính để bàn và notebook local .
VPN và mạng riêng
Mạng riêng là mạng chỉ có sẵn cho một số server hoặc user nhất định. VPN, hay mạng riêng ảo, là một cách để tạo kết nối an toàn giữa các máy tính từ xa và trình bày kết nối như thể nó là một mạng riêng local . Điều này cung cấp một cách để cấu hình các dịch vụ của bạn như thể chúng ở trên một mạng riêng và kết nối các server từ xa qua các kết nối an toàn.
Ví dụ: mạng riêng DigitalOcean cho phép liên lạc biệt lập giữa các server trong cùng một account hoặc group trong cùng khu vực .
Làm thế nào để họ tăng cường bảo mật?
Sử dụng mạng riêng tư thay vì mạng công cộng để liên lạc nội bộ hầu như luôn được ưu tiên hơn khi có sự lựa chọn giữa cả hai. Tuy nhiên, vì những user khác trong trung tâm dữ liệu có thể truy cập vào cùng một mạng, bạn vẫn phải thực hiện các biện pháp bổ sung để bảo mật thông tin liên lạc giữa các server của bạn .
Sử dụng VPN hiệu quả là một cách để vạch ra một mạng riêng tư mà chỉ server của bạn mới có thể nhìn thấy. Thông tin liên lạc sẽ hoàn toàn riêng tư và an toàn. Các ứng dụng khác có thể được cấu hình để chuyển lưu lượng của chúng qua giao diện ảo mà phần mềm VPN hiển thị. Bằng cách này, chỉ những dịch vụ được khách hàng sử dụng trên internet công cộng mới cần được hiển thị trên mạng công cộng.
Làm thế nào khó thực hiện điều này?
Việc sử dụng mạng riêng trong một trung tâm dữ liệu có khả năng này cũng đơn giản như việc bật giao diện trong quá trình tạo server và cấu hình các ứng dụng cũng như firewall của bạn để sử dụng mạng riêng. Lưu ý các mạng riêng trong toàn trung tâm dữ liệu chia sẻ không gian với các server khác sử dụng cùng một mạng.
Đối với VPN, cài đặt ban đầu có liên quan nhiều hơn một chút, nhưng mức độ bảo mật tăng lên đáng giá đối với hầu hết các trường hợp sử dụng. Mỗi server trên VPN phải có dữ liệu cấu hình và bảo mật được chia sẻ cần thiết để cài đặt kết nối an toàn được cài đặt và cấu hình . Sau khi VPN chạy , các ứng dụng phải được cấu hình để sử dụng tunnel VPN. Để tìm hiểu về cách cài đặt VPN để kết nối cơ sở hạ tầng của bạn một cách an toàn, hãy xem hướng dẫn OpenVPN của ta .
Cơ sở hạ tầng public key và mã hóa SSL / TLS
Cơ sở hạ tầng public key , hoặc PKI, đề cập đến một hệ thống được thiết kế để tạo, quản lý và xác thực các certificate để nhận dạng các cá nhân và mã hóa giao tiếp. Chứng chỉ SSL hoặc TLS được dùng để xác thực các thực thể khác nhau với nhau. Sau khi xác thực, chúng cũng được dùng để cài đặt giao tiếp được mã hóa.
Làm thế nào để họ tăng cường bảo mật?
Việc cài đặt cơ quan cấp certificate (CA) và quản lý certificate cho server của bạn cho phép mỗi thực thể trong cơ sở hạ tầng của bạn xác thực danh tính của các thành viên khác và mã hóa lưu lượng truy cập của họ. Điều này có thể ngăn chặn các cuộc tấn công man-in-the-middle trong đó kẻ tấn công bắt chước một server trong cơ sở hạ tầng của bạn để chặn lưu lượng truy cập.
Mỗi server có thể được cấu hình để tin cậy một cơ quan cấp certificate tập trung. Sau đó, bất kỳ certificate nào mà cơ quan có thẩm quyền ký đều có thể được tin cậy hoàn toàn. Nếu các ứng dụng và giao thức bạn đang sử dụng để giao tiếp hỗ trợ mã hóa TLS / SSL, thì đây là cách mã hóa hệ thống của bạn mà không cần tunnel VPN (vốn cũng thường sử dụng SSL nội bộ).
Làm thế nào khó thực hiện điều này?
Việc cấu hình cơ quan cấp certificate và cài đặt phần còn lại của cơ sở hạ tầng public key có thể đòi hỏi khá nhiều nỗ lực ban đầu. Hơn nữa, việc quản lý certificate có thể tạo thêm gánh nặng quản trị khi các certificate mới cần được tạo, ký hoặc thu hồi.
Đối với nhiều user , việc triển khai cơ sở hạ tầng public key chính thức sẽ có ý nghĩa hơn khi nhu cầu cơ sở hạ tầng của họ tăng lên. Bảo mật thông tin liên lạc giữa các thành phần bằng cách sử dụng VPN có thể là một biện pháp ngăn cách tốt cho đến khi bạn đạt đến điểm mà PKI xứng đáng với chi phí quản lý bổ sung.
Nếu bạn muốn tạo tổ chức phát hành certificate của riêng mình, bạn có thể tham khảo một trong các hướng dẫn Cách cài đặt và cấu hình tổ chức phát hành certificate (CA) của ta tùy thuộc vào bản phân phối Linux mà bạn đang sử dụng.
Hệ thống kiểm tra file và phát hiện xâm nhập
Kiểm tra file là quá trình so sánh hệ thống hiện tại với bản ghi của file và đặc điểm file của hệ thống khi nó ở trạng thái tốt. Điều này được sử dụng để phát hiện các thay đổi đối với hệ thống có thể đã được cho phép.
Hệ thống phát hiện xâm nhập, hay IDS, là một phần mềm giám sát hệ thống hoặc mạng để tìm hoạt động trái phép. Nhiều triển khai IDS dựa trên server sử dụng kiểm tra file như một phương pháp kiểm tra xem hệ thống đã thay đổi hay chưa.
Làm thế nào để họ tăng cường bảo mật?
Tương tự như kiểm tra mức dịch vụ ở trên, nếu bạn thực sự nghiêm túc về việc đảm bảo một hệ thống an toàn, sẽ rất hữu ích để có thể thực hiện kiểm tra mức file đối với hệ thống của bạn. Việc này có thể được administrator thực hiện định kỳ hoặc là một phần của quy trình tự động trong IDS.
Những chiến lược này là một số cách duy nhất để chắc chắn rằng hệ thống file của bạn không bị thay đổi bởi một số user hoặc quy trình. Vì nhiều lý do, những kẻ xâm nhập thường muốn ẩn để chúng có thể tiếp tục khai thác server trong một khoảng thời gian dài. Họ có thể thay thế các file binary bằng các version bị xâm phạm. Thực hiện kiểm tra hệ thống file sẽ cho bạn biết nếu có các file nào đã bị thay đổi, cho phép bạn tự tin vào tính toàn vẹn của môi trường server của bạn .
Làm thế nào khó thực hiện điều này?
Thực hiện IDS hoặc tiến hành kiểm tra file có thể là một quá trình khá chuyên sâu. Cấu hình ban đầu liên quan đến việc thông báo cho hệ thống kiểm tra về bất kỳ thay đổi không chuẩn nào bạn đã thực hiện đối với server và xác định các đường dẫn cần được loại trừ để tạo kết quả đọc đường cơ sở.
Nó cũng làm cho các hoạt động hàng ngày tham gia nhiều hơn. Nó làm phức tạp các thủ tục cập nhật vì bạn cần phải kiểm tra lại hệ thống trước khi chạy các bản cập nhật và sau đó tạo lại đường cơ sở sau khi chạy bản cập nhật để nắm bắt các thay đổi đối với các version phần mềm. Bạn cũng cần phải tải các báo cáo đến một vị trí khác để kẻ xâm nhập không thể thay đổi việc kiểm tra để che dấu vết của chúng.
Mặc dù điều này có thể làm tăng tải quản trị của bạn, nhưng có thể kiểm tra hệ thống của bạn với một bản sao tốt đã biết là một trong những cách duy nhất đảm bảo rằng các file không bị thay đổi mà bạn không biết. Một số hệ thống phát hiện xâm nhập / kiểm tra file phổ biến là Tripwire và Aide .
Môi trường thực thi biệt lập
Môi trường thực thi cô lập đề cập đến bất kỳ phương thức nào trong đó các thành phần riêng lẻ được chạy trong không gian dành riêng của chúng.
Điều này nghĩa là tách các thành phần ứng dụng rời rạc của bạn thành các server của riêng chúng hoặc có thể đề cập đến việc cấu hình dịch vụ của bạn để hoạt động trong môi trường chroot
hoặc containers . Mức độ cô lập phụ thuộc nhiều vào yêu cầu của ứng dụng và thực tế của cơ sở hạ tầng của bạn.
Làm thế nào để họ tăng cường bảo mật?
Việc cô lập các quy trình của bạn thành các môi trường thực thi riêng lẻ giúp tăng khả năng cô lập bất kỳ vấn đề bảo mật nào có thể phát sinh. Tương tự như cách vách ngăn và khoang có thể giúp ngăn chặn các vi phạm thân tàu trong tàu, việc tách các bộ phận riêng lẻ của bạn có thể hạn chế quyền truy cập của kẻ xâm nhập vào các phần khác của cơ sở hạ tầng của bạn.
Làm thế nào khó thực hiện điều này?
Tùy thuộc vào loại ngăn chặn bạn chọn, việc cô lập các ứng dụng của bạn có thể có mức độ phức tạp khác nhau. Bằng cách đóng gói các thành phần riêng lẻ của bạn trong các container , bạn có thể nhanh chóng đạt được một số biện pháp cô lập, nhưng lưu ý Docker không coi việc chứa nó là một tính năng bảo mật.
Việc cài đặt môi trường chroot
cho mỗi phần cũng có thể cung cấp một số mức độ cô lập, nhưng đây cũng không phải là một phương pháp cô lập tuyệt vời vì thường có nhiều cách để thoát ra khỏi môi trường chroot
. Di chuyển các thành phần đến các máy chuyên dụng là mức độ cách ly tốt nhất và trong nhiều trường hợp có thể là ít phức tạp nhất, nhưng phải chịu thêm chi phí do cần phải có thêm máy.
Kết luận
Các chiến lược được nêu trong hướng dẫn này là tổng quan về một số bước mà bạn có thể thực hiện để cải thiện tính bảo mật của hệ thống của bạn .Điều quan trọng là phải nhận ra rằng các biện pháp bảo mật càng giảm hiệu quả khi bạn chờ thực hiện chúng. Do đó, bảo mật không phải là một suy nghĩ sau và phải được thực hiện khi bạn cung cấp cơ sở hạ tầng lần đầu tiên. Khi bạn đã có cơ sở an toàn để xây dựng, bạn có thể bắt đầu triển khai các dịch vụ và ứng dụng của bạn với một số đảm bảo chúng đang chạy trong môi trường an toàn theo mặc định.
Ngay cả với một môi trường bắt đầu an toàn, hãy nhớ rằng bảo mật là một quá trình liên tục và lặp đi lặp lại. An ninh tốt đòi hỏi một tư duy cảnh giác và nhận thức thường xuyên. Hãy luôn tự hỏi bản thân xem tác động bảo mật của bất kỳ thay đổi nào có thể là gì và bạn có thể thực hiện những bước nào đảm bảo rằng bạn luôn tạo các cấu hình và môi trường mặc định an toàn cho phần mềm của bạn .
Các tin liên quan
Các biện pháp bảo mật được đề xuất để bảo vệ server của bạn2020-06-30
Cách thực hiện kiểm tra bảo mật với Lynis trên Ubuntu 16.04
2017-04-28
Cách giám sát bảo mật hệ thống của bạn với osquery trên Ubuntu 16.04
2017-02-15
Cách cài đặt và cấu hình thông báo bảo mật OSSEC trên Ubuntu 14.04
2014-12-23
Cách sử dụng OpenVAS để kiểm tra tính bảo mật của hệ thống từ xa trên Ubuntu 12.04
2014-01-27