
، CC BY-SA
اڄڪلهه، هڪ هوسٽنگ تي سرور کي وڌائڻ چند منٽن ۽ چند ماؤس ڪلڪن جو معاملو آهي. پر لانچ کان پوءِ فوري طور تي، هو پاڻ کي دشمني واري ماحول ۾ ڳولي ٿو، ڇاڪاڻ ته هو سڄي انٽرنيٽ لاءِ کليل آهي جيئن هڪ معصوم ڇوڪري هڪ راڪر ڊسڪو ۾. اسڪينر جلدي ان کي ڳوليندا ۽ هزارين خودڪار اسڪرپٽ ٿيل بوٽن کي ڳوليندا جيڪي نيٽ ورڪ کي خرابين ۽ غلط ترتيبن کي ڳولي رهيا آهن. اتي ڪجھ شيون آھن جيڪي توھان کي ڪرڻ گھرجي لانچ کان پوءِ بنيادي تحفظ کي يقيني بڻائڻ لاءِ.
Contents
غير روٽ استعمال ڪندڙ
پهريون قدم پنهنجو پاڻ لاءِ هڪ غير روٽ استعمال ڪندڙ ٺاهڻ آهي. نقطي اهو آهي ته صارف root سسٽم ۾ مطلق استحقاق، ۽ جيڪڏهن توهان هن کي ريموٽ انتظاميه جي اجازت ڏيو ٿا، ته پوء توهان هيڪر لاء اڌ ڪم ڪندا، هن لاء صحيح صارف نالو ڇڏيندي.
تنهن ڪري، توهان کي هڪ ٻيو صارف ٺاهڻ جي ضرورت آهي، ۽ روٽ لاء SSH ذريعي ريموٽ انتظاميه کي بند ڪرڻ جي ضرورت آهي.
ھڪڙو نئون استعمال ڪندڙ حڪم سان شروع ڪيو ويو آھي useradd:
useradd [options] <username> پوءِ ان لاءِ پاس ورڊ شامل ڪيو ويو آھي حڪم سان passwd:
passwd <username> آخرڪار، ھن صارف کي ھڪڙي گروپ ۾ شامل ڪرڻ جي ضرورت آھي جنھن کي اعلي حڪمن تي عمل ڪرڻ جو حق آھي sudo. لينڪس جي ورڇ تي مدار رکندي، اهي ٿي سگهن ٿا مختلف گروپ. مثال طور، CentOS ۽ Red Hat ۾، صارف کي گروپ ۾ شامل ڪيو ويو آھي wheel:
usermod -aG wheel <username> Ubuntu ۾ اهو گروپ ۾ شامل ڪيو ويو آهي sudo:
usermod -aG sudo <username>
ڪي SSH پاسورڊ جي بدران
Brute Force يا پاسورڊ ليڪس هڪ معياري حملي وارو ویکٹر آهي، تنهنڪري اهو بهتر آهي ته SSH (Secure Shell) ۾ پاسورڊ جي تصديق کي غير فعال ڪيو وڃي ۽ ان جي بدران اهم تصديق استعمال ڪريو.
SSH پروٽوڪول کي لاڳو ڪرڻ لاء مختلف پروگرام آهن، جهڙوڪ и ، پر سڀ کان وڌيڪ مشهور آهي OpenSSH. Ubuntu تي OpenSSH ڪلائنٽ کي انسٽال ڪرڻ:
sudo apt install openssh-clientسرور تنصيب:
sudo apt install openssh-serverUbuntu سرور تي SSH ڊيمون (sshd) شروع ڪندي:
sudo systemctl start sshdخودڪار طور تي هر بوٽ تي ڊيمون شروع ڪريو:
sudo systemctl enable sshd اهو ياد رکڻ گهرجي ته OpenSSH جو سرور حصو ڪلائنٽ حصو شامل آهي. اهو آهي، ذريعي openssh-server توهان ٻين سرورن سان ڳنڍي سگهو ٿا. ان کان علاوه، توهان جي ڪلائنٽ مشين مان، توهان شروع ڪري سگهو ٿا هڪ SSH سرنگ هڪ ريموٽ سرور کان ٽئين پارٽي جي ميزبان ڏانهن، ۽ پوء ٽئين پارٽي ميزبان ريموٽ سرور کي درخواستن جو ذريعو سمجهي سگهندو. توهان جي سسٽم کي ماسڪ ڪرڻ لاءِ هڪ تمام آسان خصوصيت. تفصيل لاءِ مضمون ڏسو .
هڪ ڪلائنٽ مشين تي، اهو عام طور تي مڪمل سرور کي نصب ڪرڻ جو ڪو احساس ناهي ته ڪمپيوٽر سان ريموٽ ڪنيڪشن جي امڪان کي روڪڻ لاء (سيڪيورٽي سببن لاء).
تنهن ڪري، توهان جي نئين استعمال ڪندڙ لاء، توهان کي پهريان ڪمپيوٽر تي SSH ڪيز ٺاهڻ جي ضرورت آهي جنهن مان توهان سرور تائين رسائي ڪندا:
ssh-keygen -t rsa عوامي چيڪ فائل ۾ محفوظ ٿيل آهي .pub ۽ بي ترتيب اکرن جي تار وانگر لڳي ٿو جيڪو شروع ٿئي ٿو ssh-rsa.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname
ان کان پوء، روٽ جي هيٺان، صارف جي گهر ڊاريڪٽري ۾ سرور تي هڪ SSH ڊاريڪٽري ٺاهي ۽ فائل ۾ SSH پبلڪ ڪي شامل ڪريو authorized_keys، هڪ ٽيڪسٽ ايڊيٽر استعمال ڪندي جهڙوڪ Vim:
mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keysvim /home/user_name/.ssh/authorized_keysآخرڪار، فائل لاء صحيح اجازتون مقرر ڪريو:
chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys۽ هن صارف جي ملڪيت تبديل ڪريو:
chown -R username:username /home/username/.sshڪلائنٽ جي پاسي تي، توهان کي تصديق ڪرڻ لاء رازداري چيڪ جو مقام بيان ڪرڻ جي ضرورت آهي:
ssh-add DIR_PATH/keylocationھاڻي توھان سرور ۾ لاگ ان ڪري سگھوٿا يوزرنيم جي ھيٺان ھي ڪيئي استعمال ڪندي:
ssh [username]@hostnameاختيار ڪرڻ کان پوء، توهان فائلن کي نقل ڪرڻ لاء scp حڪم استعمال ڪري سگهو ٿا، يوٽيليٽ فائل سسٽم يا ڊائريڪٽري کي دور دراز طور تي نصب ڪرڻ لاء.
اهو مشورو ڏنو ويو آهي ته پرائيويٽ ڪنجي جون ڪيتريون ئي بيڪ اپ ڪاپيون ٺاهيون، ڇو ته جيڪڏهن توهان پاسورڊ جي تصديق کي بند ڪيو ۽ ان کي وڃائي ڇڏيو، ته پوءِ توهان وٽ پنهنجي سرور ۾ لاگ ان ٿيڻ جو ڪو به طريقو نه هوندو.
جيئن مٿي ڄاڻايل آهي، SSH ۾ توهان کي روٽ جي تصديق کي بند ڪرڻ جي ضرورت آهي (اهو ئي سبب آهي ته اسان هڪ نئون استعمال ڪندڙ شروع ڪيو).
CentOS / Red Hat تي اسان لائن ڳوليندا آهيون PermitRootLogin yes config فائل ۾ /etc/ssh/sshd_config ۽ ان کي تبديل ڪريو:
PermitRootLogin no Ubuntu تي لائن شامل ڪريو PermitRootLogin no config فائل ڏانهن 10-my-sshd-settings.conf:
sudo echo "PermitRootLogin no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.confتصديق ڪرڻ کان پوءِ ته نئون استعمال ڪندڙ ان جي چاٻي سان تصديق ڪري رهيو آهي، توهان پاسورڊ جي تصديق کي غير فعال ڪري سگهو ٿا ته جيئن پاسورڊ ليڪيج يا برٽ فورس جي خطري کي ختم ڪري سگهجي. هاڻي، سرور تائين رسائي حاصل ڪرڻ لاء، هڪ حملي ڪندڙ کي هڪ خانگي چيڪ حاصل ڪرڻ جي ضرورت پوندي.
CentOS / Red Hat تي اسان لائن ڳوليندا آهيون PasswordAuthentication yes config فائل ۾ /etc/ssh/sshd_config ۽ ان کي هن طرح تبديل ڪريو:
PasswordAuthentication no Ubuntu تي لائن شامل ڪريو PasswordAuthentication no فائل ڪرڻ 10-my-sshd-settings.conf:
sudo echo "PasswordAuthentication no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.confSSH ذريعي ٻه عنصر جي تصديق کي فعال ڪرڻ جي هدايتن لاء، ڏسو .
فائر وال
فائر وال انهي ڳالهه کي يقيني بڻائي ٿو ته بندرگاهن تي صرف ٽرئفڪ جيڪي توهان سڌو اجازت ڏين ٿا سرور ڏانهن ويندا. هي بندرگاهن جي استحصال جي خلاف حفاظت ڪري ٿو جيڪي حادثاتي طور تي ٻين خدمتن سان فعال ڪيا ويا آهن، جيڪي حملي جي سطح کي تمام گهڻو گھٽائي ٿو.
فائر وال انسٽال ڪرڻ کان پهريان، توهان کي پڪ ڪرڻ جي ضرورت آهي ته SSH خارج ٿيل فهرست ۾ شامل آهي ۽ بلاڪ نه ڪيو ويندو. ٻي صورت ۾، فائر وال کي شروع ڪرڻ کان پوء، اسان سرور سان ڳنڍڻ جي قابل نه هوندا.
Ubuntu جي تقسيم غير پيچيده فائر وال سان اچي ٿي ()، ۽ CentOS/Red Hat سان - .
Ubuntu تي فائر وال ۾ SSH کي اجازت ڏيڻ:
sudo ufw allow ssh CentOS / Red Hat تي حڪم استعمال ڪريو firewall-cmd:
sudo firewall-cmd --zone=public --add-service=ssh --permanentهن عمل کان پوء، توهان فائر وال شروع ڪري سگهو ٿا.
CentOS / Red Hat تي، فائر والڊ لاء سسٽم ڊي سروس شروع ڪريو:
sudo systemctl start firewalld
sudo systemctl enable firewalldUbuntu تي اسان هيٺ ڏنل حڪم استعمال ڪندا آهيون:
sudo ufw enable
في ميل 2
خدمت سرور تي لاگن جو تجزيو ڪري ٿو ۽ هر IP پتي کان رسائي جي ڪوششن جو تعداد شمار ڪري ٿو. سيٽنگون قاعدن جي وضاحت ڪن ٿيون ته هڪ خاص وقفي لاءِ ڪيترين ئي ڪوششن جي رسائي جي اجازت ڏني وئي آهي - جنهن کان پوءِ هن IP پتي کي مخصوص وقت لاءِ بلاڪ ڪيو وڃي ٿو. مثال طور، اچو ته 5 ڪلاڪن اندر 2 ناڪام SSH تصديق جي ڪوششن جي اجازت ڏيو، پوءِ ڏنل IP پتي کي 12 ڪلاڪن لاءِ بلاڪ ڪريو.
CentOS ۽ Red Hat تي Fail2Ban انسٽال ڪرڻ:
sudo yum install fail2banUbuntu ۽ Debian تي تنصيب:
sudo apt install fail2banلانچ:
systemctl start fail2ban
systemctl enable fail2ban پروگرام ۾ ٻه ترتيب واري فائلون آهن: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. ٻي فائل ۾ پابنديون بيان ڪيون ويون آهن.
SSH لاءِ جيل ڊفالٽ سيٽنگن سان ڊفالٽ سان فعال ٿيل آھي (5 ڪوششون، وقفو 10 منٽ، پابندي 10 منٽ).
[DEFAULT] ignorecommand=bantime=10m findtime=10m maxretry=5
SSH کان علاوه، Fail2Ban nginx يا Apache ويب سرور تي ٻين خدمتن جي حفاظت ڪري سگھي ٿو.
خودڪار سيڪيورٽي اپڊيٽ
جئين توهان کي خبر آهي، نئين خطرات مسلسل سڀني پروگرامن ۾ مليا آهن. معلومات شايع ٿيڻ کان پوء، استحصال مشهور استحصال پيڪ ۾ شامل ڪيا ويا آهن، جيڪي وڏي تعداد ۾ هيڪرز ۽ نوجوانن پاران استعمال ڪيا ويا آهن جڏهن هڪ قطار ۾ سڀني سرورن کي اسڪين ڪري رهيا آهن. تنهن ڪري، سيڪيورٽي اپڊيٽ کي انسٽال ڪرڻ تمام ضروري آهي جيئن ئي اهي ظاهر ٿين.
Ubuntu سرور تي، خودڪار سيڪيورٽي تازه ڪاريون ڊفالٽ طور تي فعال آهن، تنهنڪري وڌيڪ عمل جي ضرورت ناهي.
CentOS / Red Hat تي توهان کي ايپليڪيشن کي انسٽال ڪرڻ جي ضرورت آهي ۽ ٽائمر کي چالو ڪريو:
sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timerٽائيم چيڪ:
sudo systemctl status dnf-automatic.timer
ڊفالٽ بندرگاهن کي تبديل ڪرڻ
SSH 1995 ۾ ٽيلنٽ (پورٽ 23) ۽ ايف ٽي پي (پورٽ 21) کي تبديل ڪرڻ لاءِ ترقي ڪئي وئي، تنهن ڪري پروگرام جو ليکڪ، ٽاتو ايلٽنين ، ۽ IANA پاران منظور ڪيو ويو آهي.
قدرتي طور تي، سڀني حملي ڪندڙن کي خبر آهي ته ڪهڙي بندرگاهه SSH تي هلندڙ آهي - ۽ ان کي اسڪين ڪريو باقي معياري بندرگاهن سان گڏ سافٽ ويئر ورزن کي ڳولڻ لاء، معياري روٽ پاسورڊ چيڪ ڪرڻ لاء، وغيره.
معياري بندرگاهن کي تبديل ڪرڻ - ڇڪڻ - ڪيترائي ڀيرا گندگي جي ٽرئفڪ جي مقدار کي گھٽائي ٿو، لاگز جي سائيز ۽ سرور تي لوڊ، ۽ حملي جي سطح کي پڻ گھٽائي ٿو. جيتوڻيڪ ڪجھ (سيڪيورٽي ذريعي غير محفوظ). ان جو سبب اهو آهي ته هي ٽيڪنڪ بنيادي جي خلاف آهي . تنهن ڪري، مثال طور، يو ايس نيشنل انسٽيٽيوٽ آف معيار ۽ ٽيڪنالاجي ۾ هڪ کليل سرور آرڪيٽيڪچر جي ضرورت کي ظاهر ڪري ٿو: "هڪ سسٽم جي سيڪيورٽي کي ان جي اجزاء جي عمل جي رازداري تي ڀروسو نه ڪرڻ گهرجي،" دستاويز چوي ٿو.
نظرياتي طور تي، ڊفالٽ بندرگاهن کي تبديل ڪرڻ کليل فن تعمير جي عمل جي خلاف آهي. پر عملي طور تي، بدسلوڪي ٽرئفڪ جو مقدار اصل ۾ گھٽجي ويو آهي، تنهنڪري اهو هڪ سادي ۽ موثر انداز آهي.
پورٽ نمبر ترتيب ڏئي سگهجي ٿو هدايت کي تبديل ڪندي Port 22 config فائل ۾ . اهو پڻ پيٽرولر طرفان اشارو ڪيو ويو آهي -p <port> в . SSH ڪلائنٽ ۽ پروگرام اختيار جي حمايت پڻ -p <port>.
نيم -p <port> ڪمانڊ سان ڳنڍڻ دوران پورٽ نمبر بيان ڪرڻ لاءِ استعمال ٿي سگھي ٿو ssh لينڪس ۾. IN и scp parameter استعمال ڪيو ويندو آهي -P <port> (سرمائي P). ڪمانڊ لائن هدايتون ترتيب واري فائلن ۾ ڪنهن به قيمت کي ختم ڪري ٿو.
جيڪڏھن گھڻا سرور آھن، لينڪس سرور کي بچائڻ لاءِ لڳ ڀڳ سڀئي عمل پاڻمرادو اسڪرپٽ ۾ ٿي سگھن ٿا. پر جيڪڏهن صرف هڪ سرور آهي، پوء اهو بهتر آهي ته دستي طور تي عمل کي ڪنٽرول ڪرڻ.
اشتهارن جي حقن تي
آرڊر ۽ فوري طور تي شروع ڪريو! ڪنهن به ترتيب ۽ ڪنهن به آپريٽنگ سسٽم سان هڪ منٽ اندر. وڌ ۾ وڌ ترتيب ڏيڻ توهان کي مڪمل طور تي اچڻ جي اجازت ڏيندو - 128 سي پي يو ڪور، 512 GB ريم، 4000 GB NVMe. ايپيڪ 🙂
جو ذريعو: www.habr.com
