7 biện pháp an ninh để bảo vệ máy chủ của bạn

Sự giới thiệu

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

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

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

Sơ đồ SSH

Để cấu hình xác thực khoá 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 đến máy chủ, máy chủ sẽ yêu cầu bằng chứng rằng các khách hàng có chìa khóa riêng tư liên quan. Các khách hàng SSH sẽ sử dụng khóa riêng để đáp ứng một cách để chứng minh quyền sở hữu của khóa riêng. 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. Để tìm hiểu thêm về cách các phím SSH làm việc, kiểm tra bài viết của chúng tôi ở đây.
Như thế nào Họ Tăng cường an ninh?

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

Thiết lập xác thực khoá SSH cho phép bạn vô hiệu hóa xác thực dựa trên mật khẩu. Phím SSH thường có nhiều hơn các bit dữ liệu hơn so với một mật khẩu, nghĩa là có nhiều hơn một cách đáng kể các kết hợp có thể là một 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ể bẻ khóa bằng phần cứng máy tính hiện đại chỉ đơn giản bởi vì họ sẽ đòi hỏi quá nhiều thời gian để chạy qua các trận đấu có thể.
Làm thế nào là khó khăn này nhằm thực hiện?

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

Để tìm hiểu về cách thiết lập các phím, hãy làm theo hướng dẫn này. Nếu bạn vẫn cảm thấy rằng bạn cần phải xác thực mật khẩu, hãy xem xét việc thực hiện một giải pháp như fail2ban trên các 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 của phần mềm (hoặc phần cứng) điều khiển dịch vụ nào được tiếp xúc với mạng. Điều này có nghĩa là ngăn chặn hoặc hạn chế quyền truy cập vào tất cả các cổng ngoại trừ những người đó phải được công bố công khai.

Sơ đồ Firewall

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

Tường lửa có thể đảm bảo rằng truy cập vào phần mềm của bạn bị hạn chế theo các nhóm trên. Các dịch vụ công cộng có thể được bỏ ngỏ và có sẵn cho tất cả mọi người và các dịch vụ tư nhân có thể được giới hạn 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 mà không được sử dụng, truy cập bị chặn hoàn toàn trong hầu hết các cấu hình.
Như thế nào Họ Tăng cường an ninh?

Firewall là một phần thiết yếu của bất kỳ cấu hình máy chủ. Thậm chí nếu các dịch vụ của bạn tự thực hiện các tính năng bảo mật hoặc hạn chế đến giao diện bạn muốn họ để chạy trên một bức tường lửa phục vụ như một lớp bảo vệ.

Một bức tường lửa được cấu hình đúng cách sẽ hạn chế quyền truy cập vào tất cả mọi thứ trừ các dịch vụ cụ thể mà bạn cần để ngỏ. Phơi bày chỉ một vài phần của phần mềm làm giảm bề mặt tấn công của máy chủ của bạn, hạn chế các thành phần đó là dễ bị bóc lột.
Làm thế nào là khó khăn này nhằm thực hiện?

Có rất nhiều các bức tường lửa có sẵn cho các hệ thống Linux, một số trong đó có một đường cong học tập dốc hơn so với những người khác. Nói chung mặc dù, thiết lập tường lửa chỉ cần mất vài phút và sẽ chỉ cần phải 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 những thay đổi trong những dịch vụ được cung cấp trên máy tính của bạn.

Một sự 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 firewall CSF.
VPN và Mạng riêng

Mạng riêng là mạng mà chỉ có sẵn cho các máy chủ hoặc người sử dụng nhất định. Ví dụ, trong DigitalOcean, mạng tin có sẵn ở một số vùng như một mạng lưới rộng trung tâm dữ liệu.

Một 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 các kết nối như thể nó là một mạng riêng của địa phương. Điều này cung cấp một cách để cấu hình dịch vụ của bạn như thể họ đang ở trên một mạng riêng và kết nối các máy chủ từ xa qua kết nối an toàn.

Như thế nào Họ Tăng cường an ninh?

Bằng cách sử dụng tin thay vì mạng công cộng để liên lạc 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 người. Tuy nhiên, kể từ khi 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 thực hiện thêm các biện pháp để bảo đảm thông tin liên lạc giữa các máy chủ của bạn.

Sử dụng một VPN là, có hiệu quả, một cách để vạch ra một mạng riêng mà chỉ có các máy chủ của bạn có thể nhìn thấy. Truyền thông sẽ được hoàn toàn tư nhân và an toàn. Các ứng dụng khác có thể được cấu hình để vượt qua lưu lượng truy cập của họ trong giao diện ảo mà các phần mềm VPN cho thấy nhiều. Bằng cách này, các dịch vụ chỉ có nghĩa là để được tiêu thụ bởi khách hàng trên internet công cộng cần phải được tiếp xúc trên các mạng công cộng.
Làm thế nào là khó khăn này nhằm thực hiện?

Bằng cách 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 kích hoạt giao diện trong quá trình tạo máy chủ của bạn và cấu hình ứng dụng và tường lửa của bạn để sử dụng các mạng riêng. Hãy nhớ rằng trung tâm dữ liệu rộng không gian mạng chia sẻ tin với các máy chủ khác sử dụng cùng một mạng.

Đối với VPN, các thiết lập ban đầu là tham gia nhiều hơn một chút, nhưng an ninh gia tăng là giá trị nó cho hầu hết các trường hợp sử dụng. Mỗi máy chủ trên một VPN phải được cài đặt và cấu hình bảo mật dữ liệu và cấu hình chia sẻ cần thiết để thiết lập kết nối an toàn. Sau khi VPN là lên và chạy, ứng dụng này phải được cấu hình để sử dụng các đường hầm VPN. Để tìm hiểu về việc thiết lập một VPN để kết nối một cách an toàn cơ sở hạ tầng của bạn, hãy kiểm tra hướng dẫn của chúng tôi OpenVPN.
Cơ sở hạ tầng khóa công khai và SSL / TLS Encryption

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 nhận giấy chứng nhận để xác định cá nhân và mã hoá thông tin. Giấy chứng nhận SSL hoặc TLS có thể được sử dụng để xác thực các thực thể khác nhau với nhau. Sau khi xác thực, họ cũng có thể được sử dụng để thiết lập giao tiếp được mã hóa.

Sơ đồ SSL
Như thế nào Họ Tăng cường an ninh?

Thiết lập một cơ quan chứng nhận và quản lý giấy chứng nhận cho các máy chủ của bạn cho phép mỗi thực thể trong cơ sở hạ tầng của bạn để xác nhận nhận 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 mô phỏng một máy chủ cơ sở hạ tầng của bạn để ngăn chặn giao thông.

Mỗi máy chủ có thể được cấu hình để tin tưởng vào một cơ quan chứng nhận tập trung. Sau đó, bất kỳ giấy chứng nhận rằng những dấu hiệu chính quyền có thể được mặc nhiên tin cậy. Nếu các ứng dụng và giao thức mà bạn đang sử dụng để giao tiếp hỗ trợ mã hóa TLS / SSL, đây là một cách mã hóa hệ thống của bạn mà không có sự cần thiết của một đường hầm VPN (mà cũng thường sử dụng SSL nội bộ).
Làm thế nào là khó khăn này nhằm thực hiện?

Cấu hình một cơ quan chứng nhận và thiết lập các 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, chứng chỉ quản lý có thể tạo ra một gánh nặng hành chính bổ sung khi cần giấy chứng nhận mới được tạo ra, ký kết, hoặc thu hồi.

Đối với nhiều người sử dụng, thực hiện một cơ sở hạ tầng khóa công khai chính thức sẽ có ý nghĩa hơn là nhu cầu cơ sở hạ tầng của họ phát triển. Đảm bảo 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 tốt khoảng cách dừng cho đến khi bạn đạt đến một điểm mà PKI là giá trị các chi phí quản lý thêm.
Dịch vụ Kiểm toán

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 an ninh của bạn. Tuy nhiên, một phần lớn của an ninh được phân tích hệ thống của bạn, hiểu được bề mặt tấn công có sẵn, và khóa xuống các thành phần như 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ụ đang chạy trên máy chủ trong cơ sở hạ tầng của bạn. Thông thường, các hệ điều hành mặc định được cấu hình để chạy dịch vụ nhất định lúc khởi động. Cài đặt thêm các phần mềm đôi khi có thể kéo trong phụ thuộc mà cũng được tự động bắt đầu.

Sơ đồ kiểm toán Dịch vụ

Kiểm toán 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, mà họ đang sử dụng cổng giao tiếp, và những gì các giao thức được chấp nhận. Thông tin này có thể giúp bạn cấu hình các thiết lập tường lửa của bạn.
Như thế nào Nó Tăng cường an ninh?

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

Một khi bạn có một ý tưởng tốt về những gì dịch vụ mạng đang chạy trên máy tính của bạn, 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 người là:

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

Đây là loại hình kiểm toán dịch vụ nên được tiêu chuẩn thực hành khi cấu hình bất kỳ máy chủ mới trong cơ sở hạ tầng của bạn.
Làm thế nào là khó khăn này nhằm thực hiện?

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

sudo netstat -plunt

You will see output that looks like this:

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à Proto, Local Address, và tên PID / Chương trình. Nếu địa chỉ là 0.0.0.0, sau đó dịch vụ là chấp nhận các kết nối trên tất cả các giao diện.
Kiểm toán và tập tin hệ thống phát hiện xâm nhập

Kiểm toán tập là quá trình so sánh các hệ thống hiện tại với một kỷ lục của các tập tin và đặc điểm của hệ thống tập tin của bạn khi nó là một nhà nước biết đến-tốt. Điều này được sử dụng để phát hiện những thay đổi trong hệ thống có thể được ủy quyền.

Sơ đồ kiểm toán tập

Một hệ thống phát hiện xâm nhập, hoặc IDS, là một phần của phần mềm giám sát một hệ thống hoặc mạng lưới hoạt động trái phép. Nhiều host-based IDS triển khai sử dụng kiểm toán tập tin như là một phương pháp kiểm tra xem hệ thống đã thay đổi.
Như thế nào Họ Tăng cường an ninh?

Tương tự như các dịch vụ kiểm toán cấp 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 file-level 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 là một phần của một quá trình tự động hóa trong một IDS.

Những chiến lược này là một số trong những cách duy nhất để hoàn toàn 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 người dùng hoặc quá trình. Vì nhiều lý do, những kẻ xâm nhập thường muốn vẫn còn ẩn để họ có thể tiếp tục khai thác các máy chủ trong một thời gian dài của thời gian. Họ có thể thay thế tập tin nhị phân với các phiên bản bị tổn hại. Thực hiện kiểm toán của các file hệ thống sẽ cho bạn biết nếu có bất kỳ các tập tin đã bị thay đổi, cho phép bạn tự tin trong sự toàn vẹn của môi trường máy chủ của bạn.
Làm thế nào là khó khăn này nhằm thực hiện?

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

Nó cũng làm cho hoạt động ngày-to-ngày tham gia 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 bản cập nhật và sau đó tái tạo lại đường cơ sở sau khi chạy bản cập nhật để bắt những thay đổi trong phiên bản phần mềm. Bạn cũng sẽ cần phải giảm tải các báo cáo cho một vị trí khác để cho một kẻ xâm nhập không thể làm thay đổi kiểm toán để xóa mọi dấu vết của họ.

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

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

Sơ đồ môi trường riêng biệt

Điều này có thể có nghĩa là tách ra thành phần ứng dụng riêng biệt của bạn vào máy chủ của họ hoặc có thể tham khảo cấu hình dịch vụ của bạn để hoạt động trong môi trường chroot hoặc container. Mức độ cách ly phụ thuộc rất nhiều vào yêu cầu của ứng dụng và những thực tế của cơ sở hạ tầng của bạn.
Như thế nào Họ Tăng cường an ninh?

Cô lập các quy trình của bạn vào môi trường thực hiện cá nhân làm tăng khả năng của bạn để cô lập bất kỳ vấn đề bảo mật có thể phát sinh. Tương tự như cách vách ngăn và có thể giúp đỡ đều có sai lầm trong thân tàu, tách các thành phần cá nhân của bạn có thể giới hạn truy cập mà một kẻ xâm nhập có để phần khác của cơ sở hạ tầng của bạn.
Làm thế nào là khó khăn này nhằm thực hiện?

Tùy thuộc vào loại bạn chọn ngăn chặn, 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 cá nhân 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 nó một Containerization tính năng bảo mật.

Thiết lập một môi trường chroot cho mỗi mảnh 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 hết sức rõ ràng của cô lập như thường có cách phá vỡ ra một môi trường chroot. Di chuyển các thành phần cho máy móc chuyên dụng là mức tốt nhất của cô lập, và trong nhiều trường hợp có thể là đơn giản nhất, nhưng có thể chi phí nhiều hơn cho các máy khác.
Phần kết luận

Các chiến lược nêu trên chỉ là một số trong những phụ kiện bạn có thể làm để cải thiện an ninh của hệ thống của bạn. Điều quan trọng là nhận ra rằng, trong khi nó là muộn còn hơn không, các biện pháp an ninh giảm trong hiệu quả của các bạn cò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 mà bạn đang cung cấp.