OpenClaw כעוזר לשרת לינוקס: הסוכן מצא 1,676 ניסיונות פריצה, והוא עצמו רץ עם גישה מלאה

תוכן עניינים

בבדיקת לוגים על שרת אובונטו קטן, סוכן ה-AI של OpenClaw מצא 1,676 ניסיונות כניסה כושלים עם סיסמה ב-24 שעות, רובם למשתמש root, ועוד ארבע כניסות מוצלחות עם סיסמה למשתמש ubuntu מכתובת אחת. את זה מתאר פרבז מוחמד מ-Techlatest במדריך שפרסם במדיום, שעוסק בהפיכת OpenClaw לעוזר לניהול שרת.

בתיאור של אותה בדיקה, הממשק של OpenClaw מראה שהסוכן רץ במצב Default (Full Access). ההגנה היחידה שהופעלה הייתה משפט בפרומפט שביקש ממנו לא לשנות כלום.

המחבר עצמו כותב שמשפט כזה לא אמור לשמש גבול אבטחה, וממליץ על מדיניות הרצה שמרנית יותר בשרת אמיתי. איך עושים את זה, המדריך לא מראה. הכתבה הזאת עוברת על כל השלבים שלו, מתקנת שתי תקלות בדרך, ומוסיפה בסוף את החלק שחסר, מתוך התיעוד הרשמי של OpenClaw.

כרטיס המאגר של OpenClaw בגיטהאב
כרטיס המאגר הרשמי בגיטהאב.

מה בונים כאן

OpenClaw הוא סוכן AI בקוד פתוח שרץ על המחשב שלכם ומפעיל כלים אמיתיים, כולל פקודות בטרמינל. כתבנו כאן בעבר על הקשר שלו ל-OpenAI. הרעיון במדריך פשוט: במקום להתחבר בכל פעם ב-SSH ולהריץ df, free ו-journalctl, מבקשים מהסוכן לבדוק את השרת ולהסביר מה מצא.

הסוכן משתמש באותם כלי לינוקס שהייתם מריצים בעצמכם. הוא מריץ את הפקודות, אוסף את הפלט, מקשר בין הממצאים ומסביר אותם. זה אותו עיקרון של סוכן שרץ על המחשב האישי, רק על שרת שפתוח לאינטרנט.

השרת במדריך קטן בכוונה: אובונטו 24.04, שני מעבדים וירטואליים ו-3.8GB זיכרון לפי המחבר. המודל עצמו לא רץ על השרת. הוא מגיע מספק חיצוני דרך API, והשרת מריץ רק את OpenClaw ואת הכלים שלו.

שלב 1: להתקין את OpenClaw

המחבר התקין קודם Node.js 24 ידנית מהמאגר של NodeSource. לפי תיעוד ההתקנה הרשמי, הצעד הזה לא הכרחי. OpenClaw דורש Node 24.16 ומעלה או 26.1 ומעלה, וסקריפט ההתקנה מתקין Node 24 בלינוקס בעצמו אם הוא חסר.

curl -fsSL https://openclaw.ai/install.sh | bash

אצל המחבר, ההתקנה זיהתה שאין הרשאת כתיבה לתיקיית ה-npm הגלובלית, והגדירה לבד תיקייה מקומית למשתמש, בלי sudo. היא גם עדכנה את .bashrc, כך שבטרמינל חדש הפקודה openclaw זמינה. כדי להשתמש בה באותו טרמינל:

source ~/.bashrc

מיד אחרי ההתקנה נפתח אשף הגדרה, והמסך הראשון שלו הוא אזהרה: הסוכן יקבל גישה אמיתית למכונה. זה המסך היחיד באשף שכדאי לעצור עליו. בהמשך האשף בוחרים ספק מודל. המחבר חיבר מפתח API של OpenAI, והאשף בדק שהמודל עונה לפני שהמשיך.

שלב 2: להפוך את ה-Gateway לשירות קבוע

ה-Gateway הוא התהליך שמחזיק את הסוכן בחיים. בזמן האשף הוא רץ בחזית, כלומר ברגע שחיבור ה-SSH נסגר, הוא נסגר איתו. כדי שימשיך לרוץ, מתקינים אותו כשירות:

openclaw gateway install
openclaw gateway status
openclaw health

לפי התיעוד, הפקודה הראשונה מתקינה ומפעילה את השירות, ובלינוקס זה שירות משתמש של systemd. השנייה מראה שהשירות פעיל ועל איזו כתובת הוא מאזין. השלישית בודקת שה-Gateway עונה.

הפרט החשוב בפלט הוא הכתובת: 127.0.0.1, פורט 18789. ה-Gateway מאזין כברירת מחדל רק לתוך השרת עצמו, ולא לרשת הציבורית. זו ברירת מחדל טובה, וכדאי להשאיר אותה ככה.

שלב 3: להגיע לממשק דרך מנהרת SSH

מכיוון שה-Gateway לא פתוח לאינטרנט, מגיעים אליו דרך מנהרת SSH מהמחשב שלכם:

ssh -N -L 18789:127.0.0.1:18789 ubuntu@YOUR_SERVER_IP

כל עוד המנהרה פתוחה, הממשק זמין בדפדפן בכתובת http://localhost:18789/.

כאן יש תקלה במדריך המקורי. פקודת המנהרה שם מעבירה את פורט 18789, אבל הכתובת שנפתחת בדפדפן היא localhost:18889. ככה זה לא יעבוד. אם רוצים פורט מקומי אחר, משנים את המספר הראשון בפקודה, והשני נשאר 18789:

ssh -N -L 18889:127.0.0.1:18789 ubuntu@YOUR_SERVER_IP

הממשק יבקש טוקן. לפי תיעוד הלוח, מריצים על השרת, בטרמינל אינטראקטיבי:

openclaw gateway auth-token --show

התיעוד מציע גם דרך שהמדריך לא מזכיר: openclaw dashboard מנפיק קישור חד פעמי לחיבור, בלי לחשוף את הטוקן הקבוע. בכל מקרה, הטוקן לא נכנס לצילומי מסך, לפוסטים או לצ'אט.

שלב 4: בדיקת בריאות ראשונה

בממשק הצ'אט של OpenClaw שולחים בקשה שמגבילה את הסוכן לפקודות קריאה בלבד. הניסוח שלנו:

Act as my Linux server assistant. Check server health using read-only commands only:
CPU load, memory, disk usage, uptime, OS version and failed systemd services.
Do not install, change, restart, stop or delete anything.
List every command you run, then summarize the results.

לפי המדריך, אלה הפקודות שהסוכן הריץ:

uptime
top -b -n 1 | head -n 5
free -h
df -hT -x tmpfs -x devtmpfs
cat /etc/os-release
systemctl --failed --no-pager --plain

המחבר מדגיש נקודה נכונה: לא לשפוט את הבדיקה לפי הסיכום. "בדקתי את השרת" הוא משפט שמודל יכול לכתוב גם בלי לבדוק. מה שמוכיח שהבדיקה קרתה הוא רשימת הפקודות שרצו בפועל והפלט שחזר מהן, ושניהם מופיעים בממשק.

המדריך עצמו מספק דוגמה למה זה חשוב, גם אם לא בכוונה. בבדיקה הידנית שהמחבר עשה לפני ההתקנה, השרת דיווח על 3.8GB זיכרון. בדוח של הסוכן מופיעים 7.8GiB. אולי השרת הוחלף בין השלבים, והמדריך לא מסביר. זה בדיוק סוג הפער שנתפס רק כשמסתכלים על הפלט ולא על הסיכום.

שלב 5: קריאת לוגים, ומה שהסוכן מצא

הבדיקה השנייה יורדת לרמת הלוגים. הניסוח שלנו:

Review the system logs from the last 24 hours using read-only commands.
Look for errors and warnings, failed services, SSH or authentication issues,
and disk or filesystem problems. Change nothing.
Summarize what matters and what I should look into.

בין הפקודות שהסוכן הריץ, לפי המדריך:

journalctl --since "24 hours ago" -p warning --no-pager
journalctl -k --since "24 hours ago"
systemctl --failed
last -x reboot shutdown
ss -ltnp

ומה שחזר, שוב לפי המדריך: 1,676 ניסיונות כניסה כושלים עם סיסמה ב-24 שעות, רובם ל-root. ארבע כניסות מוצלחות עם סיסמה למשתמש ubuntu מכתובת אחת, בתוך פחות מחצי שעה. שרת SSH שמאזין על כל הממשקים. שירות שולחן עבודה מרוחק (XRDP) שלא מצליח לקרוא את מפתח ההצפנה שלו, בזמן שהפורט שלו פתוח לאינטרנט ומקבל סריקות. בעיות בדיסק או במערכת הקבצים לא נמצאו.

הסוכן גם המליץ מה לעשות: לוודא שהכתובת שממנה נכנסו היא של המחבר, ואם לא, להתייחס לזה כחשד לפריצה. זו המלצה טובה. היא גם הרגע שבו כדאי לעצור ולהסתכל מי עוד נמצא על השרת הזה.

הפער: משפט בפרומפט מול מדיניות הרצה

לפי התיעוד של OpenClaw, ברירת המחדל להרצת פקודות על מכונת ה-Gateway היא full, ומצב הבקשות לאישור הוא off. כלומר, הסוכן מריץ פקודות בלי לשאול. זה בדיוק מה שהממשק הראה אצל המחבר, Default (Full Access).

מה שהגביל את הסוכן בשתי הבדיקות היה הבקשה בפרומפט. מודל יכול לציית לבקשה כזאת, ובבדיקות של המחבר הוא ציית. אבל ציות הוא לא אכיפה.

ויש כאן שכבה נוספת. שורת כניסה כושלת בלוג של SSH כוללת את שם המשתמש שהתוקף ניסה, כלומר טקסט שהתוקף בחר. סוכן שקורא את הלוג הזה קורא, בין השאר, טקסט שכתבו התוקפים. OpenClaw מקדיש לסיכון הזה עמוד שלם בתיעוד.

לדעתי, הממצא החשוב במדריך הוא ההגדרה שמתחת לסוכן, זו שמאפשרת לו לכתוב לשרת בדיוק כמו לקרוא ממנו, על שרת שבאותו יום ממש היה תחת ניסיונות פריצה. היכולת לקרוא journalctl היא החלק הפחות מעניין.

שלב 6: לנעול את ההרצה

זה החלק שחסר במדריך. OpenClaw מגיע עם שלוש תבניות מוכנות. לעוזר שרת, לדעתי, cautious היא הנכונה. לפי התיעוד היא עובדת כך: פקודות מרשימת היתרים רצות, כל פקודה אחרת מחכה לאישור בממשק, ואם אף אחד לא עונה, היא נחסמת.

openclaw exec-policy preset cautious
openclaw approvals get --gateway

הפקודה הראשונה מחילה את התבנית על המכונה המקומית, ולכן מריצים אותה על השרת עצמו. השנייה מציגה את המדיניות שבתוקף בפועל, וכדאי להריץ אותה אחרי כל שינוי. מי שרוצה לחסום הרצה על השרת לגמרי יכול להשתמש בתבנית deny-all. ואפשר גם לקבוע כל שדה בנפרד:

openclaw exec-policy set --security allowlist --ask on-miss --ask-fallback deny

שתי הסתייגויות מהתיעוד, שחשובות לא פחות מהתבנית עצמה. הראשונה: רשימת ההיתרים מתאימה לפי קובץ הפקודה. מי שמאשר את systemctl כדי להריץ systemctl --failed מאשר גם systemctl restart, אלא אם מגבילים גם את הארגומנטים, והתיעוד מסביר איך. השנייה: לפי OpenClaw עצמה, האישורים מקטינים סיכון להרצה בטעות, אבל הם לא הגבלה של מערכת הקבצים לקריאה בלבד. פקודה שאושרה יכולה לשנות קבצים לפי ההרשאות של המשתמש שמריץ אותה.

כתבנו כאן על סוכן שפרץ מכונת מעבדה בשבע דקות, והשאלה המעניינת שם הייתה אותה שאלה: מי מקבל רשות להריץ מה.

שלב 7: לסגור את מה שהסוכן מצא

ארבע כניסות מוצלחות עם סיסמה הן סיבה לכבות כניסה עם סיסמה ב-SSH. לפני שעושים את זה, לוודא בחלון נפרד שהכניסה עם מפתח עובדת, ולהשאיר את החיבור הנוכחי פתוח עד הסוף. אחרת נשארים בחוץ.

באובונטו כדאי לכתוב את ההגדרה בקובץ נפרד, ולא בקובץ הראשי. בתמונות ענן של אובונטו יש לפעמים קובץ בתיקייה sshd_config.d שמפעיל כניסה עם סיסמה, ו-SSH לוקח את הערך הראשון שהוא פוגש. קובץ עם מספר נמוך בשם נקרא לפניו:

echo "PasswordAuthentication no" | sudo tee /etc/ssh/sshd_config.d/00-no-password.conf
sudo sshd -t
sudo systemctl reload ssh
sudo sshd -T | grep -i passwordauthentication

השורה השנייה בודקת שההגדרות תקינות לפני הטעינה, והאחרונה מראה את הערך שבתוקף בפועל. הפרטים המלאים במדריך השרת של אובונטו. ואם לא צריך שולחן עבודה מרוחק, זה הזמן לסגור גם את השירות של XRDP ואת הפורט שלו.

מה נשאר מהמדריך

המדריך מסכם את זרימת העבודה כך: לזהות, להסביר, להמליץ, לאשר ידנית, ורק אז לשנות. זו זרימה נכונה. ההבדל הוא מי אוכף את שלב האישור, משפט בפרומפט או הגדרה בשרת.

המחבר מסיים בהמלצה להשאיר את האדם בשליטה על שינויים משמעותיים. בשרת שלו, פקודה אחת הייתה ההבדל בין עוזר שקורא לוגים לבין עוד משתמש עם גישה מלאה, באותו יום שבו מישהו אחר ניסה 1,676 פעמים להיכנס.

מבוסס על המדריך של פרבז מוחמד מ-Techlatest, שפורסם במדיום בספטמבר 2026, ועל התיעוד הרשמי של OpenClaw.

הרשמה לניוזלטר

להרשמה חינמית לניוזלטר שלנו ולקבל עדכונים שוטפים על בינה מלאכותית, שיווק, אוטומציות ועוד מלאו את הפרטים

רוצה לייצר לקוחת חדשים דרך שיווק חדשני שמבוסס על אוטומציות ו-AI ?

אהבתם את הכתבה? פרגנו בשיתוף וקבלו מאיתנו קורס לבניית אוטומציות חינם, זה פשוט עוזר לנו ליצור יותר (:

מאמרים אחרונים...

לזמן מוגבל: מיני קורס חינמי לבניית סוכני AI

הצלחת! יש לבחור עכשיו בשעה מועדפת לפגישת אפיון צרכים חינם!

לאחר שסיימת, יש למלא את השאלון הבא כדי שנגיע לפגישה עם תוכנית עבודה סדורה!

https://smartrise.co.il/dream-client

מה שמפריד בינכם לבין להבין בדיוק איך לתקוף את השיווק, ולבנות פעם אחת מערכת אמיתית שתשרת אתכם שנים, זו שיחת פוקוס אחת בת 30 דק' איתנו

שנתחיל? (השיחה ללא עלות או התחייבות)

מהו תקציב הפרסום?
פרסמת ממומן בעבר?
כמה חשוב לך להצליח?

איזה כיף! החלטת לעשות צעד ולהכיר!

השאירו פרטים עכשיו, לאחר מכן תועברו לבחירת יום ושעה שמתאימים לכם

קבלו מיני קורס חינם לבניית סוכני AI שילמד אתכם את כל הבסיס (ומעבר) לאיך לבנות סוכנים בווצאפ שעובדים בשבילכם 24/7

הטבה לפניך!

קורס לבניית סוכני AI בווצאפ המתקדם בישראל עכשיו בהצעה מטורפת! 

כל הפרטים בעמוד הבא: