ค้นหาเว็บไซต์

วิธีการติดตั้งและกำหนดค่าเซิร์ฟเวอร์ OpenSSH ใน Linux


การเป็นผู้ดูแลระบบเครือข่ายต้องอาศัยความรู้เชิงลึกเกี่ยวกับโปรโตคอลการเข้าสู่ระบบระยะไกล เช่น rlogin, telnet และ ssh สิ่งที่ฉันจะพูดถึงในบทความนี้คือ ssh

SSH เป็นโปรโตคอลระยะไกลที่ปลอดภัยซึ่งใช้เพื่อทำงานจากระยะไกลบนเครื่องอื่นหรือถ่ายโอนข้อมูลระหว่างคอมพิวเตอร์โดยใช้คำสั่ง SCP (Secure Copy) แต่ OpenSSH คืออะไร และจะติดตั้งลงในการกระจาย Linux ของคุณได้อย่างไร

OpenSSH คืออะไร?

OpenSSH คือชุดเครื่องมือคอมพิวเตอร์โอเพ่นซอร์สฟรีที่ใช้เพื่อให้การสื่อสารที่ปลอดภัยและเข้ารหัสผ่านเครือข่ายคอมพิวเตอร์โดยใช้โปรโตคอล ssh หลายคนที่ยังใหม่กับคอมพิวเตอร์และโปรโตคอล สร้างความเข้าใจผิดเกี่ยวกับ OpenSSH พวกเขาคิดว่ามันเป็นโปรโตคอล แต่ไม่ใช่ มันเป็นชุดของโปรแกรมคอมพิวเตอร์ที่ใช้ โปรโตคอล ssh< /แข็งแกร่ง>.

OpenSSH ได้รับการพัฒนาโดยกลุ่ม Open BSD และเผยแพร่ภายใต้ ใบอนุญาต BSD แบบง่าย ปัจจัยหลักที่ทำให้ OpenSSH สามารถนำไปใช้ได้มากในหมู่ผู้ดูแลระบบก็คือความสามารถแบบหลายแพลตฟอร์มและคุณลักษณะดีๆ ที่มีประโยชน์มากที่มันมี

เวอร์ชันล่าสุดคือ OpenSSH 9.3 ซึ่งเปิดตัวเมื่อวันที่ 15 มีนาคม 2023 และมาพร้อมกับคุณลักษณะและแพตช์ใหม่มากมาย ดังนั้นหากคุณใช้ OpenSSH อยู่แล้ว สำหรับการจัดการเครื่องของคุณ ฉันขอแนะนำให้คุณอัปเกรดหรือติดตั้ง ssh จากแหล่งที่มา

เหตุใดจึงต้องใช้ OpenSSH บน Telnet หรือ Ftp

เหตุผลที่สำคัญที่สุดว่าทำไมเราจึงควรใช้เครื่องมือ OpenSSH บน ftp และ Telnet ก็คือการสื่อสารและข้อมูลรับรองผู้ใช้ทั้งหมดที่ใช้ OpenSSH ได้รับการเข้ารหัส และยังได้รับการปกป้องจากการโจมตีจากคนกลางอีกด้วย หากบุคคลที่สามพยายามขัดขวางการเชื่อมต่อของคุณ OpenSSH จะตรวจพบและแจ้งให้คุณทราบ

คุณสมบัติ OpenSSH

  • การสื่อสารที่ปลอดภัย
  • การเข้ารหัสที่แข็งแกร่ง (3DES, ปักเป้า, AES, Arcfour)
  • การส่งต่อ X11 (เข้ารหัสการรับส่งข้อมูลระบบหน้าต่าง X)
  • การส่งต่อพอร์ต (ช่องทางที่เข้ารหัสสำหรับโปรโตคอลรุ่นเก่า)
  • การตรวจสอบสิทธิ์ที่รัดกุม (รหัสสาธารณะ รหัสผ่านแบบใช้ครั้งเดียว และการตรวจสอบสิทธิ์ Kerberos)
  • การส่งต่อตัวแทน (การลงชื่อเพียงครั้งเดียว)
  • การทำงานร่วมกัน (สอดคล้องกับมาตรฐานโปรโตคอล SSH 1.3, 1.5 และ 2.0)
  • การสนับสนุนไคลเอนต์และเซิร์ฟเวอร์ SFTP ในโปรโตคอลทั้ง SSH1 และ SSH2
  • Kerberos และ การส่งตั๋ว AFS
  • การบีบอัดข้อมูล

ติดตั้งเซิร์ฟเวอร์ OpenSSH บน Linux

หากต้องการติดตั้ง OpenSSH ให้เปิดเทอร์มินัลแล้วเรียกใช้คำสั่งต่อไปนี้ด้วยสิทธิ์ผู้ใช้ขั้นสูง

บน Debian/Ubuntu/Linux Mint

ในการแจกแจงแบบ Debian คุณสามารถใช้คำสั่ง apt ต่อไปนี้เพื่อติดตั้งเซิร์ฟเวอร์และไคลเอนต์ openssh ดังที่แสดง

sudo apt install openssh-server openssh-client

บน RHEL/Centos/Fedora

บนการกระจายแบบ RedHat ให้พิมพ์คำสั่ง yum ต่อไปนี้เพื่อติดตั้งเซิร์ฟเวอร์และไคลเอนต์ openssh

yum -y install openssh-server openssh-clients

กำหนดค่าเซิร์ฟเวอร์ OpenSSH ใน Linux

ถึงเวลากำหนดค่าการทำงาน OpenSSH ของเราผ่านไฟล์ ssh config แต่ก่อนที่จะแก้ไขไฟล์ /etc/ssh/sshd_config เราจำเป็นต้องสำรองข้อมูล สำเนาของมัน ดังนั้นในกรณีที่เราทำผิดพลาดเรามีสำเนาต้นฉบับ

เปิดเทอร์มินัลแล้วรันคำสั่ง cp ต่อไปนี้เพื่อสร้างสำเนาของไฟล์การกำหนดค่า sshd ดั้งเดิม

sudo cp /etc/ssh/sshd_config  /etc/ssh/sshd_config.original_copy

อย่างที่คุณเห็นจากคำสั่งที่ฉันพิมพ์ ฉันได้เพิ่ม ส่วนต่อท้าย original_copy ดังนั้นทุกครั้งที่ฉันเห็นไฟล์นี้ ฉันจะรู้ว่ามันเป็นสำเนาต้นฉบับของไฟล์ config sshd

ฉันจะเชื่อมต่อกับ OpenSSH ได้อย่างไร

ก่อนจะไปไกลกว่านี้ เราต้องตรวจสอบว่าเซิร์ฟเวอร์ openssh ของเราทำงานหรือไม่ จะทำอย่างไร? คุณสามารถลองเชื่อมต่อกับเซิร์ฟเวอร์ openssh จาก localhost ของคุณผ่าน ไคลเอ็นต์ openssh ของคุณ หรือทำ portscan ด้วย nmap แต่ฉันชอบใช้เครื่องมือเล็กๆ ที่เรียกว่า netcat หรือที่เรียกว่า TCP/IP มีดทหารสวิส . ฉันชอบทำงานกับเครื่องมือที่น่าทึ่งนี้บนเครื่องของฉัน ดังนั้นให้ฉันแสดงให้คุณดูก่อน

nc -v -z 127.0.0.1 22

จากผลลัพธ์ของ netcat บริการ ssh ทำงานบนพอร์ต 22 บนเครื่องของฉัน ดีมาก! จะเป็นอย่างไรหากเราต้องการใช้พอร์ตอื่นแทน 22? เราสามารถทำได้โดยแก้ไขไฟล์การกำหนดค่า sshd

เปลี่ยนพอร์ต SSH

ตั้งค่า OpenSSH ของคุณให้ฟังบนพอร์ต TCP 13 แทนที่จะเป็นพอร์ต TCP เริ่มต้น 22 เปิดไฟล์ sshd_config ด้วยโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ และเปลี่ยนคำสั่งพอร์ตเป็น 13

Port 13

รีสตาร์ทเซิร์ฟเวอร์ OpenSSH เพื่อให้การเปลี่ยนแปลงในไฟล์กำหนดค่าเกิดขึ้นได้โดยการพิมพ์คำสั่งต่อไปนี้และเรียกใช้ netcat เพื่อตรวจสอบว่าพอร์ตที่คุณตั้งค่าสำหรับการฟังเปิดอยู่หรือไม่

sudo systemctl restart sshd

เราควรตรวจสอบว่าเซิร์ฟเวอร์ openssh ของเรากำลังฟังพอร์ต 13 หรือไม่? จำเป็นต้องมีการยืนยันนี้ ดังนั้นฉันจึงเรียกเครื่องมือที่น่ารักของฉันว่า netcat เพื่อช่วยฉันทำงาน

nc -v -z 127.0.0.1 13

คุณต้องการให้เซิร์ฟเวอร์ openssh ของคุณแสดงแบนเนอร์เข้าสู่ระบบที่ดีหรือไม่? คุณสามารถทำได้โดยแก้ไขเนื้อหาของไฟล์ /etc/issue.net

nano /etc/issue.net

วางข้อความแบนเนอร์ต่อไปนี้

Authorized access only!

If you are not authorized to access or use this system, disconnect now!

จากนั้นเพิ่มบรรทัดต่อไปนี้ภายในไฟล์การกำหนดค่า sshd

Banner /etc/issue.net

หลังจากทำการเปลี่ยนแปลงการกำหนดค่า SSH แล้ว อย่าลืมรีสตาร์ท

sudo systemctl restart sshd
บทสรุป

มีหลายสิ่งที่คุณสามารถทำได้ด้วยเครื่องมือ openssh เมื่อพูดถึงวิธีกำหนดค่า เซิร์ฟเวอร์ openssh ของคุณ ฉันสามารถพูดได้ว่าจินตนาการของคุณมีขีดจำกัด!