หากต้องการเพิ่มความปลอดภัยให้กับเซิร์ฟเวอร์ ควรเปลี่ยนพอร์ต SSH จากค่าเริ่มต้น เพราะหมายเลขพอร์ตเริ่มต้นเป็นที่รู้จักกันทั่วไปและเป็นความเสี่ยงด้านความปลอดภัยที่ไม่ควรปล่อยทิ้งไว้ เพื่อให้ขั้นตอนนี้ทำได้ง่าย เราได้เตรียมคำแนะนำแบบทีละขั้นตอนสำหรับการเปลี่ยนพอร์ต SSH บน Linux นอกจากนี้ยังมีข้อมูลพื้นฐานเกี่ยวกับโปรโตคอล SSH และความสำคัญต่อความปลอดภัยของเซิร์ฟเวอร์ หากต้องการข้ามส่วนนี้และเริ่มทำตามขั้นตอนได้เลย
SSH คืออะไร?
ค่า Secure SHell Protocol (SSH) เป็นมาตรการรักษาความปลอดภัยที่ให้คุณและผู้ใช้คนอื่นเชื่อมต่อกับเซิร์ฟเวอร์อย่างปลอดภัยผ่านเครือข่ายที่ไม่ปลอดภัย เช่น อินเทอร์เน็ต สิ่งนี้จำเป็นมากเมื่อคุณวางแผนจะรันเซิร์ฟเวอร์ ไม่ว่าจะเป็น VPS หรือเซิร์ฟเวอร์แบบ dedicated คุณต้องเชื่อมต่อกับเซิร์ฟเวอร์จากแล็ปท็อปผ่านอินเทอร์เน็ต และอินเทอร์เน็ตก็ไม่ใช่สภาพแวดล้อมที่ปลอดภัย คุณจึงไม่อาจละเลยการป้องกันได้ นั่นคือเหตุผลที่ Secure SHell Protocol มีเครื่องมือสำคัญหลายอย่างสำหรับสร้างและรักษาความปลอดภัยของเซิร์ฟเวอร์ รวมถึงเครื่องมือสำหรับการยืนยันตัวตนด้วยรหัสผ่านและ key
ทำไม SSH Security จึงสำคัญ?
เมื่อคุณได้รับ dedicated server หรือ VPS คุณจะมีสิทธิ์เข้าถึงระบบในระดับ root ซึ่งหมายความว่าคุณสามารถใช้โปรโตคอล SSH เชื่อมต่อกับเซิร์ฟเวอร์จากระยะไกลและปรับแต่งค่าต่าง ๆ ได้ตามต้องการ แม้ SSH จะไม่รองรับกราฟิกและใช้งานได้เฉพาะผ่าน Command-Line Interface แต่ก็ยังคงเป็นวิธีหลักในการจัดการเซิร์ฟเวอร์ เช่นเดียวกับบริการบนเครือข่ายทั่วไป SSH ใช้หมายเลขพอร์ตเริ่มต้น แต่เนื่องจากการเปลี่ยนพอร์ต SSH ทำได้ยากกว่าโปรโตคอลอื่น เช่น VNC ผู้ใช้บางส่วนจึงไม่เปลี่ยน นั่นทำให้แฮกเกอร์และซอฟต์แวร์ที่เป็นอันตรายมีโอกาสเจาะระบบมากขึ้น เพราะรู้พอร์ตที่จะโจมตี คุณจึงควรใช้เวลาเปลี่ยนพอร์ต SSH เริ่มต้นเสียตั้งแต่ตอนนี้ และด้วยบทแนะนำนี้คุณทำได้อย่างรวดเร็วโดยไม่ยุ่งยาก
Linux Hosting ที่ใช้งานได้ทันที
ต้องการวิธีที่ดีกว่าในการโฮสต์เว็บไซต์และเว็บแอปของคุณ? กำลังพัฒนาโปรเจกต์ใหม่? หรือแค่ไม่อยากใช้ Windows? นั่นคือเหตุผลที่เรามี Linux VPS
เริ่มต้นใช้งาน Linux VPS ของคุณวิธีเปลี่ยนพอร์ต SSH ใน Linux
ตลอดบทแนะนำนี้ เราจะใช้ Linux Terminal เพื่อป้อนคำสั่งที่จำเป็น ภาพหน้าจอถ่ายจาก Fedora Server 34 แต่คำสั่งส่วนใหญ่ใช้ได้กับ Linux distro หลัก ๆ ทุกตัว กรณีที่ต้องใช้คำสั่งเฉพาะ distro เราจะระบุแยกไว้ให้ ในการทำตามขั้นตอนเหล่านี้ คุณต้องล็อกอินเข้าเซิร์ฟเวอร์ผ่าน VNC หรือ SSH เมื่อเข้าใจภาพรวมแล้ว มาเริ่มกันเลย
ขั้นตอนที่ 1: เปิด Terminal
ขั้นแรก เราต้องเปิด Terminal หากคุณใช้ SSH อยู่แล้ว คุณก็ใช้ terminal อยู่โดยปริยาย หากใช้ remote desktop protocol เช่น VNC คุณเปิด Terminal ได้โดยกด Ctrl+Alt+T หรือค้นหาในเมนูแอปพลิเคชันใน Linux ทุก distro
อ่านเพิ่มเติม: สร้าง SSH Keys ใน Windows 10
ขั้นตอนที่ 2: แก้ไขไฟล์คอนฟิก SSH
ต่อไป เราจะใช้ ตัวแก้ไขข้อความ nanoNano ให้คุณแก้ไขไฟล์ข้อความได้โดยตรงจาก CLI จึงเหมาะกับการเชื่อมต่อผ่าน SSH มาก Nano ควรติดตั้งมาให้โดยค่าเริ่มต้น หากไม่มี ดูคำสั่งติดตั้งได้ในภาคผนวก เราจะใช้ editor นี้แก้ไขไฟล์คอนฟิกของ SSH: /etc/ssh/sshd_config (หากคุณเชื่อมต่อผ่าน remote desktop คุณสามารถใช้ text editor ที่ถนัดได้) โดยพิมพ์คำสั่งต่อไปนี้:
sudo nano /etc/ssh/sshd_config
เลื่อนลงจนเจอแอตทริบิวต์ Port:
![[nano editor บน Linux Terminal แสดงไฟล์คอนฟิกของ SSH]](https://cloudzy.com/wp-content/uploads/Screenshot-from-2021-07-17-11-13-53.png)
ขั้นตอนที่ 3: (ไม่บังคับ) เปลี่ยนพอร์ต SSH เพื่อเพิ่มความปลอดภัย
อย่างที่เห็น พอร์ตเริ่มต้นระบุไว้เป็น 22 และ # ก่อนหน้าบรรทัดนั้น หมายความว่าบรรทัดนั้นเป็นคอมเมนต์ หากต้องการแก้ไขค่าใดๆ คุณต้องลบ # ออกก่อนเพื่อยกเลิกคอมเมนต์ บางคนนิยมใช้พอร์ต SSH 443 ซึ่งปกติสงวนไว้สำหรับการเข้ารหัส SSL เพื่อทำให้แฮกเกอร์สับสน สมมติว่าคุณต้องการเปลี่ยนพอร์ต SSH เป็น 3333 ให้แก้ไขดังนี้:
From: #Port 22 To: Port 3333
อีกครั้ง ตรวจสอบให้แน่ใจว่าไม่มี # ก่อนคำว่า Port. กด Ctrl+O เพื่อบันทึกการเปลี่ยนแปลง และ Ctrl+X เพื่อออกจาก editor
อ่านเพิ่มเติม: Telnet กับ SSH
ขั้นตอนที่ 4: รีสตาร์ทบริการ SSHD เพื่อให้การเปลี่ยนแปลงมีผล
คุณกำหนดค่า SSH เสร็จแล้ว แต่เพื่อให้การเปลี่ยนแปลงมีผล คุณต้องรีสตาร์ท service SSHD ที่ดูแลการเชื่อมต่อ SSH โดยใช้คำสั่งต่อไปนี้:
sudo systemctl reload sshd
ขั้นตอนที่ 5: ตั้งค่า Firewall
ก่อนที่จะเริ่มใช้งานระบบรักษาความปลอดภัยของเซิร์ฟเวอร์ที่ปรับปรุงแล้ว คุณต้องกำหนดค่า firewall เพื่อไม่ให้บล็อกพอร์ต SSH ใหม่ ขั้นตอนนี้จะแตกต่างกันไปตาม distro เนื่องจาก distro แต่ละตัวใช้ firewall ที่ต่างกัน
วิธีเปลี่ยนพอร์ต SSH ใน CentOS/RHEL/Fedora
distro ส่วนใหญ่ที่ใช้ RHEL เป็นฐาน เช่น CentOS ใช้ชุดความปลอดภัยที่ชื่อว่า SELinux (Security-Enhanced Linux) ซึ่งทำหน้าที่เป็น firewall รวมถึงอื่นๆ อย่างไรก็ตาม ก่อนจะดำเนินการต่อ คุณควรตรวจสอบก่อนว่า SELinux เปิดใช้งานอยู่หรือไม่ โดยใช้คำสั่งต่อไปนี้:
sudo sestatus
หากคุณเห็นผลลัพธ์ลักษณะนี้ โดยบรรทัดแรกแสดงว่า SELinux status: เปิดใช้งาน แสดงว่าคุณต้องทำตามขั้นตอนต่อไปนี้ มิฉะนั้น สามารถข้ามส่วนนี้และไปยังขั้นตอนสุดท้ายได้เลย ที่นี่.
![[คำสั่งตรวจสอบสถานะ on/off ของ SELinux]](https://cloudzy.com/wp-content/uploads/Screenshot-from-2021-07-17-11-53-29.png)
เมื่อยืนยันแล้วว่า SELinux เปิดใช้งานอยู่ เราจะใช้ semanage package หากถูกปิดใช้งานอยู่ คุณสามารถใช้คำแนะนำเหล่านี้เพื่อเปิด SELinux ได้อย่างรวดเร็ว ใช้คำสั่งต่อไปนี้เพื่อเพิ่มพอร์ตที่คุณเลือกลงในรายการพอร์ต SSH ของ SELinux (ในตัวอย่างนี้คือ 3333):
sudo semanage port -a -t ssh_port_t -p tcp 3333
จากนั้น เราต้องสั่งให้ firewall เพิ่มพอร์ต 3333 เข้าไปใน public zone ซึ่งเป็นช่วงหมายเลขพอร์ตที่เปิดไว้:
sudo firewall-cmd --zone=public --add-port=3333/tcp --permanent
สิ่งที่เหลืออยู่คือรีสตาร์ท firewall service เพื่อให้การเปลี่ยนแปลงมีผล:
sudo firewall-cmd --reload
เพียงเท่านี้สำหรับการเปลี่ยนพอร์ต SSH บน CentOS คุณสามารถทดสอบพอร์ตใหม่ได้ด้านล่าง
อ่านเพิ่มเติม: SSH Client ที่ดีที่สุดสำหรับ Windows ในปี 2022
วิธีเปลี่ยนพอร์ต SSH ใน Ubuntu/Debian/Kali
Ubuntu และ distro ที่ใช้ Debian เป็นฐานบางตัว มี UFW firewall ติดตั้งและเปิดใช้งานไว้โดยค่าเริ่มต้น ดำเนินการได้ด้วยคำสั่งต่อไปนี้ โดยพิมพ์ใน Terminal เช่นเดียวกับคำสั่งก่อนหน้า:
sudo ufw allow 2222/tcp
เพียงเท่านี้สำหรับการเปลี่ยนพอร์ต SSH บน Ubuntu ทีนี้มาทดสอบการเชื่อมต่อด้วยพอร์ตใหม่กัน
ทดสอบพอร์ต SSH ใหม่
ตอนนี้ เพื่อตรวจสอบว่าทุกอย่างทำงานถูกต้อง เราจะทดสอบสั้นๆ ว่าการ forward พอร์ต SSH สำเร็จหรือไม่ หากคุณใช้ SSH อยู่ในขณะนี้ ให้ออกจาก session ก่อนโดยปิด shell จากนั้นเปิด Terminal บนเครื่อง client และใช้คำสั่งต่อไปนี้เพื่อเชื่อมต่อผ่าน SSH:
shh 00.00.00.00 -p 3333
แน่นอนว่าคุณต้องแทนที่ 00.00.00 ด้วย IP address ที่ถูกต้องของเซิร์ฟเวอร์ ซึ่งสามารถดูได้จาก control panel บนเว็บไซต์ของผู้ให้บริการ
Linux Hosting ที่ใช้งานได้ทันที
ต้องการวิธีที่ดีกว่าในการโฮสต์เว็บไซต์และเว็บแอปของคุณ? กำลังพัฒนาโปรเจกต์ใหม่? หรือแค่ไม่อยากใช้ Windows? นั่นคือเหตุผลที่เรามี Linux VPS
เริ่มต้นใช้งาน Linux VPS ของคุณมาตรการรักษาความปลอดภัยอื่น ๆ
นี่คือทั้งหมดสำหรับการเพิ่มความปลอดภัยให้ SSH ของเซิร์ฟเวอร์ แต่ยังมีสิ่งอื่นที่ต้องดูแลต่อเนื่อง งานด้านความปลอดภัยของ administrator ไม่มีวันเสร็จสิ้น ยังมีสิ่งที่ต้องทำอีก เช่น ปิดการเข้าถึงผ่านบัญชี root, ตั้งรหัสผ่านที่แข็งแกร่งขึ้น เป็นต้น แน่นอนว่าผู้ให้บริการ hosting มีบทบาทสำคัญที่สุดในการรักษาความปลอดภัยของเซิร์ฟเวอร์ ดังนั้นการเลือกผู้ให้บริการที่เหมาะสมจึงเป็นเรื่องสำคัญ นั่นคือเหตุผลที่ Cloudzy รันเซิร์ฟเวอร์ Linux VPS บนเซิร์ฟเวอร์ที่มีความปลอดภัยสูง พร้อม firewall ระดับฮาร์ดแวร์และ AI, ระบบป้องกัน DDoS อัจฉริยะ และมาตรการรักษาความปลอดภัยอื่นๆ ที่พัฒนาขึ้นเอง วางใจได้เลยและ รับโซลูชัน Linux VPS ที่ปลอดภัยจาก Cloudzy วันนี้