30 הדקות הראשונות לאחר התקנת Ubuntu Server הן קריטיות. התמונה המוגדרת כברירת מחדל אינה מוכנה לעומסי ייצור: SSH פתוח, גישת סיסמת root, מגבלת קבצים פתוחים של 1024, ללא עדכונים אוטומטיים. תוך היום הראשון, מאות בוטים מרשתות הבוטים Mirai ו-Qbot סורקים את השרת. בפועל, 80% מהשרתים בתשתית הלקוחות שלנו מגיעים עם בעיות אלה. לאחרונה פנתה אלינו סטארטאפ: השרת שלהם נפרץ ביום השני לאחר הפריסה, ונתוני משתמשים דלפו. תיקנו את הנזק והגדרנו מחדש את המערכת כדי למנוע הישנות. תהליך ה-hardening שלנו ל-Ubuntu Server מבטיח שהמערכת מוכנה להתקפות מהיום הראשון.
אנו מגדירים את Ubuntu Server מאפס — מ-bare-metal ועד מופעי ענן ב-AWS, GCP, Yandex Cloud. בנוסף לאבטחה, אנו מייעלים ביצועים: מגדירים swap, מגדילים file-max, בוחרים מתזמני I/O (none ל-SSD, mq-deadline ל-HDD), ומפעילים TCP BBR לתפוקת רשת. כל זה מפחית השהיות ומונע קריסות בעומסי שיא. Canonical ממליצה לבצע hardening לאחר התחברות ראשונה.
אילו בעיות אנו פותרים
-
אבטחה כברירת מחדל: תמונות ענן לעיתים קרובות מאפשרות התחברות root. אנו משביתים אימות סיסמה, מגדירים fail2ban עם maxretry=3, bantime=3600, findtime=600, ו-UFW עם רשימת היתרים למנהלים. בנוסף: ביקורת משתמשים, הסרת חשבונות לא בשימוש, הגדרת sudo דרך קבוצת
wheel. -
ביצועים: מגבלת קבצים פתוחים ברירת המחדל (1024) אינה מתאימה ליישומים עמוסים. אנו מגדילים אותה ל-65536 ומתאימים את
vm.swappiness(10–20 לשרתי DB, 60 למחשבים שולחניים). לשרתי אינטרנט בעומס גבוה, אנו מגדיריםnet.core.somaxconn = 1024. - ניהוליות: ללא אוטומציית עדכונים, השרת חשוף לפגיעויות. אנו מגדירים unattended-upgrades עם התראות, ומשלבים ניטור דרך Prometheus node_exporter ואיסוף לוגים מרכזי דרך Loki.
למה התקנה סטנדרטית לא מתאימה לייצור
לפי המלצת Canonical, יש לבצע hardening לאחר התחברות ראשונה. מדדנו: הזמן לפריצת שרת עם SSH פתוח וסיסמה הוא פחות משעתיים. לכן 30 הדקות הראשונות לאחר ההשקה הן קריטיות. אם החורים האלה לא נסגרים, אתה מסכן לא רק נתונים אלא גם מוניטין. בפועל, דילוג על hardening של Ubuntu Server מוביל לתקריות: פריצות SSH, השבתות עקב הגדרת רשת שגויה (למשל, השבתת IPv6 ללא הגדרת resolver DNS), כשלים ממיצוי מתארי קבצים.
| השוואה | הגדרה ידנית | אוטומציית Ansible |
|---|---|---|
| זמן לשרת | 4–8 שעות | 2–3 שעות (ראשון) |
| חזרתיות | נמוכה, סיכון לשגיאות | גבוהה, מנוהל בגרסאות ב-Git |
| תחזוקת צי | קשה | playbook אחד לכולם |
| עלות תקריות | גבוהה | הפחתה של 30% |
אוטומציית Ansible מאיצה את ההגדרה פי 2–3 בהשוואה לידנית. חיסכון בתקציב על תקריות מגיע ל-30–40% לאחר פריסת האוטומציה.
איך לבצע hardening בסיסי ב-5 שלבים
- השבתת התחברות root עם סיסמה והגדרת מפתחות SSH.
- התקנה והגדרה של UFW עם רשימת היתרים ל-IP.
- התקנת fail2ban עם הגדרות הגנת SSH.
- הגדרת unattended-upgrades עם התראות.
- הגדלת מגבלת קבצים פתוחים ל-65536.
דוגמה להגדרת fail2ban
# /etc/fail2ban/jail.local [sshd] enabled = true maxretry = 3 bantime = 3600 findtime = 600 איך להאיץ פריסת שרתים עם אוטומציה
שימוש ב-Ansible או Terraform מפחית את הזמן לכל שרת עוקב ל-2–3 שעות. אנו מכינים roles עבור Debian/Ubuntu (common, security, monitoring, time) ומאחסנים אותם ב-Git יחד עם הגדרות Terraform לספקי ענן. זה מבטיח חזרתיות וגרסאות. בעת יצירת מופע מחדש, basta להריץ playbook אחד. אם אתה צריך הגדרה חזרתית לצי שרתים, צור קשר — נכין roles של Ansible.
איך אנו מגדירים Ubuntu Server turnkey
מקרה קונקרטי: הגדרת שרת ל-Go API בעומס גבוה. לאחר התקנה מינימלית, אנו מבצעים:
# Проверка текущих пользователей и портов
who
ss -tlnp
# Отключаем root-логин по паролю
sed -i 's/^PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
sed -i 's/^PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl reload sshיצירת משתמש # /etc/fail2ban/jail.local [sshd] enabled = true maxretry = 3 bantime = 3600 findtime = 600 , הוספת מפתח SSH. לאחר מכן הגדרה בסיסית:
# Обновление пакетов
apt update && apt full-upgrade -y
# Временная зона и hostname
timedatectl set-timezone Europe/Moscow
hostnamectl set-hostname prod-api-01
# Лимиты для нагруженных сервисов
cat >> /etc/security/limits.conf << 'EOF'
* soft nofile 65536
* hard nofile 65536
* soft nproc 32768
* hard nproc 32768
EOF
הגדרת אבטחה:
# UFW
ufw default deny incoming
ufw default allow outgoing
ufw allow from <office-ip> to any port 22
ufw --force enable
# fail2ban
apt install -y fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localועדכונים אוטומטיים:
apt install -y unattended-upgrades dpkg-reconfigure --priority=low unattended-upgrades לסנכרון זמן אנו משתמשים ב-systemd-timesyncd או chrony — תלוי בדרישות. ליישומים פיננסיים, אנו מתקינים chrony עם הגדרת שרת NTP ידנית. דוגמה להגדרת chrony לייצור:
server 0.pool.ntp.org iburst server 1.pool.ntp.org iburst allow 10.0.0.0/8 מה כלול בהגדרה
- ביקורת מצב שרת נוכחי (תמונת ענן, bare-metal).
- Hardening של SSH, UFW, fail2ban, מגבלות, NTP.
- התקנה והגדרה של תוכנה למשימה (nginx, PostgreSQL, Redis, Docker).
- כתיבת סקריפטים ומסירת playbook של Ansible לחזרתיות.
- תיעוד: הגדרה סופית, מדריך תפעול.
- תמיכה: 30 ימי ייעוץ חינם לאחר מסירה.
התוצאה היא שרת מוכן לייצור מהיום הראשון. עלות ההגדרה מחזירה את עצמה תוך חודשים על ידי מניעת השבתות ופריצות.
תהליך ולוחות זמנים
| שלב | משך |
|---|---|
| ביקורת ותכנון | 1–2 שעות |
| התקנה ו-hardening | 4–8 שעות |
| הגדרת תוכנת יישום | מ-4 שעות |
| בדיקות ותיעוד | 2–4 שעות |
| העברת ידע | שעה |
הגדרה ידנית של שרת אחד אורכת 1–2 ימים. לצי שרתים, אנו משתמשים ב-Ansible — מפחיתים את הזמן ל-2–3 שעות לכל שרת עוקב. חיסכון ממוצע בתקציב הלקוח — 30% על זמן תקריות.
למה להפקיד את ההגדרה בידינו?
אנו עוסקים בתשתית DevOps מעל 5 שנים, השלמנו הגדרות ל-40+ פרויקטים — מסטארטאפים ועד ארגונים. אנו מבטיחים עמידה בשיטות האבטחה הטובות ביותר (CIS benchmark לפי בקשה). כדי להגדיר שרת לפרויקט שלך, צור קשר. קבל ייעוץ על hardening של Ubuntu Server.







