Cách bảo vệ SQL Server khỏi tin tặc


9

Tôi đang gặp sự cố và không thể tìm ra cách xử lý. Tôi có SQL Server trên máy chủ Windows 2008 R2. SQL Server 2005 này đang được sử dụng để nhận đăng ký DB từ một SQL Server khác được đặt ở nơi khác trên Internet. Tôi có cổng máy chủ sql mở thông qua tường lửa, tuy nhiên trong phạm vi, tôi đã nhập IP của SQL Server khác. Làm như vậy tôi hy vọng rằng các yêu cầu kết nối qua cổng đó sẽ không đến được Máy chủ SQL trừ khi các yêu cầu đến từ Máy chủ SQL khác (có IP được liệt kê trong phạm vi trong quy tắc tường lửa). Nhưng, khi tôi nhìn thấy nhật ký, có hàng trăm mục "đăng nhập thất bại của người dùng" (và chúng sẽ đến mỗi giây trôi qua). Có vẻ như một số hacker đang cố gắng vũ phu để đoán mật khẩu của người dùng. Nhưng câu hỏi là tại sao Windows cho phép các yêu cầu này đến SQL Server mặc dù chúng không đến từ địa chỉ IP được liệt kê trong phạm vi tường lửa? Cách đúng để bảo vệ máy chủ SQL này là gì. Không có IP nào khác ngoài IP của SQL Server khác cần kết nối với máy chủ sql này.

EDIT - Thông tin thêm:

Tôi chạy telnet trên cổng máy chủ sql từ các máy khác nhau. Telnet không thành công trừ khi nó được chạy từ máy được đề cập cụ thể trong phạm vi tường lửa. Vì vậy, có vẻ như tường lửa đang chặn cổng máy chủ sql tốt. Nhưng tại sao tôi lại thấy những yêu cầu đăng nhập thất bại cho người dùng "sa" từ các địa chỉ IP khác nhau trong nhật ký SQL Server? Có thể tin tặc đang xâm nhập vào máy thông qua cổng 80 và sau đó bằng cách nào đó cố gắng kết nối với máy chủ sql? Cổng 80 và 443 được mở cho tất cả mọi người. Tất cả các cổng khác được đóng ngoại trừ cổng máy chủ sql (và chỉ mở cho một IP cụ thể). Không có gì chạy trên Máy chủ web tại cổng 80 có thể dẫn khách truy cập đến máy chủ SQL. Trên thực tế, chỉ có một tệp index.html (HTML thuần túy không có kết nối với SQL) trong máy chủ Web. Đây chỉ là một máy chủ thử nghiệm được thiết lập để sử dụng trong tương lai. Chỉ kiểm tra dữ liệu trong SQL Server.

BIÊN TẬP:

Tôi đã bật theo dõi tường lửa để bao gồm cả kết nối thả và kết nối thành công. Bây giờ là truy tìm tất cả mọi thứ. Sau đó, tôi đi đến nhật ký SQL Server nơi tôi thấy những lần đăng nhập thất bại này từ các địa chỉ IP khác nhau ở Trung Quốc. Nhưng không có mục nào cho các địa chỉ IP này trong nhật ký tường lửa. Sao có thể như thế được? Họ có thể đến máy chủ SQL bỏ qua tường lửa hoàn toàn không? Nếu giả sử một số cổng tường lửa được mở mà họ có thể nhập qua, nhật ký tường lửa sẽ hiển thị một mục nhập cho địa chỉ IP đó. Tôi hoàn toàn mất mát.


Làm thế nào về việc sử dụng Logon Trigger ? Ngoài ra, SQL Server không nên được tiếp xúc với Internet (đối mặt với công chúng). Ngoài ra, bạn có thể sử dụng Quy tắc chương trình trong Tường lửa Windows để giới hạn phạm vi địa chỉ IP.
Kin Shah

Có tôi có thể, nhưng sâu bên dưới đây không thực sự là về SQL Server. Tôi đang cố gắng tìm hiểu tại sao tường lửa Windows không thực hiện những gì nó được cho là đang làm, nghĩa là không để những yêu cầu này đi qua vì chúng không đến từ địa chỉ IP được phép duy nhất.

1
Có, có vẻ như Windows Firewall của bạn bị cấu hình sai. Có thể bạn có một quy tắc chung khác là cho phép cổng 1433 (hoặc cho phép mọi thứ) hoặc có thể Windows Firewall bị vô hiệu hóa trên NIC đối diện với internet. Thật khó để nói mà không nhìn thấy cấu hình. Nhưng đây thực sự là một câu hỏi dành cho ServerFault như Max nói. Ý bạn là Windows 2008 R2, btw? 'RC' là Ứng viên phát hành, phần mềm phát hành trước để thử nghiệm.
James L


1
Bạn có thực sự sử dụng một hệ điều hành ứng viên phát hành cũ ?! Sửa nó trước.
Michael Hampton

Câu trả lời:


12

Âm thanh như tường lửa của bạn không được cấu hình đúng. Đây là bước đầu tiên.

Thông thường tôi sẽ không làm hỏng một cuốn sách mà tôi đã viết, nhưng trong trường hợp này tôi sẽ tạo ra một ngoại lệ. Nó được gọi là Bảo mật SQL Server và nó sẽ cho bạn một khởi đầu tốt.


Chà, cuốn sách của bạn phù hợp chính xác cho câu hỏi này :-)
mfinni 24/12/13

Mát mẻ! Nó có hướng dẫn quy định về việc sử dụng chứng chỉ thay vì xác thực cục bộ / Windows cho các máy chủ truy cập internet không? ;-)
Greg Askew 24/12/13

Xem các chỉnh sửa của tôi. Tường lửa có vẻ hoạt động tốt. Đó là một số mẹo khác mà các tin tặc Trung Quốc đang chơi để truy cập SQL Server.
Allen King

1
Nếu ai đó đang kết nối với cổng SQL từ Địa chỉ IP công cộng, thì tường lửa không được cấu hình đúng. Nếu họ đến từ một IP nội bộ thì bạn đã gặp một số vấn đề khác. SQL tự nó không hỗ trợ chứng chỉ. Bạn phải làm điều này thông qua AD và ánh xạ chứng chỉ.
mrdenny

Quay lại bản vẽ thực sự cho tường lửa. Tôi sẽ kéo máy chủ SQL ra khỏi internet cho đến khi bạn giải quyết được tình huống tường lửa của mình. Bằng cách đó, bạn sẽ có thể cấm IP toàn bộ phạm vi địa chỉ IP một cách dễ dàng.
Techie Joe

4

SImply đã nói - bạn thì không. Tôi sẽ không sử dụng afirewall, v.v. - một máy chủ SQL không có quyền truy cập internet. RẤT RẤT vài ngoại lệ.

Để nhân rộng, hãy thiết lập VPN phù hợp.


Tôi hơi bối rối. Nếu máy chủ DB không có trên Internet, máy chủ phụ trợ Ứng dụng Web sẽ truy cập máy chủ DB như thế nào?
Allen King

Thông qua mạng nội bộ. Thiết lập cơ bản. Ứng dụng web này nằm trong cả hai mạng.
TomTom

3

Bên cạnh việc định cấu hình tường lửa đúng cách, đây là một số khuyến nghị chung để giữ SQL Server an toàn trước các cuộc tấn công vũ phu:

  • Vô hiệu hóa tài khoản 'sa'. Biết tên đăng nhập chính xác sẽ giúp các cuộc tấn công dễ dàng hơn

    ALTER LOGIN sa DISABLE
    

Một tùy chọn khác là đổi tên tài khoản 'sa' thành một tên ít rõ ràng hơn

ALTER LOGIN sa WITH NAME = SimonXZY
  • Sử dụng xác thực Windows thay vì xác thực chế độ hỗn hợp. Xác thực Windows thực thi chính sách mật khẩu Windows và nó khóa đăng nhập trong trường hợp các lần đăng nhập thất bại liên tiếp
  • Kiểm toán đăng nhập thất bại. Cách dễ nhất để làm điều này là đặt tùy chọn Kiểm tra đăng nhập trong thuộc tính Máy chủ, tab Bảo mật thành thông tin đăng nhập thất bại hoặc Cả hai lần đăng nhập thất bại và thành công. Điều này sẽ không giúp bạn bảo vệ chống lại các cuộc tấn công vũ phu, nhưng sẽ giúp bạn nhận thức được các cuộc tấn công

Các khuyến nghị hữu ích khác ở đây: Ngăn chặn một cuộc tấn công vũ phu hoặc tấn công từ điển: Làm thế nào để giữ cho những kẻ phá hoại tránh xa bạn

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.