วิธีเปลี่ยนพอร์ต SFTP บน Ubuntu, CentOS และระบบ Linux อื่นๆ

คำแนะนำที่ครอบคลุมในการเปลี่ยนพอร์ต SFTP เริ่มต้นเพื่อถ่ายโอนไฟล์ระหว่างเครื่องผ่านการเชื่อมต่อที่ปลอดภัยและเข้ารหัส

SFTP ย่อมาจาก โปรโตคอลการถ่ายโอนไฟล์ที่ปลอดภัย. โปรโตคอลนี้ใช้งานโดยใช้ Secure Shell (SSH) ซึ่งให้การรักษาความปลอดภัยและการป้องกันจากช่องโหว่ที่ดีกว่า FTP ปกติ

SFTP ให้การเชื่อมต่อที่เชื่อถือได้เพื่อสื่อสารกับเครื่องระยะไกลผ่านเครือข่ายที่ไม่คุ้นเคย (ที่อาจเป็นอันตราย) ฟังก์ชัน SFTP บนสถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์เพื่อถ่ายโอนไฟล์

คู่มือที่ครอบคลุมนี้จะแนะนำคุณตลอดกระบวนการเปลี่ยนพอร์ต SFTP เริ่มต้นใน Linux

เลือกหมายเลขพอร์ต SFTP ใหม่

โดยค่าเริ่มต้น SFTP ใช้พอร์ตหมายเลข 22 ซึ่งเป็นเซิร์ฟเวอร์ SSH ในคู่มือนี้ เราจะเปลี่ยนเป็นพอร์ต 2222 จากพอร์ตเริ่มต้น 22 TCP แต่คุณสามารถเลือกที่จะใช้พอร์ตอื่นๆ ที่คุณเลือกเพื่อกำหนดค่าการเชื่อมต่อ SFTP

บันทึก: พอร์ต 0 – 1023 สงวนไว้สำหรับบริการของระบบ พอร์ตใหม่จะถูกเลือกจากพอร์ตระหว่าง 1024 ถึง 65535

อนุญาตพอร์ต SFTP ใหม่ในไฟร์วอลล์

หากระบบของคุณใช้ไฟร์วอลล์ ต้องแน่ใจว่าได้อนุญาตพอร์ต SFTP ใหม่ในไฟร์วอลล์ก่อนที่จะทำการเปลี่ยนแปลงในไฟล์ระบบ มิฉะนั้น การเข้าถึง SFTP จะถูกบล็อก

บนระบบ Ubuntu คุณสามารถเรียกใช้คำสั่งด้านล่างเพื่อเพิ่มพอร์ต SFTP ใหม่ในรายการพอร์ตที่อนุญาตในไฟร์วอลล์ของ Ubuntu

sudo ufw อนุญาต 2222/tcp

เพื่อตรวจสอบว่ามีการเพิ่มพอร์ตใหม่ไปยัง ufwให้รันคำสั่งต่อไปนี้:

sudo ufw สถานะ
เอาท์พุท: สถานะ: แอ็คทีฟ To Action From -- ------ ---- 8080 ALLOW Anywhere 2222/tcp ALLOW Anywhere 22/tcp ALLOW Anywhere 

สำหรับลีนุกซ์ที่ทำงานอยู่ iptables, ใช้คำสั่งต่อไปนี้เพื่อเพิ่มพอร์ตใหม่

sudo iptables -A INPUT -p tcp --dport 2222 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

สำหรับระบบ Cent OSให้ใช้คำสั่งต่อไปนี้เพื่อเปิดพอร์ตใหม่

sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp sudo firewall-cmd --reload

กำหนดค่า/เปลี่ยนพอร์ต SFTP ใน sshd_config ไฟล์

ในการเปลี่ยนและกำหนดค่าพอร์ต SFTP เราจำเป็นต้องเปิด sshd_config ไฟล์และทำการเปลี่ยนแปลงที่จำเป็นในนั้น

ในการเปิด sshd_config ไฟล์โดยใช้ นาโน เอดิเตอร์ ใช้คำสั่งต่อไปนี้

sudo nano /snap/core/9804/etc/ssh/sshd_config

หาบรรทัดที่เขียนว่า พอร์ต 22 (ตามที่เห็นด้านล่าง)

 ไฟล์การกำหนดค่าที่สร้างโดยแพ็คเกจ # ดูหน้าคู่มือ sshd_config (5) สำหรับรายละเอียด # พอร์ต, IP และโปรโตคอลใดที่เราฟังสำหรับพอร์ต 22 # ใช้ตัวเลือกเหล่านี้เพื่อจำกัดอินเทอร์เฟซ/โปรโตคอล sshd ที่จะผูกกับ #ListenAddress :: #ListenAddress 0.0.0.0 Protocol 2 

เราต้องการเปลี่ยนพอร์ต 22 นี้เป็นพอร์ต 2222 ดังนั้นเพียงแค่แทนที่ด้วย พอร์ต 2222 ดังนี้

พอร์ต 2222

บันทึก: โปรดใช้ความระมัดระวังขณะแก้ไขไฟล์ sshd_config เนื่องจากการแก้ไขที่ไม่ถูกต้องอาจทำให้การเชื่อมต่อล้มเหลว

หากบรรทัดถูกแสดงความคิดเห็นโดยใช้a # แล้วเอา # แล้วบวกเลข 2222 แทน 22

หลังจากเปลี่ยน 22 พอร์ตในไฟล์ sshd_config กด Ctrl + oติดตามโดย เข้า คีย์เพื่อบันทึกไฟล์ sshd_config จากนั้นออกจากโปรแกรมแก้ไขนาโนโดยกด Ctrl + x.

รีสตาร์ท ssh/sshd บริการ

หลังจากบันทึกการเปลี่ยนแปลงในไฟล์ sshd_config แล้ว ให้เริ่มบริการ SSH ใหม่เพื่อให้ระบบสามารถโหลดการกำหนดค่า SSH ใหม่ได้

บน Ubuntu และระบบที่ใช้ Debian อื่นๆ ใช้คำสั่งต่อไปนี้เพื่อเริ่มบริการ ssh ใหม่

sudo service ssh รีสตาร์ท

บน CentOS และลีนุกซ์รุ่นอื่นๆ ที่ ssh บริการเรียกว่า sshd ใช้คำสั่งอื่นด้านล่างเพื่อเริ่มบริการ sshd ใหม่

sudo systemctl รีสตาร์ท sshd

ตรวจสอบว่าพอร์ต SSH ใหม่ใช้งานได้

ตรวจสอบว่าพอร์ต SSH ใหม่เปิดใช้งานอยู่หรือไม่โดยใช้คำสั่งด้านล่าง

ss -an | grep 2222

คุณควรเห็นผลลัพธ์ที่คล้ายกันดังนี้

ผลลัพธ์ tcp LISTEN 0 128 0.0.0.0:2222 0.0.0.0:* tcp ESTAB 0 0 192.168.121.108:2222 172.217.160.163:8080 tcp LISTEN 0 128 [::]:2222 [::]:*

ใช้พอร์ต SFTP ใหม่เพื่อเชื่อมต่อ

ในการเริ่มใช้พอร์ต SFTP ใหม่ ให้ใช้ปุ่ม -P ตัวเลือกใน sftp คำสั่งระบุหมายเลขพอร์ต SSH ใหม่

sftp -p 2222 username@remote_host

ตัวอย่างเช่น:

sftp -p 2222 [email protected]

หากคุณกำลังใช้ไคลเอนต์ GUI เช่น Putty, WinSCP และอื่นๆ ให้ระบุหมายเลขพอร์ตใหม่แทน 22 ขณะเริ่มต้นการเชื่อมต่อ