Điểm:0

Điều gì sẽ khởi tạo MariaDB để bắt đầu phân giải địa chỉ IP?

lá cờ in

trong tôi Nhật ký Windows> Ứng dụng tôi thấy những cảnh báo

Không thể giải quyết địa chỉ IP 'xxx.xxx.xxx.xxx': Không biết máy chủ nào như vậy.

Tôi không biết IP. Này cảnh báo được đăng nhập như:

Tên nhật ký: Ứng dụng
Nguồn: MariaDB
ID sự kiện: 100
Mức độ: Cảnh cáo

- <Sự kiện xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  - <Hệ thống>
      <Tên nhà cung cấp="MariaDB" /> 
      <EventID Qualifiers="49152">100</EventID> 
      <Version>0</Version> 
      <Cấp độ>3</Cấp độ> 
      <Nhiệm vụ>0</Task> 
      <Opcode>0</Opcode> 
      <Keywords>0x80000000000000</Keywords> 
      <TimeCreated SystemTime="2021-12-16T23:32:07.8659376Z" /> 
      <EventRecordID>2182760</EventRecordID> 
      <tương quan /> 
      <Quy trình thực thiID="0" ThreadID="0" /> 
      <Channel>Ứng dụng</Channel> 
      <Máy tính>vm trắng</Máy tính> 
      <Bảo mật /> 
    </Hệ thống>
  - <Dữ liệu sự kiện>
      <Dữ liệu>Không thể giải quyết địa chỉ IP 'xxx.xxx.xxx.xxx': Không biết máy chủ nào như vậy.</Data> 
    </Dữ liệu sự kiện>
</Sự kiện>

Tôi đang lưu trữ các trang web WordPress và cả Matomo (một ứng dụng phân tích trang web nguồn mở.) Có thể bằng cách nào đó, tôi đang cố gắng sử dụng MariaDB để tra cứu các mục nhập rDNS để liên kết?

Những gì khác sẽ làm điều đó? Một plugin WordPress độc hại?

Tôi bị bối rối.


tôi đã thử

[mysqld]
địa chỉ liên kết = 127.0.0.1

để xem liệu nó có ảnh hưởng đến những người đã đăng nhập này không cảnh báo; nhưng bằng cách nào đó các trang web của tôi mất nhiều thời gian hơn để tải. Vì vậy, tôi hoàn tác nó. Tất cả người dùng của tôi được thiết lập để sử dụng máy chủ cục bộ và không 127.0.0.1. Dựa vào cái này bỏ qua-tên-giải quyết thông tin Tôi có lẽ sẽ tốt hơn nếu tắt tính năng phân giải tên -- và điều đó có thể giải thích tại sao tôi nhận được những cảnh báo nếu họ đi xa.


Bob đề nghị kiểm tra cài đặt tường lửa của tôi. Tôi đã thực hiện một số điều chỉnh và sẽ tiếp tục kiểm tra nhật ký xem có bất kỳ thay đổi nào không.

cài đặt tường lửa cho MariaDB


Bây giờ, chỉ cần có điều này Cảnh báo

Địa chỉ IP '34.96.130.11' đã được phân giải thành tên máy chủ '11.130.96.34.bc.googleusercontent.com', giống với chính địa chỉ IPv4.

lá cờ cn
Bob
Thoạt nhìn, gốc rễ của vấn đề là bạn đưa máy chủ cơ sở dữ liệu ra internet nói chung, khi nó được dự định là một dịch vụ nội bộ chứ không phải là một dịch vụ công cộng. Kiểm tra và điều chỉnh cài đặt tường lửa của bạn cho cổng mặc định 3306 hoặc bất kỳ cổng nào MariaDB được định cấu hình để sử dụng.
MeSo2 avatar
lá cờ in
@Bob Tôi đã thay đổi cài đặt tường lửa của mình, nhưng vừa có một trình phân giải DNS khác _Warning_. Tôi có nên thêm cài đặt tường lửa ra bên ngoài để ngăn MariaDB kết nối ra bên ngoài không?
Nikita Kipriyanov avatar
lá cờ za
Đối với cảnh báo cuối cùng của bạn, đó là "quá đáng ngờ". Ai đó đã thêm một mã so sánh địa chỉ IP dưới dạng phần tư chấm và kết quả của truy vấn PTR, đồng thời đưa ra cảnh báo này. Tôi không cần phải nghĩ rằng điều này là rất hữu ích. PTR có thể được đặt thành bất kỳ thứ gì, điều đó tùy thuộc vào quyết định của chủ sở hữu địa chỉ IP, bạn không bao giờ có thể dựa vào nó, vì vậy người ta không bao giờ nên cho rằng đó là chính xác, chính thức, lịch sự, tốt đẹp, v.v., do đó, việc so sánh là ngớ ngẩn. Bỏ qua cảnh báo này là vô ích.
Nikita Kipriyanov avatar
lá cờ za
`bind-address = 127.0.0.1` là cách thiết lập *chính xác và an toàn nhất* nếu bạn không cần kết nối với DB từ các máy chủ khác. Thực tế điều đó cũng sẽ xuất hiện * nhanh hơn *. Làm cách nào để bạn chỉ định máy chủ DB trong các ứng dụng? Cách tốt nhất là chỉ sử dụng `localhost` hoặc thậm chí `127.0.0.1` làm tên máy chủ DB trong các ứng dụng.
MeSo2 avatar
lá cờ in
@NikitaKipriyanov lúc đầu, tôi đang kết nối bằng cách sử dụng `localhost` với ứng dụng mã asp của mình thông qua trình điều khiển MariaDB ODBC, như thế này `DRIVER={Trình điều khiển MariaDB ODBC 3.1};TCPIP=1;SERVER=localhost;UID=____;PWD=____;DATABASE =____;PORT=3306;CONN_TIMEOUT=120;CHARSET=utf8mb4;READ_TIMEOUT=20;WRITE_TIMEOUT=5;Option=3`. Bây giờ đã thay đổi nó thành `127.0.0.1` khiến nó rất nhạy. Tốt đẹp!
Điểm:1
lá cờ za

Mặc dù có thể hạn chế quyền truy cập vào máy chủ DBMS bằng tường lửa, nhưng tốt hơn hết là không nên cho phép truy cập từ Internet ngay từ đầu. Như vậy sẽ an toàn nhất.

Bạn đã thử nó đúng cách:

[mysqld]
địa chỉ liên kết = 127.0.0.1

Thật kỳ lạ khi nó xuất hiện không phản hồi khi kết nối bằng cách sử dụng máy chủ cục bộ. Thay vào đó, nó sẽ xuất hiện nhanh hơn, bởi vì Hệ điều hành giao tiếp qua giao diện loopback hy vọng sẽ tránh được một số lớp trong ngăn xếp mạng. Điều này có thể có nghĩa là một số phân giải tên (ví dụ: DNS hoặc máy chủ) vấn đề trên máy. nó là khôn ngoan để tránh phân giải tên trong trường hợp này, sử dụng địa chỉ IP localhost theo nghĩa đen 127.0.0.1. Chỉ cần chỉ định nó trong trình kết nối làm địa chỉ máy chủ DBMS.


Cảnh báo cuối cùng về tên máy chủ "giống với chính địa chỉ IPv4" là vô ích. Tên máy chủ là kết quả của truy vấn DNS và giá trị của tên máy chủ trong bản ghi PTR hoàn toàn do chủ sở hữu địa chỉ IP kiểm soát. Họ có thể đặt bất cứ thứ gì vào đó, nó có thể được làm giống với chính địa chỉ IP đó hoặc giống với một số địa chỉ IP khác (để tránh nhầm lẫn hơn), hoặc là một trò đùa, hoặc một dòng thơ, hoặc thô lỗ và thô thiển. Nó truyền tải không có thông tin hợp lệ để bạn xem xét trong bối cảnh bảo mật. Chỉ cần bỏ qua cảnh báo này hoặc tốt hơn là tắt hoàn toàn những cảnh báo đó và không lãng phí tài nguyên cho những so sánh ngớ ngẩn như vậy.

MeSo2 avatar
lá cờ in
Việc thay đổi Người dùng của tôi thành `127.0.0.1` có tác dụng phụ tích cực không mong muốn đối với câu hỏi khác mà tôi có: https://serverfault.com/questions/1086062/stop-event-id-4625-remote-logon-request-over -logon-process-ntlmssp Rất hay! Câu trả lời này không thực sự là những gì tôi đang theo đuổi, nhưng nó đã tạo nên một ngày của tôi.
Nikita Kipriyanov avatar
lá cờ za
Tôi cảm thấy đó là một ví dụ về vấn đề XY, đã được giải quyết, bởi vì bạn đã giải thích những gì bạn cần điều này và chúng tôi đã giải quyết nguyên nhân gốc rễ, thay vì giải quyết các vấn đề bạn gặp phải khi nghe trên địa chỉ công cộng. Đối với câu trả lời chính thức, tôi cảm thấy bạn đã không định cấu hình tường lửa chính xác. Tôi chưa bao giờ tin tưởng những "hồ sơ" tên miền/riêng tư/công khai đó. Bạn có hoàn toàn chắc chắn về "riêng tư" trong trường hợp này là gì không? Quy tắc rõ ràng sẽ hoạt động tốt hơn và đáng tin cậy hơn, trong đó bạn phải liệt kê tất cả các địa chỉ IP được phép, cả hai địa chỉ đó (IP công khai của máy chủ và localhost).
MeSo2 avatar
lá cờ in
Tôi không biết rằng MariaDB sẽ (hoặc có thể) bắt đầu phân giải địa chỉ IP. Và do đó, phần tôi vẫn chưa rõ là điều gì sẽ kích hoạt hành vi này. Tất cả những gì tôi đang làm là lưu trữ một ứng dụng web đơn giản. Nó chỉ là một hành vi kỳ lạ đối với cơ sở dữ liệu để thực hiện điều này trên mọi cuộc gọi của khách truy cập. Tôi cũng không tin tưởng lắm vào các cài đặt "hồ sơ" này; Tôi thích sử dụng "Loại giao diện" hơn để chặn mọi thứ.FYI "Riêng tư" được định nghĩa là: _Cấu hình riêng tư là cấu hình do người dùng chỉ định và được sử dụng để chỉ định mạng riêng hoặc mạng gia đình_. Tại sao tôi lại bao gồm IP công khai của máy chủ (DNS của tôi cũng được lưu trữ cục bộ.)
Nikita Kipriyanov avatar
lá cờ za
Không, điều này không có gì lạ trong trường hợp của MySQL. Hãy nhớ rằng bạn chỉ định tên máy chủ khi tạo người dùng và gán đặc quyền, ví dụ: ` CẤP đặc quyền BẬT \`db.table\` CHO 'tên người dùng'@'tên máy chủ' ĐƯỢC XÁC ĐỊNH BẰNG 'mật khẩu'`. Nó thực sự ghi tên máy chủ này vào trường `mysql.user.Host` và kiểm tra DNS đảo ngược để khớp trong quá trình xác thực. Thông thường `localhost` hoặc `%` được sử dụng, ví dụ: quyền truy cập chỉ được cấp ether cho chính máy chủ hoặc tới bất kỳ địa chỉ nào (sử dụng ký tự đại diện MySQL) nhưng bạn có thể kiểm soát chặt chẽ hơn. Tôi sử dụng tính năng này trên một cụm.
MeSo2 avatar
lá cờ in
Tôi có đúng không khi cho rằng điều này bây giờ chỉ ra rằng tôi đang gặp phải [các cuộc tấn công SQL injection](https://en.wikipedia.org/wiki/SQL_injection)? Tôi không có gì (theo hiểu biết của tôi) trong mã của mình sẽ yêu cầu kết nối bên ngoài.
Nikita Kipriyanov avatar
lá cờ za
Không. SQL Injection luôn được thực hiện thông qua một số vi phạm trong ứng dụng. Nó đưa một truy vấn độc hại vào truy vấn hợp lệ của ứng dụng, do đó, từ quan điểm cơ sở dữ liệu, ứng dụng sẽ kết nối theo đúng nghĩa của nó, nhưng thực hiện một số điều khó chịu. Nhật ký bạn đã xem cho thấy nỗ lực kết nối trực tiếp với cơ sở dữ liệu. Nó giống như quét SSH/FTP/RDP/bất kỳ mật khẩu nào, chỉ với MySQL/MariaDB.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.