הגדרת SSH לגישה מרוחקת בנתב ומתג Cisco: המדריך המלא בעברית (ולמה Telnet חייב להיעלם)

כל מהנדס רשת ניגש לציוד עשרות פעמים ביום, ורוב הגישות האלה הן מרוחקות. השאלה היחידה היא האם הן עוברות בערוץ מוצפן. Telnet, שעדיין מופעל בהרבה רשתות ישנות, מעביר את שם המשתמש והסיסמה בטקסט גלוי. כל מי שמצליח להאזין לתעבורה — ואפילו סטודנט עם Wireshark ופורט Mirror — רואה את פרטי ההתחברות שלכם. SSH פותר את זה, וההגדרה שלו לוקחת פחות מחמש דקות.
מה בעצם SSH נותן לכם
- ▸סודיות — כל התעבורה מוצפנת, כולל שם המשתמש, הסיסמה והפקודות.
- ▸שלמות — כל חבילה נושאת חתימה שמונעת שינוי בדרך.
- ▸אימות שרת — הלקוח מזהה את טביעת האצבע של הנתב ומזהיר אם היא השתנתה, מה שחושף ניסיון MITM.
- ▸תמיכה באימות מבוסס מפתחות ובאינטגרציה עם TACACS+ ו-RADIUS.
ארבעת התנאים המקדימים ליצירת מפתח
הרבה תקלות בשטח נובעות מכך שמנסים לייצר מפתח לפני שהמכשיר מוכן. כדי שהפקודה crypto key generate rsa תצליח, צריכים להתקיים ארבעה תנאים: למכשיר יש hostname שאינו ברירת המחדל, מוגדר לו ip domain-name, קיים משתמש מקומי או שרת AAA, ומותקנת גרסת IOS עם תמיכה בהצפנה. שם המכשיר ושם המתחם מרכיבים יחד את ה-FQDN שממנו נגזר שם המפתח, ולכן שינוי אחד מהם לאחר מכן מוחק את המפתח הקיים.
Router(config)# hostname NETME-R1
NETME-R1(config)# ip domain-name netme.co.il
! מפתח באורך 2048 ומעלה — 1024 כבר אינו מספק
NETME-R1(config)# crypto key generate rsa modulus 2048
! משתמש מקומי עם סיסמה מגובבת ב-Type 9 והרשאה מלאה
NETME-R1(config)# username netadmin privilege 15 algorithm-type scrypt secret Str0ng!Pass
! כפיית גרסה 2 בלבד והקשחת ניסיונות
NETME-R1(config)# ip ssh version 2
NETME-R1(config)# ip ssh time-out 60
NETME-R1(config)# ip ssh authentication-retries 3
! קווי ה-VTY — SSH בלבד, בלי Telnet
NETME-R1(config)# line vty 0 15
NETME-R1(config-line)# transport input ssh
NETME-R1(config-line)# login local
NETME-R1(config-line)# exec-timeout 5 0
NETME-R1(config-line)# logging synchronous
הגבלת מי בכלל רשאי להתחבר
הצפנה היא רק חצי מהעבודה. גם ערוץ מוצפן פתוח לכל האינטרנט הוא סיכון, ולכן בכל תכנון מקצועי מגבילים את הגישה הניהולית לתחנות ניהול בלבד באמצעות ACL על קווי ה-VTY. שימו לב לפקודה access-class עם המילה in — היא מסננת חיבורים נכנסים אל המכשיר עצמו.
NETME-R1(config)# ip access-list standard MGMT-ACCESS
NETME-R1(config-std-nacl)# permit 10.10.100.0 0.0.0.255
NETME-R1(config-std-nacl)# deny any log
NETME-R1(config)# line vty 0 15
NETME-R1(config-line)# access-class MGMT-ACCESS inאימות ו-Troubleshooting
NETME-R1# show ip ssh
NETME-R1# show ssh
NETME-R1# show crypto key mypubkey rsa
NETME-R1# show users
NETME-R1# debug ip ssh
! בדיקת יציאה מהמכשיר עצמו
NETME-R1# ssh -l netadmin 10.10.100.5- ▸"Please define a hostname other than Router" — לא הוגדר hostname או domain-name לפני יצירת המפתח.
- ▸החיבור נסגר מיד — כנראה חסר login local או שלא הוגדר משתמש מקומי.
- ▸"No matching key exchange method" — לקוח SSH מודרני מול IOS ישן. יש לשדרג IOS או להתאים אלגוריתמים.
- ▸מתחברים אבל נופלים ל-User EXEC — למשתמש לא הוגדרה privilege 15 או שלא הוגדר enable secret.
- ▸אחרי החלפת hostname אין גישה — המפתח נמחק. יש לייצר מפתח חדש דרך הקונסולה.
אמת מידה מקצועית: ברשת מוקשחת, הפקודה transport input telnet לא אמורה להופיע בשום קובץ תצורה. גם לא ב-Lab.
מבחנון SSH ב-Cisco — 6 שאלות בסגנון CCNA 200-301
1. אילו שתי הגדרות נדרשות לפני הפקודה crypto key generate rsa?
2. איזו פקודה מונעת חיבורי Telnet לקווי ה-VTY?
3. מהו אורך המפתח המינימלי המומלץ כיום עבור SSHv2?
4. מה יקרה למפתח ה-RSA אם תשנו את ה-hostname של המכשיר?
5. איזו פקודה מגבילה אילו כתובות IP רשאיות להתחבר לקווי ה-VTY?
6. איזו פקודה תציג את גרסת ה-SSH הפעילה ואת פרמטרי ההקשחה?
לסיכום
SSH הוא סטנדרט מינימלי, לא תוספת. חמש דקות עבודה מחליפות ערוץ ניהול חשוף בערוץ מוצפן, ועם ACL ניהולית, Timeout קצר ו-AAA מרוכז מקבלים תשתית ניהול שעומדת בביקורת אבטחה.
בקורס CCNA של מכללת נטמי בונים את כל שרשרת הניהול המאובטח — SSH, AAA, ACL, Syslog ו-NTP — במעבדות מעשיות ובעברית, עד שהפקודות הופכות לשריר.
רוצים להתמקצע?
הפוסט הזה הוא רק טעימה. הקורס המלא של Cisco CCNA — רשתות תקשורת ילמד אתכם הכל מא׳ עד ת׳.


