4.7 הרצת קוד מרוחק הרצאה
הרצאה על RPC בווינדוס, שימושים שונים והרצת קוד מרחוק באמצעות MS-RPC, SMB ו-WinRM¶
הקדמה¶
במהלך ניהול רשתות גדולות, מנהלי רשתות צריכים כלי עבודה שיאפשרו להם להריץ קוד מרחוק, לנהל מערכות ולהתמודד עם ניהול שוטף של המחשבים והשרתים. בפרוטוקול RPC (Remote Procedure Call) מצוי כחלק מרכזי בניהול רשתות מבוססות Windows. הפרוטוקול מאפשר הרצת קוד על מחשבים מרוחקים דרך חיבור רשת. במאמר זה, נסקור את השימושים השונים של RPC בווינדוס, איך מנהל רשת יכול להשתמש ב-MS-RPC, WinRM ו-SMB לצורך הרצת קוד מרחוק, ולמה זה חשוב עבור ניהול רשתות.
מהו RPC?¶
פרוטוקול RPC (Remote Procedure Call) הוא פרוטוקול שיאפשר למחשב אחד לשלוח פקודות למחשב אחר על מנת להריץ פונקציות או תוכניות מרחוק. בווינדוס, RPC משמש להעברת בקשות להריץ קוד (פונקציות) ממחשב אחד למחשב אחר על פני הרשת, תוך יצירת קשר בין שני המחשבים ושיתוף המידע.
פרוטוקול RPC מתחלק לכמה סוגים בהתאם לפרוטוקול שמניע אותו. למשל:
- פרוטוקול MS-RPC (Microsoft RPC) - המימוש של Microsoft של RPC, המאפשר הרצת פקודות או קוד בשרתים ותחנות עבודה על מערכת Windows. (זה נקרא גם rpc over tcp)
- פרוטוקול WinRM (Windows Remote Management) - פרוטוקול נוסף שמאפשר ניהול מרחוק של מחשבים ב-Windows. (עובד מאחורי הקלעים מעל HTTP, זה נקרא גם rpc over http)
- פרוטוקול SMB - כן, גם מעל SMB אפשר להריץ קוד מרוחק! (זה נקרא rpc over smb)
איך עובד RPC ב-Windows?¶
הRPC ב-Windows בדרך כלל נשען על תקשורת TCP/IP או SMB. כאשר מנהל מערכת רוצה להריץ קוד או להפעיל פקודה על מחשב אחר, הוא יכול להשתמש ב-MS-RPC או ב-WinRM. הלקוח שולח בקשה לשרת עם פרטי הפקודה/הקוד שהוא רוצה להריץ. השרת מבצע את הפעולה ומחזיר את התוצאה למחשב הלקוח.
שימושים מרכזיים של RPC ב-Windows¶
הRPC הוא אבן דרך בניהול רשתות Windows, ומשמש למגוון מטרות:
- שיתוף קבצים ומדפסות: שימוש ב-SMB וב-MS-RPC מאפשר חיבור בין מחשבים לשיתוף קבצים ומדפסות.
- ניהול מערכת מרחוק: בעזרת RPC, מנהל מערכת יכול לגשת למחשב מרוחק, לבצע פעולות שונות, ולהריץ קוד כמו סקריפטים או פקודות.
הרצת קוד מרחוק באמצעות RPC: MS-RPC, WinRM ו-SMB¶
1. MS-RPC (Microsoft Remote Procedure Call)¶
כאשר מנהל רשת רוצה להריץ פקודה מרחוק, אחד הכלים הנפוצים הוא MS-RPC. MS-RPC הוא הבסיס למגוון פרוטוקולי ניהול ב-Windows, ובמיוחד חשוב במקרים של ניהול שרתים או תחנות עבודה מרחוק.
- שימוש ב-MS-RPC יכול לכלול פעולות כמו:
- גיבוי ושחזור נתונים
- הרצת סקריפטים
- התקנה של עדכונים
- טיפול במשתמשים
דוגמה: הרצת פקודה עם MS-RPC¶
לצורך הרצת פקודה על מחשב מרוחק, ניתן להשתמש בפקודת psexec של Microsoft:
בפקודה הזו, הלקוח שולח פקודה דרך MS-RPC כדי להריץ את הפקודה "echo Hello, World!" במחשב המרוחק.
2. WinRM (Windows Remote Management)¶
WinRM הוא פרוטוקול ניהול מרחוק של Windows המאפשר הרצת פקודות ומעקב אחרי מערכות מרחוק דרך חיבור רשת. זהו פרוטוקול מבית Microsoft שמבצע את אותה העבודה כמו MS-RPC אך מציע אמצעי ניהול מתקדמים יותר כמו PowerShell Remoting.
- שימוש ב-WinRM מאפשר:
- שליחת פקודות PowerShell מרחוק
- ניהול שירותים ותהליכים
- שליחת פקודות שדרושות כדי לטפל במערכות ושרתים
דוגמה: הרצת פקודת PowerShell עם WinRM¶
כדי להריץ פקודת PowerShell מרחוק באמצעות WinRM, ניתן להשתמש בפקודה הבאה:
פקודה זו מחזירה את רשימת התהליכים המנוהלים במחשב המרוחק.
3. SMB (Server Message Block)¶
פרוקול SMB הוא פרוטוקול שיתוף קבצים ותקשורת בין מחשבים ברשת. המנהל יכול להשתמש ב-SMB כדי להתחבר למחשב מרוחק ולבצע פעולות כמו:
- שליחת קבצים
- התקנת תוכנה
- הרצת קוד מרחוק
פרוטוקול SMB מאפשר למנהל לגשת למערכת הקבצים של מחשב אחר ולהריץ סקריפטים בצורה אוטומטית, כך שהוא לא צריך להיות פיזית מול המחשב המרוחק.
דוגמה: חיבור ל-Share מרוחק והעתקת קובץ¶
net use \\TargetComputerName\C$ /user:Administrator Password
copy C:\Scripts\update.bat \\TargetComputerName\C$\Windows\Temp
הפקודה הראשונה מחברת את המנהל לכונן המערכת C$ במחשב המרוחק, והפקודה השנייה מעתיקה סקריפט למחשב המרוחק.
לאחר שהקובץ נמצא במחשב המרוחק, ניתן להריץ אותו. אחת הדרכים הפשוטות היא להשתמש ב-PsExec, כלי שנמצא כחלק ממערכת ההפעלה או כחלק מה- Sysinternals Suite של Microsoft. (התקינו אותו)
4. פרוטוקולי ניהול נוספים¶
- פרוטוקול RDP (Remote Desktop Protocol): פרוטוקול נוסף שמאפשר למנהל גישה למחשב מרוחק עם ממשק גרפי מלא.
- פרוטוקולי Telnet / SSH: משמשים להרצת פקודות בסיסיות על מחשבים מרוחקים.
מסקנה¶
שימוש ב-MS-RPC, WinRM ו-SMB מאפשר למנהל רשת לבצע ניהול מרחוק של מחשבים ב-Windows. באמצעות כלים אלו, ניתן להריץ קוד, לנהל שרתים ותחנות עבודה, ולהתמודד עם אתגרים רבים של תחזוקה וניהול. שימוש בטכניקות אלו מאפשר חיסכון בזמן, ביצוע פעולות אוטומטיות ויכולת לנטר ולשלוט על המערכות ברשת בצורה נוחה ויעילה.
לסיכום, RPC ב-Windows מציע מגוון אפשרויות ניהול חזקות, וגישה מרוחקת לרשת המחשבים והשרתים במערכות מבית Microsoft, מה שהופך אותו לכלי עיקרי בניהול רשתות ושרתים.