คำเตือน MySQL“ ไม่สามารถแก้ไขที่อยู่ IP”


36

ฉันมีการติดตั้ง MySQL Master / Slave และฉันสังเกตเห็นคำเตือนต่อไปนี้ในไฟล์บันทึก mysql บนเซิร์ฟเวอร์ทั้งสอง:

[Warning] IP address 'xxx.xxx.xxx.xxx' could not be resolved: Name or service not known

ฉันตรวจสอบแล้วและการค้นหา DNS ทำงานได้ดีและ IP ส่วนใหญ่มาจากประเทศจีน

ฉันวางแผนที่จะ จำกัด การเข้าถึงบนพอร์ต 3306 บนไฟร์วอลล์อย่างไรก็ตามคุณสามารถช่วยฉันเข้าใจว่าพวกเขาพยายามทำอะไร พวกเขากำลังพยายามเชื่อมต่อกับเซิร์ฟเวอร์ MySQL หรือไม่ ฉันสามารถหารายละเอียดเพิ่มเติมได้ที่ไหน

ขอบคุณ

คำตอบ:


48

เมื่อคุณสร้างผู้ใช้ MySQL username@example.comMySQL มีการค้นหาแบบย้อนกลับในทุกที่อยู่ IP example.comการเชื่อมต่อเพื่อตรวจสอบว่าพวกเขาเป็นส่วนหนึ่งของ

แน่นอนว่าไม่มีข้อ จำกัด ในการสร้างการค้นหาแบบย้อนกลับดังนั้นฉันสามารถขอให้ผู้ให้บริการของฉันตั้งค่าการค้นหาแบบย้อนกลับสำหรับที่อยู่ IP ของฉันให้เป็นgoogle.comถ้าฉันต้องการ ... หรือexample.comถ้าฉันรู้ว่านั่นคือสิ่งที่ผู้ใช้ในฐานข้อมูลของคุณ . สิ่งนี้จะไม่แจ้งให้ฉันทราบเนื่องจาก MySQL ทำการค้นหาล่วงหน้าบนโดเมนที่ส่งคืนเพื่อให้แน่ใจว่าตรงกับที่อยู่ IP เดียวกันที่เชื่อมต่ออยู่

คุณสามารถสลับนี้ออกด้วยในของคุณ skip_name_resolve มีเหตุผลที่ดีมากสำหรับการทำเช่นนี้my.cnf

เหตุผลที่คุณได้รับข้อผิดพลาดนี้คือที่อยู่ IP ที่เป็นปัญหานั้นไม่มีการค้นหาแบบย้อนกลับเลย

นอกจากนี้คุณยังมีผู้โจมตีที่เป็นอันตรายจากประเทศจีนที่พยายามบังคับให้พวกเขาเข้าไปในฐานข้อมูลของคุณ นั่นควรเป็นความสำคัญสูงสุดของคุณ


1
สามารถอาจมีปัญหาใด ๆ สำหรับlocalhost ?
มลายู M

ฉันไม่คิดว่าจะมีช่องโหว่ด้านความปลอดภัยที่นั่นเพราะหากการค้นหาแบบย้อนกลับสำหรับบางที่อยู่ IP ได้รับการแก้ไขlocalhostMySQL จะยังคงทำการค้นหาไปข้างหน้าlocalhostเพื่อให้แน่ใจว่าตรงกับที่อยู่ IP ดั้งเดิม อย่างไรก็ตามเช่นเดียวกับที่เกี่ยวข้องกับความปลอดภัยทุกอย่างอย่าเพิ่งเชื่อใจฉัน และยังดีกว่าที่จะปิดการแก้ไขชื่อในการกำหนดค่าของคุณ
Ladadadada

13

ฉันคิดว่ามันเป็นความคิดที่แย่มาก ๆ ในการเปิดเผยเซิร์ฟเวอร์ฐานข้อมูลของคุณบนอินเทอร์เน็ตโดยตรง

หากคุณกำลังจำลองไปยังรีโมตโฮสต์และต้องการเข้าถึงอินเทอร์เน็ตเพื่อให้บรรลุนั้นฉันขอแนะนำให้คุณตั้งค่า VPN ระหว่างสองเครือข่ายและผูกเซิร์ฟเวอร์ MySQL ของคุณเพื่อฟังเฉพาะเครือข่ายท้องถิ่น

หากทั้งสองโฮสต์ของคุณอยู่ในเครือข่ายท้องถิ่นเดียวกันคุณจะปลอดภัยในการผูกเซิร์ฟเวอร์ mysql ของคุณเข้ากับเครือข่ายนั้น


1

เพิ่งถูกจับโดยสิ่งนี้เช่นกันใน Amazon RDS ฉันต้องการเชื่อมต่อกับอินสแตนซ์ฐานข้อมูลทดสอบของฉันเท่านั้น ( ไม่แนะนำให้ใช้ฐานข้อมูลการผลิตต่อไปนี้):

กลุ่มความปลอดภัยใน Amazon RDS ทำงานแตกต่างจากกฎไฟร์วอลล์ปกติสำหรับ EC2 อินสแตนซ์ หากคุณเปิดพอร์ต MySQL สำหรับ IP เฉพาะ IP จะต้องได้รับการยอมรับจากเซิร์ฟเวอร์ MySQL ของคุณ หากไม่ใช่การเชื่อมต่อจะถูกปฏิเสธ โซลูชันชั่วคราวคือการสร้างกลุ่มความปลอดภัยใหม่เช่นanyone_can_connect_to_mysqlมีเพียงรายการเดียว - อนุญาตการเชื่อมต่อขาเข้า MySQL / Aurora ที่ใดก็ได้จากอินเทอร์เน็ตและแนบกลุ่มความปลอดภัยนี้ไปยังฐานข้อมูลของคุณ

Inbound
-----------------------------------------
| MYSQL/Aurora | TCP | 3306 | 0.0.0.0/0 |
-----------------------------------------

สิ่งนี้จะลบการตรวจสอบ IP ออกจากการเชื่อมต่อไคลเอนต์เพื่อให้คุณมีอิสระในการเชื่อมต่อ อย่าลืมแยกanyone_can_connect_to_mysqlนโยบายออกจากฐานข้อมูลเมื่อปัญหาการแก้ไขจบลง


0

เมื่อเชื่อมต่อกับ Mysql จากระยะไกลฉันพบข้อผิดพลาด ฉันได้รับคำเตือนนี้ใน/var/log/mysqld.log:

[Warning] IP address 'X.X.X.X' could not be resolved: Temporary failure in name resolution

ฉันเพิ่งเพิ่มบรรทัดนี้ไปยัง/etc/hostsไฟล์:

X.X.X.X some_name

แก้ไขปัญหา! โดยไม่ใช้skip-name-resolveมันทำให้เกิดข้อผิดพลาดในแอพท้องถิ่นของฉันเมื่อเชื่อมต่อกับ mysql


กว่าปีที่แล้ว แต่คุณต้องเริ่ม mysql ใหม่หรือไม่? สิ่งนี้ไม่ได้ผลสำหรับฉัน
Ejoso

คุณจะไม่เนื่องจากไฟล์โฮสต์ถูกจัดการบนไคลเอนต์ไม่ใช่เซิร์ฟเวอร์ mysql
leeman24
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.