OpenSSH (เปิด Secure Shell) เป็นชุดแอปพลิเคชันที่อนุญาตให้มีการสื่อสารแบบเข้ารหัสผ่านเครือข่ายโดยใช้ไฟล์ โปรโตคอล SSH. มันถูกสร้างขึ้นเพื่อเป็นทางเลือกที่เสรีและเปิดกว้างสำหรับโปรแกรม การรักษาความปลอดภัยของเชลล์ซึ่งเป็นซอฟต์แวร์ที่เป็นกรรมสิทธิ์ « วิกิพีเดีย.
ผู้ใช้บางคนอาจคิดว่าควรใช้แนวทางปฏิบัติที่ดีบนเซิร์ฟเวอร์เท่านั้นและไม่เป็นเช่นนั้น GNU / Linux จำนวนมากมี OpenSSH เป็นค่าเริ่มต้นและมีบางสิ่งที่ควรทราบ
ความปลอดภัย
นี่คือ 6 ประเด็นสำคัญที่สุดที่ควรคำนึงถึงเมื่อกำหนดค่า SSH:
- ใช้รหัสผ่านที่คาดเดายาก
- เปลี่ยนพอร์ตเริ่มต้นของ SSH
- ใช้โปรโตคอล SSH เวอร์ชัน 2 เสมอ
- ปิดการเข้าถึงรูท
- จำกัด การเข้าถึงของผู้ใช้
- ใช้การตรวจสอบคีย์
- ตัวเลือกอื่น ๆ
รหัสผ่านที่คาดเดายาก
รหัสผ่านที่ดีคือรหัสผ่านที่ประกอบด้วยตัวอักษรและตัวเลขหรืออักขระพิเศษ ช่องว่าง ตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก... ฯลฯ ที่นี่ใน DesdeLinux เราได้แสดงวิธีการต่างๆ มากมายในการสร้างรหัสผ่านที่ดี สามารถเยี่ยมชมได้ บทความนี้ y อื่น ๆ นี้.
เปลี่ยนพอร์ตเริ่มต้น
พอร์ตเริ่มต้นสำหรับ SSH คือ 22 หากต้องการเปลี่ยนแปลงสิ่งที่เราต้องทำคือแก้ไขไฟล์ / etc / SSH / sshd_config. เรามองหาบรรทัดที่ระบุว่า:
#Port 22
เรายกเลิกการแสดงความคิดเห็นและเปลี่ยน 22 เป็นตัวเลขอื่น .. ตัวอย่างเช่น:
Port 7022
หากต้องการทราบพอร์ตที่เราไม่ได้ใช้ในคอมพิวเตอร์ / เซิร์ฟเวอร์ของเราเราสามารถดำเนินการในเทอร์มินัลได้:
$ netstat -ntap
ตอนนี้ในการเข้าถึงคอมพิวเตอร์หรือเซิร์ฟเวอร์ของเราเราต้องทำด้วยตัวเลือก -p ดังนี้:
$ ssh -p 7022 usuario@servidor
ใช้โปรโตคอล 2
เพื่อให้แน่ใจว่าเรากำลังใช้โปรโตคอล SSH เวอร์ชัน 2 เราต้องแก้ไขไฟล์ / etc / SSH / sshd_config และมองหาบรรทัดที่ระบุว่า:
# โปรโตคอล 2
เรายกเลิกการแสดงความคิดเห็นและเริ่มบริการ SSH ใหม่
ไม่อนุญาตให้เข้าถึงในฐานะรูท
เพื่อป้องกันไม่ให้ผู้ใช้รูทเข้าถึงจากระยะไกลผ่าน SSH เราดูในไฟล์/ etc / SSH / sshd_config เส้น:
#PermitRootLogin no
และเราไม่แสดงความคิดเห็น ฉันคิดว่ามันคุ้มค่าที่จะชี้แจงว่าก่อนที่จะดำเนินการนี้เราต้องตรวจสอบให้แน่ใจว่าผู้ใช้ของเรามีสิทธิ์ที่จำเป็นในการดำเนินงานด้านการดูแล
จำกัด การเข้าถึงของผู้ใช้
นอกจากนี้ยังไม่เจ็บที่จะอนุญาตให้เข้าถึงผ่าน SSH เฉพาะกับผู้ใช้ที่เชื่อถือได้บางรายดังนั้นเราจึงกลับไปที่ไฟล์ / etc / SSH / sshd_config และเราเพิ่มบรรทัด:
อนุญาตให้ผู้ใช้ elav usemoslinux kzkggaara
โดยที่เห็นได้ชัดว่าผู้ใช้ elav, usemoslinux และ kzkggaara เป็นผู้ที่สามารถเข้าถึงได้
ใช้การตรวจสอบคีย์
แม้ว่าวิธีนี้จะแนะนำมากที่สุด แต่เราต้องดูแลเป็นพิเศษเพราะเราจะเข้าถึงเซิร์ฟเวอร์โดยไม่ต้องป้อนรหัสผ่าน ซึ่งหมายความว่าหากผู้ใช้สามารถเข้าสู่เซสชันของเราหรือคอมพิวเตอร์ของเราถูกขโมยเราอาจมีปัญหาได้ อย่างไรก็ตามเรามาดูวิธีการทำ
สิ่งแรกคือการสร้างคู่ของคีย์ (สาธารณะและส่วนตัว):
ssh-keygen -t rsa -b 4096
จากนั้นเราส่งรหัสของเราไปยังคอมพิวเตอร์ / เซิร์ฟเวอร์:
ssh-copy-id -i ~/.ssh/id_rsa.pub elav@200.8.200.7
ในที่สุดเราก็ต้องไม่มีความคิดเห็นในไฟล์ / etc / SSH / sshd_config เส้น:
AuthorizedKeysFile .ssh/authorized_keys
ตัวเลือกอื่น ๆ
เราสามารถลดเวลารอที่ผู้ใช้สามารถล็อกอินเข้าสู่ระบบได้สำเร็จเป็น 30 วินาที
LoginGraceTime 30
เพื่อหลีกเลี่ยงการโจมตี ssh ผ่าน TCP Spoofing การปล่อยให้การเข้ารหัสยังมีชีวิตอยู่ทางด้าน ssh ใช้งานได้สูงสุด 3 นาทีเราสามารถเปิดใช้งาน 3 ตัวเลือกเหล่านี้ได้
TCPKeepAlive ไม่มี ClientAliveInterval 60 ClientAliveCountMax 3
ปิดการใช้งานไฟล์ rhosts หรือ shosts ซึ่งไม่แนะนำให้ใช้เพื่อเหตุผลด้านความปลอดภัย
IgnoreRhosts ใช่ IgnoreUserKnownHosts ใช่ RhostsAuthentication no RhostsRSAuthentication no
ตรวจสอบสิทธิ์ที่มีประสิทธิภาพของผู้ใช้ระหว่างการเข้าสู่ระบบ
StrictModes yes
เปิดใช้งานการแยกสิทธิ์
UsePrivilegeSeparation yes
บทสรุป:
เมื่อทำตามขั้นตอนเหล่านี้เราสามารถเพิ่มความปลอดภัยให้กับคอมพิวเตอร์และเซิร์ฟเวอร์ของเราได้ แต่เราต้องไม่ลืมว่ามีปัจจัยสำคัญ: ระหว่างเก้าอี้กับคีย์บอร์ดคืออะไร. นั่นคือเหตุผลที่ฉันแนะนำให้อ่าน บทความนี้.
Fuente: ฮาวทูฟอร์จ
โพสต์ที่ยอดเยี่ยม @elav และฉันเพิ่มสิ่งที่น่าสนใจ:
เข้าสู่ระบบ GraceTime 30
สิ่งนี้ช่วยให้เราลดเวลารอที่ผู้ใช้สามารถล็อกอินเข้าสู่ระบบได้สำเร็จเป็น 30 วินาที
TCPKeepAlive เลขที่
ClientAliveInterval 60
ClientAliveCountMax 3
ตัวเลือกทั้งสามนี้มีประโยชน์มากในการหลีกเลี่ยงการโจมตี ssh โดยใช้ TCP Spoofing ทำให้การเข้ารหัสยังมีชีวิตอยู่ในด้าน ssh ใช้งานได้นานสูงสุด 3 นาที
IgnoreRhosts ใช่
IgnoreUserKnownHosts ใช่
Rhostsหมายเลขรับรองความถูกต้อง
RhostsRSAuthentication no
มันปิดใช้งานการใช้ไฟล์ rhosts หรือ shosts ซึ่งไม่แนะนำให้ใช้เพื่อเหตุผลด้านความปลอดภัย
StrictModes ใช่
ตัวเลือกนี้ใช้เพื่อตรวจสอบสิทธิ์ที่มีประสิทธิภาพของผู้ใช้ระหว่างการเข้าสู่ระบบ
UsePrivilegeSeparation ใช่
เปิดใช้งานการแยกสิทธิ์
สักพักฉันจะแก้ไขโพสต์และเพิ่มในโพสต์😀
การไม่ใส่ข้อคิดเห็นเพื่อไม่ให้เปลี่ยนบรรทัดนั้นซ้ำซ้อน บรรทัดที่มีความคิดเห็นแสดงค่าเริ่มต้นของแต่ละตัวเลือก (อ่านคำชี้แจงที่จุดเริ่มต้นของไฟล์) การเข้าถึงรูทถูกปิดใช้งานโดยค่าเริ่มต้น ฯลฯ ดังนั้นการไม่ใส่ความคิดเห็นจึงไม่มีผลอย่างแน่นอน
ใช่ แต่ตัวอย่างเช่นเราจะรู้ได้อย่างไรว่าเราใช้โปรโตคอลเวอร์ชัน 2 เท่านั้น เพราะเราสามารถใช้ 1 และ 2 ในเวลาเดียวกันได้ ดังที่บรรทัดสุดท้ายกล่าวว่าการยกเลิกการใส่ข้อคิดเห็นตัวเลือกนี้จะเขียนทับตัวเลือกเริ่มต้น หากเรากำลังใช้เวอร์ชัน 2 เป็นค่าเริ่มต้นถ้าไม่เป็นเช่นนั้นเราจะใช้มันใช่หรือใช่😀
ขอบคุณสำหรับความคิดเห็น
บทความที่ดีมากฉันรู้หลายสิ่งหลายอย่าง แต่สิ่งหนึ่งที่ฉันไม่เคยชัดเจนคือการใช้คีย์จริงๆแล้วมันคืออะไรและมีข้อดีอย่างไรถ้าฉันใช้คีย์ฉันจะใช้รหัสผ่านได้หรือไม่ ??? ถ้าเป็นเช่นนั้นเหตุใดจึงเพิ่มความปลอดภัยและถ้าไม่ฉันจะเข้าถึงจากพีซีเครื่องอื่นได้อย่างไร
สวัสดีฉันได้ติดตั้งเดเบียน 8.1 แล้วและฉันไม่สามารถเชื่อมต่อจากพีซี windows ของฉันไปยังเดเบียนด้วย WINSCP ฉันจะต้องใช้โปรโตคอล 1 หรือไม่? ความช่วยเหลือใด ๆ .. ขอบคุณ
เอเดียน
คุณอาจสนใจวิดีโอนี้เกี่ยวกับ openssh https://m.youtube.com/watch?v=uyMb8uq6L54
ฉันอยากลองทำบางอย่างที่นี่หลายอย่างที่ฉันได้ลองแล้วขอบคุณ Arch Wiki อื่น ๆ เนื่องจากความเกียจคร้านหรือความไม่รู้ ฉันจะบันทึกไว้เมื่อฉันเริ่ม RPi