در ابتدا بعد از خریداری سرور باید یک سری کارهای اولیه انجام بگیرد. تمامی آموزشها بر اساس ubuntu 20.04 و ubuntu 22.04 است. همچنین در تمام آموزش از یوزر root استفاده میکنیم. اگر یوزر شما غیر از این بود به ابتدای تمامی دستورات عبارت sudo را اضافه کنید!
به دلیل مشکلات اخیر و همچنین برای افزایش امنیت سرور و جلوگیری از کرک شدن آن توصیه میشود پورت پیشفرض سرور را تغییر بدهید. برای این منظور دستور زیر را در ترمینال سرور وارد کنید:
nano /etc/ssh/sshd_configبه وسیله دکمههای بالا و پایین کیبورد به خط زیر بیاید:
#Port 22
علامت # اول خط را حذف کرده و عدد 22 را به پورت دلخواه خود تغییر دهید. پیشنهاد میکنم یک عدد چهار رقمی انتخاب کنید. به عنوان مثال:
Port 4256
بعد از انجام تغییرات دکمههای ctrl + x و y و enter را بزنید تا تغییرات ذخیره شده و فایل بسته شود. سپس دستور زیر را در ترمینال وارد کنید:
systemctl reload sshdحالا یک ترمینال با پورت تغییر یافته باز کنید، اگر ترمینال باز شد ترمینال قبلی را ببندید و مرحله بعدی را انجام بدهید اما اگر ترمینال جدید باز نشد در ترمینال قبلی بار دیگر مرال بالا را چک کنید.
با دستور زیر سرور را آپدیت کنید.
sh -c 'apt-get update; apt-get upgrade -y; apt-get dist-upgrade -y; apt-get autoremove -y; apt-get autoclean -y'در طول آپدیت هر سوالی شد با زدن دکمه enter حالت پیشفرض را انتخاب کنید.
با زدن دستور زیر در ترمینال برنامههای مورد نیاز را نصب کنید:
apt-get install -y software-properties-common ufw wget curl git socat cron busybox bash-completion locales nano apt-utilsدستورات زیر را به ترتیب وارد کنید و به جای sshPort پورتی را که در مرحله قبل به ssh اختصاص دادید قرار دهید.
ufw default deny incomingufw default allow outgoingufw limit sshPortecho y | ufw enableدستور زیر را اجرا کنید:
nano /etc/security/limits.confدو خط زیر را به انتهای فایل باز شده اضافه کنید.
* soft nofile 51200
* hard nofile 51200
به ترتیب با زدن دکمههای ctrl + x و y و enter تغییرات را ذخیره کرده و فایل را ببندید.
دستور زیر را اجرا کنید:
ulimit -n 51200به جای BBR از Hybla استفاده میکنیم که بازدهی به مراتب بیشتری از BBR دارد.
دستور زیر را اجرا کنید:nano /etc/ufw/sysctl.confخطوط زیر را در انتهای فایل اضافه کنید:
fs.file-max = 51200
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 4096
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mem = 25600 51200 102400
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = hybla
برای نصب آسان و سریع سرویسهای مورد نیاز و همچنین نصب چندین سرویس بدون اینکه تداخلی با هم داشته باشند ما در این آموزش از داکر استفاده میکنیم. با دستور زیر داکر را نصب کنید:
wget --quiet get.docker.com -O docker-setup.sh && sh docker-setup.shبرای نصب docker-compose دستورات زیر را به ترتیب اجرا کنید:
LATEST_VERSION=$(curl --silent "https://api.github.com/repos/docker/compose/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')curl -L "https://github.com/docker/compose/releases/download/${LATEST_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composeبرای دریافت گواهی ssl از اسکریپت acme.sh استفاده میکنیم. در دستورات زیر به جای my@email.com ایمیل خود را جایگزین کرده و دستورات را به ترتیب اجرا کنید:
curl https://get.acme.sh | sh -s email=my@email.comsource ~/.bashrcacme.sh --set-default-ca --server letsencryptacme.sh --register-account -m my@email.comacme.sh --upgrade --auto-upgradeدر نهایت با دستور زیر سرور را ریبوت میکنیم:
shutdown -r now

