it-swarm-vi.com

Cách thực hành tốt nhất để đặt máy chủ cơ sở dữ liệu trong cấu trúc liên kết mạng an toàn là gì

Tôi có một kiến ​​trúc cổ điển DMZ:

enter image description here

Máy chủ web của tôi được đặt trong DMZ. Máy chủ web cần liên lạc với máy chủ cơ sở dữ liệu. Máy chủ cơ sở dữ liệu này là thành phần quan trọng nhất trong mạng của tôi vì nó chứa dữ liệu bí mật.

Tôi nên đặt máy chủ DB ở đâu và tại sao? Tôi có nên thêm tường lửa thứ hai và tạo DMZ khác không?

20
lisa17
  • Vị trí tốt nhất là đặt các máy chủ cơ sở dữ liệu trong một khu vực đáng tin cậy của riêng họ.
  • Họ chỉ nên cho phép các kết nối gửi đến từ các máy chủ web và điều đó nên được thực thi tại tường lửa và trên các máy. Thực tế thường ra lệnh thêm một vài máy (quản trị viên db, v.v.). Tuân thủ thực tế khi cần thiết, tất nhiên.
  • Họ chỉ nên thực hiện các kết nối ra ngoài nếu bạn đang cập nhật phần mềm trên chúng.
26
Jeff Ferland

Đồng ý với Jeff Ferland, các máy chủ cơ sở dữ liệu nên tự mình: bạn nên có một mạng sạch để sao chép và sao lưu.

Xin tha thứ cho tôi ASCII nghệ thuật, tổng quan nhanh về lý tưởng hợp lý:

      [internet]
          |
    outer-firewall--- [proxy-zone]
          |      
         ----- [app-zone]
          |
    inner-firewall 
[lan]--/         \-- [database-zone]
  1. Chạy proxy ngược, Apache + mod_security/var Vec/nginx/WAF/bất cứ thứ gì, trong vùng proxy. Thêm cân bằng tải/chuyển đổi dự phòng ở đây nếu cần quá. Ngoài ra máy chủ proxy/chuyển tiếp cho các kết nối ra (DNS, SMTP, HTTP proxy), nếu được yêu cầu.
  2. Khi logic ứng dụng chạy trên máy chủ web (Java/PHP/ASP), tôi thích gọi nó là máy chủ ứng dụng.
  3. Khi bạn cần chia tỷ lệ, bạn có thể chia tỷ lệ theo chiều ngang, cân bằng tải làm cho việc này dễ dàng hơn. Bạn cũng có thể xem xét sao chép nội dung tĩnh không được xác thực vào các proxy phía trước.
  4. bạn có thể muốn thêm một hoặc nhiều vùng: IDS, quản lý, sao lưu, truy cập từ xa, proxy ngoài

Bạn đang cố gắng giảm nhẹ, vì vậy:

  • thông tin liên khu vực phải được giới hạn ở mức tối thiểu cần thiết cho các mục đích dịch vụ và giám sát.
  • proxy ngược chấp nhận các kết nối không đáng tin cậy từ internet, chỉ có thể kết nối với các dịch vụ trên các máy chủ ứng dụng. Nếu bạn muốn phân loại các vùng của mình theo lưu lượng truy cập, bạn cần xem xét việc chấm dứt cẩn thận các HTTP và nếu bạn muốn tạo các kết nối HTTP mới đến các máy chủ ứng dụng.
  • vùng ứng dụng chấp nhận các kết nối bán đáng tin cậy từ proxy, chỉ có thể kết nối với cơ sở dữ liệu. Bạn có thể tin tưởng các máy chủ ứng dụng của mình hơn một chút khi bạn biết họ không nói chuyện trực tiếp với internet.
  • máy chủ cơ sở dữ liệu chỉ chấp nhận kết nối từ máy chủ ứng dụng, vùng cơ sở dữ liệu phải là mạng "sạch nhất" của bạn
  • xem xét sử dụng các tường lửa khác nhau (nhà cung cấp/sản phẩm) cho tường lửa bên ngoài và bên trong
  • đối với yêu cầu bên ngoài dịch vụ (DNS, SMTP hoặc vá/cập nhật) những dịch vụ này phải đi qua một máy chủ riêng biệt (ví dụ: trên khu vực proxy hoặc khu vực proxy ngoài luồng).
  • cùng đi với bất kỳ kết nối HTTPS xác thực CC bên ngoài. (Nếu bạn không đủ may mắn để có một số hộp đen do nhà cung cấp cung cấp để xác thực, thì điều đó cũng phải đi vào một khu vực dành riêng, IMHO.)
  • chỉ sử dụng địa chỉ IP công cộng trong vùng proxy, địa chỉ riêng ở nơi khác. Không có máy chủ ngoài vùng proxy cần có IP công cộng, NAT hoặc tuyến đường mặc định tới internet.

Các vùng riêng biệt giúp công việc của IDS của bạn dễ dàng hơn và đăng nhập hiệu quả hơn. Nếu bạn có tài nguyên, hãy thêm một vùng quản lý, các NIC quản lý riêng cho từng máy chủ (các cổng được bảo vệ nếu bạn có thể).

Trong thực tế, bạn có thể kết thúc việc nén "mạng lý tưởng" vào một tường lửa và Vlan duy nhất, nhưng nếu bạn cân nhắc các lựa chọn của mình ngay bây giờ với ý định trên thì sẽ dễ dàng di chuyển hơn trong tương lai, tức là ngay sau lần truy cập tiếp theo từ vùng lân cận thân thiện của bạn Kiểm toán viên PCI-DSS ;-)

21
mr.spuratic

Dưới đây là một thiết lập khá phổ biến cho DMZ architecutre:

Internet

^

Tường lửa1

^

DMZ (Lưu trữ máy chủ dmz của bạn ở đây chỉ cho phép các cổng cụ thể thông qua tường lửa)

^

Tường lửa2

^

Mạng cơ sở dữ liệu (chỉ cho phép các cổng và giao thức cụ thể từ tường lửa2 đến mạng này)

Như bạn đã đề cập, cơ sở dữ liệu chứa dữ liệu thẻ tín dụng (nhạy cảm), ngay cả ở bên trong tường lửa2, mạng cơ sở dữ liệu nên được tách biệt khỏi mạng công ty và người dùng. Vì vậy, nhiều lần tôi thấy các trang sức vương miện của một công ty mở rộng trên mạng nội bộ cho tất cả người dùng thăm dò và truy cập. Đi thêm một bước nữa bạn có thể có quản trị viên cơ sở dữ liệu VLAN chỉ cho phép các hệ thống trong phạm vi này VLAN quyền truy cập cơ sở dữ liệu (ngoài ứng dụng cần truy cập nó từ DMZ tất nhiên).

Hi vọng điêu nay co ich.

1
fixulate

Kiến trúc 3 tầng là giải pháp an toàn và có thể mở rộng nhất. Khi lưu lượng khách tăng lên, chúng tôi có thể tăng thêm bao nhiêu tầng giữa để đảm bảo hiệu suất. Kiến trúc ba tầng cũng an toàn hơn vì lớp giữa đang bảo vệ tầng cơ sở dữ liệu. Chúng ta cần bảo vệ tầng cơ sở dữ liệu khỏi truy cập trực tiếp và cần được đặt nó trong vùng tin cậy và nó chỉ được chấp nhận kết nối từ các máy chủ ứng dụng.

3 Tier Architecture

1
Ali Ahmad

Vì bạn sẽ cần tuân thủ PCI-DSS, bạn cũng cần đảm bảo rằng bạn có tường lửa ở mỗi kết nối internet và giữa DMZ và mạng nội bộ. Có một số gợi ý tốt trong bảng câu hỏi tự đánh giá.

Cũng không tạo máy chủ cơ sở dữ liệu nếu hộp wintel là thành viên của miền, v.v.

0
Matthew

Tôi thích một kiến ​​trúc trong đó máy chủ DB được bảo vệ không chỉ là tường lửa. Đó là, tôi cho rằng máy chủ web bị xâm nhập - nhưng thay vì có thể thực hiện các hoạt động DB tùy ý, nó chỉ có thể lấy dữ liệu cực kỳ hạn chế từ một máy chủ trung gian. Một người đam mê DB sẽ khẳng định rằng bất kỳ DB nào cũng sẽ có sẵn nội dung kiểm tra đặc quyền. Nhưng tốt, phòng thủ theo chiều sâu.

0
markhahn