7 biện pháp cấp thiết cho các ứng dụng bảo mật server

posted in: Tin Máy Chủ | 0

Khi thiết lập cơ sở hạ tầng, việc thiết lập và chạy các ứng dụng bảo mật server thường sẽ là mối quan tâm chính của bạn. Tuy nhiên, làm cho các ứng dụng bảo mật server của bạn hoạt động chính xác mà không cần giải quyết các nhu cầu bảo mật của cơ sở hạ tầng của bạn có thể có hậu quả tàn phá.

Trong hướng dẫn này, chúng tôi sẽ nói về một số thực hành bảo mật cơ bản tốt nhất để cấu hình trước hoặc khi bạn thiết lập các ứng dụng bảo mật server của mình.

Khóa SSH

Khóa SSH là một cặp khóa mã hóa có thể được sử dụng để xác thực với máy chủ SSH thay thế cho thông tin đăng nhập dựa trên mật khẩu. Cặp khóa công khai và riêng tư được tạo trước khi xác thực. Khóa riêng tư được giữ bí mật và an toàn bởi người dùng, trong khi khóa công khai có thể được chia sẻ với bất kỳ ai.

7 biện pháp cấp thiết cho các ứng dụng bảo mật server

Để cấu hình xác thực khóa SSH, bạn phải đặt khóa công khai của người dùng trên máy chủ trong một thư mục đặc biệt. Khi người dùng kết nối với máy chủ, máy chủ sẽ yêu cầu bằng chứng rằng máy khách có khóa riêng liên quan. Ứng dụng khách SSH sẽ sử dụng khóa riêng để phản hồi theo cách chứng minh quyền sở hữu khóa riêng tư. Sau đó, máy chủ sẽ cho phép khách hàng kết nối mà không cần mật khẩu.

Làm thế nào để cài đặt các ứng dụng bảo mật server để tăng cường an ninh?

Với SSH, bất kỳ loại xác thực nào, bao gồm xác thực mật khẩu, đều được mã hóa hoàn toàn. Tuy nhiên, khi đăng nhập dựa trên mật khẩu được cho phép, người dùng độc hại có thể liên tục cố gắng truy cập vào máy chủ. Với sức mạnh tính toán hiện đại, có thể đạt được mục nhập vào máy chủ bằng cách tự động hóa các lần thử này và thử kết hợp sau khi kết hợp cho đến khi tìm thấy đúng mật khẩu.

Thiết lập xác thực khóa SSH cho phép bạn tắt xác thực dựa trên mật khẩu. Khóa SSH thường có nhiều bit dữ liệu hơn mật khẩu, có nghĩa là có nhiều kết hợp có thể hơn đáng kể mà kẻ tấn công sẽ phải chạy qua. Nhiều thuật toán khóa SSH được coi là không thể ngăn chặn bởi phần cứng máy tính hiện đại đơn giản chỉ vì chúng đòi hỏi quá nhiều thời gian để chạy qua các kết quả phù hợp.

Điều này khó thực hiện như thế nào?

Khóa SSH rất dễ cài đặt và là cách được khuyến nghị để đăng nhập vào bất kỳ môi trường máy chủ Linux hoặc Unix nào từ xa. Một cặp khóa SSH có thể được tạo trên máy của bạn và bạn có thể chuyển khóa công khai tới máy chủ của mình trong vòng vài phút.

Nếu bạn vẫn cảm thấy rằng bạn cần xác thực mật khẩu, hãy xem xét triển khai một giải pháp như fail2ban trên máy chủ của bạn để hạn chế đoán mật khẩu.

Tường lửa

Tường lửa là một phần mềm (hoặc phần cứng) kiểm soát những dịch vụ nào được tiếp xúc với mạng. Điều này có nghĩa là chặn hoặc hạn chế quyền truy cập vào tất cả các cổng ngoại trừ các cổng cần được cung cấp công khai.

7 biện pháp cấp thiết cho các ứng dụng bảo mật server

Trên một máy chủ điển hình, một số dịch vụ có thể chạy theo mặc định. Chúng có thể được phân loại thành các nhóm 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. Một ví dụ điển hình cho việc này là máy chủ web có thể cho phép truy cập vào trang web của bạn.
  • Các dịch vụ riêng tư chỉ được truy cập bởi một nhóm tài khoản được ủy quyền hoặc từ một số vị trí nhất định. Một ví dụ về điều này có thể là một bảng điều khiển cơ sở dữ liệu.
  • Các dịch vụ nội bộ chỉ nên truy cập từ bên trong máy chủ mà không cần phải đưa dịch vụ ra thế giới bên ngoài. Ví dụ, đây có thể là một cơ sở dữ liệu chỉ chấp nhận các kết nối cục bộ.

Tường lửa có thể đảm bảo rằng 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. Các dịch vụ công cộng có thể được mở và sẵn sàng cho tất cả mọi người và các dịch vụ cá nhân có thể bị hạn chế dựa trên các tiêu chí khác nhau. Dịch vụ nội bộ có thể được thực hiện hoàn toàn không thể tiếp cận với thế giới bên ngoài. Đố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 để họ tăng cường an ninh?

Tường lửa là một phần thiết yếu của bất kỳ cấu hình máy chủ nào. Ngay cả khi bản thân dịch vụ của bạn thực hiện 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 trên đó, một bức tường lửa phục vụ như một lớp bảo vệ bổ sung.

Tường lửa được định 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ể bạn cần duy trì mở. Chỉ phơi bày một vài phần mềm làm giảm bề mặt tấn công của máy chủ, hạn chế các thành phần dễ bị khai thác.

Điều này khó thực hiện như thế nào?

Có rất nhiều tường lửa có sẵn cho các hệ thống Linux, một số trong đó có đường cong học tập dốc hơn so với các hệ thống khác. Nói chung, việc thiết lập tường lửa chỉ mất vài phút và sẽ chỉ cần xảy ra trong quá trình thiết lập ban đầu của máy chủ hoặc khi bạn thực hiện các thay đổi về dịch vụ nào được cung cấp trên máy tính của mình.

Một lựa chọn đơn giản là tường lửa UFW. Các tùy chọn khác là sử dụng iptables hoặc tường lửa CSF.

VPN và mạng riêng

Mạng riêng là các mạng chỉ khả dụng cho một số máy chủ hoặc người dùng nhất định. Ví dụ: các mạng riêng DigitalOcean cho phép liên lạc riêng biệt giữa các máy chủ trong cùng một tài khoản hoặc nhóm trong cùng một khu vực.

VPN, hoặc mạng riêng ảo, là một cách để tạo các 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 nội bộ. Đ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 đang ở trên một mạng riêng và kết nối các máy chủ từ xa qua các kết nối an toàn.

7 biện pháp cấp thiết cho các ứng dụng bảo mật server

Làm thế nào để họ tăng cường an ninh?

Sử dụng riêng tư thay vì mạng công cộng cho truyền thông nội bộ là hầu như luôn luôn thích hợp hơn cho sự lựa chọn giữa hai. Tuy nhiên, vì những người dùng 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 triển khai các biện pháp bổ sung để bảo mật thông tin liên lạc giữa các máy chủ của bạn.

Sử dụng VPN, một cách hiệu quả, một cách để vạch ra một mạng riêng mà chỉ các máy chủ của bạn mới có thể nhìn thấy. Giao tiếp sẽ hoàn toàn riêng tư và an toàn. Các ứng dụng khác có thể được định cấu hình để chuyển lưu lượng truy cập 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 tiêu thụ trên internet công cộng cần phải được tiếp xúc trên mạng công cộng.

Điều này khó thực hiện như thế nào?

Sử dụng các mạng riêng trong một trung tâm dữ liệu có khả năng này đơn giản như cho phép giao diện trong quá trình tạo máy chủ của bạn và cấu hình các ứng dụng và tường lửa của bạn để sử dụng mạng riêng. Hãy nhớ rằng các mạng riêng tư trên toàn trung tâm dữ liệu chia sẻ không gian với các máy chủ khác sử dụng cùng một mạng.

Đối với VPN, thiết lập ban đầu có liên quan nhiều hơn một chút, nhưng 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 máy chủ 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 để thiết lập kết nối an toàn được cài đặt và định cấu hình. Sau khi VPN được thiết lập và chạy, các ứng dụng phải được cấu hình để sử dụng đường hầm VPN.

Xem thêm: 8 Lý do để bạn lựa chọn Bảo mật cho server bằng KPI

Cơ sở hạ tầng khóa công khai và mã hóa SSL / TLS

Cơ sở hạ tầng khóa công khai 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 chứng chỉ để xác định cá nhân và mã hóa giao tiếp. Có thể sử dụng chứng chỉ SSL hoặc TLS để xác thực các thực thể khác nhau. Sau khi xác thực, chúng cũng có thể được sử dụng để thiết lập giao tiếp được mã hóa.

7 biện pháp cấp thiết cho các ứng dụng bảo mật server

Làm thế nào để họ tăng cường an ninh?

Việc thiết lập tổ chức phát hành chứng chỉ và quản lý chứng chỉ cho máy chủ của bạn cho phép mỗi pháp nhân trong cơ sở hạ tầng của bạn xác thực danh tính 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, nơi kẻ tấn công bắt chước một máy chủ trong cơ sở hạ tầng của bạn để chặn lưu lượng truy cập.

Mỗi máy chủ có thể được cấu hình để tin tưởng một cơ quan cấp chứng chỉ tập trung. Sau đó, bất kỳ chứng chỉ nào mà các dấu hiệu thẩm quyền 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 mã hóa TLS / SSL hỗ trợ, đây là cách mã hóa hệ thống của bạn mà không phải trả tiền cho đường hầm VPN (thường sử dụng SSL nội bộ).

Điều này khó thực hiện như thế nào?

Việc định cấu hình tổ chức phát hành chứng chỉ và thiết lập phần còn lại của cơ sở hạ tầng khóa công khai có thể liên quan đến khá nhiều nỗ lực ban đầu. Hơn nữa, quản lý chứng chỉ có thể tạo thêm gánh nặng quản trị khi các chứng chỉ mới cần được tạo, ký hoặc thu hồi.

Đối với nhiều người dùng, việc triển khai cơ sở hạ tầng khóa công khai 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 thông tin liên lạc giữa các thành phần sử dụng VPN có thể là một biện pháp khoảng cách dừng tốt cho đến khi bạn đạt đến điểm mà PKI đáng giá thêm chi phí quản lý.

Kiểm tra dịch vụ

Cho đến bây giờ, chúng tôi đã thảo luận về một số công nghệ mà bạn có thể thực hiện để cải thiện bảo mật của mình. Tuy nhiên, một phần lớn của bảo mật là phân tích hệ thống của bạn, hiểu các bề mặt tấn công sẵn có và khóa các thành phần tốt nhất có thể.

Kiểm toán dịch vụ là một quá trình khám phá những dịch vụ nào đang chạy trên các máy chủ trong cơ sở hạ tầng của bạn. Thông thường, hệ điều hành mặc định được cấu hình để chạy các dịch vụ nhất định khi khởi động. Cài đặt phần mềm bổ sung đôi khi có thể kéo các phụ thuộc cũng được tự động khởi động.

7 biện pháp cấp thiết cho các ứng dụng bảo mật server

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 hệ thống của bạn, các cổng nào họ đang sử dụng để giao tiếp và các giao thức nào được chấp nhận. Thông tin này có thể giúp bạn định cấu hình cài đặt tường lửa của mình.

Làm thế nào nó tăng cường an ninh?

Máy chủ bắt đầu nhiều quy trình cho mục đích nội bộ và xử lý các máy khách bên ngoài. Mỗi trong số này đại diện cho một bề mặt tấn công mở rộng cho người dùng độc hại. Càng có nhiều dịch vụ mà bạn đang chạy, cơ hội lớn hơn có một lỗ hổng tồn tại trong phần mềm có thể truy cập của bạn.

Khi bạn có ý tưởng tốt về những dịch vụ mạng nào đang chạy trên máy của mình, bạn có thể bắt đầu phân tích các dịch vụ này. Một số câu hỏi mà bạn sẽ muốn tự hỏi mình cho mỗi câu hỏi là:

  • Dịch vụ này có nên chạy không?
  • Dịch vụ có đang chạy trên các giao diện mà nó không cần phải không? Nếu nó bị ràng buộc vào một IP duy nhất?
  • Các quy tắc tường lửa của bạn có được cấu trúc để cho phép lưu lượng truy cập hợp pháp vào dịch vụ này không?
  • Các quy tắc tường lửa của bạn có chặn lưu lượng truy cập không hợp lệ không?
  • Bạn có phương pháp nhận cảnh báo bảo mật về lỗ hổng cho từng dịch vụ này không?

Loại kiểm toán dịch vụ này phải là thực hành tiêu chuẩn khi định cấu hình bất kỳ máy chủ mới nào trong cơ sở hạ tầng của bạn.

Điều này khó thực hiện như thế nào?

Thực hiện kiểm toán dịch vụ cơ bản là cực kỳ đơn giản. Bạn có thể tìm ra dịch vụ nào đang lắng nghe các cổng trên mỗi giao diện bằng cách sử dụng netstatlệnh. Một ví dụ đơn giản cho thấy tên chương trình, PID và các địa chỉ được sử dụng để nghe lưu lượng TCP và UDP là:

sudo netstat -plunt

Bạn sẽ thấy đầu ra trông như thế này:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      887/sshd        
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      919/nginx       
tcp6       0      0 :::22                   :::*                    LISTEN      887/sshd        
tcp6       0      0 :::80                   :::*                    LISTEN      919/nginx

Các cột chính bạn cần phải ở lại chú ý đến là ProtoLocal Address, và PID/Program name. Nếu địa chỉ là 0.0.0.0, thì dịch vụ sẽ chấp nhận các kết nối trên tất cả các giao diện.

Kiểm tra tệp và hệ thống phát hiện xâm nhập

Kiểm tra tệp là quá trình so sánh hệ thống hiện tại với bản ghi các tệp và đặc điểm tệp của hệ thống của bạn khi nó là trạng thái đã biế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 ủy quyền.

7 biện pháp cấp thiết cho các ứng dụng bảo mật server

Một hệ thống phát hiện xâm nhập, hoặc IDS, là một phần mềm giám sát một hệ thống hoặc mạng cho hoạt động trái phép. Nhiều triển khai IDS dựa trên máy chủ sử dụng kiểm tra tệp 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 an ninh?

Tương tự như kiểm tra mức dịch vụ ở trên, nếu bạn nghiêm túc về việc đảm bảo một hệ thống an toàn, nó rất hữu ích để có thể thực hiện kiểm tra mức tệp của hệ thống của bạn. Điều này có thể được thực hiện định kỳ bởi người quản trị hoặc như 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 tập tin của bạn không bị thay đổi bởi một số người dùng hoặc một quá trình. Vì nhiều lý do, những kẻ xâm nhập thường muốn giữ bí mật để họ có thể tiếp tục khai thác máy chủ trong một khoảng thời gian dài. Họ có thể thay thế tệp nhị phân bằng các phiên bản bị xâm phạm. Việc kiểm tra hệ thống tập tin sẽ cho bạn biết nếu bất kỳ tập tin nào đã bị thay đổi, cho phép bạn tự tin về tính toàn vẹn của môi trường máy chủ của bạn.

Điều này khó thực hiện như thế nào?

Thực hiện một IDS hoặc tiến hành kiểm tra tập tin có thể là một quá trình khá chuyên sâu. Cấu hình ban đầu bao gồm thông báo cho hệ thống kiểm toán về bất kỳ thay đổi không chuẩn nào mà bạn đã thực hiện cho máy chủ và định nghĩa các đường dẫn cần được loại trừ để tạo ra một đọc cơ bản.

Nó cũng làm cho các hoạt động hàng ngày liên quan nhiều hơn. Nó phức tạp cập nhật các thủ tục như bạn sẽ cần phải kiểm tra lại hệ thống trước khi chạy 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 phiên bản phần mềm. Bạn cũng sẽ cần phải tải xuống các báo cáo đến một vị trí khác để kẻ xâm nhập không thể thay đổi kiểm toán để bao gồm các bản nhạc của họ.

Mặc dù điều này có thể làm tăng tải quản trị của bạn, nhưng việc kiểm tra hệ thống của bạn dựa trên bản sao đã biết là một trong những cách duy nhất để đảm bảo rằng các tệp không bị thay đổi mà bạn không biết. Một số hệ thống phát hiện kiểm tra / xâm nhập tập tin phổ biến là Tripwire và Aide .

Môi trường thực thi riêng biệt

Cô lập môi trường thực thi đề cập đến bất kỳ phương pháp nào trong đó các thành phần riêng lẻ được chạy trong không gian riêng của chúng.

7 biện pháp cấp thiết cho các ứng dụng bảo mật server

Điều này có nghĩa là việc tách riêng các thành phần ứng dụng rời rạc của bạn với máy chủ của riêng họ hoặc có thể tham khảo cấu hình các dịch vụ của bạn để hoạt động trong chrootmôi trường hoặc vùng chứa. Mức độ cô lập phụ thuộc rất nhiều vào các yêu cầu của ứng dụng của bạn 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 an ninh?

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ẻ sẽ làm 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à ngăn có thể chứa các lỗ hổng trên tàu, việc tách riêng các thành phần của bạn có thể hạn chế sự truy cập mà kẻ xâm nhập có tới các phần khác của cơ sở hạ tầng của bạn.

Điều này khó thực hiện như thế nào?

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ể tương đối đơn giản. Bằng cách đóng gói các thành phần riêng lẻ của bạn trong các thùng chứa, bạn có thể nhanh chóng đạt được một số biện pháp cách ly, nhưng lưu ý rằng Docker không xem xét việc đóng gói một tính năng bảo mật của nó.

Thiết lập một chrootmôi trường cho mỗi phần có thể cung cấp một số mức độ cô lập là tốt, nhưng điều này cũng không phải là phương pháp cách ly dễ dàng như thường có cách để phá vỡ ra khỏi một chrootmôi trường. Việc di chuyển các thành phần tới các máy chuyên dụng là mức cô lập tốt nhất, và trong nhiều trường hợp có thể là dễ nhất, nhưng có thể tốn nhiều hơn cho các máy bổ sung.

Phần kết luận

Các chiến lược được nêu ở trên chỉ là một số cải tiến mà bạn có thể thực hiện để cải thiện tính bảo mật cho hệ thống của mình. Điều quan trọng là nhận ra rằng, trong khi nó muộn hơn không bao giờ, các biện pháp an ninh giảm hiệu quả của họ lâu hơn bạn chờ đợi để thực hiện chúng. An ninh không thể là một suy nghĩ và phải được thực hiện ngay từ đầu cùng với các dịch vụ và ứng dụng bạn đang cung cấp.

Xem thêm: Thuê máy chủ giá rẻ hà nội

Bình luận