چند تا کار لازم و ضروری که بعد از خرید VPS باید انجام بدیم

وقتی یه سرور میخریم یه یوزر Root بهمون میدن با یه Password که خب اصلا امن نیست و توصیه همه اینه که در اولین فرصت یه سری کارای امنیتی انجام بدیم براش. حالا یه سری کارای ساده رو لیست می‌کنم که به ترتیب باهم انجام بدیم و تا حدود قابل قبولی سرورمون رو امن کنیم.اضافه کردن یک یوزر جدیدفعال‌سازی Login فقط از طریق SSHغیرفعال کردن Login توسط یوزر Rootغیرفعال کردن Login با پسورد‌من مثال این مقاله رو با Centos 7 پیش می‌برم. بعضی از دستورها روی نسخه‌های مختلف لینوکس متفاوت هست که با گوگل کردن راحت بدستش میاریدیه نکته‌ای رو همین ابتدای کار متذکر شدم. لطفا هیچ کدوم از ترمینال‌هاتون رو تا انتها این مقاله نبندید تا از اتصال درست به سرورتون مطمئن بشید.خب توی قدم اول ما میایم یه یوزر توی سرور برای خودمون درست می‌کنیم که با اون Login کنیم و هر کاری که روی سرور داریم رو با یوزر خودمون انجام بدیم بجای یوزر Root. برای این کار از دستور زیر استفاده میکنیم: adduser aliبرای اینکه یه پسورد هم براش بزاریم ازین دستور استفاده می‌کنیم:passwd aliحالا با استفاده از دستور زیر یوزر جدیدمون رو توی wheel group قرار میدیم که بتونه از sudo استفاده کنه و به اصطلاح sudoer یا sudoable می‌کنیم یوزرمون رو:usermod -aG wheel aliخب بسیار عالی. الان اگه بخواید switch شید بین یوزرها و برید روی یوزر خودتون کار کنید از دستور زیر باید استفاده کنید:su aliخب حالا می‌خوایم SSH سیستم خودمون رو اضافه کنیم به یوزر ali روی سرور که از سیستم خودمون با SSH لاگین شیم روی یوزر ali روی سرور. توی یوزر ali روی سرور این دستور و می‌زنیم که directory عه SSH رو درست کنه برامون:mkdir ~/.sshبعدش Permission لازم رو میدیم به directory عه SSH:chmod 700 ~/.sshبعد یه فایل authorized_keys درست می‌کنیم توی directory عه SSH:vi ~/.ssh/authorized_keysیکم vim هم کار کنیم باهم اینجا. اول i رو بزنید که برید توی حالت insert mode. بعد public key عه سیستم خودتون (ssh/id_rsa.pub./~) رو کپی کنید توی همین vim. بعد ESC رو بزنید که خارج بشید از حالت insert mode و بعد wq: رو بزنید و فایل و save کنید و بیاید بیرون. واسه اینکه مطمئن شید درست کار کردید یبار cat کنید فایلتون رو ببینید درست کپی کردید یا نه:cat ~/.ssh/authorized_keysحالا Permission لازم رو میدیم به فایلمونchmod 600 ~/.ssh/authorized_keysحالا میرسیم به قسمت جذاب ماجرا و اونم modify کردن سرویس SSH سرورمونه. این فایل رو با vim باز کنید لطفا تا بریم دونه دونه موارد لازم رو ویرایش کنیم:sudo vi /etc/ssh/sshd_configخب حالا دنبال این خط ها بگردید و طبق دستورهای زیر تغییرشون بدید تا خط به خط باهم ببینیم هر کدوم برای چیه:Port 8899 PermitRootLogin no PubkeyAuthentication yes PasswordAuthentication no AllowUsers ali x y zاولین مورد که مشخصه پورت SSH رو عوض میکنیم که روی حالت پیش فرض نباشه و تا حدودی Secure بشهدومین مورد میگه با یوزر ًRoot دیگه کسی نتونه لاگین شهسومین مورد میگه میخوایم با SSH وصل شیم به سرور (در واقع با Public key ای که اضافه کردیم قراره بتونیم لاگین شیم)چهارمین مورد هم کاملا مشخصه و قراره جلوی لاگین با پسورد رو بگیریمآخرین مورد هم میگه فقط این یوزرها می‌تونن وصل شن به سرورخب بعد از اینکه این موارد رو تغییر دادید یک بار نیاز هست که سرویس SSH رو ریست کنیم تا تغییرات اعمال شه:sudo systemctl restart sshd.serviceخب حالا بریم سراغ نصب iptables که در واقع Connection هایی که به سرورمون الکی زده میشه رو جلوشو میگیره و طبق rule ای که براش تنظیم خواهیم کرد فقط به اونا جواب میده و بقیه رو Drop میکنه اصطلاحا. اولین کار نصبش روی سرورمون هستش:sudo yum install iptables-servicesحالا یه فایل توی home درست می‌کنیم که rule های iptables رو توش قرار بدیم:vi ~/iptables.rulesو این دستورات رو قرار بدید داخلش:*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 8899 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -m limit --limit 5/min -j LOG --log-prefix &quotiptables denied: &quot --log-level 7 -A INPUT -j REJECT --reject-with icmp-port-unreachable -A FORWARD -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -j ACCEPT COMMITیه نگاهی به فایل بندازید متوجه میشید که سه تا پورت 8899 که برای SSH تغییر دادیم و پورت‌های 80 و 443 برای وب رو باز کردیم و بقیه رو drop کردیم. (من دیگه خط به خط این فایل رو توضیح نمیدم چون مقاله خییییلی طولانی خواهد شد. اگه جالب بود براتون که بدونید بقیه موارد چی کار میکنه یه گوگل ساده به جواب می‌رسونه شمارو).حالا این تغییرات رو با استفاده از دستور زیر اعمال می‌کنیم روی سرویس iptables و save می‌کنیم:sudo iptables-restore < ~/iptables.rules sudo service iptables saveبرای اینکه متوجه شید سرویس iptables در حال اجرا هست هم از دستور زیر استفاده کنید:sudo service iptables statusمحض اطمینان این دستور زیر رو هم بزنید برای اینکه مطمئن بشیم سرویس iptables همیشه فعال خواهد بود روی سرورمون:sudo service iptables enableحالا برای اینکه ببینید rule های iptables درست روی این سرویس اعمال شده با این دستور چک کنید:sudo iptables -Sاگه همه چی درست تنظیم شده باشه محتوایت فایل iptables.rules مون رو باید ببیند.خب دیگه کارمون تموم شده روی سرور. الان روی سیستم خودمون یه سری کارای ریز قراره انجام بدیم که اتصالمون به سرورمون رو راحت تر کنه. برای اینکار لطفا برید توی directory عه ssh. سیستم خودتون و یه فایل config درست کنید و اینارو توش قرار بدیدHost * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa Host myserver HostName YOUR_SERVER_IP_ADDRESS Port 8899 User aliحالا فقط کافیه توی یه ترمینال جدید بزنید:ssh myserverو خیلی راحت به سرورتون وصل می‌شید.در آخر شمارو دعوت می‌کنم به خوندن این مقاله از مقالات معروف سایت Digitalocianخیلی ممنونم که تا انتهای این مقاله رو مطالعه کردید. امیدوارم مواردی که گفته شد براتون مفید بوده باشه. میخوام یه تشکر از دوست و همکار بسیار محترمم سعید طاهری بکنم که سخاوتمندانه دانشش رو در اختیارم قرار داد که نتیجش شد این مقاله. خوشحال میشم اگه هرجای مقاله رو خدایی نکرده نامفهوم توضیح دادم بهم بگید که اصلاح کنم.