ทำไมจึงต้องใช้ SSH บนพอร์ตอื่น


31

ฉันกำลังเรียนรู้เกี่ยวกับการติดตั้ง Kippo SSH จากบทช่วยสอนบอกว่าฉันควรตั้งค่าพอร์ต SSH ใหม่จาก 22 เป็นพอร์ตอื่น (ซึ่งในกรณีนี้คือ 3389) ดังนั้นเมื่อใดก็ตามที่ฉันพยายามที่จะ SSH จากลูกค้าก็จะเชื่อมต่อกับพอร์ต 3389

จากบทช่วยสอนเหตุผลที่อยู่เบื้องหลังคือ "เราไม่ต้องการให้ Kippo เข้าถึงรูท"

คำถามของฉันคืออะไรความแตกต่างของการใช้ SSH จากพอร์ต 22 กับพอร์ต 3389 คืออะไร


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

4
ไม่ใช่คำตอบ แต่ควรรู้ว่า: พอร์ต TCP 3389 มักใช้สำหรับ RDP บางทีคนที่ได้รับการแต่งตั้งให้พยายามค้นพบ 3389 คนกำลังสแกนหาการเข้าถึงระยะไกล
TOOGAM


คุณกำลังสอนเกี่ยวกับ ... บทนี้หรืออันนี้หรืออย่างอื่น?
David

@david ฉันใช้การกวดวิชานี้youtube.com/watch?v=OyBiIjrVXgk
Adam

คำตอบ:


52

เซิร์ฟเวอร์ส่วนใหญ่ต้องการการเข้าถึงรูทหากคุณต้องการเปิดพอร์ตที่ต่ำกว่า 1024

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

ดู: https://www.w3.org/Daemon/User/Installation/PrivilegedPorts.html


1
ฉันรู้สึกว่าคำถามนี้เกี่ยวข้องกับคำตอบนี้ดี: superuser.com/questions/710253/ … (เพราะหลังจากอ่านคำตอบแล้วผู้คนอาจจะถามตัวเองด้วยคำถามนั้น)
คะแนน _ ต่ำกว่า

29

ความแตกต่างอะไรที่ทำให้การใช้ SSH จากพอร์ต 22 กับพอร์ต 3389

เพื่อเชื่อมโยงกับพอร์ตที่ต่ำกว่า 1024 (พอร์ตที่มีสิทธิพิเศษ) กระบวนการต้องมีการเข้าถึงรูท ด้วยการเชื่อมโยงกับการเข้าถึงรูท 3389 ไม่จำเป็น


21

หนึ่งในเหตุผลที่ฉันเห็นสิ่งนี้ทำคือการลดสแปมจากบันทึกสแกนเนอร์รหัสผ่าน จากนั้นถ้ามีคนพยายาม bruteforce รหัสผ่านคุณรู้ว่ามันเป็นความพยายามที่กำหนดเป้าหมายมากกว่า Driveby


8

ด้วยการเปลี่ยนเส้นทาง SSH ไปยังพอร์ตที่ไม่ได้มาตรฐานคุณทำให้ชีวิตของแฮ็กเกอร์ยากขึ้นเพราะพวกเขาจะไม่แน่ใจ 100% ว่าพอร์ตใดที่คุณใช้เพื่อเข้าถึงระบบของคุณ

พอร์ต 22 - เป็นพอร์ตเริ่มต้นตามที่คุณทราบ แต่ถ้าคุณเปลี่ยนสิ่งนี้เป็นพอร์ตที่ไม่ได้มาตรฐาน ... ตอนนี้ฉันต้องไปทำการสแกนพอร์ตโดยใช้ Nmap หรือเครื่องมืออื่น ๆ เพื่อลองและตรวจสอบว่าเซิร์ฟเวอร์ ssh ฟังอยู่ตอนนี้ - เพิ่มโอกาสในการ IDS ของคุณ (ระบบตรวจจับการบุกรุก) ของคุณในการตรวจจับพฤติกรรมที่เป็นอันตรายประเภทนี้และสามารถอนุญาตให้คุณเริ่มมาตรการตอบโต้ (เช่นการปฏิเสธที่อยู่ IP ของเป้าหมาย)

ในขณะที่เป็นจริงที่จะสร้างพอร์ตการฟังต่ำกว่า 1024 คุณต้องเข้าถึงราก - sshd (ssh daemon [เซิร์ฟเวอร์]) จะเริ่มต้นในเวลาบูตและเพียงอย่างเดียวจะไม่หยุดผู้ใช้ priv / non-priv จากการเข้าถึง กระบวนการ ssh

ควรที่คุณต้องการ SSH ครบวงจรสำหรับราก - และนี่คือมักจะเป็นสิ่งที่ดีที่จะหยุด จากนั้น ssh.config (จะเปลี่ยนชื่อเล็กน้อยขึ้นอยู่กับระบบปฏิบัติการที่ใช้ - ดูใน / etc / ssh /)

ค่าที่ควบคุมว่าบัญชีรูทสามารถเข้าสู่ระบบได้หรือไม่

#PermitRootLogin no

ค่านี้ ไม่ใช่หมายเลขพอร์ต - ซึ่งกำหนดค่าโดยวิธีการโดยใช้ค่าเช่น

#Port 22

เป็นวิธีการ จำกัด

Ssh เป็นกลไกการสื่อสารที่ยอดเยี่ยมยืดหยุ่นและปลอดภัย แต่ถ้าเข้าใจและใช้อย่างถูกต้อง


มีความแตกต่างระหว่าง ssh ที่อนุญาตให้คุณเข้าสู่ระบบในฐานะ root และ ssh daemon ต้องการการเข้าถึงรูทเพื่อเปิดพอร์ตที่มีสิทธิพิเศษ คำถามที่เกี่ยวข้องกับที่สองของทั้งสองไม่ได้เป็นคนแรก
Mike Scott

3

โดยทั่วไปมีสองเหตุผลหลักที่ทำไมบางคนอาจต้องการเรียกใช้การฟัง SSH บนพอร์ตสูง:

  • เนื่องจากไม่ใช่พอร์ต "มาตรฐาน" ความพยายามในการเจาะ (บอทเน็ต) จึงมีโอกาสน้อยที่จะเชื่อมต่อกับมัน
  • หากหมายเลขพอร์ตมากกว่า 1024 SSH daemon จะมี "สิทธิ์พิเศษ" น้อยกว่าหนึ่งรายการซึ่งจำเป็นต้องเชื่อถือได้

นอกจากนี้หากอุปกรณ์ NAT ตั้งอยู่หน้าเซิร์ฟเวอร์หลายเครื่องที่รัน SSH จะไม่สามารถแมปพอร์ต 22 กับอุปกรณ์ทั้งหมดดังนั้นในกรณีนั้นอาจมีการกำหนดค่าเช่นเพื่อเปลี่ยนเส้นทางพอร์ตภายนอก 10022 ไปยังบริการภายใน 192.0.2.10 : 22 และพอร์ตภายนอก 11022 ถึง 192.0.2.11:22

อย่างไรก็ตามในกรณีของ Kippo สิ่งที่คุณกำลังติดตั้งคือ "honeypot SSH" โปรแกรมที่ควรจะดูเหมือนบรรทัดคำสั่ง SSH บนระบบที่ใช้งานได้ แต่ตอบสนองช้าและไม่มีประโยชน์อะไร คุณต้องการเรียกใช้ทั้งในพอร์ต SSH (22) ปกติและบนพอร์ตสูงที่ใช้บ่อย (2222) จริง ๆ แล้วมันง่ายกว่าที่จะเรียกใช้ในฐานะผู้ใช้บนพอร์ตสูงแล้วใช้iptablesเพื่อเปลี่ยนเส้นทางพอร์ตต่ำไปยังพอร์ตสูงบนโฮสต์เดียวกัน อาจเป็นไปได้ที่จะใช้ netcat ( nc) หรือ xinetd เพื่อตั้งค่าการเปลี่ยนเส้นทาง

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

จากมุมมองด้านความปลอดภัยจะมีประสิทธิภาพมากที่สุดในการหมุนลูกเต๋าเพื่อเลือกพอร์ตสำรองนั้น แต่ RDP ไม่น่าจะฟังบนเซิร์ฟเวอร์ Linux ทั่วไปดังนั้นหากคุณจำหมายเลขพอร์ตนั้นแล้วมันอาจสนุกที่จะทำงานด้วย ตัวเลือก "น่าสนใจ" อื่น ๆ อาจเป็นอะไรที่คล้ายกับ 5190 (AOL) หรือ 1214 (KaZAA)


1
โดยไม่ทราบว่า (หรือค้นหา) Kippo คืออะไรมันไม่สมเหตุสมผลว่าทำไม ssh daemon จะไม่เป็นรูท: ถ้าต้องการพิสูจน์ตัวตนในฐานะผู้ใช้ใด ๆ ก็ต้องเก็บสิทธิ์บางอย่างไว้เป็นผู้ใช้อื่น แต่คำตอบนี้ทำให้ชัดเจนว่าเหตุใดจึงสำคัญที่ต้องไม่เรียกใช้ในฐานะรูท
chexum
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.