เหตุใดจึงเปลี่ยนพอร์ต ssh เริ่มต้น [ปิด]


คำตอบ:


65

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

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

ปัญหาที่เป็นไปได้อีกประการหนึ่งเกี่ยวกับ SSH บนพอร์ตที่ไม่ได้มาตรฐานคือหากคุณพบลูกค้าที่มีชุดตัวกรองไม่อยู่ภายนอกที่ จำกัด ผู้ที่ไม่สามารถเชื่อมต่อกับพอร์ตที่กำหนดเองของคุณได้เนื่องจากตัวกรองอนุญาตเฉพาะพอร์ต 22, 53, 80 และ 443 เป็นปลายทางสำหรับการเชื่อมต่อที่ไม่ต่อเนื่องใหม่ นี่เป็นเรื่องแปลก แต่ก็ไม่เคยได้ยินมาก่อน ในเรื่องที่คล้ายกัน ISP บางรายอาจเห็นทราฟฟิกที่เข้ารหัสบนพอร์ตอื่นนอกเหนือจากที่คาดไว้ (พอร์ต 443 หรือ HTTPS, 22 สำหรับ SSH และอื่น ๆ ) เป็นความพยายามที่จะซ่อนการเชื่อมต่อ P2P และเค้น (หรือบล็อก) การเชื่อมต่อในลักษณะที่ไม่สะดวก

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

พอร์ตใดก็ตามที่คุณเลือกถ้าคุณย้ายออกจาก 22 ตรวจสอบให้แน่ใจว่าต่ำกว่า 1024 ภายใต้การตั้งค่า Unix-a-like ส่วนใหญ่ในการกำหนดค่าเริ่มต้นเฉพาะราก (หรือผู้ใช้ในกลุ่มราก) สามารถฟังพอร์ตที่ต่ำกว่า 1024 แต่ผู้ใช้สามารถฟังพอร์ตที่สูงกว่าได้ การเรียกใช้ SSH บนพอร์ตที่สูงขึ้นจะเพิ่มโอกาสของผู้ใช้อันธพาล (หรือที่ถูกแฮ็ค) ที่จัดการเพื่อให้ SSH daemon ของคุณพังและแทนที่ด้วยตัวเองหรือพรอกซี


ฉันเป็นผู้ใช้คนเดียวของเซิร์ฟเวอร์นี้ ขอขอบคุณสำหรับการชี้แจงปัญหา 1024+ รายการ ฉันจะใช้พอร์ต 48xxx หากฉันเลือก ยังไงก็ตาม ณ จุดนี้ฉันยังไม่เข้าใจว่ามันมีประโยชน์หรือไม่ = /
ไดนามิก

16
+1 สำหรับ> 1024 บิต
MattC

26

มันเป็นความง่าย ( แต่มีประสิทธิภาพที่น่าแปลกใจ) รูปแบบของการรักษาความปลอดภัยผ่านความสับสน

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

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


3
"ตรวจสอบพอร์ตที่เป็นไปได้ 64k ทั้งหมด" ... การเรียกใช้ SSH ในพอร์ตใด ๆ ที่สูงกว่า 1,023 นั้นผิดพลาด มันทำให้ระบบมีความเสี่ยงมากกว่าปล่อยให้มันทำงานในพอร์ตเริ่มต้น
Juliano

3
@Juliano - โปรดอธิบาย เพียงเพราะคุณต้องรูทเพื่อฟังบนพอร์ตที่มีสิทธิพิเศษไม่ได้ (AFAIK) ทำให้ไม่ปลอดภัยที่จะเรียกใช้บนพอร์ตที่ไม่มีสิทธิพิเศษ
Alnitak

4
โดยวิธีการที่ไม่ปลอดภัยผ่านความสับสนมิฉะนั้นคุณจะต้องโทรตรวจสอบรหัสผ่านเหมือนกัน ความปลอดภัยผ่านความสับสนคือเมื่อไม่มีการเปิดเผยการใช้งาน ที่นี่การใช้งานมีการระบุไว้อย่างชัดเจน (คือ "ฉันเปลี่ยนพอร์ตบริการ") และความลับ ("พอร์ตใด?") ยังคงเป็นความลับ
Juliano

5
@John - จริง ๆ แล้วฉันเห็นจุดของ @ Juliano มันไม่ได้ทำให้ SSH daemon มีความปลอดภัยน้อยกว่า แต่ในกรณีทั่วไปที่รันบนพอร์ตที่ไม่มีสิทธิใช้งานจะทำให้การสันนิษฐานทั่วไปเป็นโมฆะเมื่อรูทเริ่ม daemon ดังนั้นหากคุณสามารถหยุด daemon นั้น (เช่นโดย DoSing) คุณสามารถเริ่มต้น daemon ปลอมของคุณเองในที่ของมันได้โดยไม่ต้องใช้ root exploit ภูตปลอมนั้นอาจจับรายละเอียดเพียงพอที่จะอนุญาตการหาประโยชน์เพิ่มเติม
Alnitak

2
@ John นั่นเป็นจริง - มันยังคงต้องการให้ผู้โจมตีได้รับการเข้าถึงที่เพียงพอเพื่อเริ่มภูตใหม่ จุดสำคัญคือพวกเขาไม่ต้องการการเข้าถึงรูทเพื่อเริ่มต้นอีกต่อไป
Alnitak

21

ในการหลีกเลี่ยงการโจมตีที่โหดร้ายเป็นสิ่งสำคัญเสมอที่จะทำตามขั้นตอนบางอย่าง:

  • ติดตั้ง denyhosts หรือ fail2ban
  • จำกัด จำนวนการเชื่อมต่อต่อวินาทีบนพอร์ต ssh
  • เปลี่ยนพอร์ต ssh
  • ปฏิเสธการลงชื่อเข้าใช้รูท
  • เปิดใช้งานการรับรองความถูกต้องด้วยรหัสแทนรหัสผ่าน

11
ดูเหมือนว่าจะเป็นรายการที่ดียกเว้นส่วนเปลี่ยนพอร์ตที่ฉันไม่เห็นด้วยจริง ๆ นั่นคือความสับสนมากเกินไป สแกนเนอร์พอร์ตสมัยใหม่จะพบภายในไม่กี่วินาทีต่อไปหรือไม่ (และเครือข่ายจำนวนมากจะไม่ปล่อยให้พอร์ตสุ่มออกมัก จำกัด ที่จะพูดว่า 22, 80 และ 443)
Oskar Duveborn

1
การเปลี่ยนพอร์ต จำกัด การโจมตีแบบ brute force ที่ตรวจสอบว่า ssh ทำงานบนพอร์ตเริ่มต้นได้ดีถ้าการโจมตีนั้นรุนแรงมากขึ้นเฉพาะในกรณีนี้ผู้โจมตีสามารถทำการสแกนพอร์ตพอร์ตในเครือข่าย / โฮสต์ของคุณ
Ali Mezgani

1
ในความเป็นจริงฉันคิดว่าเบื้องหลังไฟร์วอลล์ที่ดีถ้าคุณปรับปรุงบริการของคุณให้ทันสมัยอยู่เสมอและหากคุณเปลี่ยนการตั้งค่าเริ่มต้นคุณอาจปลอดภัยจากการโจมตีของผู้ประสงค์ร้าย และอาจจะไม่ได้มาจากการหาประโยชน์ 0day หรือการโจมตีที่ไม่รู้จัก
อาลี Mezgani

2
การใช้ denyhosts / fail2ban ช่วยลดความจำเป็นในการสลับพอร์ตหรือต้องการคีย์ หากคุณไม่อนุญาตให้ใช้รหัสผ่านคุณไม่ควรใช้ denyhosts / fail2ban หรือเปลี่ยนพอร์ต
Jeremy L

1
การใช้ denyhosts / fail2ban ไม่จำเป็นต้องลดความจำเป็นสำหรับมาตรการความปลอดภัยเพิ่มเติม ประเด็นด้านความปลอดภัยคือการสร้างบล็อกถนนให้มากที่สุดเท่าที่จะเป็นไปได้สำหรับผู้ใช้ที่พยายามหลีกเลี่ยงการรักษาความปลอดภัย แน่ใจว่าคุณไม่จำเป็นต้องเปลี่ยนพอร์ตจาก 222222 แต่บอกว่าผู้ดูแลระบบคนอื่นเข้ามาและเปิดใช้งานรหัสผ่านอีกครั้ง ... คุณจะยังคงมีการกระแทกความเร็วอื่น ๆ แต่ละขั้นตอนที่ระบุไว้ข้างต้นทำให้ผู้ดูแลระบบมีเปอร์เซ็นต์ใกล้เคียงกับความเป็นไปไม่ได้ของการรักษาความปลอดภัย 100%
Patrick R

12

ใช่มันมีประโยชน์เพราะมันช่วยหลีกเลี่ยงการโจมตีด้วยกำลังดุร้ายและช่วยให้บันทึกชัดเจน :)

สำหรับหมายเลขพอร์ตที่ขึ้นอยู่กับคุณฉันเห็น บริษัท ต่างๆใช้งาน 1291 บ่อยครั้ง ฉันใช้บางอย่างที่สูงกว่าเพื่อช่วยหลีกเลี่ยงสคริปต์บางอย่าง

ไม่อนุญาตให้เข้าสู่ระบบรูท ssh และเปลี่ยนหมายเลขพอร์ตและอาจจะเป็น fail2ban และคุณควรเป็นสีทอง เพิ่ม iptables เพื่อการวัดที่ดีและทำให้คุณมีความทันสมัยอยู่เสมอและคุณไม่ควรมีปัญหาใด ๆ


2
+1 สำหรับ "ทำให้บันทึกชัดเจน"
Lekensteyn

3
แต่ดูคำตอบของ David Spillett ที่จะรู้ว่าทำไมพอร์ต 1291 (ใหญ่กว่า 1024) อาจเป็นอันตราย
Konerak

หากคุณกำลังจะแนะนำให้ใช้พอร์ตที่ไม่มีสิทธิพิเศษหลังจาก 2 ปีไปแล้วมีคำตอบที่ดีกว่า - อาจเตรียมเหตุผลที่ดีกว่า 'ฉันเคยเห็น บริษัท ทำมาก่อน' ฉันเคยเห็น บริษัท ต่างๆทำสิ่งต่างๆมากมาย ฉันไม่ค่อยต้องการทำตามตัวอย่างของพวกเขา
underscore_d

11

การใช้พอร์ต ssh ที่ไม่เป็นมาตรฐานจะต้องมีคำอธิบายและเอกสารเพิ่มเติมและการตอบกลับอีเมล "ฉันไม่สามารถเข้าสู่ระบบ" ได้

ฉันพิจารณาถึงประโยชน์ของการรัน sshd บนพอร์ตที่ไม่ได้มาตรฐานสำคัญกว่าปัญหาที่สร้างขึ้น:

  • 99.9999% ของการโจมตีแบบเดรัจฉานจะดำเนินการโดยบ็อตซึ่งค้นหาพอร์ต 22 เท่านั้นและไม่ต้องเสียเวลาพยายามค้นหาพอร์ตที่ไม่ได้มาตรฐาน การโจมตีที่ดุร้ายและการตอบโต้มาตรการเช่นdenyhostsหรือfail2banใช้ทรัพยากรซึ่งคุณจะประหยัดได้เพียงแค่เรียกใช้เซิร์ฟเวอร์ ssh บนพอร์ตที่ไม่ได้มาตรฐาน
  • คุณจะกำจัดรายงานไร้ประโยชน์ทั้งหมดเกี่ยวกับบอทที่พยายามเจาะเข้าไปในระบบของคุณ หาก IP ใด ๆ ปรากฏขึ้นในรายงานการเข้าสู่ระบบที่ล้มเหลวโอกาสที่จะเป็นเช่นนี้ก็คือมนุษย์

ยิ่งไปกว่านั้นถ้าคุณต้องการที่จะเป็นที่น่ารังเกียจจริงๆคุณสามารถเรียกใช้ sshd ปลอม (กับDenyUsers * ) บนพอร์ตมาตรฐาน 22 ในขณะที่ sshd ปกติของคุณทำงานบนพอร์ต 54321 สิ่งนี้จะช่วยให้มั่นใจได้ว่าบอทและผู้บุกรุก พยายามลงชื่อเข้าใช้บริการที่ปฏิเสธการเข้าสู่ระบบทั้งหมดเพราะไม่มีใครคิดว่าจะพยายามค้นหาบริการ sshd จริงของคุณ

2 เซนต์ของฉัน


1
ซึ่งอาจส่งผลให้มีการโทรสนับสนุนมากขึ้น
Brad Gilbert

3
นี่เป็นเรื่องจริง แต่การรักษาความปลอดภัยขั้นสูงมาในราคา :)
Born To Ride

11

การทำเช่นนี้ด้วยเหตุผลใดก็ตาม "ความปลอดภัย" เป็นของปลอม มันเป็นตัวอย่างที่ดีที่สุดของความปลอดภัยโดยความสับสนซึ่งไม่ใช่ความปลอดภัย

หากคุณต้องการเก็บบันทึกของคุณให้เบาและสะอาดขึ้นเล็กน้อยใช่แล้วมันมีประโยชน์เพราะคุณจะไม่ได้รับความพยายามมากมายจากการเคาะ / script-kiddy bruteforce


1
อ๋อ เมื่อฉันมี ssh ที่พอร์ต 22 ฉันมีความพยายามรหัสผ่านล้มเหลวมากกว่า 20,000 ครั้งปรากฏขึ้นในบันทึกของฉันต่อวัน ซึ่งหมายความว่าฉันได้รับอีเมลเตือนความปลอดภัยทุกวัน ฉันปิดใช้งานการตรวจสอบรหัสผ่าน - คุณต้องมีคีย์ส่วนตัวที่เหมาะสมในการเข้าสู่ระบบดังนั้นฉันจึงไม่กังวลเกี่ยวกับคนที่เข้ามา แต่ฉันควรได้รับอีเมลเตือนความปลอดภัยเมื่อมีอะไรบางอย่างเกิดขึ้นจริง
jdege

10

ฉันจะเรียกใช้ ssh บนพอร์ตมาตรฐานและใช้บางอย่างเช่นfail2banหรือdenyhostsเพื่อ จำกัด จำนวนการโจมตีพจนานุกรม

อีกตัวเลือกหนึ่งคือปิดใช้งานการเข้าสู่ระบบด้วยรหัสผ่าน altogheter และอนุญาตการเข้าสู่ระบบด้วย ssh-keys เท่านั้น


8

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


7

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

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

ฉันมักจะไม่เปลี่ยนพอร์ตใน SSHD ดังนั้นฉันจึงไม่สามารถแนะนำหมายเลขอื่นได้ แต่ให้ตรวจสอบรายการพอร์ตที่ใช้กันทั่วไปเพื่อค้นหาหมายเลขอื่น (เช่นหมายเลขที่ไม่ได้ใช้งานอย่างอื่นและอาจถูกสแกน) .


6

ฉันเปลี่ยน SSHd ของฉันให้ใช้พอร์ต 2222 ทุกคนที่จะต้องเข้าไปในเซิร์ฟเวอร์ของฉันรู้เรื่องนี้และมันก็ไม่เป็นความลับ ไม่มีการรักษาความปลอดภัยอย่างแน่นอนโดยการทำเช่นนี้ (เว้นแต่แฮ็กเกอร์ที่จะเป็นปัญญาอ่อนแน่นอน)

ประโยชน์เดียวที่ฉันได้รับจากสิ่งนี้คือบันทึกการตรวจสอบสิทธิ์ไม่มีการพยายามเข้าสู่ระบบล้มเหลวหลายล้านครั้งสำหรับ 'root', 'alice', 'bob', 'sally', 'sally', 'admin' ฯลฯ


5

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

นอกจากนั้นฉันมักจะปิดการใช้งานการเข้าสู่ระบบและรหัสผ่านของ root และเป็นขั้นตอนสุดท้ายที่ฉันใช้fail2banเพื่อกำจัดข้อความที่น่ารำคาญใน syslog ใน Debian / Ubuntu aptitude install fail2banมันเป็นง่ายๆเป็นพิมพ์ การกำหนดค่าเริ่มต้นทำงานได้ค่อนข้างดี แต่ฉันมักจะปรับพารามิเตอร์บางอย่างให้มีข้อ จำกัด มากขึ้นโดยมีเวลาแบนนาน (อย่างน้อยหนึ่งวัน) และมีการตรวจสอบสิทธิ์เพียง 2 ครั้งเท่านั้นที่ล้มเหลวเพื่อเป็นตัวกระตุ้นการห้าม


4

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


ไม่ต้องพูดถึงว่าตัวสแกนพอร์ตจะลองพอร์ตอื่นด้วย
จิม Deville

4

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

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


หากคุณไร้ประโยชน์อย่างสมบูรณ์ / ไร้ประโยชน์โดยสมบูรณ์เพื่อความปลอดภัย /, ฉันจะเห็นด้วย การเปลี่ยนพอร์ตมีประโยชน์ในการลดเสียงรบกวนในบันทึกรับรองความถูกต้อง
Chris S

"และต้องการการรับรองความถูกต้องด้วยคีย์" หรือไม่ นี่คืออะไร
ไดนามิก

1
@ yes123, SSH สามารถใช้คู่คีย์สาธารณะ - ส่วนตัวในการตรวจสอบสิทธิ์ผู้ใช้แทนรหัสผ่าน การจับคู่คีย์เหล่านี้ยังสามารถป้องกันด้วยรหัสผ่านดังนั้นจึงเสนอการรับรองความถูกต้องสองปัจจัย (สิ่งที่คุณรู้ = รหัสผ่านสิ่งที่คุณมี = ไฟล์คีย์) หากคุณใช้สิ่งนี้คุณสามารถปิดการใช้งานการเข้าสู่ระบบด้วยรหัสผ่าน (ดังนั้นบางคนที่รู้รหัสผ่านในเครื่องของคุณจะไม่สามารถใช้ไฟล์คีย์และรหัสผ่านของไฟล์คีย์ได้) รหัสผ่านนั้นค่อนข้างไม่ปลอดภัยเมื่อเทียบกับกุญแจหลายล้านเท่าเพื่อให้เดรัจฉานบังคับได้ง่ายกว่าคู่คีย์ (แม้ว่าจะยังยากอยู่) ดูman ssh-keygenข้อมูลมากมาย
Chris S

@ yes123 หน้า man-related ssh ต่างๆ (sshd, sshd_config, ssh, ssh_config) เป็นประโยชน์ในการอ่าน เอกสารนี้ดูเหมือนว่าการสอนที่ดีเกี่ยวกับการรับรองความถูกต้องของรหัสสาธารณะด้วย ssh
larsks

2

แม้จะดูเหมือนว่า "ความปลอดภัยโดยความคลุมเครือ" โดยทั่วไปฉันก็ประมาณว่ามันมีเหตุผลตั้งแต่การสแกนพอร์ตที่เป็นไปได้ทั้งหมด (~ 64k) เป็นวิธีที่เสียเวลามากกว่าหนึ่งในนั้น

แต่ฉันสามารถเพิ่มว่า "การเคาะพอร์ต" ดีกว่ามาก


1

ไม่ใช่คำตอบ แต่ยาวเกินไปสำหรับความคิดเห็นดังนั้นฉันจะสร้าง CW นี้

ฉันเคยคิดเกี่ยวกับสิ่งนี้มาระยะหนึ่งแล้วและได้ข้อสรุปว่ามีความจริงมากมายในสิ่งที่ Juliano พูดในความคิดเห็นต่อคำตอบของ Alnitak อย่างไรก็ตามฉันพบว่าการใช้ SSH บนพอร์ต 22 เพียงทำให้ง่ายเกินไปที่จะปล่อยการโจมตีใด ๆ ก็ตาม

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

การรักษาความปลอดภัยผ่านความสับสนไม่ได้เป็นหลักการที่ฉันมักจะสมัครเป็นสมาชิกและมักจะชี้ให้เห็นว่าการสแกนพอร์ตอย่างง่ายจะเปิดเผยพอร์ตเป้าหมายทำให้ความสับสนนั้นไร้ค่า ในการแก้ปัญหาดังกล่าวไฟร์วอลล์ของฉัน (Smoothwall Express) ทั้งที่ทำงานและที่บ้านใช้สคริปต์ที่เรียกว่า Guardian Active Response ซึ่งเรียกใช้โดยการแจ้งเตือน Snort จากการสังเกตฉันสามารถบอกคุณได้ว่าเมื่อคุณกดพอร์ตที่แตกต่างกันมากกว่า 3 พอร์ตจากแหล่งเดียวกันแพ็กเก็ตของคุณจะถูกดร็อปจนถึงเวลาที่ตั้งค่าไว้ล่วงหน้า สิ่งนี้ทำให้ค่อนข้างยากและใช้เวลานานมากในการเรียกใช้การสแกนพอร์ตทำให้ความสับสนนั้นคุ้มค่ากับบางสิ่ง ในความเป็นจริงสิ่งนี้ทำให้ฉันต้องปิดตัวหลายครั้งในอดีตที่ฉันตั้งค่าการยกเว้นสำหรับที่อยู่ IP (ที่บ้านหรือที่ทำงาน) ของฉัน


ความคิดที่ดีกับพอร์ตไปข้างหน้าจอห์น! ผมคิดว่าเราได้ทั้งสองได้เรียนรู้สิ่ง :)
Alnitak

1

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

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

ประการที่สองถ้าคุณใช้เซิร์ฟเวอร์ที่เหมือน UNIX คุณสามารถติดตั้งยูทิลิตี้อย่าง Denyhosts เพื่อหยุดการโจมตี หากคุณติดตั้ง denyhosts มันจะตรวจสอบความพยายามในการเข้าสู่ระบบที่ไม่ถูกต้องและหลังจากความพยายามที่ล้มเหลว (สิ่งที่คุณกำหนดหมายเลข) จะถูกแบน IP ในช่วงเวลาที่คุณระบุ Denyhosts ยังสามารถพูดคุยกับโฮสต์ denyhost อื่น ๆ และส่งต่อไปยังรายชื่อแบนดังนั้นหากผู้โจมตีถูกล็อกจากระบบ Linux ของ Fred ในมอนทานาระบบของคุณก็จะได้รับ IP นั้นสำหรับการแบน มีประโยชน์มากตราบใดที่ผู้ใช้ของคุณจำรหัสผ่านได้

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

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


1

ฉันใช้ SSH บนพอร์ต> 1024 มานานกว่า 5 ปีแล้ว ตั้งแต่นั้นมาฉันไม่เห็นการพยายามสแกนพอร์ตในไฟล์บันทึกของฉัน (ยกเว้นจากตัวฉันเอง) มีเซิร์ฟเวอร์ของฉันซึ่งฉันเป็นผู้ดูแลที่ใช้พอร์ต> 1024

เซิร์ฟเวอร์ SSH จำนวนมากที่ทำงานบนพอร์ต> 1024 มีเว็บไซต์ของตัวเองซึ่งเป็นที่นิยมมาก

หากเซิร์ฟเวอร์ SSH ทำงานใน บริษัท ของฉันเองฉันอาจโพสต์ที่อยู่ IP ของเซิร์ฟเวอร์นั้นในที่นี่เพื่อให้พวกคุณสามารถแฮ็คเซิร์ฟเวอร์ได้ น่าเสียดายเซิร์ฟเวอร์ SSH ไม่ใช่ของฉันเอง ;-)

แต่มีสิ่งอื่น ๆ ที่คุณจะต้องตั้งค่าเพื่อให้ปลอดภัย SSH> 1024 เพียงอย่างเดียวอาจไม่เพียงพอ หมายเลขพอร์ตจะต้องไม่อยู่ใน / etc / services ต้องใช้การส่งต่อพอร์ต (เช่นพอร์ต 1124-> 22) การเข้าถึงโดยตรงไปยังรูทจะต้องปิดการใช้งานและสิ่งอื่น ๆ

ดังนั้นหากคุณต้องการโต้แย้งให้เรียกใช้ SSH บนพอร์ต> 1024 มากกว่าสองสามปี

p / s: 1124 ไม่ใช่พอร์ต SSH ของฉัน ฮ่าฮ่า


0

ฉันเดาว่าคุณยังไม่ได้ค้นพบพอร์ตที่มีประโยชน์อื่น ๆ


0

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


0

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

ทั้งสองสิ่งนี้ให้ความปลอดภัยเพิ่มขึ้นอย่างแท้จริงในขณะที่การเปลี่ยนพอร์ต ssh จะให้ภาพลวงตาของความปลอดภัยเท่านั้น


0

นี่เป็นประโยชน์จริง ๆ : ฉันใช้เซิร์ฟเวอร์ ssh ส่วนตัวที่เปิดเผยต่อสาธารณะนานกว่าสี่ปีด้วยการเปลี่ยนพอร์ต SSH และฉันไม่ได้พยายามสแกนรหัสผ่านเพียงครั้งเดียว เพื่อคุณภาพ QA นี้ฉันเพิ่งเปิดใช้งาน 22 กลับมาหนึ่งในนั้นสำหรับหนึ่งวัน ผลก็คือฉันถูกสแกนประมาณทุกๆ 10 นาทีด้วยความถี่ความพยายามรหัสผ่านประมาณ 5 ต่อวินาที นอกจากนี้ "scan kiddies" ยังค้นหาเซิร์ฟเวอร์ที่มีช่องโหว่ OpenSSH บางช่อง

แน่นอนนี่คือการรักษาความปลอดภัยโดยความสับสนซึ่งไม่ได้ช่วยหากคุณมีศัตรู


-3

มันใช้งานได้ดีโดยไม่คำนึงถึงฝูงชน "ความปลอดภัยผ่านความสับสน"

กระต่ายโง่ความปลอดภัยทั้งหมดคือการรักษาความปลอดภัยผ่านความสับสน เพียงเพราะคุณเชื่อว่าโปรโตคอล crypto ที่คลุมเครือ Z [ต้องการการรวมกันของตัวอย่าง DNA, คีย์ที่ใช้ร่วมกันและเป็นไปไม่ได้ที่จะพิมพ์ด้วยรหัสผ่านของมนุษย์] นั้นปลอดภัยจริง ๆ ไม่ได้ทำให้เป็นเช่นนั้น ความจริงก็คือมาตรการรักษาความปลอดภัยใด ๆ และทั้งหมดขึ้นอยู่กับความน่าจะเป็นและข้อสันนิษฐานของผู้ใช้ เลวร้ายเกินไปสำหรับคุณถ้าฉันรู้วิธีใช้ประโยชน์จากข้อสันนิษฐานนั้น แต่มันมีอยู่

อย่างไรก็ตาม,

เราได้ทำสิ่งนี้มาหลายปีพร้อมกับ a) จำกัด อัตราความพยายามในการเชื่อมต่อ (แต่ฉันไม่รู้วิธีที่เราตั้งค่าบางอย่างใน ssh config) และ b) สคริปต์เพื่อห้ามโฮสต์ใด ๆ ที่โจมตีด้วยพจนานุกรมมากกว่า X ผิดคาดเดาใน Y นาที เราแบนโฮสต์ที่ทำการเชื่อมต่อเป็นระยะเวลาหนึ่งและทำให้ง่ายขึ้นในการปรับให้เข้ากับโทโพโลยีของการเปลี่ยนเครือข่าย

หากรหัสผ่านของคุณซับซ้อนเพียงพอและสามารถทำได้เพียง 3 ครั้งใน 15 นาทีไม่มีอะไรน่ากลัว มันไม่ยากที่จะเฝ้าดูการโจมตีแบบกระจายเช่นกัน - โดยปกติเรามักจะตรวจสอบโดย subnet และ ip เพื่อแยกแยะสิ่งนั้นออกมา

ในที่สุดสิ่งที่คุณต้องมีคือวิธีการกระรอกลับที่จะอนุญาตการเชื่อมต่อกับพอร์ตของคุณโดยการแก้ไขกฎ f / w มันสามารถเป็นอะไรก็ได้ ... smtp, เว็บ, การค้นหา DNS เวทมนตร์ ข้อมูลอย่าง SecurID หรือ Wikid เพียงแค่ส่งข้อมูลเพิ่มเติมให้กับบุคคลที่สาม และอย่าให้ฉันเริ่มต้นกับใบรับรองที่ปลอดภัยผ่านบุคคลที่สาม


2
-1, คุณไม่เข้าใจว่าสิ่งที่คลุมเครือคืออะไร ... การสร้างสิ่งที่ไม่ชัดเจนนั้นไม่เหมือนกับการวางกุญแจไว้ ในขณะที่มันเป็นความจริงที่ไม่มีการรักษาความปลอดภัยแน่นอนมีความแตกต่างอย่างแน่นอนและการรับรองความถูกต้องแบบสามปัจจัยด้วยความสับสนไม่ได้ช่วยใคร
Chris S

1
ขออภัยคริสนั่นคือศาสนาลัทธิขนส่งสินค้า บางทีคุณไม่สามารถเลือกล็อคและคิดว่ามีหนึ่งทำให้คุณปลอดภัย แต่สามารถเลือกล็อคทั้งหมด คิดนอกกรอบ: ในหลาย ๆ กรณีการทำอะไรที่ "ไม่ชัดเจน" อาจเหนือกว่าการใช้ล็อค รูปแบบ / มุมมองด้านความปลอดภัยเปรียบเสมือนการทิ้งแล็ปท็อปของคุณไว้ในรถที่ถูกล็อคด้วยชุดสัญญาณเตือนหนึ่ง tweaker ที่มีหินและแล็ปท็อปของคุณหายไป แต่อาจจะไม่ใช่ tweaker แต่มีคนเอาเปรียบ 0 วันและมีเวลาฆ่า ... โอ้ดูสิ! คริสมีเป้าหมายที่ "ปลอดภัย" และชัดเจนมาก! ความสับสนเป็นส่วนสำคัญของความปลอดภัย
สุ่ม joe

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