วิธีการแก้ NAS Buffalo Linkstation Duo ให้รองรับ SMB2

ใช่แล้วครับ Buffalo LinkStation Duo ตัวที่ซื้อมาเมื่อ 10 ปีก่อนนั่นแหล่ะ พักหลังนี่เอามาเป็น NAS สำหรับเก็บ Video จากกล้องวงจรปิด (Xiaomi)

ปกติพวกกล้องวงจรปิดพวกนี้มันเก็บ SD Card ไว้ในตัวเอง แปลว่าถ้าใครซักคนขโมยกล้องไปด้วย เราก็เสียวิดีโอทีอัดไว้ไปด้วย เราเลยให้มันส่ง video มาเก็บไว้บน NAS ด้วย นอกเหนือจากเก็บไว้บนตัวเอง … แต่วันนี้ไม่ได้มาแชร์เรื่องนี้

เรื่องที่ตั้งใจจะแชร์คือ ตั้งแต่ปี 2016, Microsoft แนะนำให้เลิกใช้โปรโตคอล SMB1 พูดง่ายๆก็คือโปรโตคอลที่ Windows ใช้ในการ Share file บน Network นั่นแหล่ะ เพราะมีปัญหาเรื่องความปลอดภัย .. หลายปีผ่านไป Windows 10 เลยปิดการใช้งาน SMB1 เป็นค่าเริ่มต้น

ซึ่งนั่นทำให้เกิดปัญหา เพราะว่าตัว LinkStation ดันมีแค่ SMB1 พอฝั่ง Windows ปิด เลยทำให้เข้า Sharepath ไปหา NAS ไม่ได้ ความยุ่งก็เลยเกิด … หลายๆคนเลยไปเปิด SMB1 กลับมาแทน ซึ่งส่วนตัวไม่ค่อยเห็นด้วย เลยลองไปหาข้อมูล เพื่อจะ Enable SMB2 บนตัว NAS แล้วก็พบว่าจริงๆ SMB engine บนตัว NAS (ซึ่งเป็น unix based) เนี่ย รองรับ SMB2 นะ แต่มีค่า configuration ที่ไม่ได้ใส่ไว้ เราเลยต้องมาเพิ่มมันเอง

ขั้นตอนที่จำเป็นจริงๆในการทำให้มันใช้ได้ คือ เพิ่ม code 4 บรรทัด สำหรับเพิ่ม configuration ให้กับตัว SMB Engine บน NAS … แต่มันจะก็ใช่ว่าใครๆจะเข้าไปแก้โคดได้นี่นา นั่นคือขั้นตอนที่ทำให้มันยุ่งขึ้น มาลองดูกัน

* หมายเหตุ การแก้ไขระบบนี้อาจจะทำให้ NAS มีปัญหาจนไม่สามารถใช้งานได้ หรืออาจจะทำให้ NAS มีความปลอดภัยลดลง

1. เปิดสิทธิการเข้าไปแก้ไขไฟล์ในระบบ (Enable root access)

  • ดาวโหลดเครื่องมือ

    มีเครื่องมือที่นักพัฒนาทำไว้ สำหรับเปิดให้เราสามารถ remote access (ssh/telnet) เข้าไปที่ NAS ได้ ตัว tool มีการนำมาพัฒนาต่ออีกหลายอัน ตัวที่ผมใช้แล้วสำเร็จคือตัวนี้ ACP Commander (gry.ch) ผมใช้ตัว EXE for Microsoft Windows ทั้งนี้ตัว tool ต้องการ Java Runtime ด้วย อาจจะต้องดาวโหลดถ้ายังไม่มี

    เมื่อดาวโหลดมาแล้ว คลาย zip แล้วสามารถรันโปรแกรมได้เลย acp_commander_gui_156.exe
  • Enable SSH และ ตั้งรหัสผ่าน root
    โดยปกติตัว acp_commander_gui จะสามารถหา NAS ของเราเจอ ถ้าทั้งคู่ต่ออยู่ใน network เดียวกัน สิ่งที่เราต้องทำก็คือ กรอกรหัสของ admin user ซึ่งเป็นตัวเดียวกับ user ที่เราล็อกอินเข้าไป manage NAS นั่นแหล่ะ

    ถ้าสำเร็จ ปุ่ม Enable SSH และ ปุ่ม Set Root PW จะ Enable ขึ้นมาให้เรากด เราก็กดตามนั้นเลย เริ่มจาก Enable SSH แล้วตามด้วย Set Root PW ซึ่งจะมีหน้าต่างขึ้นมาให้เราใส่รหัส root

    เราสามารถทดสอบได้ด้วยการเปิด powershell หรือ cmd แล้วใช้คำสั่ง ssh -l root {ip address ของ NAS} ถ้าเราเข้าได้ก็แสดงว่าเราพร้อมจะแก้ไขไฟล์ล่ะ ถ้ายังไม่ได้ก็ต้องแก้ไขก่อน keyword น่าจะเป็นการ enable root access บน Buffalo LinkStation LS-WXL

2. แก้ไขไฟล์ smb.sh

เมื่อเราพร้อมแล้ว เราก็ ssh เข้าไปที่ NAS ของเรา โดยแนะนำดังนี้

  • backup file เก่า
    เมื่อเรา ssh เข้าไป ปกติเราจะอยู่ที่ home directory ของ user เราก็ควรจะก๊อปไฟล์มาเก็บไว้ กันเหนียวเผื่อเราแก้ผิด ใช้คำสั่งประมาณ cp /etc/init.d/smb.sh .
  • เริ่มแก้ไฟล์
    บน NAS ไม่มี Editor หรูๆอย่าง nano เราก็ต้องใช้ของที่มีคือ vi ที่ติดมากับ NAS (ส่วนตัวจะไม่พยายามลงอะไรไปนอกเหนือจากที่มีอยู่) วิธีการใช้ vi คงต้องไปหาเพิ่มเติมนะครับ อยู่นอกเหนือจากโพสต์นี้

    เริ่มโดย vi  /etc/init.d/smb.sh
    เมื่อเปิดไฟล์มาแล้ว หา function configure() ซึ่งในนั้นจะมีบรรทัดที่เรียก
        /usr/local/sbin/nas_configgen -c samba
        if [ $? -ne 0 ]; then
                echo "$0 configure fail"
                exit 1
        fi

เราต้องแก้ให้เป็นแบบนี้

        /usr/local/sbin/nas_configgen -c samba
        if [ $? -ne 0 ]; then
                echo "$0 configure fail"
                exit 1
        fi

        /bin/sed -i '3i\\
       min protocol = SMB2\\
       max protocol = SMB2\\
       ' /etc/samba/smb.conf

หลักๆคือเพิ่มด้านล่างลงไป ให้มันไปแก้ configuration ของ SMB ทุกครั้งที่มัน start เมื่อเราแก้ไฟล์แล้ว save ออกมาแล้ว เราก็ให้คำสั่ง /etc/init.d/smb.sh reload ให้มัน reload ใหม่ เสร็จแล้วก็ทดสอบว่าเข้า Sharepath จาก Windows ได้มั๊ย

เป็นอันจบสิ้นกระบวนการ ใครมีอะไรสงสัยลองถามมาได้ครับ

Ref:

Scroll to top