แนวทางปฏิบัติที่ดีกับ OpenSSH

OpenSSH (เปิด Secure Shell) เป็นชุดแอปพลิเคชันที่อนุญาตให้มีการสื่อสารแบบเข้ารหัสผ่านเครือข่ายโดยใช้ไฟล์ โปรโตคอล SSH. มันถูกสร้างขึ้นเพื่อเป็นทางเลือกที่เสรีและเปิดกว้างสำหรับโปรแกรม การรักษาความปลอดภัยของเชลล์ซึ่งเป็นซอฟต์แวร์ที่เป็นกรรมสิทธิ์ « วิกิพีเดีย.

ผู้ใช้บางคนอาจคิดว่าควรใช้แนวทางปฏิบัติที่ดีบนเซิร์ฟเวอร์เท่านั้นและไม่เป็นเช่นนั้น GNU / Linux จำนวนมากมี OpenSSH เป็นค่าเริ่มต้นและมีบางสิ่งที่ควรทราบ

ความปลอดภัย

นี่คือ 6 ประเด็นสำคัญที่สุดที่ควรคำนึงถึงเมื่อกำหนดค่า SSH:

  1. ใช้รหัสผ่านที่คาดเดายาก
  2. เปลี่ยนพอร์ตเริ่มต้นของ SSH
  3. ใช้โปรโตคอล SSH เวอร์ชัน 2 เสมอ
  4. ปิดการเข้าถึงรูท
  5. จำกัด การเข้าถึงของผู้ใช้
  6. ใช้การตรวจสอบคีย์
  7. ตัวเลือกอื่น ๆ

รหัสผ่านที่คาดเดายาก

รหัสผ่านที่ดีคือรหัสผ่านที่ประกอบด้วยตัวอักษรและตัวเลขหรืออักขระพิเศษ ช่องว่าง ตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก... ฯลฯ ที่นี่ใน 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

ตัวเลือกอื่น ๆ

ผลงานของ Yukiteru

เราสามารถลดเวลารอที่ผู้ใช้สามารถล็อกอินเข้าสู่ระบบได้สำเร็จเป็น 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: ฮาวทูฟอร์จ


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   ยูกิเทรุ dijo

    โพสต์ที่ยอดเยี่ยม @elav และฉันเพิ่มสิ่งที่น่าสนใจ:

    เข้าสู่ระบบ GraceTime 30

    สิ่งนี้ช่วยให้เราลดเวลารอที่ผู้ใช้สามารถล็อกอินเข้าสู่ระบบได้สำเร็จเป็น 30 วินาที

    TCPKeepAlive เลขที่
    ClientAliveInterval 60
    ClientAliveCountMax 3

    ตัวเลือกทั้งสามนี้มีประโยชน์มากในการหลีกเลี่ยงการโจมตี ssh โดยใช้ TCP Spoofing ทำให้การเข้ารหัสยังมีชีวิตอยู่ในด้าน ssh ใช้งานได้นานสูงสุด 3 นาที

    IgnoreRhosts ใช่
    IgnoreUserKnownHosts ใช่
    Rhostsหมายเลขรับรองความถูกต้อง
    RhostsRSAuthentication no

    มันปิดใช้งานการใช้ไฟล์ rhosts หรือ shosts ซึ่งไม่แนะนำให้ใช้เพื่อเหตุผลด้านความปลอดภัย

    StrictModes ใช่

    ตัวเลือกนี้ใช้เพื่อตรวจสอบสิทธิ์ที่มีประสิทธิภาพของผู้ใช้ระหว่างการเข้าสู่ระบบ

    UsePrivilegeSeparation ใช่

    เปิดใช้งานการแยกสิทธิ์

    1.    Elav dijo

      สักพักฉันจะแก้ไขโพสต์และเพิ่มในโพสต์😀

  2.   นีโอ dijo

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

    1.    Elav dijo

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

      ใช่ แต่ตัวอย่างเช่นเราจะรู้ได้อย่างไรว่าเราใช้โปรโตคอลเวอร์ชัน 2 เท่านั้น เพราะเราสามารถใช้ 1 และ 2 ในเวลาเดียวกันได้ ดังที่บรรทัดสุดท้ายกล่าวว่าการยกเลิกการใส่ข้อคิดเห็นตัวเลือกนี้จะเขียนทับตัวเลือกเริ่มต้น หากเรากำลังใช้เวอร์ชัน 2 เป็นค่าเริ่มต้นถ้าไม่เป็นเช่นนั้นเราจะใช้มันใช่หรือใช่😀

      ขอบคุณสำหรับความคิดเห็น

  3.   สลี dijo

    บทความที่ดีมากฉันรู้หลายสิ่งหลายอย่าง แต่สิ่งหนึ่งที่ฉันไม่เคยชัดเจนคือการใช้คีย์จริงๆแล้วมันคืออะไรและมีข้อดีอย่างไรถ้าฉันใช้คีย์ฉันจะใช้รหัสผ่านได้หรือไม่ ??? ถ้าเป็นเช่นนั้นเหตุใดจึงเพิ่มความปลอดภัยและถ้าไม่ฉันจะเข้าถึงจากพีซีเครื่องอื่นได้อย่างไร

  4.   เอเดียน dijo

    สวัสดีฉันได้ติดตั้งเดเบียน 8.1 แล้วและฉันไม่สามารถเชื่อมต่อจากพีซี windows ของฉันไปยังเดเบียนด้วย WINSCP ฉันจะต้องใช้โปรโตคอล 1 หรือไม่? ความช่วยเหลือใด ๆ .. ขอบคุณ
    เอเดียน

  5.   แฟรงซานาเบรีย dijo

    คุณอาจสนใจวิดีโอนี้เกี่ยวกับ openssh https://m.youtube.com/watch?v=uyMb8uq6L54

  6.   กระเบื้อง dijo

    ฉันอยากลองทำบางอย่างที่นี่หลายอย่างที่ฉันได้ลองแล้วขอบคุณ Arch Wiki อื่น ๆ เนื่องจากความเกียจคร้านหรือความไม่รู้ ฉันจะบันทึกไว้เมื่อฉันเริ่ม RPi