رفتن به محتوای اصلی

راه‌اندازی اولیه سرور های ubuntu

این سند فنی، راهنمای گام‌به‌گام و جامعی را برای فرآیند راه‌اندازی اولیه سرورهای ubuntu ارائه می‌دهد. هدف اصلی این راهنما، ایمن‌سازی و پیکربندی استاندارد یک سرور تازه نصب‌شده برای اجرای سرویس های حجره است.

حداقل ورژننسخه ubuntuپشتیبانی‌شده بایداوبونتو 2222.04 و حداکثر ورژننسخه تست تست‌شده در این سند 2424.04 است.

 

پس از دریافت اطلاعات سرور و اتصال SSH باید طبق مراحل زیر سرور آماده سازی شود:

ترجیهاترجیحاً سعی شود همیشه مراحل با یوزرکاربر root مراحل طی شود وشود. اگر یوزرکاربر اولیهاولیهٔ سرور به غیر از root بودبود، طبق سند ساخت یوزرکاربر rootroot، ابتدا آن را ساخته و سپس مراحل زیر را طی کنید.

1- تعویض پسورد اولیه یوزر root سرور به یک پسورد حداقل 24 کاراکتری و رندوم که دارای تمام کاراکتر های Uppercase , Lowercase , Numbers , Symbols باشد تا از حملات دیکشنری اتک جلوگیری شود. « برای ساخت پسورد میتوانید از این ابزار ها (lastpass - 1password) کمک بگیرید. »

passwd

2- ست کردن timezoneTime zone سرور روی ایران

sudo timedatectl set-timezone Asia/Tehran

3- تعویض پورت SSH دیفالت لینوکس از 22 به 60504 برای ارتقا امنیت سرور.

توجه کنید: اگر سرور دارای فایروال غیراستاندارد یا سختگیرانه باشد باید از قبل به پشتیبان سرور اعلام شود تا پورت 60504 را باز کند تا اتصال های آتی دچار مشکل نشود.

sudo sed -i -E 's/^(#?Port ).*/Port 60504/' /etc/ssh/sshd_config
sudo systemctl restart ssh
sudo systemctl restart sshd

4- فعال کردن فایروال UFW برای برای ارتقا و حفظ امنیت سرور.

پورت های 60504 برای SSH و 80 برای HTTP و 443 برای HTTPS در دستور زیر به صورت پیش فرض برای اکثر پروژه ها کافی است، در صورتی که سرویس خاص دیگری نیز وجود دارد آن را نیز allow کنید.

توجه کنید: اگر در مرحله قبلی هر پورت دیگری برای SSH انتخاب کرده اید باید در دستور زیر نیز جایگزین 60504 کنید تا فایروال جلوی اتصال SSH را نگیرد.

sudo ufw default deny incoming
sudo ufw default allow outgoing

sudo ufw allow 60504
sudo ufw allow 80
sudo ufw allow 443

sudo ufw enable

5- تغییر ویرایشگر پیشفرض سیستم عامل به vim

اگر کار با vim را بلد نیستید لطفا آن را فرا بگیرید و اکیدا از ست کردن ویرایشگر سوسول دیگر خودداری کنید و آن را برای خود نگه دارید. (با تشکر) 😅

sudo update-alternatives --set editor /usr/bin/vim.basic

6- آپدیت و نصب پکیج های لازم برای os:

sudo apt -y update
sudo apt -y upgrade
sudo apt install -y cron vim wget resolvconf zip unzip ca-certificates curl gnupg certbot mysql-client

7- نصب و راه‌اندازی داکر:

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://mirror.manageit.ir/ubuntu/docker/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirror.manageit.ir/ubuntu/docker \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

docker logout
sudo mkdir -p ~/.docker && cat > ~/.docker/config.json <<EOF
{
  "psFormat": "table {{.ID}}\\t{{.Names}}\\t{{.Status}}\\t{{.Image}}\\t{{.Ports}}"
}
EOF

برای تست دستور docker ps را اجرا کرده تا از صحت نصب داکر اطمینان پیدا کنید.

8- ساخت cert های لازم برای SSL:

sudo 

mkdir /etc/letsencrypt/selfsigned/ sudo openssl dhparam -out /etc/letsencrypt/ssl-dhparams.pem 2048 sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/letsencrypt/selfsigned/key.pem -out /etc/letsencrypt/selfsigned/cert.pem \ -subj "/C=IR/ST=Tehran/L=Tehran/O=AlmaaTech Co./CN=SELF"