قدیمها که از ویندوز استفاده میکردم بعد از نصب ویندوز جدید یکسری کارهای اولیه و برنامههای کاربردی رو باید نصب میکردم و اینکار رو هر ماه یکبار باید انجام میدادم. البته لینوکس بعد از یکی دو ماه نیاز به نصب مجدد نداره و سالها مثل ساعت کار میکنه ولی هر از گاهی وقتی که یک وی پی اس یا سرور جدید میگرم نیاز هست یکسری مراحل رو تکرار کنم. ممکنه یک روش خودکار و سریعتر برای اینکارها وجود داشته باشه ولی برای فعلا توی این نوشته مراحل رو مینویسم.
دستورات زیر در Ubuntu 16.04 اجرا شده.
اگه از نسخه و مشخصات لینوکس نصب شده مطمئن نیستین برای اطلاع از نسخه لینوکس از یکی از دستورهای زیر میتونیم استفاده کنیم.
cat /etc/*-release lsb_release -a cat /proc/version
/etc/apt/sources.list : ریپازیتوریها توی این مسیر قرار دارن
دستور دوم نسخههای جدیدی که پیدا شدن رو دانلود و نصب میکنه.
sudo apt-get update sudo apt-get upgrade
حالا یه یوزر جدید میسازم که با یوزر root وارد نشم و با یوزر خودم وارد بقیه کارها رو انجام میدم. البته این یوزر رو هم به گروه rootها اضافه میکنم تا تغییرات اساسی روی سیستم بتونم بدم.
sudo adduser pharzan
یوزر جدید رو به گروه sudoها اضافه میکنم. برای اینکار ویرایش فایل etc/sudoers/ توصیه نمیشه و بجاش با visudo
انجام میدم. و یا دستور زیر رو اعمال میکنیم.
usermod -aG sudo pharzan
همین کار رو با visudo هم میشه انجام داد و یا بهتر یک گروهی ایجاد کرد که اعضای این گروه به همه چیز دسترسی داشته باشن و با دستور بالا یوزرمون رو به گروه جدید اضافه کنیم.
بعد از اجرای visudo سطر زیر رو با حذف # به حالت اجرایی در میاریم و اگر هم وجود نداشت بدون # اضافه میکنیم.
# %wheel ALL=(ALL) ALL
حالا با یوزر جدیدمون به سیستم لاگاین میشیم.
ssh pharzan@SERVER_IP
گام بعد نصب یه شل اینترفیس بهتره که بنظرم ZSH و Oh my ZSH بهترین و معمولترین گزینه باشن. میشه روش plugin هم نصب کرد که باعث میشه بسیار کاربردی تر و دینامیک بشه. اول دو تا پکیج لازم برای oh my zsh رو نصب میکنیم.
sudo apt install git-core zsh
و بعد از مخزن Robby Russell، شل رو نصب میکنیم.
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
برای اینکه یکم تنظیمات دستکاری کنیم و تم رو عوض کنیم از دستور زیر فایل تنظیمات رو باز میکنیم.
تمام تمها اینجا موجود هستن.
nano ~/.zshrc
برای تغییر تم شل لینوکسمون ZSH_THEME از فایل تنظیمات پیدا میکنیم و تغییرش میدیم. من از robbyrussell به honukai تغییر میدم. ولی قبل از اینکار اول این تم رو زیر پوشه cd ~/.oh-my-zsh/themes با wget دانلود میکنم.
cd ~/.oh-my-zsh/themes wget https://raw.githubusercontent.com/oskarkrawczyk/honukai-iterm-zsh/master/honukai.zsh-theme -------------------------------------------------------------------------------------------------- nano ~/.zshrc : سطر زیر توی فایل کانفیگ قرار میدم ZSH_THEME="honukai"
حالا وقتشه zsh رو بعنوان شل اصلی تعریف کنیم تا همیشه بعد از لاگاین با همین شل روبرو بشم، فقط با این دستور مراقب باشین چون اگه مشکلی پیش بیاد توی لاگاین بعدی باعث خرابکاری میشه. برای بدست آوردن مسیر از which استفاده میکنم و قبلش با اجرای zsh مطمئن میشم که درست کار میکنه. البته بد نیست pluginها رو هم نصب کنیم و بعدش اینکار رو انجام بدیم.
chsh -s $(which zsh)
حالا نوبت pluginهاست که همشون اینجا موجود هستن. افضونه زیر دستورات رو رنگی میکنه. برای اینکار به پوشه cd ~/.oh-my-zsh/custom/plugins میریم و با Git پوشه افضونه رو کپی میکنیم.
cd ~/.oh-my-zsh/custom/plugins git clone https://github.com/zsh-users/zsh-syntax-highlighting
و حالا فایل تنظیمات oh my zsh رو ویرایش میکنیم و افضونه رو به لیست افضونههای موجود اضافه میکنیم.
nano ~/.zshrc
نام و یکسری مشخصات اونو میشه با دستور hostnamectl دید و یا با دستور hostname -s اسم سیستم رو ببینیم. اگر خواستیم اسمش رو عوض کنیم میتونیم با دستور زیر عوضش کنیم.
sudo hostnamectl set-hostname pharzan-VPS-005
اگه بعد از اینکار گاها با پیام sudo: unable to resolve host rain مواجه شدین میتونین فایل hosts رو ویرایش کنین و سطر زیر رو بهش اضافه کنین.
nano /etc/hosts
127.0.1.1 pharzan-VPS-005
به احتمال زیاد منطقه زمان (Time Zone) درست تنظیم نشده و میتونین برای مطمئن شدن با دستور timedatectl
چک کرد. در صورت نیاز میشه به شکل زیر تغییرش داد.
sudo timedatectl set-timezone Asia/Tehran
اگر قبلا با ip tables کار کرده باشید با پیچیدگیش آشنا هستین ولی خوشبختانه ufw یک رابط راحتتر برای دیوار آتش ip tables هست. با sudo ufw status وضعیت فایروال رو میشه دید ولی قبل از فعال سازی، ssh رو بهش اضافه کنیم که ارتباطمون قطع نشه و باعث خرابکاری هم نشه و بعدا دوباره بتونیم وارد سیستم بشیم.
sudo ufw allow OpenSSH sudo ufw allow ssh sudo ufw app list Available applications: OpenSSH ssh
حالا که مطمئن شدیم که دفعه بعد هم اجازه ورود داریم میتونیم فعالش کنیم.
sudo ufw enable
پورتهای http و https رو هم باز میکنیم. هم میشه عدد پورت رو وارد کرد و هم میشه پروتکل پورت رو.
sudo ufw allow http sudo ufw allow 80 #Same as above sudo ufw allow https sudo ufw allow 443 #Same as above
و یا هر دو رو یکجا با دستور زیر میشه اعمال کرد.
sudo ufw allow proto tcp from any to any port 80,443
شاید هفتهها و ماهها به سروری که در حال کار کردن هست لاگاین نکینیم و آپدیتهای امنیتی جدید و مهمی وجود داشته باشه که غافل بمونیم. میتونیم بروزرسانی اتوماتیک رو فعال کنیم و کمی خیالمون راحت باشه. برای اینکار اول unattended-upgrades رو نصب میکنم.
apt-get install unattended-upgrades nano /etc/apt/apt.conf.d/10periodic
و فایل etc/apt/apt.conf.d/10periodic ویرایش میکنم و بصورت زیر مینویسم.
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "7"; APT::Periodic::Unattended-Upgrade "1";
فایل /etc/apt/apt.conf.d/50unattended-upgrades رو هم باید ویرایش کنیم.
nano /etc/apt/apt.conf.d/50unattended-upgrades
و سطر بصورت زیر در بیاوریم.
Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}-security"; این سطر میمونه // "${distro_id}:${distro_codename}"; این سطر رو غیر فعال میکنیم };
لاگواچ یک سرویس یا دیمون خیلی بدرد بخوریه که میتونه خلاصهایی از لاگهای سرور رو براتون بصورت روزانه یا هرطور که بخواین ایمیل بزنه. به احتمال زیاد ایمیلها به پوشه اسپم میره چونکه mail serverتون بصورت استاندارد پیکربندی نشده.
اول نصبش میکنیم
sudo apt-get install logwatch
حالا فایلی که مسئول ارسال ایمیل هست رو ویرایش میکنیم
nano /etc/cron.daily/00logwatch
و خط زیر رو یا اضافه میکنیم و یا اگر وجود داشت ایمیلمون رو بصورت درست وارد میکنیم.
/usr/sbin/logwatch --output mail --mailto test@gmail.com --detail high
البته فایل تنظیمات اصلی رو هم از مسیر زیر میتونین پیدا کنین و مقادیر توی عکس رو عوض کنین
nano /usr/share/logwatch/default.conf/logwatch.conf
اگه پیشنهادی برای کامل تر شدن و یا بهبود این مطلب دارین لطفا از طریق توییتر pharzan@ یا ایمیل pharzan@outlook.com به من اطلاع بدین.