SSH کمانڈز سے لینکس سرور مینجمنٹ، ایک ویب ماسٹر کا دور دراز لینکس سرور سے محفوظ طریقے سے جڑ کر فائلوں، سروسز، صارفین، لاگز، سیکیورٹی اور کارکردگی کے آپریشنز کو ٹرمینل کے ذریعے منظم کرنا ہے۔ بنیادی ضروریات کے لیے ssh user@server-ip کمانڈ سے جڑیں؛ ls, cd, pwd, cp, mv, rm, nano, systemctl, journalctl, top, df, du, chmod, chown, tar, scp اور rsync جیسی کمانڈز سے ویب سائٹ لائیو کی جاتی ہے، غلطیاں چیک کی جاتی ہیں، سروسز دوبارہ شروع کی جاتی ہیں اور بیک اپس منظم کیے جاتے ہیں۔ یہ گائیڈ، خاص طور پر ہوسٹنگ، VPS یا ڈیڈیکیٹڈ سرور استعمال کرنے والے ویب ماسٹرز کی روزمرہ آپریشنز میں سب سے زیادہ درکار بنیادی کوڈز کو عملی مثالوں کے ساتھ واضح کرتی ہے۔
ایک ویب سائٹ کو صرف کنٹرول پینل سے منظم کرنا اکثر کافی ہوتا ہے لیکن جب ٹریفک بڑھے، خصوصی سافٹ ویئر درکار ہو، ایرر لاگز چیک کرنے ہوں یا فوری مداخلت کرنی ہو تو SSH جاننا بڑا فائدہ دیتا ہے۔ مثال کے طور پر جب آپ کی ورڈپریس سائٹ پر 500 ایرر آئے تو پینل کے کھلنے کا انتظار کرنے کی بجائے چند کمانڈز سے ڈسک فل ہونے، PHP-FPM کی حالت، Nginx یا Apache لاگز اور آخری تبدیل شدہ فائلوں کو منٹوں میں چیک کر سکتے ہیں۔ اس سے ڈاؤن ٹائم کم ہوتا ہے اور SEO پرفارمنس بھی محفوظ رہتی ہے۔ سرور انفراسٹرکچر منتخب کر رہے ہیں تو وی پی ایس سرور اور ویب ہوسٹنگ آپشنز کا موازنہ اپنی ضروریات کے مطابق کریں۔
SSH کیا ہے اور ویب ماسٹرز کے لیے اس کی اہمیت
SSH، Secure Shell کا مخفف ہے اور دور دراز سرور سے انکرپٹڈ کنکشن قائم کرنے کے لیے استعمال ہونے والا محفوظ پروٹوکول ہے۔ FTP صرف فائل ٹرانسفر کے لیے استعمال ہوتا ہے جبکہ SSH آپ کو سرور کا کمانڈ لائن دیتا ہے۔ اس سے آپ ویب روٹ ڈائریکٹری میں جا سکتے ہیں، اجازتیں درست کر سکتے ہیں، سروسز دوبارہ شروع کر سکتے ہیں، فائر وال چیک کر سکتے ہیں، ڈیٹابیس بیک اپ لے سکتے ہیں اور لاگ فائلیں لائیو مانیٹر کر سکتے ہیں۔
ویب ماسٹر کے لیے SSH کا علم تین بنیادی فوائد دیتا ہے۔ پہلا رفتار ہے؛ بڑی فائلوں کو پینل سے ڈاؤن لوڈ کرنے کی بجائے سرور کے اندر کمپریس کرنا سیکنڈوں یا منٹوں میں ہو جاتا ہے۔ دوسرا مرئیت ہے؛ لاگز، پروسیسر استعمال، RAM کھپت اور ڈسک کی صورتحال براہ راست نظر آتی ہے۔ تیسرا کنٹرول ہے؛ اجازت کی خرابی، سروس کرش یا غلط کنفیگریشن جیسے مسائل فوراً حل کیے جا سکتے ہیں۔ خاص طور پر VPS، کلاؤڈ سرور اور ڈیڈیکیٹڈ سرورز پر SSH تقریباً لازمی مہارت ہے۔
SSH کنکشن قائم کرنے سے پہلے جاننے والی باتیں
SSH کنکشن کے لیے عام طور پر تین معلومات درکار ہوتی ہیں: سرور IP ایڈریس یا ڈومین، صارف نام اور تصدیق کا طریقہ۔ ڈیفالٹ پورٹ زیادہ تر لینکس سسٹمز میں 22 ہوتا ہے؛ سیکیورٹی کے لیے مختلف پورٹ استعمال کیا جا سکتا ہے۔ کنکشن کمانڈ سب سے آسان شکل میں ssh user@server-ip ہے۔ اگر پورٹ مختلف ہو تو ssh -p 2222 user@server-ip سے جڑیں۔
پہلے کنکشن پر ٹرمینل آپ سے سرور کا فنگر پرنٹ تصدیق کرنے کو کہتا ہے۔ یہ قدم یقینی بنانے کے لیے ہے کہ آپ صحیح سرور سے جڑ رہے ہیں۔ Yes لکھ کر آگے بڑھیں تو سرور کا ریکارڈ آپ کے کمپیوٹر کی known_hosts فائل میں محفوظ ہو جاتا ہے۔ اگر بعد میں سرور تبدیل ہو یا IP دوبارہ تفویض ہو تو سیکیورٹی وارننگ مل سکتی ہے؛ ایسی صورت میں پہلے یقینی بنائیں کہ آپ واقعی درست سرور سے جڑ رہے ہیں۔
پاس ورڈ سے کنکشن اور SSH کلید میں فرق
پاس ورڈ سے لاگ ان آسان ہے لیکن brute force حملوں کا زیادہ شکار ہوتا ہے۔ SSH کلید میں آپ کے کمپیوٹر پر پرائیویٹ کلید اور سرور پر پبلک کلید ہوتی ہے جو زیادہ محفوظ ہوتی ہے۔ کلید بنانے کے لیے ssh-keygen -t ed25519 کمانڈ استعمال کی جا سکتی ہے۔ پبلک کلید سرور پر شامل کرنے کے لیے ssh-copy-id user@server-ip بہتر ہے۔ کلید لگنے کے بعد پاس ورڈ لاگ ان بند کرنا سیکیورٹی لیول کو بہت بڑھا دیتا ہے۔
| طریقہ | فائدہ | خطرہ | تجویز کردہ استعمال |
|---|---|---|---|
| پاس ورڈ سے SSH | انstallation تیز ہے | کمزور پاس ورڈ پر حملے کا خطرہ زیادہ | عارضی رسائی اور پہلی تنصیب |
| SSH کلید | زیادہ محفوظ اور آٹومیشن کے لیے موزوں | پرائیویٹ کلید محفوظ نہ رکھی تو خطرہ | مستقل سرور مینجمنٹ |
| مختلف پورٹ | بوٹ سکینز کم ہوتے ہیں | تنہا کافی سیکیورٹی نہیں | کلید اور فائر وال کے ساتھ |
| روٹ لاگ ان بند | غلط استعمال کم ہوتا ہے | غلط sudo سیٹنگ رسائی مشکل کر سکتی ہے | پروڈکشن سرورز |
بنیادی نیویگیشن اور فائل لسٹنگ کمانڈز
لینکس ٹرمینل میں سب سے پہلے سیکھنے والی کمانڈز موجودہ ڈائریکٹری دیکھنا، ڈائریکٹری تبدیل کرنا اور فائلیں لسٹ کرنا ہیں۔ pwd کمانڈ موجودہ مقام دکھاتی ہے۔ cd /var/www/html سے ویب روٹ ڈائریکٹری میں جائیں۔ cd .. ایک سطح اوپر لے جاتا ہے، cd صارف کے ہوم ڈائریکٹری میں واپس لے جاتا ہے۔ ls فائلیں دکھاتا ہے؛ ls -la پوشیدہ فائلوں سمیت اجازتیں، مالکانہ، سائز اور تاریخ کی معلومات دکھاتا ہے۔
ویب ماسٹرز کے لیے خاص طور پر .htaccess، wp-config.php، robots.txt، sitemap.xml اور index.php جیسی فائلیں فوری تلاش کرنا اہم ہے۔ ls -lah کمانڈ فائل سائز readable فارمیٹ میں دکھاتی ہے۔ مثال کے طور پر 1048576 کی بجائے 1.0M نظر آتا ہے۔ اگر ڈائریکٹری میں بہت سی فائلیں ہوں تو ls -lt تازہ ترین تبدیل شدہ فائلیں اوپر دکھاتا ہے۔ یہ ہیک کے بعد تبدیل شدہ فائلوں یا نئی انسٹال شدہ پلگ ان فائلوں کی جانچ کے لیے مفید ہے۔
عملی مثال: ویب روٹ ڈائریکٹری چیک کرنا
ایک سائٹ کی فائلیں عام طور پر /var/www، /home/user/public_html یا /usr/share/nginx/html کے نیچے ہوتی ہیں۔ مثال کے طور پر: pwd سے دیکھیں آپ کہاں ہیں، cd /var/www/siteadi سے سائٹ ڈائریکٹری میں جائیں، ls -lah سے فائلیں لسٹ کریں، du -sh . سے ڈائریکٹری کا کل سائز چیک کریں۔ اگر متعدد سائٹیں ہوسٹ کر رہے ہیں تو ہر سائٹ الگ صارف اور الگ ڈائریکٹری میں رکھنا سیکیورٹی اور مینٹیننس دونوں کے لیے بہتر ہے۔ ڈومین مینجمنٹ کے لیے ڈومین کوئری اور سائٹ لائیو کرنے کے عمل کے لیے ہوسٹنگ کی ترتیب گائیڈز کے ساتھ آگے بڑھیں۔
فائل اور فولڈر آپریشنز: بنانا، کاپی کرنا، منتقل کرنا، حذف کرنا
فائل بنانے کے لیے touch file.txt، فولڈر بنانے کے لیے mkdir folder-name استعمال کریں۔ nested فولڈرز ایک کمانڈ سے بنانے کے لیے mkdir -p backups/2026/january لکھیں۔ فائل کاپی cp source destination، فولڈر کاپی cp -r source-folder destination-folder ہے۔ منتقل یا نام تبدیل کرنے کے لیے mv old-name new-name استعمال کریں۔
حذف کرنے کی کمانڈز احتیاط چاہتی ہیں۔ rm file.txt ایک فائل حذف کرتا ہے، rm -r folder-name فولڈر کو مواد سمیت حذف کرتا ہے۔ rm -rf بغیر تصدیق کے زبردستی حذف کرتا ہے اور غلط ڈائریکٹری میں چلانے پر بڑا نقصان ہو سکتا ہے۔ پروڈکشن سرور پر rm -rf استعمال کرنے سے پہلے pwd سے مقام کی تصدیق ضرور کریں اور ls سے ہدف چیک کریں۔ اہم آپریشنز سے پہلے tar یا rsync سے مختصر بیک اپ لینا، چند منٹ کے کام سے گھنٹوں کی بحالی کے عمل کو روک سکتا ہے۔
محفوظ حذف کرنے کی عادت
نیا سیکھنے والوں کے لیے سب سے محفوظ طریقہ حذف کرنے کی بجائے فائل کو قرنطینہ فولڈر میں منتقل کرنا ہے۔ مثال کے طور پر mkdir /root/quarantine اور mv suspicious-file.php /root/quarantine/ سے فائل کو حذف کیے بغیر الگ کر سکتے ہیں۔ اگر سائٹ ٹھیک چل رہی ہو تو بعد میں مستقل طور پر حذف کر سکتے ہیں۔ یہ طریقہ خاص طور پر نقصان دہ فائل کی صفائی، پلگ ان ہٹانے اور تھیم تبدیلیوں میں مفید ہے۔
فائل مواد دیکھنا اور ایڈیٹ کرنے کی کمانڈز
فائل کا پورا مواد دیکھنے کے لیے cat file.txt، صفحہ وار دیکھنے کے لیے less file.txt استعمال کریں۔ بڑی لاگ فائلوں میں cat استعمال کرنے سے ٹرمینل بھر سکتا ہے؛ اس لیے less بہتر ہے۔ فائل کی پہلی لائنز دیکھنے کے لیے head file.txt، آخری لائنز کے لیے tail file.txt استعمال کریں۔ لائیو لاگ مانیٹرنگ کے لیے tail -f /var/log/nginx/error.log بہت قیمتی ہے۔
فائل ایڈیٹ کرنے کے لیے nano، vim یا micro جیسے ایڈیٹرز استعمال کیے جا سکتے ہیں۔ نیا سیکھنے والوں کے لیے nano سب سے آسان ہے۔ nano .htaccess سے فائل کھولیں، تبدیلی کے بعد Ctrl+O سے محفوظ کریں اور Ctrl+X سے باہر نکلیں۔ PHP کنفیگریشن، Nginx server block، Apache virtual host یا robots.txt ایڈیٹ کرتے وقت چھوٹی ٹائپنگ غلطی بھی سائٹ متاثر کر سکتی ہے۔ تبدیلی سے پہلے cp file file.bak سے بیک اپ لینا اچھا معیار ہے۔
اجازت اور مالکانہ مینجمنٹ: chmod اور chown
لینکس سرورز پر فائل اجازتیں ویب سائٹ کے کام کرنے اور سیکیورٹی کے لیے اہم ہیں۔ chmod اجازتیں تبدیل کرتا ہے، chown مالکانہ تبدیل کرتا ہے۔ عام ویب سائٹ میں فولڈرز کے لیے 755، فائلوں کے لیے 644 استعمال ہوتے ہیں۔ مثال کے طور پر chmod 644 wp-config.php فائل اجازتیں درست کرتا ہے۔ فولڈرز کے لیے bulk اجازت find . -type d -exec chmod 755 {} \; استعمال کریں؛ فائلوں کے لیے find . -type f -exec chmod 644 {} \; بہتر ہے۔
مالکانہ کے لیے chown -R www-data:www-data /var/www/siteadi جیسے کمانڈز استعمال ہوتے ہیں، لیکن یہ ڈسٹری بیوشن اور ویب سرور کے لحاظ سے مختلف ہو سکتے ہیں۔ Ubuntu پر Apache یا Nginx زیادہ تر www-data استعمال کرتے ہیں؛ cPanel جیسے سیٹ اپ میں ہر سائٹ کا اپنا صارف ہو سکتا ہے۔ غلط مالکانہ اپ لوڈ مسائل یا 403 ایررز کا سبب بن سکتا ہے۔ حد سے زیادہ وسیع اجازتیں، جیسے 777، مختصر مدت میں مسئلہ حل کرتی دکھائی دیتی ہیں لیکن سیکیورٹی رسک پیدا کرتی ہیں۔ خاص طور پر اپ لوڈ ڈائریکٹریز میں executable فائلوں کو روکنا اور write اجازتیں محدود رکھنا ضروری ہے۔
ڈسک، RAM اور CPU چیک کرنے کی بنیادی کمانڈز
پرفارمنس مسائل میں سب سے پہلے ریسورس استعمال چیک کریں۔ df -h ڈسک پارٹیشنز کی فل ہونے کی شرح دکھاتا ہے۔ اگر روٹ پارٹیشن 100% بھر جائے تو سروسز لاگ نہیں لکھ سکتیں، ڈیٹابیس لاک ہو سکتا ہے اور سائٹ 500 ایرر دے سکتی ہے۔ du -sh * موجودہ ڈائریکٹری میں فولڈر سائز کا خلاصہ دکھاتا ہے۔ بڑی لاگ، کیش یا بیک اپ فائلیں تلاش کرنے کے لیے du -ah /var/www | sort -h | tail استعمال کریں۔
RAM اور پروسیسر کے لیے top یا htop استعمال کریں۔ htop انسٹال نہ ہو تو apt install htop یا dnf install htop سے انسٹال کریں۔ free -m RAM اور swap کی صورتحال دکھاتا ہے۔ uptime کمانڈ بتاتی ہے سسٹم کتنے عرصے سے چل رہا ہے اور load average ویلیوز۔ سنگل کور سرور پر load ویلیو طویل عرصے تک 1 سے اوپر رہنا، ملٹی کور سرور پر کور تعداد سے تجاوز کرنا پرفارمنس مسئلے کی نشاندہی کرتا ہے۔ ٹریفک باقاعدہ بڑھ رہا ہو تو زیادہ طاقتور پلان یا آپٹیمائزیشن درکار ہو سکتی ہے؛ اس موقع پر لینکس VPS اور کاروباری ہوسٹنگ آپشنز دیکھیں۔
سروس مینجمنٹ: systemctl سے Apache، Nginx، PHP اور MySQL کنٹرول
جدید لینکس ڈسٹری بیوشنز میں سروس مینجمنٹ زیادہ تر systemctl سے کی جاتی ہے۔ سروس کی حالت دیکھنے کے لیے systemctl status nginx، دوبارہ شروع کرنے کے لیے systemctl restart nginx، کنفیگریشن دوبارہ لوڈ کرنے کے لیے systemctl reload nginx استعمال کریں۔ Apache کے لیے apache2 یا httpd، PHP-FPM کے لیے php8.2-fpm یا اسی ورژن کا نام، MySQL کے لیے mysql یا mariadb سروس نام ہو سکتا ہے۔
ہر دوبارہ شروع کرنے سے پہلے کنفیگریشن ٹیسٹ کرنا اچھی عادت ہے۔ Nginx کے لیے nginx -t، Apache کے لیے apachectl configtest استعمال کریں۔ ٹیسٹ ناکام ہو تو restart کرنے سے سائٹ بند ہو سکتی ہے۔ مثال کے طور پر Nginx کنفیگریشن میں سیمی کالون غائب ہو تو nginx -t لائن نمبر کے ساتھ ایرر دکھاتا ہے۔ پہلے ایرر درست کریں پھر systemctl reload nginx چلائیں تو زیادہ محفوظ ہے۔
ویب ماسٹر کے لیے فوری سروس چیک لسٹ
- سائٹ نہ کھل رہی ہو تو براؤزر کی بجائے سرور پر systemctl status web-service چیک کریں۔
- 502 ایرر پر PHP-FPM کی حالت اور Nginx error log چیک کریں۔
- ڈیٹابیس کنکشن ایرر پر systemctl status mysql اور ڈسک فل ہونے کی جانچ کریں۔
- کنفیگریشن تبدیل کی ہو تو restart کی بجائے ممکن ہو تو reload استعمال کریں۔
- ہر تبدیلی سے پہلے متعلقہ فائل کا .bak کاپی لیں۔
لاگ چیک کرنا: ایرر کا ذریعہ منٹوں میں تلاش کرنا
لاگ فائلیں سرور کا بلیک باکس ہیں۔ Nginx کے لیے /var/log/nginx/access.log اور /var/log/nginx/error.log، Apache کے لیے /var/log/apache2/access.log اور /var/log/apache2/error.log عام استعمال ہوتے ہیں۔ PHP-FPM لاگز ڈسٹری بیوشن کے لحاظ سے /var/log/php8.2-fpm.log یا journalctl میں ہو سکتے ہیں۔ MySQL لاگز /var/log/mysql/error.log کے نیچے مل سکتے ہیں۔
journalctl -xe سسٹم سروسز سے متعلق تازہ ترین ایررز دکھاتا ہے۔ مخصوص سروس کے لیے journalctl -u nginx -n 100 لکھنے پر Nginx کے آخری 100 ریکارڈز لسٹ ہوتے ہیں۔ لائیو مانیٹرنگ کے لیے journalctl -u php8.2-fpm -f استعمال کریں۔ لاگ کے اندر مخصوص لفظ تلاش کرنے کے لیے grep استعمال کریں۔ مثال کے طور پر grep 500 access.log سے 500 سٹیٹس کوڈز تلاش ہوتے ہیں۔ grep -i error file.log بڑے چھوٹے حروف کی بے حس تلاش کرتا ہے۔
SEO کے لحاظ سے لاگ تجزیہ صرف ایرر حل کرنے کے لیے نہیں بلکہ کرال بجٹ اور بوٹ رویے کے لیے بھی قیمتی ہے۔ Googlebot نے کون سے صفحات وزٹ کیے، 404 ایررز کس URL پر زیادہ ہیں اور سلو رسپانس دینے والے ریسورسز access log سے دیکھ سکتے ہیں۔ ٹیکنیکل SEO آڈٹ کے لیے SEO ہموار ہوسٹنگ اور Web Sitesi Hiz Optimizasyonu مواد کے ساتھ لاگ تجزیہ کو باقاعدہ بنانا مفید ہے۔
تلاش، فلٹرنگ اور ٹیکسٹ پروسیسنگ کمانڈز

سرور پر فائل یا ٹیکسٹ تلاش کرنے کے لیے find, grep, awk اور sed طاقتور ٹولز ہیں۔ find /var/www -name wp-config.php مخصوص فائل تلاش کرتا ہے۔ find . -type f -mtime -1 پچھلے 24 گھنٹوں میں تبدیل شدہ فائلیں دکھاتا ہے۔ یہ کمانڈ غیر مجاز فائل تبدیلی کے شبہ میں بہت کام آتی ہے۔ grep -R base64_decode . موجودہ ڈائریکٹری میں base64_decode والے فائلوں کو تلاش کرتا ہے؛ یہ اظہار ہمیشہ نقصان دہ نہیں ہوتا لیکن بدنیتی پر مبنی PHP کوڈ میں اکثر دیکھا جاتا ہے۔
لاگ تجزیہ میں awk سے مخصوص کالم الگ کیے جا سکتے ہیں۔ مثال کے طور پر access log میں سب سے زیادہ درخواستیں کرنے والے IP ایڈریس دیکھنے کے لیے awk سے IP کالم لیا جاتا ہے، sort اور uniq -c سے شمار کیا جاتا ہے۔ اس طرح کے تجزیے حد سے زیادہ بوٹ ٹریفک، brute force کوششوں یا DDoS جیسے رویوں کی جلد پتہ لگانے میں مدد دیتے ہیں۔ اعلیٰ سطح پر fail2ban، rate limiting اور WAF سلوشنز کے ساتھ استعمال کیا جا سکتا ہے۔
فائل ٹرانسفر: scp, sftp اور rsync
SSH صرف کمانڈ چلانے کے لیے نہیں بلکہ فائل ٹرانسفر کے لیے بھی استعمال ہوتا ہے۔ scp local-file user@server-ip:/destination/directory آپ کے کمپیوٹر کی فائل سرور پر بھیجتا ہے۔ سرور سے کمپیوٹر پر لانے کے لیے scp user@server-ip:/file/path ./ لکھیں۔ بڑے فولڈرز میں scp کی بجائے rsync زیادہ موثر ہے کیونکہ یہ غیر تبدیل شدہ فائلوں کو دوبارہ منتقل نہیں کرتا۔
rsync -avz source/ user@server-ip:/destination/ آرکائیو موڈ میں، کمپریسڈ اور تفصیلی ٹرانسفر کرتا ہے۔ --delete پیرامیٹر ہدف میں موجود لیکن سورس میں غیر موجود فائلوں کو حذف کرتا ہے؛ احتیاط سے استعمال کریں۔ ورڈپریس منتقل کرنا، staging سے لائیو ماحول میں فائل ٹرانسفر یا بیک اپ سرور سے سنکرونائزیشن کے لیے rsync طاقتور حل ہے۔ SSL انسٹالیشن یا HTTPS منتقلی کر رہے ہیں تو فائل ٹرانسفر سے پہلے سرٹیفکیٹ اور ری ڈائریکٹ پلان واضح کریں؛ SSL Sertifikasi مواد اس عمل میں مددگار ہو سکتا ہے۔
بیک اپ لینے اور بحالی کے لیے SSH کمانڈز
بیک اپ سرور مینجمنٹ کا انشورنس ہے۔ فائل بیک اپ کے لیے tar -czf site-backup.tar.gz /var/www/siteadi استعمال کیا جا سکتا ہے۔ یہ کمانڈ ڈائریکٹری کو gzip کمپریسڈ آرکائیو میں تبدیل کرتا ہے۔ آرکائیو کھولنے کے لیے tar -xzf site-backup.tar.gz استعمال کریں۔ بڑی سائٹس میں بیک اپ ویب ڈائریکٹری سے باہر رکھنا اور ممکن ہو تو remote storage پر منتقل کرنا زیادہ محفوظ ہے۔
ڈیٹابیس بیک اپ کے لیے mysqldump -u user -p database_name > backup.sql عام ہے۔ بحالی کے لیے mysql -u user -p database_name < backup.sql استعمال کریں۔ بڑے ڈیٹابیس میں عمل کا وقت لمبا ہو سکتا ہے؛ screen یا tmux استعمال کرنے سے کنکشن ٹوٹنے پر بھی عمل جاری رہتا ہے۔ مثال کے طور پر screen -S backup سے سیشن کھولیں، Ctrl+A کے بعد D سے سیشن سے الگ ہو جائیں۔ بعد میں screen -r backup سے واپس آ سکتے ہیں۔
سیکیورٹی کے لیے اہم SSH سیٹنگز
SSH سیکیورٹی، سرور سیکیورٹی کا دروازہ ہے۔ پہلی تجویز روٹ صارف سے براہ راست لاگ ان بند کرنا ہے۔ اس کی بجائے sudo حقوق والا عام صارف بنائیں۔ adduser webmaster صارف شامل کرتا ہے، usermod -aG sudo webmaster sudo حقوق دیتا ہے۔ پھر SSH کنفیگریشن /etc/ssh/sshd_config میں ترمیم کریں۔ PermitRootLogin no اور PasswordAuthentication no جیسی سیٹنگز کلید پر مبنی لاگ ان کے ساتھ استعمال کی جا سکتی ہیں۔
تبدیلی کے بعد sshd کنفیگریشن ٹیسٹ کرنا اور موجودہ سیشن بند کیے بغیر نئے ٹرمینل سے کنکشن آزمانا بہت ضروری ہے۔ غلط سیٹنگ کرنے پر سرور سے لاک آؤٹ ہو سکتے ہیں۔ فائر وال کے لیے ufw allow 2222/tcp اور ufw enable سے صرف ضروری پورٹس کھولیں۔ تاہم SSH پورٹ تبدیل کیا ہو تو پرانا سیشن بند کیے بغیر نئے پورٹ سے جڑنے کی تصدیق ضرور کریں۔
کم از کم سیکیورٹی چیک لسٹ
- مضبوط پاس ورڈ یا ترجیحاً SSH کلید استعمال کریں۔
- روٹ لاگ ان بند کریں اور sudo حقوق والا صارف بنائیں۔
- غیر ضروری سروسز بند کریں اور صرف مطلوبہ پورٹس کھولیں۔
- سسٹم پیکجز باقاعدگی سے اپ ڈیٹ کریں: apt update اور apt upgrade۔
- لاگز باقاعدگی سے چیک کریں؛ مشکوک IPs کے لیے fail2ban استعمال کریں۔
- بیک اپس ایک ہی سرور پر صرف ایک کاپی کے طور پر نہ چھوڑیں۔
پیکج مینجمنٹ اور اپ ڈیٹ کمانڈز
Ubuntu اور Debian پر مبنی سسٹمز میں apt، AlmaLinux اور Rocky Linux جیسے RHEL پر مبنی سسٹمز میں dnf یا yum استعمال ہوتا ہے۔ Ubuntu کے لیے apt update پیکج لسٹ اپ ڈیٹ کرتا ہے، apt upgrade انسٹال شدہ پیکجز اپ گریڈ کرتا ہے۔ مخصوص پیکج انسٹال کرنے کے لیے apt install nginx، ہٹانے کے لیے apt remove package-name استعمال کریں۔ RHEL پر مبنی سسٹمز میں dnf update اور dnf install package-name اسی طرح کام کرتے ہیں۔
اپ ڈیٹس لائیو سرور پر بے ترتیب طور پر کرنے کی بجائے مینٹیننس ونڈو میں لگائیں۔ خاص طور پر PHP، MySQL، OpenSSL اور ویب سرور اپ ڈیٹس سائٹ کے رویے پر اثر انداز ہو سکتے ہیں۔ اہم سیکیورٹی اپ ڈیٹس میں تاخیر نہ کریں؛ تاہم پہلے بیک اپ لیں، کنفیگریشنز چیک کریں اور ممکن ہو تو staging ماحول میں ٹیسٹ کریں تو پیشہ ورانہ نقطہ نظر ہے۔
ویب ماسٹرز کے لیے نمونہ ایمرجنسی رسپانس فلو
ایک صبح آپ کی سائٹ نہ کھل رہی ہو۔ گھبراہٹ کی بجائے معیاری فلو فالو کریں۔ پہلے SSH سے جڑیں۔ uptime سے سرور کے جواب دینے اور load ویلیو چیک کریں۔ df -h سے ڈسک فل ہونے کی جانچ کریں۔ free -m اور top سے RAM اور CPU استعمال دیکھیں۔ پھر systemctl status nginx یا apache2 سے ویب سروس کی حالت چیک کریں۔ 502 ایرر ہو تو PHP-FPM سروس چیک کریں۔ ڈیٹابیس ایرر ہو تو systemctl status mysql اور متعلقہ لاگ فائل چیک کریں۔
اس کے بعد tail -n 100 error log سے تازہ ترین ایررز پڑھیں۔ اگر مسئلہ نئے پلگ ان یا تھیم اپ ڈیٹ کے بعد شروع ہوا ہو تو ls -lt سے تازہ تبدیل شدہ فائلیں تلاش کریں۔ ضرورت پڑے تو متعلقہ فولڈر کو عارضی طور پر دوبارہ نام دیں۔ ڈسک بھری ہو تو پرانی لاگز یا غیر ضروری بیک اپس تلاش کریں؛ براہ راست حذف کرنے سے پہلے یقینی بنائیں کہ وہ کیا ہیں۔ یہ اقدامات زیادہ تر بنیادی ڈاؤن ٹائم منظرناموں میں 5 سے 15 منٹ میں وجہ کو محدود کرنے میں مدد دیتے ہیں۔
SSH کمانڈز استعمال کرتے وقت کی جانے والی عام غلطیاں
سب سے عام غلطی کمانڈ کو سمجھے بغیر کاپی کر کے چلانا ہے۔ انٹرنیٹ پر دیکھی گئی ہر کمانڈ آپ کے سرور کے لیے موزوں نہیں ہوتی۔ خاص طور پر rm -rf، chmod -R 777، chown -R اور ڈیٹابیس حذف کرنے والی کمانڈز بڑا خطرہ رکھتی ہیں۔ دوسری غلطی روٹ صارف سے مسلسل آپریشن کرنا ہے۔ روٹ حقوق کی ضرورت ہو تو sudo استعمال کریں، غلطی سے سسٹم فائلوں میں تبدیلی کا خطرہ کم ہوتا ہے۔
تیسری غلطی بغیر بیک اپ تبدیلی کرنا ہے۔ سادہ کنفیگریشن فائل بھی سائٹ کو غیر فعال کر سکتی ہے۔ چوتھی غلطی لاگز پڑھے بغیر سروسز کو مسلسل restart کرنا ہے۔ restart کبھی عارضی حل دیتا ہے لیکن اصل وجہ چھپا سکتا ہے۔ پانچویں غلطی سیکیورٹی اپ ڈیٹس کو مکمل طور پر نظر انداز کرنا ہے۔ پرانا PHP، CMS یا سرور پیکجز حملے کی سطح بڑھاتے ہیں۔
بنیادی SSH کمانڈز کا خلاصہ ٹیبل
| عمل | کمانڈ | کب استعمال کریں؟ |
|---|---|---|
| کنکشن | ssh user@server-ip | سرور سے ٹرمینل کے ذریعے جڑنے کے لیے |
| ڈائریکٹری دیکھنا | pwd | جانیں کہ کس فولڈر میں ہیں |
| لسٹنگ | ls -lah | فائل، اجازت، مالک اور سائز دیکھنے کے لیے |
| ڈسک چیک | df -h | ڈسک فل ہونے کی شرح چیک کرنے کے لیے |
| فولڈر سائز | du -sh * | کون سا فولڈر جگہ لے رہا ہے معلوم کرنے کے لیے |
| سروس کی حالت | systemctl status nginx | ویب سروس چل رہی ہے یا نہیں دیکھنے کے لیے |
| لاگ مانیٹرنگ | tail -f error.log | لائیو ایرر دیکھنے کے لیے |
| فائل بیک اپ | tar -czf backup.tar.gz folder | سائٹ فائلوں کو کمپریس کرنے کے لیے |
| ٹرانسفر | rsync -avz source destination | بڑی فائلوں یا فولڈرز کو سنکرونائز کرنے کے لیے |
| اجازت تبدیل کرنا | chmod 644 file | فائل رسائی اجازتیں تبدیل کرنے کے لیے |
نتیجہ: SSH کا علم ویب ماسٹر کی آپریشنل رفتار بڑھاتا ہے
SSH کمانڈز سے لینکس سرور مینجمنٹ، نہ صرف سسٹم ایڈمنسٹریٹرز بلکہ سنجیدہ ویب پراجیکٹس چلانے والے ویب ماسٹرز کے لیے بھی بنیادی مہارت ہے۔ درست کمانڈز سے فائل مینجمنٹ، لاگ تجزیہ، سروس کنٹرول، بیک اپ اور سیکیورٹی آپریشنز تیز اور قابل پیمائش ہوتے ہیں۔ شروع میں چند کمانڈز کافی ہیں؛ وقت کے ساتھ ان کمانڈز کو محفوظ عادات کے ساتھ جوڑ کر آپ زیادہ خودمختار اور تیار رہیں گے۔
Hostragons پر ہوسٹنگ، VPS، ڈومین اور SSL انفراسٹرکچر کی منصوبہ بندی کرتے وقت SSH رسائی، بیک اپ، سیکیورٹی اور پرفارمنس کی ضروریات کا ایک ساتھ جائزہ لیں تو طویل مدت میں بہتر نتائج ملیں گے۔ اپنی ضرورت کا سرور قسم منتخب کرنے یا موجودہ سیٹ اپ کو مضبوط کرنے کے لیے متعلقہ Hostragons گائیڈز دیکھیں اور اپنے پراجیکٹ کے لیے مناسب انفراسٹرکچر پرسکون اور تکنیکی ضروریات کے مطابق طے کریں۔
اکثر پوچھے گئے سوالات
SSH کمانڈز سے لینکس سرور مینجمنٹ کے لیے روٹ ہونا ضروری ہے؟
نہیں۔ بلکہ پروڈکشن سرورز پر براہ راست روٹ استعمال کرنے کی سفارش نہیں کی جاتی۔ Sudo حقوق والے عام صارف سے جڑنا، ضرورت پڑنے پر sudo کمانڈ سے مینجمنٹ آپریشنز کرنا زیادہ محفوظ طریقہ ہے۔
نیا سیکھنے والا ویب ماسٹر سب سے پہلے کون سی SSH کمانڈز سیکھے؟
ترجیح ssh, pwd, cd, ls -lah, cp, mv, rm, nano, df -h, du -sh, top, systemctl, tail -f, grep, tar, scp اور rsync کمانڈز پر ہونی چاہیے۔ یہ کمانڈز روزمرہ فائل، سروس، لاگ اور بیک اپ آپریشنز کا بڑا حصہ کور کرتی ہیں۔
SSH کنکشن کیوں مسترد ہوتا ہے؟
سب سے عام وجوہات غلط IP یا پورٹ استعمال، SSH سروس کا نہ چلنا، فائر وال رکاوٹ، غلط صارف نام، غلط کلید فائل یا سرور پر PasswordAuthentication بند ہونا ہے۔ پہلے پورٹ، صارف اور سروس کی حالت چیک کریں۔
chmod 777 استعمال کرنا محفوظ ہے؟
عام طور پر نہیں۔ chmod 777 فائل یا فولڈر کو سب کے لیے پڑھنے، لکھنے اور چلانے کے قابل بنا دیتا ہے۔ یہ خاص طور پر ویب ڈائریکٹریز میں سیکیورٹی رسک پیدا کرتا ہے۔ زیادہ تر منظرناموں میں فولڈرز کے لیے 755، فائلوں کے لیے 644 زیادہ محفوظ ابتدائی قدر ہے۔
SSH سے بیک اپ لینا بہتر ہے یا پینل سے؟
دونوں استعمال کیے جا سکتے ہیں۔ پینل بیک اپ آسان ہیں، SSH بیک اپ زیادہ لچکدار اور آٹومیشن کے لیے موزوں ہیں۔ بڑی سائٹس پر tar, mysqldump اور rsync سے SSH کے ذریعے بیک اپ لینا زیادہ کنٹرولڈ ہو سکتا ہے؛ بہترین طریقہ باقاعدہ، ٹیسٹ شدہ اور remote کاپی والا بیک اپ حکمت عملی ہے۔