Tại sao tôi cần tường lửa nếu máy chủ của tôi được cấu hình tốt?


59

Tôi quản trị một số ít máy chủ dựa trên đám mây (VPS) cho công ty tôi làm việc.

Các máy chủ được cài đặt tối thiểu trên Ubuntu để chạy các bit của ngăn xếp LAMP / thu thập dữ liệu trong nước (rsync). Dữ liệu lớn nhưng không mang tính cá nhân, tài chính hoặc bất cứ thứ gì tương tự (nghĩa là không thú vị)

Rõ ràng ở đây mọi người mãi mãi hỏi về việc cấu hình tường lửa và như thế.

Tôi sử dụng một loạt các phương pháp để bảo mật các máy chủ, ví dụ (nhưng không giới hạn)

  • ssh trên các cổng không chuẩn; không gõ mật khẩu, chỉ các khóa ssh đã biết từ ips đã biết để đăng nhập, v.v.
  • https và shell bị hạn chế (rssh) thường chỉ từ các khóa / ips đã biết
  • máy chủ là tối thiểu, cập nhật và được vá thường xuyên
  • sử dụng những thứ như rkhunter, cfengine, lynis denyhosts vv để theo dõi

Tôi có nhiều kinh nghiệm về quản trị viên unix sys. Tôi tự tin Tôi biết những gì tôi đang làm trong các thiết lập của tôi. Tôi cấu hình tập tin / vv. Tôi chưa bao giờ cảm thấy một nhu cầu hấp dẫn để cài đặt những thứ như tường lửa: iptables, v.v.

Tạm gác lại vấn đề bảo mật vật lý của VPS.

Q? Tôi không thể quyết định liệu tôi có ngây thơ hay sự bảo vệ gia tăng mà fw có thể cung cấp đáng để nỗ lực học / cài đặt và độ phức tạp bổ sung (gói, tệp cấu hình, hỗ trợ có thể, v.v.) trên máy chủ.

Đến nay (chạm gỗ) Tôi chưa bao giờ gặp vấn đề gì với bảo mật nhưng tôi cũng không tự mãn về điều đó.



Bạn nên thử lại tại security.stackexchange.com
AviD

6
Hãy cho tôi địa chỉ IP của bạn và tôi sẽ chỉ cho bạn lý do tại sao bạn cần tường lửa.
GregD

Câu trả lời:


87

Tôi lưu ý rằng bạn đã thực hiện một công việc tuyệt vời khi buộc một số trình nền khác nhau và từ những gì bạn đã nói tôi nghĩ rằng bạn sẽ không gặp rắc rối thông qua các dịch vụ mà bạn đã bảo mật. Điều này vẫn khiến bạn rơi vào trạng thái "mọi thứ được cho phép ngoại trừ trạng thái mà tôi đã cấm" và bạn không thể thoát khỏi trạng thái đó bằng cách săn lùng daemon sau daemon và bảo vệ chúng từng cái một.

Một tường lửa được cấu hình để DENY ANY ANY theo mặc định sẽ chuyển bạn sang chế độ "mọi thứ đều bị cấm ngoại trừ chế độ hoạt động được phép" và tôi đã tìm thấy trong nhiều năm qua rằng chúng tốt hơn.

Ngay bây giờ, được cung cấp một người dùng hợp pháp có vỏ hợp pháp trên hệ thống của bạn, cô ấy có thể quyết định chạy một số trình nền không đặc quyền cục bộ để ủy quyền các yêu cầu web cho internet hoặc bắt đầu chia sẻ tệp trên cổng 4662 hoặc vô tình mở trình nghe bằng cách sử dụng -g với đường hầm cổng ssh, không hiểu nó làm gì; hoặc cài đặt sendmail có thể khiến bạn chạy MUA trên cổng 587 được cấu hình không đúng mặc dù tất cả công việc bạn đã thực hiện để bảo vệ thư gửi MTA trên cổng 25; hoặc một trăm lẻ một điều có thể xảy ra mà bỏ qua sự bảo mật cẩn thận và chu đáo của bạn chỉ đơn giản là vì chúng không có mặt khi bạn đang suy nghĩ cẩn thận về những gì nên cấm.

Bạn có nhìn thấy quan điểm của tôi không? Hiện tại, bạn đã nỗ lực rất nhiều để đảm bảo tất cả những điều bạn biết và có vẻ như họ sẽ không cắn bạn. Những gì có thể cắn bạn là những điều bạn không biết, hoặc thậm chí không có ngay bây giờ.

Một tường lửa mặc định để TỪNG BẤT CỨ BẤT CỨ NÀO là cách nói sysadmin rằng nếu có cái gì đó mới xuất hiện và mở ra một trình lắng nghe mạng trên máy chủ này, sẽ không ai có thể nói chuyện với nó cho đến khi tôi được phép rõ ràng .


Đó là một câu trả lời rất sâu sắc, đặc biệt là văn bản về việc lật từ "mọi thứ đều được phép ..." đến "mọi thứ đều bị cấm ..." Quan điểm của bạn cũng được thực hiện về daemon địa phương. Như thường lệ - tôi chắc chắn bạn sẽ đồng ý - mối nguy hiểm thường nằm ở "bên trong"
Aitch

12
(Aitch, nếu tôi có thể đoán trước một chút, hồ sơ của bạn gợi ý rằng bạn là người mới trên serverfault. Nghi thức địa phương là khi bạn hài lòng với câu trả lời, bạn chấp nhận nó, bằng cách nhấp vào phác thảo đánh dấu, nếu bộ nhớ phục vụ; Tất nhiên, nếu bạn đã biết điều này, hoặc bạn đang chờ xem liệu câu trả lời khác có tốt hơn không, thì điều đó cũng rất đúng và đúng, và hãy bỏ qua cho tôi. bạn hoàn toàn hài lòng với câu trả lời cho câu hỏi của mình, bạn chấp nhận nó.)
MadHatter

+1 @MatHatter - mô tả tốt về cách tường lửa có thể cung cấp bảo mật theo mặc định, thay vì lựa chọn.
Coops

Đó là một rủi ro được tính toán. Ít nhất là trên OpenBSD, cho phép pf thêm 35K dòng mã trong kernel, có thể có lỗi. Mặt khác, một từ chối mặc định - và tường lửa ghi nhật ký thích hợp - là tiền IDS lớn nhất có thể mua. Ngừng cố gắng sử dụng Snort để tìm kiếm những điều xấu: Bất cứ khi nào bất kỳ máy nào của bạn làm điều gì đó mà bạn không cho phép cụ thể, bạn sẽ được thông báo.
Alex Holst

14

Nguyên tắc tối thiểu đặc quyền. Một tường lửa giúp bạn đến đó. Nguyên tắc phòng thủ ở độ sâu. Một tường lửa cũng giúp bạn đến đó. Bất kỳ cấu hình được thiết kế tốt rõ ràng đều dựa vào hai cách này hay cách khác.

Một điều nữa là các máy chủ của bạn rất có thể sẽ là phần cứng hàng hóa hoặc phần cứng cụ thể để xử lý phần mềm máy chủ chạy trên hệ điều hành máy chủ tiêu chuẩn (Unix, NT, Linux). Đó là, họ không có phần cứng chuyên dụng để xử lý và lọc lưu lượng đến hiệu quả. Bạn có muốn máy chủ của mình xử lý mọi gói tin, gói ICMP hoặc quét cổng đa hướng có thể sắp tới không?

Nhiều khả năng những gì bạn muốn là cho máy chủ của bạn xử lý thực tế các yêu cầu chỉ một số cổng (80, 443, cổng ssl, cổng oracle 1521 điển hình của bạn, cổng rsync, v.v.) Vâng, tất nhiên, bạn thiết lập tường lửa phần mềm trên máy chủ chỉ nghe những cổng đó. Nhưng các NIC của bạn vẫn sẽ chịu nhiều lưu lượng không mong muốn (có thể là ác tính hoặc bình thường trong tổ chức của bạn.) Nếu các NIC của bạn bị cản trở, thì các đường dẫn mạng đi qua máy chủ của bạn (và có thể giữa các máy chủ của bạn và các máy khách bên trong và các kết nối tới các máy chủ và dịch vụ nội bộ khác.)

Không chỉ các NIC của bạn bị tấn công, tường lửa phần mềm của bạn cũng sẽ được tham gia vì nó phải kiểm tra từng gói hoặc datagram mà nó nhận được.

Mặt khác, tường lửa, đặc biệt là các tường ở các cạnh của mạng con (hoặc tách mạng con của bạn khỏi thế giới bên ngoài) có xu hướng là phần cứng chuyên dụng được chế tạo đặc biệt để xử lý loại âm lượng đó.

Bạn có thể bao quanh N số lượng máy chủ với số M tường lửa (với N >> M). Và bạn đặt phần cứng tường lửa của mình để đổ bất cứ thứ gì không được hướng vào các cổng cụ thể. Quét cổng, ICMP và crap khác là ra. Sau đó, bạn tinh chỉnh tường lửa phần mềm trong máy chủ của mình theo chức năng cụ thể của chúng.

Bây giờ bạn vừa giảm (nhưng không loại trừ) xác suất mất điện hoàn toàn, giảm nó thành phân vùng mạng hoặc thất bại một phần ở mức tồi tệ nhất. Và do đó, bạn đã tăng khả năng của hệ thống để sống sót sau một cuộc tấn công hoặc cấu hình sai.

Không có tường lửa vì máy chủ của bạn có cảm giác an toàn khi thắt dây an toàn khi lái xe ở tốc độ 120mph dưới tầm nhìn bằng không do sương mù. Nó không hoạt động theo cách đó.


4

Có nhiều cuộc tấn công mà bạn có thể chấp nhận được nếu bạn không có tường lửa thực hiện một số loại kiểm tra mức gói:

Ví dụ là gói cây thông Noel

http://en.wikipedia.org/wiki/Christmas_tree_packet

Các cuộc tấn công DDOS có thể được chạy trên hệ thống của bạn, một tường lửa (có thể bên ngoài, trước bất kỳ máy chủ nào của bạn) sẽ dừng / làm chậm / giết chết lưu lượng trước khi nó làm tê liệt máy chủ của bạn.

Chỉ bạn không có tài chính hoặc dữ liệu cá nhân trên máy chủ không có nghĩa là bạn sẽ không bị 'tổn thương'. Tôi chắc chắn rằng bạn trả tiền cho băng thông, hoặc sử dụng CPU hoặc bạn có tỷ lệ đo. Hãy tưởng tượng trong suốt một đêm (khi bạn đang ngủ) ai đó chạy lên đồng hồ của bạn (tôi đã thấy điều này xảy ra với các nhà cung cấp VOIP Switch, đánh vào ban đêm để TRIỆU PHÚT PHÚT giao thông, mà họ phải trả tiền hóa đơn).

Vì vậy, hãy thông minh, sử dụng bảo vệ nếu có, bạn KHÔNG HOÀN HẢO, cũng không phải là phần mềm. Nó chỉ an toàn cho đến khi khai thác tiếp theo được tìm thấy. ;)


2

Nếu bạn có thể thực thi một nguyên tắc đặc quyền tối thiểu với việc sử dụng tường lửa thì có lẽ bạn không cần nó. Theo quan điểm của tôi, việc xây dựng một hệ thống an toàn mà không cần sử dụng tường lửa đòi hỏi nhiều nỗ lực hơn và tôi khá lười biếng. Tại sao tôi phải hạn chế kết nối TCP bằng các công cụ khác và có thể nhiều tệp cấu hình khi tôi có thể tách các đặc quyền ở cấp truyền tải bằng một cấu hình duy nhất.


1
Điểm tốt về cấu hình đơn, ít lỗi hơn. Tôi đồng ý với việc lười biếng bất cứ nơi nào có thể! cengine đã loại bỏ một số sự phức tạp này đối với tôi một phần giảm thiểu vấn đề của nhiều tập tin cấu hình .... nhưng ... nó chỉ tốt như các quy tắc được viết trong khóa học. Vì vậy, bạn để hầu hết các tệp cấu hình ở "mặc định" (hoặc gần như) như một rào cản thứ cấp và có tường lửa như (ít nhất là theo nghĩa một lớp) là mối quan tâm chính.
Aitch

2
Lần đầu tiên tôi upvote cho PoLP, sau đó downvote cho sự lười biếng. Tường lửa không phải là công cụ để cho phép chủ sở hữu của họ cẩu thả. Bạn nên bận tâm thắt chặt bề mặt tấn công của mình bởi vì nếu kẻ tấn công đi qua tường lửa (sau khi bạn phải mở thứ gì đó), họ có thể tắt iptables. Áp dụng sự lười biếng của bạn ở nơi nó thuộc về: làm cho hệ thống không bị trượt càng tốt, do đó bạn không phải sửa nó trong một thời gian dài.
Marcin

@Marcin Ý tôi là nếu ai đó muốn bảo mật hệ thống bằng cách sử dụng tường lửa, người đó sẽ phải tạo mô hình mối đe dọa toàn diện trước tiên. Tường lửa ngụ ý một số mô hình mối đe dọa nổi tiếng và được mô tả rõ ràng, vì vậy tôi không phải xây dựng nó từ đầu cho mọi máy chủ. Tất nhiên, nếu chúng ta nói về một an ninh cấp quân sự, không có sự lựa chọn, một mô hình mối đe dọa chính thức nên được xây dựng.
Alex

1

Một tường lửa cũng có thể chặn các gói không mong muốn truy cập vào máy chủ của bạn. Thay vì giao dịch với họ ở cấp máy chủ riêng lẻ, bạn có thể giao dịch với họ ở tường lửa. Bạn có thể giữ tất cả hoạt động cấu hình này trên một tường lửa thay vì nhiều máy chủ.

Ví dụ: nếu kẻ tấn công đã giành quyền kiểm soát IP bên ngoài và đang xóa các máy chủ của bạn với các gói không mong muốn và bạn muốn giảm thiểu tác động của nó trên máy chủ của mình ... bạn có thể định cấu hình từng máy chủ bị ảnh hưởng của mình để loại bỏ các gói độc hại hoặc chỉ cần thực hiện thay đổi tại tường lửa của bạn và tất cả các máy chủ của bạn được bảo vệ. Có tường lửa đã giảm thời gian phản ứng của bạn.


Ngoài ra, làm điều này là cấu hình một tường lửa bằng mọi cách - nó chỉ xảy ra trên mỗi máy chủ.
mfinni

1

Một ngày nào đó bạn hoặc người khác có thể mắc lỗi khi thiết lập máy chủ của bạn, tường lửa sẽ cho bạn cơ hội thứ hai để ngăn chặn ai đó xâm nhập. Chúng tôi không hoàn hảo, chúng tôi mắc lỗi và do đó, một chút bảo hiểm "không cần thiết" có thể đáng giá .

(Cố gắng không chạy tường lửa của bạn trên cùng một hệ điều hành với máy chủ của bạn, vì nếu không thì chỉ có một lỗi trong HĐH .... Tôi coi tất cả các phiên bản của Unix là cùng một HĐH, vì chúng có rất nhiều điểm chung)


Tuyệt vời, trộn lẫn các nền tảng (HĐH và phần cứng) là chìa khóa.
DutchUncle

1

Tường lửa được chính thức hóa trong thao túng giao thông. Họ làm điều đó nhanh chóng và có nguồn lực. Và bạn không lãng phí tài nguyên máy chủ để lọc lưu lượng (đĩa io / Proc time / etc). Bạn có thể định cấu hình một số bảo mật trong môi trường máy chủ nhưng tất cả các kiểm tra và quét vi-rút, v.v. nên làm các máy chủ chuyên dụng.


-2

Tôi sẽ lo ngại rằng nếu bạn từng bị hack và không có tường lửa. Các tin tặc có thể mở các cổng khác trên máy chủ của bạn. Ngoài ra, nếu một chuyên gia tư vấn được đưa vào để thực hiện một số công việc dọn dẹp và kiểm toán, điều đầu tiên họ sẽ nói là "CÁI GÌ?!?! Bạn không có tường lửa!" Sau đó, bạn có thể bị đốt cháy.


-1 Một câu trả lời giật gân + không thực sự mang tính xây dựng.
Coops

2
Nếu máy chủ bị xâm nhập, thì tường lửa không nhất thiết phải giúp đỡ khi bozo bị hỏng chỉ đơn giản là vô hiệu hóa nó! * từ chối trách nhiệm, câu hỏi đã đề cập bằng cách sử dụng iptables, không phải tường lửa phần cứng riêng.
Bryan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.