Puncte:0

Ce ar iniția MariaDB să înceapă să rezolve adresele IP?

drapel in

In al meu Jurnalele Windows > Aplicație Văd astea Avertizări

Adresa IP „xxx.xxx.xxx.xxx” nu a putut fi rezolvată: nu se cunoaște o astfel de gazdă.

IP-ul îmi este necunoscut. Aceste Avertizări autentificați-vă ca:

Nume jurnal: Aplicație
Sursa: MariaDB
ID eveniment: 100
Nivel: Avertisment

- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  - <Sistem>
      <Nume furnizor="MariaDB" /> 
      <EventID Qualifiers="49152">100</EventID> 
      <Version>0</Version> 
      <Nivel>3</Nivel> 
      <Task>0</Task> 
      <Opcode>0</Opcode> 
      <Keywords>0x80000000000000</Keywords> 
      <TimeCreated SystemTime="2021-12-16T23:32:07.8659376Z" /> 
      <EventRecordID>2182760</EventRecordID> 
      <Corelatie /> 
      <Execution ProcessID="0" ThreadID="0" /> 
      <Channel>Aplicație</Channel> 
      <Computer>vm-alb</Computer> 
      <Securitate /> 
    </Sistem>
  - <EventData>
      <Data>Adresa IP „xxx.xxx.xxx.xxx” nu a putut fi rezolvată: nu se cunoaște o astfel de gazdă.</Data> 
    </EventData>
</Eveniment>

Găzduiesc site-uri WordPress și, de asemenea, Matomo (o aplicație de analiză web cu sursă deschisă.) Ar putea fi cumva să încerc să folosesc MariaDB pentru a căuta intrări rDNS la care să se lege?

Ce altceva ar face asta? Un plugin WordPress rău intenționat?

Sunt confuz.


am incercat

[mysqld]
bind-address = 127.0.0.1

pentru a vedea dacă le-ar influența pe acestea înregistrate Avertizări; dar cumva site-urile mele au durat mai mult să se încarce. Așa că am desfăcut-o. Toți utilizatorii mei sunt configurați pentru utilizare gazdă locală si nu 127.0.0.1. Bazat pe acest lucru skip-name-resolve info Probabil că ar fi mai bine să dezactivez rezolvarea numelor - și ar putea explica de ce le primesc Avertizări dacă vor pleca.


Bob a sugerat să-mi verific setarea firewall-ului. Am făcut câteva ajustări și voi continua să verific jurnalele pentru orice modificări.

setări firewall pentru MariaDB


Acum, tocmai am primit asta Avertizare

Adresa IP „34.96.130.11” a fost rezolvată cu numele de gazdă „11.130.96.34.bc.googleusercontent.com”, care seamănă cu adresa IPv4 însăși.

drapel cn
Bob
La prima vedere, rădăcina problemei dvs. este că expuneți serverul de baze de date la internet în general, atunci când este conceput ca un serviciu intern mai degrabă decât unul public. Verificați și ajustați setările firewall-ului pentru portul implicit 3306 sau orice port pe care MariaDB este configurat să îl folosească.
MeSo2 avatar
drapel in
@Bob Mi-am schimbat setările firewall-ului, dar tocmai am primit un alt rezolutor DNS _Warning_. Ar trebui să adaug o setare de ieșire pentru firewall pentru a împiedica MariaDB să se conecteze și la exterior?
Nikita Kipriyanov avatar
drapel za
În ceea ce privește ultimul tău avertisment, este „prea suspect”. Cineva a adăugat un cod care compară adresa IP ca patru puncte cu rezultatul interogării PTR și produce acest avertisment. Nu trebuie să cred că acest lucru este foarte util. PTR-ul poate fi setat la orice, adică la discreția proprietarului adresei IP, nu vă puteți baza niciodată pe el, așa că nu ar trebui să presupunem că este corect, oficial, politicos, drăguț și așa mai departe, prin urmare, comparația este o prostie. Ignorați acest avertisment ca fiind inutil.
Nikita Kipriyanov avatar
drapel za
`bind-address = 127.0.0.1` este o modalitate *cel mai corectă și mai sigură* de a o configura dacă nu aveți nevoie să vă conectați la DB de la alte gazde. De fapt, și asta ar trebui să apară *mai rapid*. Cum specificați serverul DB în aplicații? Cel mai bun mod ar fi să folosiți doar `localhost` sau chiar `127.0.0.1` ca nume de gazdă DB în aplicații.
MeSo2 avatar
drapel in
@NikitaKipriyanov la început m-am conectat folosind `localhost` cu aplicația mea de cod asp prin driverul MariaDB ODBC, ca acesta `DRIVER={Driver MariaDB ODBC 3.1};TCPIP=1;SERVER=localhost;UID=____;PWD=____;DATABASE =____;PORT=3306;CONN_TIMEOUT=120;CHARSET=utf8mb4;READ_TIMEOUT=20;WRITE_TIMEOUT=5;Opțiune=3`. Acum, după ce l-am schimbat în `127.0.0.1`, a făcut-o foarte receptiv. Grozav!
Puncte:1
drapel za

Deși este posibil să restricționați accesul la serverul DBMS folosind firewall-ul, este mai bine să nu îl faceți accesibil de pe Internet în primul rând. Așa ar fi cel mai sigur.

Ai încercat corect:

[mysqld]
bind-address = 127.0.0.1

Este ciudat că părea neresponsabil când se conectează folosind gazdă locală. În schimb, ar trebui să apară mai repede, pentru că Sistemul de operare care comunică prin interfața loopback sperăm să evite unele straturi din stiva de rețea. Aceasta poate însemna o anumită rezoluție a numelui (de exemplu, DNS sau gazde) problemă pe mașină. Este înțelept să evitați rezolvarea numelui în acest caz, folosind adresa IP localhost literală 127.0.0.1. Doar specificați-l în conector ca adresa serverului DBMS.


Ultimul avertisment despre numele de gazdă „care seamănă cu adresa IPv4 în sine” este inutil. Numele gazdei este rezultatul interogării DNS, iar valoarea numelui gazdei din înregistrarea PTR este complet controlată de proprietarul adresei IP. Ei pot pune orice în el, poate fi asemănător cu adresa IP în sine, sau similar cu o altă adresă IP (pentru o mai mare confuzie), sau poate fi o glumă, sau o poezie sau poate fi dur și grosier. Nu furnizează informații valide pe care să le luați în considerare în contextul securității. Doar ignorați acest avertisment sau, mai bine, dezactivați complet astfel de avertismente și nu pierdeți resursele cu astfel de comparații stupide.

MeSo2 avatar
drapel in
Schimbarea utilizatorilor mei în `127.0.0.1` a avut un efect secundar pozitiv neașteptat la această altă întrebare pe care am avut-o: https://serverfault.com/questions/1086062/stop-event-id-4625-remote-logon-request-over -logon-process-ntlmssp Foarte frumos! Acest răspuns nu este chiar ceea ce căutam, dar mi-a făcut ziua.
Nikita Kipriyanov avatar
drapel za
Cred că acesta a fost un exemplu de problemă XY, rezolvată, pentru că ați explicat pentru ce aveți nevoie și am închis cauza principală, în loc să rezolvăm problemele pe care le aveți cu ascultarea la adresa publică. În ceea ce privește răspunsul formal, cred că nu ați configurat corect firewall-ul. Nu am avut niciodată încredere în acele „profiluri” de domeniu/privat/public. Ești complet sigur de ce este „privat” în acest caz? Regula explicită ar funcționa mai bine și mai de încredere, în cazul în care ar trebui să enumerați toate adresele IP permise, ambele (IP-ul public al serverului și gazda locală).
MeSo2 avatar
drapel in
Nu știam că MariaDB va (sau ar putea) începe să rezolve adrese IP. Și, deci, partea despre care încă nu sunt clar este ce ar declanșa acest comportament. Tot ce fac este să găzduiesc o aplicație web simplă. Este doar un comportament ciudat ca o bază de date să facă acest lucru la fiecare apel al vizitatorilor. De asemenea, nu prea am încredere în aceste setări de „profil”; Prefer să folosesc „Tipuri de interfață” pentru a bloca lucrurile.FYI „Privat” este definit ca: _Profilul privat este un profil atribuit de utilizator și este folosit pentru a desemna rețele private sau de acasă_. De ce aș include IP-ul public al serverului (DNS-ul meu este, de asemenea, găzduit local.)
Nikita Kipriyanov avatar
drapel za
Nu, acest lucru nu este ciudat în cazul MySQL. Rețineți că specificați nume de gazdă atunci când creați utilizatori și atribuiți privilegii, de ex. `GRANT privilegii PE \`db.table\` LA 'nume utilizator'@'nume gazdă' IDENTIFICAT DE 'parolă'`. Înregistrează într-adevăr acest nume de gazdă în câmpul `mysql.user.Host` și verifică ca DNS-ul invers să se potrivească în timpul autentificării. De obicei se folosește `localhost` sau `%`, de ex. accesul este dat doar serverului în sine sau la orice adresă (folosind caracterul joker MySQL), dar puteți avea un control mai strict. Folosesc această funcție pe un singur cluster.
MeSo2 avatar
drapel in
Am dreptate să presupun că acest lucru ar indica acum că mă confrunt cu [atacuri de injecție SQL](https://en.wikipedia.org/wiki/SQL_injection)? Nu am nimic (din cunoștințele mele) în codul meu care să solicite o conexiune externă.
Nikita Kipriyanov avatar
drapel za
Nu. Injecția SQL se face întotdeauna printr-o încălcare a aplicației. Acesta injectează o interogare rău intenționată în cea validă a aplicației, așa că din punctul de vedere al bazei de date, aplicația se conectează în întregime, dar face niște lucruri urâte. Jurnalul pe care l-ați văzut arată o încercare de a vă conecta direct la baza de date. Este ca și cum ar fi scanarea SSH/FTP/RDP/orice parole, doar cu MySQL/MariaDB.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.