راهاندازی اولیه سرور های ubuntu
این سند فنی، راهنمای گامبهگام و جامعی را برای فرآیند راهاندازی اولیه سرورهای ubuntu ارائه میدهد. هدف اصلی این راهنما، ایمنسازی و پیکربندی استاندارد یک سرور تازه نصبشده برای اجرای سرویس های حجره است.
حداقل نسخه پشتیبانیشده اوبونتو 22.04 و حداکثر نسخه تستشده در این سند 24.04 است.
پس از دریافت اطلاعات سرور و اتصال SSH باید طبق مراحل زیر سرور آماده سازی شود:
ترجیحاً سعی شود همیشه مراحل با کاربر root طی شود. اگر کاربر اولیهٔ سرور غیر از root بود، طبق سند "فعال کردن کاربر root"، ابتدا آن را طی کرده و سپس مراحل زیر را طی کنید.
1- تعویض پسورد اولیه یوزر root سرور به یک پسورد حداقل 24 کاراکتری و رندوم که دارای تمام کاراکتر های Uppercase , Lowercase , Numbers , Symbols باشد تا از حملات دیکشنری اتک جلوگیری شود. « برای ساخت پسورد میتوانید از این ابزار ها (lastpass - 1password) کمک بگیرید. »
passwd
2- ست کردن Time 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- آپدیت و نصب پکیج های لازم برای 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
6- تغییر ویرایشگر پیشفرض سیستم عامل به vim
اگر کار با vim را بلد نیستید لطفا آن را فرا بگیرید و اکیدا از ست کردن ویرایشگر سوسول دیگر خودداری کنید و آن را برای خود نگه دارید. (با تشکر) 😅
sudo update-alternatives --set editor /usr/bin/vim.basic
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"
نظری برای نمایش وجود ندارد
نظری برای نمایش وجود ندارد