سرور اوبونتو تازه تحویل گرفتهاید؛ یک آیپی دارید، یک رمز root و یک ترمینال خالی. همینجا بیشتر مشکلات بعدی تعیین میشود: سروری که از روز اول مرتب راهاندازی شده باشد، ماهها بیدردسر کار میکند و سروری که همینطور رها شده باشد، زودتر یا دیرتر هک میشود یا پر و کند میشود.
این مقاله ده قدم اول بعد از تحویل سرور را به ترتیب مرور میکند. فرض ما اوبونتو ۲۴.۰۴ LTS است، اما بیشتر دستورها روی نسخههای دیگر هم کار میکنند. بخش امنیتی را عمداً کوتاه نگه داشتهایم، چون جزئیاتش در راهنمای امنسازی سرور لینوکس آمده است. اگر هنوز اتصال به سرور را بلد نیستید، اول SSH چیست و چطور وصل شویم را بخوانید.
قدم ۱: اتصال و بهروزرسانی سیستم
با SSH به سرور وصل شوید و قبل از هر کاری بستهها را بهروز کنید. دو دستور apt update و بعد apt upgrade همین کار را میکنند. اگر کرنل یا کتابخانهی مهمی عوض شد، یک بار سرور را ریستارت کنید. چون ایمیجها گاهی از ماهها پیش ساخته شدهاند، این قدم مهم است و بسیاری از وصلههای امنیتی را همان لحظه میآورد.
قدم ۲: ساخت کاربر جدید با دسترسی sudo
کار روزانه با root خطرناک است؛ یک اشتباه تایپی میتواند کل سیستم را خراب کند. با دستور adduser یک کاربر جدید بسازید، رمز قوی بدهید و با usermod آن را به گروه sudo اضافه کنید. بعد با آن کاربر وارد شوید و بررسی کنید sudo کار میکند. از این به بعد تمام کارهای مدیریتی را با این کاربر انجام میدهید.
قدم ۳: کلید SSH بهجای رمز
رمز عبور را میشود حدس زد؛ کلید SSH را نه. روی کامپیوتر خودتان با ssh-keygen یک جفت کلید بسازید و با ssh-copy-id کلید عمومی را به کاربر جدید روی سرور بفرستید. وقتی مطمئن شدید با کلید وارد میشوید، در فایل sshd_config مقدار PasswordAuthentication را روی no بگذارید و ورود root را با PermitRootLogin روی no ببندید. سپس سرویس ssh را ریستارت کنید. حتماً قبل از بستن، یک نشست دوم باز نگه دارید تا اگر اشتباهی شد بیرون نمانید.
قدم ۴: فایروال با ufw
ufw روی اوبونتو نصب است و فقط باید فعالش کنید. اول به ssh اجازه بدهید، وگرنه همان لحظه خودتان را قفل میکنید. بعد پورتهایی که واقعاً لازم دارید را باز کنید، مثلاً ۸۰ و ۴۴۳ برای وبسایت. در نهایت ufw را enable کنید. قاعده ساده است: همه چیز بسته، فقط آنچه لازم است باز.
قدم ۵: منطقه زمانی و ساعت
لاگها، کرونجابها و صورتحسابها همه به ساعت سرور تکیه دارند. با timedatectl منطقه زمانی را تنظیم کنید. اگر سرویسهایتان بین چند سرور پخش است، نگه داشتن همه روی UTC سادهترین راه برای جلوگیری از سردرگمی است. همگامسازی ساعت با سرویس systemd-timesyncd بهطور پیشفرض فعال است؛ با timedatectl status مطمئن شوید که NTP روشن است.
قدم ۶: ساخت swap
بسیاری از سرورهای ابری بهطور پیشفرض swap ندارند. اگر RAM کم است، وقتی حافظه پر شود سیستم برنامهها را میکشد و سرویس شما ناگهان میافتد. یک فایل swap متناسب با RAM بسازید (برای سرورهای کوچک معمولاً برابر یا نصف RAM)، با mkswap و swapon فعالش کنید و در fstab ثبتش کنید تا بعد از ریستارت بماند. مقدار swappiness را هم پایینتر بیاورید (مثلاً ۱۰) تا swap فقط در مواقع لازم استفاده شود. swap جایگزین RAM نیست؛ فقط ضربهگیر است.
قدم ۷: fail2ban
هر سروری با پورت ۲۲ باز، ظرف چند دقیقه شروع به دریافت تلاشهای ورود ناموفق میکند. fail2ban لاگها را میخواند و آیپیهایی که چند بار رمز اشتباه میزنند را موقتاً در فایروال مسدود میکند. با apt نصبش کنید، یک فایل jail.local بسازید که sshd را فعال کند و با systemctl سرویس را روشن کنید. بعد از کلید SSH این لایه اضافه کمک میکند لاگها شلوغ نشود.
قدم ۸: بهروزرسانی امنیتی خودکار
برای وصلههای امنیتی لازم نیست هر روز دستی وارد شوید. بسته unattended-upgrades را نصب کنید و با dpkg-reconfigure فعالش کنید تا بهروزرسانیهای امنیتی خودکار نصب شوند. اگر میخواهید سرور در صورت لزوم خودش ریستارت شود، گزینه ریستارت خودکار را در فایل پیکربندی با زمان مشخص (مثلاً صبح زود) تنظیم کنید. برای سرورهای حساس، ریستارت خودکار را خاموش بگذارید و خودتان تصمیم بگیرید.
قدم ۹: اسنپشات و بکآپ
هیچ تنظیمی جای بکآپ را نمیگیرد. قبل از اینکه چیزی روی سرور نصب کنید، یک اسنپشات از حالت تمیز بگیرید؛ اگر بعداً چیزی خراب شد، برگشتن ثانیههاست. اسنپشات برای نقطههای بازگشت سریع خوب است، اما برای دادههای مهم یک بکآپ جدا و بیرون از سرور هم داشته باشید: دامپ پایگاه داده، فایلهای برنامه و تنظیمات. با rsync، restic یا borg میتوانید این کار را زمانبندی کنید. یک بکآپی که هیچوقت بازگردانیاش را آزمایش نکردهاید، هنوز بکآپ نیست.
قدم ۱۰: مانیتورینگ ساده
لازم نیست از روز اول یک سامانه مانیتورینگ سنگین داشته باشید، اما باید بدانید سرور زنده است. حداقل اینها را داشته باشید:
- ابزارهایی مثل htop و df و free را برای نگاه سریع به CPU، دیسک و RAM بلد باشید.
- یک سرویس بیرونی که هر چند دقیقه سایت یا پورتتان را چک کند و خرابی را به شما خبر بدهد.
- با journalctl لاگ سرویسها را بخوانید و فضای دیسکی لاگها را زیر نظر داشته باشید.
- برای ترافیک و پهنای باند، مقاله پهنای باند و ترافیک توضیح میدهد چه چیزی را باید بشمارید.
چند نکته پایانی
بعد از هر تغییر مهم در SSH یا فایروال، قبل از بستن نشست فعلی، یک نشست جدید باز کنید و مطمئن شوید هنوز وارد میشوید. تنظیمات مهم را در یک یادداشت یا مخزن خصوصی ثبت کنید تا اگر لازم شد سرور دیگری را با همین مراحل بسازید، از صفر شروع نکنید. و قبل از نصب برنامههای تازه، اسنپشات دیگری بگیرید؛ برگشتن از یک اسنپشات تازه خیلی ارزانتر از ساختن دوبارهی همه چیز است.
بعد از ده قدم چه؟
حالا سرور شما مرتب، امنتر و آماده است. بسته به پروژه، قدم بعدی میتواند نصب Docker باشد (که در Docker روی VPS توضیح دادهایم)، راهاندازی وبسرور یا یک ربات. اگر هنوز مطمئن نیستید چه سروری برای چه پروژهای مناسب است، انتخاب VPS برای سایت، ربات و VPN کمک میکند. اگر با مفهوم کلی سرور آشنا نیستید، VPS چیست را ببینید.
پرسشهای پرتکرار
اولین کاری که باید روی سرور اوبونتو انجام داد چیست؟
بهروزرسانی بستهها و بعد ساخت یک کاربر غیر root با دسترسی sudo. این دو قدم پایهاند و باقی کارها، مثل کلید SSH و فایروال، روی آنها سوار میشوند.
آیا بستن ورود root با SSH لازم است؟
قویاً توصیه میشود. نام root همه جا یکسان است و حملهها به آن متمرکز میشود. وقتی کاربر sudo و کلید SSH دارید، دلیلی برای ورود مستقیم root نیست.
به swap نیاز دارم؟
اگر RAM کم است یا مصرف حافظهتان ناگهان بالا میرود، بله. swap مانع میشود سیستم در لحظهی کمبود حافظه برنامهها را بکشد. البته جایگزین RAM نیست و اگر مدام از آن استفاده میشود، باید پلن را ارتقا بدهید.
آیا به fail2ban نیاز هست وقتی با کلید SSH وارد میشوم؟
ضروری نیست، چون ورود با رمز غیرفعال است و حملهها به جایی نمیرسند. اما fail2ban لاگ را تمیز نگه میدارد و بار را کم میکند، پس لایه ارزانی است.
اسنپشات و بکآپ چه فرقی دارند؟
اسنپشات تصویر کل سرور در یک لحظه است و برای برگشت سریع عالی است. بکآپ معمولاً فایلها و دادهها را جدا از سرور نگه میدارد و اگر خود سرور از بین برود، نجاتتان میدهد. بهتر است هر دو را داشته باشید.
این مراحل روی نسخههای دیگر اوبونتو هم کار میکند؟
بیشتر آنها بله، چون ابزارها مثل ufw و apt در نسخههای LTS مشابهاند. فقط جزئیاتی مثل نام سرویسها یا مسیر فایلها ممکن است کمی فرق کند.
سرور اوبونتو در کلوداسنپ
در کلوداسنپ اوبونتو و دیگر ایمیجهای لینوکس در همه لوکیشنها موجود است، با دسترسی root و امکان مدیریت از ربات تلگرام یا پنل وب. پرداخت ساعتی در بیشتر سرورهای خارجی اجازه میدهد قبل از جدی گرفتن یک پروژه، همین ده قدم را روی یک سرور آزمایشی تمرین کنید و بعد حذفش کنید. اسنپشات، کنسول و پشتیبانی ۲۴ ساعته در تلگرام هم کنارتان است. از صفحه سرور مجازی لینوکس شروع کنید.
