ปัญหาเรื่อง bind-address บน MySQL

จะว่ามันเป็นปัญหาก็ได้ครับทั้งที่ไม่น่าเป็น. โดยปกติผมปิดการ connect mysql จากภายนอกด้วย


bind-address = 127.0.0.1

แต่ช่วงอาทิตย์ที่ผ่านมามีลูกค้าแสดงความต้องการจะเชื่อมต่อจากภายนอกด้วยโปรแกรมประเภท mysql front เลยไม่รู้จะตัดสินใจยังไงดี. ท่านอื่นทำยังไงครับ ?

ผมปล่อยนะครับ แล้วใช้ iptables block all เอา
ลูกค้าจะใช้ mysqlfront ก็ใช้ static ip เอาละกัน - -’ ไม่ allow ip adsl ให้

ผมปิด ให้ใช้ phpmyadmin / bigdump เอาครับ

ช่วงอาทิตย์ที่ผ่านมาจะเซ็งมาก เพราะไม่เปิดก็จะขอคืนเงิน อธิบายไปก็เท่านั้นแหละครับเพราะจะเอาให้ได้

ขอถามเป็นความรู้นิดนึงครับว่าถ้าจะเพิ่ม address ใน bind-address จะต้องเขียนคำสั่งยังไงเช่น

bind-address = 127.0.0.1, xxx.xx.xx.xx

หรือ

bind-address = 127.0.0.1
bind-address = xxx.xx.xx.xx

bind-address = ip server

เวลาอนุญาติ ip ไหน ค่อยไป grant เอา

ถามไปที่ DA support เขาตอบมาว่า

There is still the “access hosts” level of security that mysql has which is a per-IP based filter, so you likely don’t need to worry too much about it.

คงต้องเปิดไปสักพักดูว่าจะมีปัญหาอะไรหรือเปล่า.

ปรกติค่าพวกนี้ผมไม่เคยใส่ครับ ถ้าจะเปิดก็แค่เอาออกครับเพราะว่าถ้าไม่ระบุคือใช้ได้หมดครับ
ผมก็แค่ปิด Firewall ครับ ถ้าลูกค้าต้องการใช้จริงๆ ไม่ใช้พวก php tunnel แทน ผมก็เปิดให้ครับ แต่เปิดให้แต่ไอพีวงแคบๆ ไม่ได้เปิดทั้งหมด
ถ้าลูกค้า fix ip ผมไม่ได้ถามอะไรมากเลยครับ เปิดให้เลย

ขอเป็นความรู้ครับว่า เปิด bind network จากนอกเครื่อง อันตรายยังไงบ้างครับ
เพราะปกติแต่ละ database/user ต้อง allow host เอาไว้ ถ้าไม่ได้ allow มันก็ connect ไม่ได้ไม่ใช่เหรอ

อย่าง root กับ da_admin ก็ allow เฉพาะ localhost ไว้ ก็น่าจะเข้าได้เฉพาะจาก localhost ใช่เปล่า
เฉพาะ db_user ที่ user ไปเพิ่ม allow host ไว้ถึงจะ connect ได้ แบบนี้เข้าใจถูกเปล่า

connect ได้ครับ แต่ login ไม่ผ่านเท่านั้น
allow host

ทำผ่าน Secure Shell ได้ไหมละครับ เหมือนตัว MySQL Front ตัวใหม่ๆ มัน มีโหมด TCP/IP over SSH.
อย่างน้อยก็ดีกว่า TCP/IP ตรงๆด้วย?

มายุ่งตอนเซต Jailed shell แทน.

หลังจากลองผิดลองถูกสักพักผมว่าที่ work สุดคือ

  1. ปิด bind-address = 127.0.0.1

  2. ใช้ firewall จัดการเอาปิด port 3306 ซะ

  3. ถ้าลูกค้ามี fixed ip ก็ใส่ใน allow ip ที่ firewall

  4. ใส่ ip ลงที่ database บน directadmin

ด้วยวิธีข้างต้นผม test แล้วถือว่าค่อนข้างดี ip อื่นจะเข้าไม่ได้ (เงื่อนไขการ block ip ที่พยามเข้าก็ไปตั้งที่ firewall เอาครับ) ถือว่าโชคดีที่ลูกค้าคนนี้มี fixed ip ไม่งั้นแย่ครับเสียลูกค้าแน่ ๆ