การอนุญาต SSH สำหรับการตรวจสอบรหัสผ่านด้วย Amazon Linux 2 ใน EC2

เราสามารถสร้าง User และ Password เพื่อใช้ในการ Login เข้ามายัง Amazon Linux 2 ได้ง่ายๆ จากการตั้งค่าเพียงแค่ไม่กี่ขั้นตอน สามารถเข้ามาดูวิธีการทำได้ที่บทความนี้เลย

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

สวัสดีเพื่อนๆ ชาว AWS Service ทุกท่านด้วยครับ ผมป๊อปครับ

ในบทความนี้ผมได้เขียนอธิบายเกี่ยวกับการอนุญาต SSH สำหรับการตรวจสอบรหัสผ่านด้วย Amazon Linux 2 ใน EC2 ไว้ สามารถเรียนรู้ในบทความนี้ได้เลยครับ

สิ่งที่ต้องมี

ก่อนอื่นต้องทำการติดตั้ง EC2 Instance สามารถดูวิธีการทำได้ที่ลิงก์ด้านล่างนี้

เมื่อสร้าง EC2 Instance เสร็จแล้วจะได้หน้าตาแบบนี้
instance_SSH_password

และเมื่อ Login เข้ามา Amazon Linux 2 ด้วย PuTTy ได้แล้วจะมีหน้าตาแบบนี้
login_putty_ssh

ข้อกำหนดเบื้องต้น

ก่อนดำเนินการตามขั้นตอนในบทความนี้ ต้องทำการเปลี่ยนec2-userให้เป็นrootทุกครั้ง เพื่อที่จะสามารถจัดการระบบใน Server Amazon Linux 2 ได้

เรียกใช้คำสั่งนี้เพื่อเข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์root

sudo su -

login_putty-1

เรียกใช้คำสั่งนี้เพื่อ Update server ให้เป็นปัจจุบันเสมอ

yum update -y

login_putty-2

การตั้งค่าอนุญาต User และ Password ใน SSH

ก่อนอื่นทำการขยายหน้าโปรแกรม PuTTy ให้ใหญ่ขึ้นตามต้องการ เพื่อให้ง่ายต่อการดูและตั้งค่า เมื่อพร้อมแล้วมาเริ่มการตั้งค่ากันเลย

เรียกใช้คำสั่งนี้เพื่อแก้ไขไฟล์sshd_config

vi /etc/ssh/sshd_config

setting_ssh_u_p-1

เมื่อเข้ามาแล้วให้ค้นหา PasswordAuthentication ตามนี้
พิมพ์/Password+ Enter ลงไปได้เลย
จากนั้นจะเจอPasswordAuthenticationเราจะทำการแก้ไขในส่วนนี้
setting_ssh_u_p-2

เมื่อค้นหา PasswordAuthentication เจอแล้ว ให้แก้ไขตามนี้
เปลี่ยนภาษาคีย์บอร์ด แล้วกดปุ่มiให้ขึ้น-- INSERT --
เปลี่ยน PasswordAuthentication: ให้เป็นyes
setting_ssh_u_p-3

กดปุ่มEscให้-- INSERT --หายไป แล้วพิมพ์:xหรือ:wqลงไปเพื่อบันทึกการตั้งค่าได้เลย
setting_ssh_u_p-4

เรียกใช้คำสั่งนี้เพื่อ restart sshd

systemctl restart sshd

setting_ssh_u_p-5

การตั้งค่า User และ Password ที่จะใช้ Login Server Amazon Linux 2

เรียกใช้คำสั่งนี้เพื่อเพิ่ม User ที่ชื่อtest(จะใช้ชื่ออะไรก็ได้)

useradd test

add_u_p-1-fix

เรียกใช้คำสั่งนี้เพื่อตั้งค่า Password ให้กับ User:test

จากนั้นให้ใส่ New Password และ Retype new password ที่ต้องการใช้ Login เช่นcmth2022(ในส่วนของรหัสจะไม่แสดงให้เห็น ให้พิมพ์ลงไปได้เลย)
เมื่อขึ้นpasswd: all authentication tokens updated successfully.แล้ว การสร้าง Password นั้นเสร็จสมบูรณ์

passwd test

add_u_p-2-fix

ทดสอบการ Login Server Amazon Linux 2 ด้วย User และ Password ที่ตั้งขึ้นเอง

คลิกขวาที่แถบด้านบนของโปรแกรม PuTTy แล้วเลือกNew Session...เพื่อเปิดหน้าต่างโปรแกรมใหม่ขึ้นมา
test_ssh_u_p-1

มาที่Connection › Dataและลบ ec2-user ออกจาก Auto-login username
test_ssh_u_p-2

มาที่Connection › SSH › Authและลบ Path หรือเส้นทางที่เก็บไฟล์ Key pair ออกจาก Browse...
จากนั้นคลิกOpenเพื่อ Login
test_ssh_u_p-3

ทีนี้เราจะได้ PuTTy ที่เป็น Terminal ใหม่เพิ่มขึ้นมา
ให้ใส่ User และ Password ลงไปได้เลย เช่น:

login as: test
test@18.142.108.90's password: cmth2022  # ในส่วนของ Password จะไม่แสดงข้อความให้เห็น ให้พิมพ์ลงไปได้เลย

test_ssh_u_p-4

เมื่อเข้ามาแล้วจะได้หน้าตาแบบนี้ โดยใช้ชื่อ Usertestในการ login test_ssh_u_p-5

ทีนี้เรามาลองเข้าใช้งานrootกันดู โดยเรียกใช้คำสั่งด้านล่างนี้

จะเห็นว่าไม่สามารถเข้าไปยัง root ได้ พูดง่ายๆ คือไม่มีสิทธิ์ที่จะเข้าถึงrootได้นั่นเอง แต่ถ้าต้องการสิทธิ์เข้าถึง root สามารถทำได้ง่ายๆ ไปดูที่ขั้นตอนถัดไปได้เลยครับ

sudo su -

test_ssh_u_p-6

ตั้งค่าการเข้าถึงสิทธิ์ root ให้กับ User ที่สร้างขึ้นเอง

มาที่หน้าโปรแกรม PuTTy หน้าแรก หรือTerminal 1ซึ่งได้ทำการ login เข้าไปยัง root ไว้ก่อนหน้านี้แล้ว(คำว่าTerminalสามารถใช้เรียกแทนในส่วนนี้ได้)

จากนั้นเรียกใช้คำสั่งนี้เพื่อตั้งค่าsudo

visudo

test_ssh_u_p-7

เมื่อเข้ามาหน้า sudo แล้ว กดปุ่มiให้ขึ้น-- INSERT --และกดปุ่มเลื่อนลงมาด้านล่างสุดจนเห็นคำว่า #includedir /etc/sudoers.d
test_ssh_u_p-8

ทำการเว้นบรรทัดมา 2 บรรทัดแล้วลบ#ที่บรรทัดสุดท้ายออก
จากนั้น Copy Code ด้านล่างนี้ แล้วนำไปวางในไฟล์ sudo โดยการคลิกขวา เพื่ออนุญาตการเข้าถึง root ให้กับ Usertestนั่นเอง (testนี้คือ User)

เมื่อเสร็จแล้วให้บันทึกโดยการกดปุ่มEscให้-- INSERT --หายไป และพิมพ์:xหรือ:wqเพื่อทำการบันทึก (ก่อนบันทึกให้ดูภาพประกอบด้วยว่าเหมือนกันหรือไม่ ยกเว้นชื่อ Usertestที่ต้องเปลี่ยน)

test ALL=(ALL) NOPASSWD:ALL

test_ssh_u_p-9

เมื่อตั้งค่าเสร็จแล้วกลับมาที่Terminal 2

เรียกใช้คำสั่งนี้เพื่อลอง login โดยใช้สิทธิ์การเข้าถึงrootอีกครั้ง
จะเห็นว่าสามารถเข้าถึงrootโดยใช้ชื่อ User:testได้เหมือนกับ Terminal 1 แล้ว
test_ssh_u_p-10

ถ้าเราสามารถใช้ login โดยใช้สิทธิ์การเข้าถึงrootด้วยชื่อ User:testได้แล้ว เพียงเท่านี้การตั้งค่าทั้งหมดในบทความนี้ก็เสร็จสมบูรณ์

ข้อควรระวัง

โปรดใช้ความระมัดระวังกับ EC2 Instance ที่มีการตั้งค่านี้ เนื่องจากมีความเสี่ยงที่จะถูกโจมตีจาก Brute-force attack ซึ่งผู้ก่อการร้ายจะโจมตีด้วยวิธีการส่งรหัสผ่านหรือข้อความรหัสผ่านจำนวนมาก โดยหวังว่าจะคาดเดาได้อย่างถูกต้อง ดังนั้นต้องใช้วิธีการจำกัด IP Address ในการเข้าถึง Server เพื่อความปลอดภัยของคุณเอง

อ่านเพิ่มเติมได้ที่: Brute-force attack

สรุป

การ Login เข้าใช้งาน Server Amazon Linux 2 โดยการเข้าถึงสิทธิ์ root นั้น สามารถทำได้หลายวิธี ซึ่งในบทความนี้เป็นการสาธิตวิธีการ login เข้ามายัง Amazon Linux 2 โดยใช้ User กับ Password ที่เราสร้างขึ้นเอง รวมไปถึงตั้งค่า sudo ให้สามารถเข้าใช้งานโดยมีสิทธิ์การเข้าถึง root ได้อีกด้วย

บทความที่เกี่ยวข้อง