ป้ายกำกับ: Possible

Linux: การติดตั้ง SFTP (Secure File Transfer Protocol )Linux: การติดตั้ง SFTP (Secure File Transfer Protocol )

การติดตั้ง SFTP บน Ubuntu Server โดยใช้ Port 1234 แทน Port 22 มาตรฐาน จะช่วยเพิ่มความปลอดภัยจากการถูกสุ่มโจมตี ได้ดีขึ้นครับ นี่คือขั้นตอนการติดตั้งและตั้งค่าอย่างละเอียด


การสำรองข้อมูลและการเตรียมตัว

ก่อนแก้ไขไฟล์ระบบที่สำคัญ แนะนำให้ทำ Snapshot หรือ Backup ตัวเครื่องไว้ก่อน เพราะหากตั้งค่าผิดพลาดอาจทำให้คุณหลุดจากการเชื่อมต่อ SSH ได้


แก้ไข Port การทำงานของ SSH

เนื่องจาก SFTP ทำงานผ่านโปรโตคอล SSH เราจึงต้องเปลี่ยน Port ที่ไฟล์คอนฟิกหลัก

  1. ปิดไฟล์ SSH Config
    sudo nano /etc/ssh/sshd_config
  2. ค้นหาบรรทัด #Port 22 ให้ลบ # ออกแล้วเปลี่ยนเป็น
    Port 1234

จำกัดสิทธิ์ผู้ใช้ให้ใช้ได้เฉพาะ SFTP

เพื่อความปลอดภัย เราควรตั้งค่าให้ User เข้าถึงได้เฉพาะโฟลเดอร์ที่กำหนด และไม่สามารถใช้คำสั่ง Shell อื่น ๆ ได้

  1. เพิ่มคำสั่งต่อไปนี้ที่ ท้ายไฟล์ /etc/ssh/sshd_config

    BASH / Shell

    BASH / Shell

    Match Group sftp_users ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
    
  • บันทึกและออกจากโปรแกรม

  • สร้างกลุ่มและผู้ใช้งานสำหรับ SFTP

    1. สร้างกลุ่มสำหรับผู้ใช้ SFTP
      sudo addgroup sftp_users
    2. สร้างผู้ใช้ใหม่
      sudo adduser sftpuser
    3. เพิ่มผู้ใช้เข้ากลุ่ม
      sudo usermod -G sftp_users sftpuser

    จัดการสิทธิ์การเข้าถึงโฟลเดอร์

    เพื่อให้ระบบ Chroot ทำงานได้ โฟลเดอร์ Home ของ User ต้องมีเจ้าของเป็น root เท่านั้น

    1. ตั้งค่าเจ้าของโฟลเดอร์
      sudo chown root:root /home/sftpuser
      sudo chmod 755 /home/sftpuser
    2. สร้างโฟลเดอร์สำหรับอัปโหลดไฟล์
      sudo mkdir /home/sftpuser/uploads
      sudo chown sftpuser:sftp_users /home/sftpuser/uploads

    ตั้งค่า Firewall และ Restart บริการ

    อย่าลืมเปิด Port 1234 ที่ Firewall ก่อนรีสตาร์ท มิฉะนั้นคุณจะเชื่อมต่อไม่ได้

    1. เปิด Port 1234
      sudo ufw allow 1234/tcp
    2. ตรวจสอบความถูกต้องของ Config
      sudo sshd -t
    3. Restart บริการ SSH
      sudo systemctl restart ssh

    วิธีการเชื่อมต่อ

    เมื่อติดตั้งเสร็จแล้ว คุณสามารถเชื่อมต่อผ่านโปรแกรมอย่าง FileZilla หรือ WinSCP โดยระบุรายละเอียดดังนี้

    • Host
      sftp://your_server_ip
    • Username
      sftpuser
    • Port
      1234

    ข้อควรระวัง
    หลังจากเปลี่ยน Port แล้ว การรีโมทเข้าหน้าจอ Terminal ผ่าน SSH ครั้งต่อไป ต้องระบุ Port ใหม่ด้วยเสมอ เช่น
    ssh -p 1234 user@ip_address


    อ่านเพิ่มเติม