วิธีการ ssh อย่างปลอดภัยในเครื่องที่บ้านผ่านทางอินเทอร์เน็ต


8

ฉันจะเดินทางเร็ว ๆ นี้และฉันมีเครื่องจักรที่รันงาน cron จำนวนมาก ฯลฯ ฉันต้องลงชื่อเข้าใช้จากระยะไกลเพื่อตรวจสอบผลลัพธ์ของงานที่ดำเนินการอยู่และเพื่อทำงานบางอย่างบนเครื่อง

นี่คือข้อเท็จจริงสำคัญ:

  1. เครื่องที่จะเชื่อมต่อ (มารดา) กำลังใช้งาน Ubuntu 14.0.4 LTS
  2. การเป็นมารดาเชื่อมต่อกับอินเทอร์เน็ตผ่าน LAN ที่บ้านดังนั้นจึงมีที่อยู่ IP สาธารณะหันหน้าไปทาง
  3. ที่อยู่ IP ถูกกำหนดแบบไดนามิก
  4. ฉันจะเชื่อมต่อกับมารดาโดยใช้แล็ปท็อปที่ใช้ Ubuntu 15.10

ฉันชอบที่จะใช้ ssh มากกว่า VNC เพราะปัญหาเกี่ยวกับแบนด์วิดธ์ - บวกทั้งหมดที่ฉันต้องการคือบรรทัดคำสั่งต่อไป

วิธีที่ดีที่สุดในการเชื่อมต่อระยะไกลเข้ากับเครื่องของฉันอย่างปลอดภัยคืออะไร


SSH มีความปลอดภัย คุณมีปัญหาอะไรกับมัน?
Mostafa Ahangarha

VNC เป็นตัวควบคุมระยะไกลแบบกราฟิก คุณหมายถึง VPN หรือไม่
TheWanderer

@ techraf อาฉันเข้าใจแล้ว ฉันส่งคะแนนการอนุมัติ
TheWanderer

เพิ่งอ่านคำแนะนำที่ดีมีส่วนที่ดีกว่าการเข้ารหัสที่ทุ่มเทให้กับการออกมี และปิดการใช้งานรหัสผ่านเข้าสู่ระบบ!
Braiam

จากการแชทฉันเห็นว่าคุณคิดถึงการพิสูจน์ตัวตนด้วยข้อความรหัสผ่านแทนรหัสผ่าน สิ่งที่คุณอาจพบคืออนุญาตการตรวจสอบสิทธิ์ส่วนตัว / สาธารณะ - คีย์เท่านั้น
Oliphaunt - คืนสถานะโมนิก้า

คำตอบ:


14

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

คุณจะต้องกำหนดที่อยู่ IP แบบคงที่เซิร์ฟเวอร์บน LAN เนื่องจากจะต้องสามารถเข้าถึงได้ตลอดเวลา System Settings --> Networkคุณสามารถตั้งค่านี้ เพื่อป้องกันความขัดแย้งของที่อยู่ IP ขอแนะนำให้คุณบอกเซิร์ฟเวอร์ DHCP ของคุณ (เราเตอร์ในกรณีส่วนใหญ่) ว่ามีการใช้ที่อยู่ IP นี้ วิธีการจะแตกต่างกันไปตามรุ่น แต่ควรมีพื้นที่หนึ่งในการกำหนดค่าเราเตอร์ที่ช่วยให้คุณจองที่อยู่ IP

เหตุผลของ IP แบบคงที่คือคุณต้องตั้งค่าการส่งต่อพอร์ตในการตั้งค่าเราเตอร์ของคุณ วิธีนี้ช่วยให้การเชื่อมต่อจากพอร์ตไปยัง IP ภายนอกของคุณสามารถกำหนดเส้นทางไปยังพอร์ตนั้นบนเซิร์ฟเวอร์ของคุณ

หากที่อยู่ IP สาธารณะของคุณเป็นแบบไดนามิกซึ่งอาจเป็นไปได้ว่าคุณจะต้องการตั้งค่าบริการ DNS แบบไดนามิกบางประเภท คำแนะนำของฉันสำหรับบริการนี้คือNo-IP มันให้โดเมนย่อยฟรีที่ชี้ไปยังไอพีสาธารณะของคุณเสมอ การตั้งค่านี้ต้องการการติดตั้งโปรแกรมบนเครื่องที่ทำงานตลอดเวลาบน LAN ของคุณ (เรียกว่า DUC จัดทำโดย No-IP)

เมื่อคุณตั้งค่าเซิร์ฟเวอร์ SSH ตามที่คุณต้องการแล้วให้ SSH ไปที่นั่นโดยป้อน

ssh user@remotehostip -p XXX

หรือโดยการใช้ไคลเอนต์ SSH / SFTP ใดก็ได้ที่คุณต้องการ

หากส่วนใดส่วนหนึ่งเหล่านี้ต้องการคำแนะนำโดยละเอียดเพิ่มเติมแสดงความคิดเห็นและฉันจะเพิ่มใน

หากใครมีปัญหาในการติดตามที่นี่เป็นห้องแชทที่มีขั้นตอนเพิ่มเติม / เพิ่มเติมรายละเอียด: http://chat.stackexchange.com/rooms/37251/discussion-between-homunculus-reticulli-and-zacharee1


+1 ขอบคุณ @ Zacharee1 สำหรับการตอบกลับที่รวดเร็ว ฉันได้ลงทะเบียนโดเมนเพื่อจุดประสงค์ของฉันโดยใช้ no-ip ฉันทำตามทุกขั้นตอนแล้ว ขั้นตอนสุดท้ายคือจุดที่ฉันสูญเสีย: ตั้งค่าเราเตอร์สำหรับการส่งต่อพอร์ต ฉันสามารถทำได้ด้วยความช่วยเหลือในเรื่องนี้ถ้าเป็นไปได้ ขอบคุณ
Homunculus Reticulli

@HomunculusReticulli รุ่นเราเตอร์ของคุณคืออะไร?
TheWanderer

นอกจากนี้ฉันไม่สามารถดูได้ว่าจะกำหนดที่อยู่ IP แบบคงที่ได้อย่างไร ฉันกำลังใช้ Ubuntu Trusty Tahir
Homunculus Reticulli

1
ไม่มี IP เพราะคุณมีที่อยู่ภายนอกแบบไดนามิก
TheWanderer

1
@BharadwajRaju นั่นไม่ใช่สิ่งที่ฉันสามารถอธิบายได้ในความคิดเห็น ค้นหาวิธีการตั้งค่าคอมพิวเตอร์ Ubuntu เป็นเราเตอร์และคุณจะพบบางสิ่งบางอย่าง
TheWanderer

1

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

ฉันจะไม่แตะการตั้งค่าเครือข่ายบนเซิร์ฟเวอร์สามารถกำหนด IP แบบคงที่จากเราเตอร์ได้ ที่อยู่ ip ของเราเตอร์ควรเป็นที่อยู่ "เกตเวย์" ที่กำหนดใน DHCP ในกรณีที่ไม่ได้เป็น (!) ที่อยู่เริ่มต้นควรเขียนไว้ข้างใต้ หากคุณเปลี่ยนแปลงสิ่งนี้คุณควรทิ้งค่าสุดท้ายไว้คนเดียว ดังนั้นหากคุณมีเครือข่ายในบ้านคลาส C ที่อยู่จะเป็น abcx โดยที่ abc ตรงกับที่อยู่ IP อื่น ๆ ของคุณทั้งหมดและ x คือค่าการติดตามจากสติ๊กเกอร์เราเตอร์ของคุณ ISP ควรมีหน้าช่วยเหลือสำหรับกรณีนั้น ๆ

เมื่อคุณใช้พอร์ตที่ไม่ได้มาตรฐานให้หลีกเลี่ยง '22' เป็นตัวเลขสุดท้าย (8122) มันทิ้งร่องรอยไว้

NB คุณสามารถเข้าถึงแอปพลิเคชันที่ใช้ X ผ่าน SSH โดยไม่มี VNC หัวข้ออื่นทั้งหมด


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

ทำไมไม่ควรตรวจสอบกับคีย์เมื่อเดินทาง ? การรับรองความถูกต้องไม่สนใจว่าคุณเดินทางหรือไม่
UniversallyUniqueID

คุณไม่ได้ข้ามพรมแดนเมื่อเร็ว ๆ นี้? ไม่เคยทำโทรศัพท์หายหรือ กุญแจของคุณจะถูกแบ่งปัน เช่นเดียวกับใบรับรอง ติดตั้งหนึ่งเครื่องในร้านอินเทอร์เน็ตที่มีความเสี่ยงของคุณ คีย์ให้การเข้าถึงแบบทันทีโดยไม่ต้องใช้รหัสผ่านไคลเอนต์ควรมีความปลอดภัยไม่ใช่ในกระเป๋าหลังของคุณ
mckenzm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.