เคล็ดลับที่น่าสนใจในการปรับปรุงความปลอดภัย SSH

คราวนี้เราจะเห็นไฟล์ เคล็ดลับสั้น ๆ ง่ายๆ ที่จะช่วยให้เราปรับปรุง ความปลอดภัย ของการเชื่อมต่อระยะไกลของเรากับ SSH.


OpenSSH ซึ่งเป็นแพ็คเกจที่จัดทำโดยระบบ GNU / Linux เพื่อจัดการการเชื่อมต่อ SSH มีตัวเลือกมากมาย กำลังอ่านหนังสือ SSH Secure Shell และใน man page ฉันพบอ็อพชัน -F ซึ่งบอกไคลเอนต์ SSH ให้ใช้ไฟล์คอนฟิกูเรชันที่แตกต่างจากที่พบโดยดีฟอลต์ในไดเร็กทอรี / etc / ssh

เราจะใช้ตัวเลือกนี้อย่างไร?

ดังนี้

ssh -F / path / to_your / configuration / file user @ ip / host

ตัวอย่างเช่นหากเรามีไฟล์กำหนดค่าที่กำหนดเองชื่อ my_config บนเดสก์ท็อปและเราต้องการเชื่อมต่อกับผู้ใช้ Carlos กับคอมพิวเตอร์ด้วย ip 192.168.1.258 เราจะใช้คำสั่งดังต่อไปนี้:

ssh -F ~ / เดสก์ท็อป / my_config carlos@192.168.1.258

มันช่วยความปลอดภัยของการเชื่อมต่อได้อย่างไร?

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

สิ่งนี้เพิ่มเพื่อเปลี่ยนพอร์ตการรับฟังของเซิร์ฟเวอร์ SSH ปิดใช้งาน SSH1 ระบุผู้ใช้ที่สามารถเชื่อมต่อกับเซิร์ฟเวอร์อนุญาตอย่างชัดเจนว่า IP หรือช่วงของ IP ใดที่สามารถเชื่อมต่อกับเซิร์ฟเวอร์และเคล็ดลับอื่น ๆ ที่เราสามารถพบได้ใน http://www.techtear.com/2007/04/08/trucos-y-consejos-para-asegurar-ssh-en-linux พวกเขาจะช่วยให้เราเพิ่มความปลอดภัยของการเชื่อมต่อ SSH ของเรา

ทุกอย่างที่อธิบายไว้ข้างต้นสามารถทำได้ในบรรทัดเดียว สำหรับรสนิยมของฉันมันค่อนข้างน่าเบื่อที่จะต้องเขียนบรรทัดขนาดใหญ่พร้อมตัวเลือกมากมายทุกครั้งที่เราพยายามเข้าสู่ระบบผ่าน SSH ไปยังพีซีระยะไกลตัวอย่างเช่นต่อไปนี้จะเป็นตัวอย่างของสิ่งที่ฉันจะบอกคุณ:

ssh -p 1056 -c ปักเป้า -C -l carlos -q -i ตัวเอง 192.168.1.258

-p ระบุพอร์ตที่จะเชื่อมต่อบนโฮสต์ระยะไกล
-c ระบุวิธีการเข้ารหัสเซสชัน
-C ระบุว่าควรบีบอัดเซสชัน
-l ระบุผู้ใช้ที่จะล็อกอินเข้าสู่โฮสต์ระยะไกล
-q ระบุว่าข้อความวินิจฉัยถูกระงับ
-i ระบุไฟล์ที่จะระบุด้วย (คีย์ส่วนตัว)

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

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

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

ในลิงค์นี้ http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config คุณสามารถดูวิธีแก้ไขไฟล์คอนฟิกูเรชันไคลเอ็นต์ SSH

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

ตอนนี้ทั้งหมดนี้ฉันหวังว่าข้อมูลนี้จะช่วยคุณได้และรอโพสต์ใหม่เกี่ยวกับการรักษาความปลอดภัย SSH ในสัปดาห์หน้า

หมายเหตุ: หากคุณต้องการอ่านหนังสือ "SSH The Secure Shell" อย่าลืมอ่านหน้าคู่มือของเวอร์ชันที่คุณติดตั้งเนื่องจากหนังสือเล่มนี้ค่อนข้างล้าหลังในแง่ของตัวเลือกที่ OpenSSH รองรับ
ขอบคุณ Izkalotl สำหรับการมีส่วนร่วม!
สนใจใน บริจาค?

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

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

*

*

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

  1.   บริษัท HacKan & CuBa dijo

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

    ทักทาย!

  2.   บริษัท HacKan & CuBa dijo

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

    ทักทาย!

  3.   บริษัท HacKan & CuBa dijo

    นอกจากนี้ ssh จะค้นหาการกำหนดค่าผู้ใช้เริ่มต้นใน ~ / .ssh / config
    เว้นแต่ว่า daemon ได้รับการกำหนดค่าไม่ให้ แต่โดยค่าเริ่มต้นจะทำ
    สิ่งสำคัญคือต้องคำนึงถึงอัลกอริทึมที่ใช้สำหรับแฮชด้วยตัวเลือก -m ฉันขอแนะนำ hmac-sha2-512, hmac-sha2-256, hmac-ripemd160 เพราะเป็นคนที่ให้ความปลอดภัยที่ดีที่สุด ระวังเพราะโดยปริยายมันใช้ MD5 (หรือ sha1 หวังว่า) !! คือสิ่งที่ไม่เข้าใจ….
    อย่างไรก็ตามความคิดที่ดีคือการรันด้วย:
    ssh -p PORT -c aes256-ctr -m hmac-sha2-512 -C IP
    ด้วย -c คุณระบุอัลกอริทึมการเข้ารหัสที่ใช้โดยที่ ctr (โหมดตัวนับ) แนะนำมากที่สุด (aes256-ctr และ aes196-ctr) และถ้าไม่ใช่ cbc (cipher-block chaining): aes256-cbc, aes192- cbc , ปักเป้า -cbc, cast128-cbc

    ทักทาย!

  4.   บริษัท HacKan & CuBa dijo

    นอกจากนี้ ssh จะค้นหาการกำหนดค่าผู้ใช้เริ่มต้นใน ~ / .ssh / config
    เว้นแต่ว่า daemon ได้รับการกำหนดค่าไม่ให้ แต่โดยค่าเริ่มต้นจะทำ
    สิ่งสำคัญคือต้องคำนึงถึงอัลกอริทึมที่ใช้สำหรับแฮชด้วยตัวเลือก -m ฉันขอแนะนำ hmac-sha2-512, hmac-sha2-256, hmac-ripemd160 เพราะเป็นคนที่ให้ความปลอดภัยที่ดีที่สุด ระวังเพราะโดยปริยายมันใช้ MD5 (หรือ sha1 หวังว่า) !! คือสิ่งที่ไม่เข้าใจ….
    อย่างไรก็ตามความคิดที่ดีคือการรันด้วย:
    ssh -p PORT -c aes256-ctr -m hmac-sha2-512 -C IP
    ด้วย -c คุณระบุอัลกอริทึมการเข้ารหัสที่ใช้โดยที่ ctr (โหมดตัวนับ) แนะนำมากที่สุด (aes256-ctr และ aes196-ctr) และถ้าไม่ใช่ cbc (cipher-block chaining): aes256-cbc, aes192- cbc , ปักเป้า -cbc, cast128-cbc

    ทักทาย!

  5.   อิวาน11 dijo

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

    mercii ตอบ!

  6.   อิวาน11 dijo

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

    ฉันไม่จำเป็นต้องทำการเชื่อมต่อระยะไกลดังนั้นฉันจึงอยากรู้ว่าอะไรจะมีประสิทธิภาพมากกว่านี้หากเปิดพอร์ตหรือปล่อยให้มันถูกบล็อก

    ฉันรอคำตอบ!

  7.   เซร์คิโอ ไวเซเน็กเกอร์ dijo

    > สิ่งที่ปลอดภัยที่สุดคือการใช้การเข้าสู่ระบบแบบไม่ใช้รหัสผ่านโดยใช้ไฟล์คีย์
    มันคือสิ่งที่ฉันกำลังจะพูด ... วิธีเดียวที่จะล็อกอินเข้าสู่คอมพิวเตอร์เครื่องอื่นคือการใช้กุญแจที่ห้อยลงมาจากคอของคุณ your
    ผู้โจมตีอาจเสียเวลาทั้งชีวิตในการพยายามบังคับใช้รหัสผ่านและจะไม่มีทางรู้ว่าเขาไม่ต้องการรหัสผ่าน แต่เป็นไฟล์ XD

  8.   ลินุกซ์ izkalotl dijo

    ฉันไม่ใช่ผู้เชี่ยวชาญด้านความปลอดภัยและเครือข่าย แต่เพื่อละเมิดระบบรักษาความปลอดภัยของคุณด้วยการเข้าสู่ระบบแบบไม่ใช้รหัสมันก็เพียงพอแล้วที่จะสร้างสคริปต์เพื่อคัดลอกคีย์ของคุณที่เก็บไว้ในเพนไดรฟ์ในขณะที่คุณติดตั้งดังนั้นในไม่กี่วินาทีคุณจะ มีการเข้าถึงด้วยคีย์ของคุณเองไปยังเซิร์ฟเวอร์ระยะไกล (และแน่นอนโดยไม่ต้องใช้รหัสผ่าน) ปัญหาของการไม่ใช้รหัสผ่านคือมันทำให้คุณรู้สึกถึงความปลอดภัยที่ผิดพลาดเนื่องจากอย่างที่คุณเห็นในสคริปต์ไม่กี่บรรทัด จะง่ายมากที่จะควบคุมเซิร์ฟเวอร์ระยะไกลของคุณ โปรดจำไว้ว่าผู้โจมตีจะไม่เสียเวลาหรือทรัพยากรในการพยายามถอดรหัสรหัสผ่านหากมีวิธีที่สั้นกว่าในการละเมิดความปลอดภัยของคุณ ฉันขอแนะนำให้คุณใช้อย่างน้อย 20 ตัวเลือกที่ SSH อนุญาตให้คุณกำหนดค่าและเพิ่มบางอย่างเช่น TCP Wrappers, Firewall ที่ดีและถึงแม้เซิร์ฟเวอร์ของคุณจะไม่ได้รับการปกป้อง 100% แต่ศัตรูที่เลวร้ายที่สุดในเรื่องความปลอดภัยก็ยังได้รับความไว้วางใจ

  9.   กอร์ลก dijo

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