มีความเสี่ยงแค่ไหนที่จะเรียกใช้เซิร์ฟเวอร์ภายในบ้านที่ปลอดภัยภายใต้ SSH
เมื่อคุณต้องการเปิดบางสิ่งบางอย่างในเครือข่ายในบ้านของคุณไปยังอินเทอร์เน็ตที่ดีกว่าอุโมงค์ SSH เป็นวิธีที่ปลอดภัยพอที่จะทำ?
เซสชั่นคำถามและคำตอบในวันนี้มาถึงเราด้วยความอนุเคราะห์จาก SuperUser - แผนกย่อยของ Exchange Exchange ซึ่งเป็นกลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถาม - ตอบ.
คำถาม
ผู้อ่าน SuperUser Alfred M. ต้องการทราบว่าเขาอยู่ในเส้นทางที่ถูกต้องด้วยความปลอดภัยในการเชื่อมต่อหรือไม่:
ฉันเพิ่งตั้งค่าเซิร์ฟเวอร์ขนาดเล็กที่มีคอมพิวเตอร์ระดับต่ำที่รันเดเบียนโดยมีวัตถุประสงค์เพื่อใช้เป็นที่เก็บข้อมูลส่วนบุคคล git ฉันได้เปิดใช้งาน SSH และรู้สึกประหลาดใจมากที่ความรวดเร็วซึ่งมันทรมานจากการโจมตีที่ดุร้ายและไม่ชอบ จากนั้นฉันได้อ่านว่านี่เป็นเรื่องปกติและได้เรียนรู้เกี่ยวกับมาตรการรักษาความปลอดภัยขั้นพื้นฐานเพื่อป้องกันการโจมตีเหล่านี้ (มีคำถามมากมายและซ้ำซ้อนในการจัดการข้อผิดพลาดของเซิร์ฟเวอร์โปรดดูตัวอย่างนี้หรืออันนี้).
แต่ตอนนี้ฉันสงสัยว่าทั้งหมดนี้มีค่าความพยายาม ฉันตัดสินใจที่จะตั้งค่าเซิร์ฟเวอร์ของตัวเองเพื่อความสนุก: ฉันสามารถพึ่งพาโซลูชันของบุคคลที่สามเช่นที่เสนอโดย gitbucket.org, bettercodes.org ฯลฯ ในขณะที่ความสนุกเกี่ยวกับการเรียนรู้เกี่ยวกับความปลอดภัยของอินเทอร์เน็ตฉันไม่ได้ มีเวลาพอที่จะอุทิศให้กับการเป็นผู้เชี่ยวชาญและมั่นใจได้ว่าฉันใช้มาตรการป้องกันที่ถูกต้อง.
เพื่อที่จะตัดสินใจว่าฉันจะเล่นกับโครงการของเล่นนี้ต่อไปหรือไม่ฉันอยากจะรู้ว่าฉันมีความเสี่ยงที่จะทำเช่นนั้นหรือไม่ ตัวอย่างเช่นคอมพิวเตอร์เครื่องอื่นที่เชื่อมต่อกับเครือข่ายของฉันถูกคุกคามด้วยเช่นกันในระดับใด? คอมพิวเตอร์บางเครื่องใช้งานโดยผู้ที่มีความรู้น้อยกว่า Windows ที่ใช้งานจริง.
ความน่าจะเป็นที่ฉันได้รับปัญหาจริงคืออะไรถ้าฉันทำตามคำแนะนำพื้นฐานเช่นรหัสผ่านที่รัดกุมการเข้าถึงรูทสำหรับ ssh ที่ไม่ใช่พอร์ตมาตรฐานสำหรับ ssh และอาจปิดการใช้งานการล็อกอินรหัสผ่านและใช้กฎ fail2ban, denyhosts หรือ iptables?
พูดอีกอย่างคือมีหมาป่าร้าย ๆ ตัวใหญ่ที่ฉันควรกลัวหรือว่าส่วนใหญ่เกี่ยวกับการหลบหนีสคริปต์ตัวเล็ก?
อัลเฟรดควรติดกับโซลูชันของบุคคลที่สามหรือโซลูชัน DIY ของเขาปลอดภัย?
คำตอบ
TheFiddlerWins ผู้สนับสนุน SuperUser ให้ความมั่นใจกับอัลเฟรดว่ามันค่อนข้างปลอดภัย:
IMO SSH เป็นหนึ่งในสิ่งที่ปลอดภัยที่สุดที่จะฟังบนอินเทอร์เน็ตเปิด หากคุณเป็นห่วงให้ฟังพอร์ตที่ไม่ได้มาตรฐานระดับสูง ฉันยังคงมีไฟร์วอลล์ (ระดับอุปกรณ์) ระหว่างกล่องของคุณกับอินเทอร์เน็ตที่เกิดขึ้นจริงและเพียงแค่ใช้การส่งต่อพอร์ตสำหรับ SSH แต่นั่นเป็นข้อควรระวังสำหรับบริการอื่น ๆ SSH นั้นแข็งแกร่งมาก.
ผม มี มีคนชนเซิร์ฟเวอร์ SSH ที่บ้านของฉันบ้างเป็นครั้งคราว (เปิดให้ Time Warner Cable) ไม่เคยมีผลกระทบจริง.
Stephane ผู้ร่วมให้ข้อมูลอีกคนเน้นว่าการรักษาความปลอดภัย SSH ให้ง่ายขึ้น:
การตั้งค่าระบบรับรองความถูกต้องของกุญแจสาธารณะด้วย SSH เป็นเรื่องเล็กน้อยและใช้เวลาประมาณ 5 นาทีในการติดตั้ง.
หากคุณบังคับให้การเชื่อมต่อ SSH ทั้งหมดใช้งานมันจะทำให้ระบบของคุณมีความยืดหยุ่นอย่างที่คุณคาดหวังโดยไม่ต้องลงทุนมาก ๆ ในโครงสร้างพื้นฐานความปลอดภัย ตรงไปตรงมามันง่ายและมีประสิทธิภาพ (ตราบใดที่คุณไม่มี 200 บัญชี - แล้วมันยุ่งเหยิง) ที่ไม่ได้ใช้มันควรเป็นความผิดสาธารณะ.
ในที่สุด Craig Watson เสนอเคล็ดลับอื่นเพื่อลดความพยายามในการบุกรุก:
ฉันยังใช้เซิร์ฟเวอร์ git ส่วนบุคคลที่เปิดให้โลกบน SSH และฉันยังมีปัญหากำลังดุร้ายเช่นเดียวกับคุณดังนั้นฉันสามารถเห็นอกเห็นใจกับสถานการณ์ของคุณ.
TheFiddlerWins ได้จัดการกับเรื่องความปลอดภัยหลักของการเปิด SSH บน IP สาธารณะที่เข้าถึงได้ แต่ IMO เครื่องมือที่ดีที่สุดในการตอบสนองต่อความพยายามที่โหดร้ายคือ Fail2Ban - ซอฟต์แวร์ที่ตรวจสอบไฟล์บันทึกการตรวจสอบของคุณตรวจจับความพยายามบุกรุกและเพิ่มกฎไฟร์วอลล์ เครื่องของท้องถิ่น
iptables
ไฟร์วอลล์ คุณสามารถกำหนดค่าได้ทั้งความพยายามก่อนที่จะแบนและความยาวของการแบน (ค่าเริ่มต้นของฉันคือ 10 วัน).
มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.