−25%

על Windows בתשלום שנתי, עד 31.10. לחבילות

EQVPS

איך ליצור משתמש sudo ב-VPS ולהפסיק לעבוד כ-root

צרו משתמש sudo בלי הרשאות root ב-Ubuntu או ב-Debian, תנו לו את מפתח ה-SSH שלכם, בדקו אותו ורק אז כבו כניסת root — בסדר שלא ינעל אתכם בחוץ.

כמעט כל VPS חדש מתחיל אותו דבר: נכנסים כ-root, מתקינים כמה דברים, וחודש אחר כך עדיין עובדים כ-root. זה עובד עד שסקריפט שהדבקתם מוחק את התיקייה הלא נכונה. הגדרת משתמש רגיל עם sudo לוקחת חמש דקות, והסדר חשוב יותר מהפקודות — אם תטעו בו, תנעלו את עצמכם בחוץ.

זה הסדר הבטוח ל-Ubuntu 22.04/24.04 ול-Debian 12.

1. צרו את המשתמש

כ-root:

adduser deploy
usermod -aG sudo deploy

adduser מבקש סיסמה וכמה פרטים אופציונליים (פשוט לחצו Enter). בחרו סיסמה אמיתית: תקלידו אותה בשביל sudo. ב-image מינימלי של Debian, הריצו קודם apt install -y sudo אם הפקודה חסרה.

2. תנו לו את מפתח ה-SSH שלכם

הדרך הקלה ביותר היא להעתיק את המפתחות המורשים של root תוך שמירה על הבעלות הנכונה:

rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy

אם אתם מעדיפים לעשות את זה ידנית:

mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys

הרשאות שגויות הן הסיבה הקלאסית לכך שכניסה עם מפתח נכשלת בשקט. SSH מתעלם מקובץ authorized_keys שמשתמשים אחרים יכולים לכתוב אליו.

3. בדקו לפני שמשנים משהו

השאירו את סשן ה-root פתוח. בטרמינל חדש:

ssh -p 22 deploy@203.0.113.10
sudo whoami

השתמשו ב-IP ובפורט שלכם — בתוכנית NAT זה פורט ה-SSH האישי מלוח הבקרה. אם sudo whoami מדפיס root, הכול תקין. אם הכניסה נכשלת, עדיין יש לכם את חלון ה-root כדי לתקן.

4. כבו את כניסת root

עכשיו סגרו את הדלת. צרו קובץ drop-in קטן במקום לערוך את ההגדרות הראשיות:

cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh

sshd -t בודק קודם את התחביר. הגדרה שבורה ועוד reload זה בדיוק מה שמביא אנשים לקונסולה. PasswordAuthentication no הגיוני רק כשכניסה עם מפתח עובדת למשתמש החדש — מה שבדיוק בדקתם.

פתחו עוד טרמינל ווודאו ש-root נדחה ו-deploy עדיין נכנס. אחר כך סגרו את סשן ה-root הישן.

5. אופציונלי: sudo בלי סיסמה לאוטומציה

אם סקריפט deploy צריך sudo בלי שאלה, תנו לו בדיוק את זה ולא יותר:

visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp

בכנות, NOPASSWD: ALL מפתה, אבל זה אומר שמפתח גנוב שווה ל-root. הגבילו את זה לפקודות שהאוטומציה מריצה.

אם משהו משתבש

קונסולת הרשת בלוח הבקרה לא תלויה ב-SSH או בחומת האש. היכנסו דרכה, תקנו את הקובץ ב-/etc/ssh/sshd_config.d/, עשו reload, וזהו. את כל תהליך השחזור תיארנו באיך לחזור ל-VPS שננעלתם ממנו.

מה הלאה

אפשרויות הגישה של כל תוכנית מופיעות בתיעוד הגישה. אפילו Nano ב-$3 ראוי למשתמש בלי root — זה שדרוג האבטחה הזול ביותר שיש.

שאלות נפוצות

למה לא פשוט להמשיך עם root?

כל מה שמריצים כ-root יכול לשבור את כל המערכת, כולל שגיאת הקלדה. בוטים גם מנסים קודם את שם המשתמש 'root', כך שביטול הכניסה שלו מוריד את המטרה הכי מנוחשת. משתמש עם שם ו-sudo נותן לכם רגע לחשוב לפני כל פקודה מורשית ותיעוד של מה שהורץ.

ומה אם אנעל את עצמי בחוץ?

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

לאפשר sudo בלי סיסמה?

בחשבון אישי השאירו את בקשת הסיסמה — זה קו ההגנה האחרון אם מפתח ה-SSH ידלוף. sudo בלי סיסמה סביר למשתמש deploy נפרד שהאוטומציה משתמשת בו, מוגבל לפקודות שהוא באמת צריך.

הפקודה sudo לא קיימת בשרת ה-Debian שלי. למה?

images מינימליים של Debian לא תמיד כוללים אותה. התקינו אותה כ-root עם 'apt install -y sudo', ואז הוסיפו את המשתמש לקבוצת sudo.

באיזה פורט SSH להשתמש?

בזה שמוצג בלוח הבקרה. תוכניות עם IP ייעודי משתמשות בפורט 22 על ה-IP שלכם; תוכניות NAT משתמשות בפורט ה-SSH האישי שלכם.

תגובות

אין עדיין תגובות. היו הראשונים.

השאירו תגובה

התגובות עוברות מודרציה לפני שהן מופיעות.