
Port Knocking در SSH چیست؟ تپ پورت راهی است که فقط به کاربران قانونی اجازه دسترسی به خدمات سرور را می دهد. در ادامه این مقاله از وبلاگ پارس پک قصد داریم با استفاده از Port Knocking امنیت سرویس SSH را بیاموزیم. همچنین نحوه نصب و پیکربندی knockd و تنظیم قوانین فایروال را مورد بحث قرار خواهیم داد. پس با ما همراه باشید.
Port Knocking را برای امنیت سرویس SSH پیکربندی کنید
سرویس SSH روی سرور اجرا می شود، اما پورت SSH توسط قوانین فایروال بسته می شود، بنابراین هیچکس نمی تواند مستقیماً به پورت 22 SSH متصل شود. سرور همچنین Daemon Knockd را اجرا می کند که توانایی تغییر قانون فایروال را دارد و به طور موقت پورت SSH را باز می کند. 22 برای کاربر. البته اگر این کاربر چندین پورت خاص را پشت سر هم بزند.
بنابراین Knock Sequence چیزی شبیه رمز عبور پورت SSH است. فقط کاربران مجاز به استفاده از Knock Sequence می توانند از knocked برای باز کردن پورت SSH استفاده کنند. توجه داشته باشید که وقتی کاربر قانونی دیگری سعی می کند از سیستم خارج شود، Knock Sequence دیگری برای بستن پورت SSH استفاده می شود.
مراحل پیکربندی Port Knocking در SSH
برای محافظت از سرویس SSH با استفاده از پورت Knocking، باید مراحل زیر را دنبال کنید.
مرحله 1: Knockd را روی سرور دبیان/اوبونتو نصب و پیکربندی کنید
از دستور زیر برای نصب knocked از فروشگاه نرم افزار پیش فرض استفاده کنید:
sudo apt-get install knockd
فایل پیکربندی اصلی را با ویرایشگر متن خط فرمان مانند Nano ویرایش کنید:
sudo nano /etc/knockd.conf
شما باید سه مورد را در این فایل تغییر دهید. در بخش [openSSH]، پیش فرض برای دنباله چکش هنگام باز شدن روی 7000، 8000، 9000 تنظیم شده است. شما می توانید آن را به دلخواه تغییر دهید.
برای مثال می توانید آن را روی 10001.10002.10003 تنظیم کنید. همچنین می توانید 4 پورت یا بیشتر را برای دنباله تعریف کنید. توجه داشته باشید که نیازی به باز کردن این پورت ها در فایروال ندارید.
سپس عبارت A- را در دستور iptables به I- تغییر دهید. بنابراین این قانون iptables اولین قانون در قوانین فایروال خواهد بود. سفارشات زنجیره iptables بسیار مهم است. هنگامی که دنباله راست Knock را ارسال می کنید، Knockd دستور iptables را اجرا می کند تا پورت SSH را فقط برای آدرس IP شما باز کند. توجه داشته باشید که آدرس های IP دیگر هنوز اجازه اتصال به پورت SSH را ندارند.
اکنون در بخش [closeSSH]، می توانید ترتیب بسته شدن ضربه ها را به دلخواه تغییر دهید. به عنوان مثال، می توانید آن را به 10003.10002.10001 تغییر دهید.
برای افزایش امنیت پورت های چکشی را راه اندازی کنید
اکنون فایل را ذخیره کرده و ببندید.
در مرحله بعد دستور زیر را اجرا کنید تا نام رابط شبکه اصلی سرور نمایش داده شود:
ip addr
مراحل فعال کردن Port Knocking
در این مثال، رابط اصلی شبکه ens18 و اکنون به فایل پیکربندی نیاز دارید و غیره / پیش فرض / ضربه / ویرایش:
sudo nano /etc/default/knockd
خط زیر را پیدا کنید:
START_KNOCKD=0
0 را به 1 تغییر دهید تا با شروع سیستم به طور خودکار فعال شود.
START_KNOCKD=1
در زد پیش فرض به eth0 وصل است. رابط شبکه سرور شما می تواند باشد eth0 بدون اتصال؛ پس باید آن را تغییر دهید. برای انجام این کار، خط زیر را پیدا کنید:
#KNOCKD_OPTS="-i eth1"
# را حذف کنید و eth1 را به عنوان رابط شبکه اصلی سرور خود تغییر دهید:
KNOCKD_OPTS="-i ens18"
فایل را ذخیره کنید و آن را ببندید. سپس Knockd Daemon را اجرا کنید:
sudo systemctl start knockd
اکنون شروع خودکار را فعال کنید:
sudo systemctl enable knockd
وضعیت knockd را بررسی کنید و ببینید آیا کار می کند یا خیر.
systemctl status knockd
با ضربه زدن روی پورت ها از SSH محافظت کنید
مرحله 2: پورت SSH 22 را ببندید
برای بستن پورت SSH 22 در فایروال UFW، ابتدا باید قوانین فایروال فعلی را فهرست کنید:
sudo ufw status numbered
از پورت های چکشی در دبیان و اوبونتو به عنوان لایه امنیتی استفاده کنید
همانطور که می بینید قانون اول و سوم پورت SSH را باز می کند. برای بستن پورت TCP 22، این دو قانون را حذف کنید:
sudo ufw delete 3
sudo ufw delete 1
توجه: توجه داشته باشید که ابتدا باید قانون را با یک شاخص بزرگتر حذف کنید. برای مثال، باید قانون 3 را قبل از 1 حذف کنیم.
حال اگر بخواهید SSH را روی سرور خود امتحان کنید، سرویس SSH به درخواست شما پاسخ نمی دهد.
مرحله 3: از Knock Client برای ارسال Knock Sequence استفاده کنید
Knockd Daemon با Knock Client به نام Knock عرضه می شود. بنابراین می توانید با اجرای دستور زیر آن را روی کلاینت دبیان یا اوبونتو خود نصب کنید:
sudo apt-get install knockd
برای پیکربندی فایروال سرور در پورت TCP 22، باید Knock Sequence صحیح را از کامپیوتر مشتری ارسال کنید:
knock -v 10.0.0.104 10001 10002 10003
در این مرحله خروجی زیر را مشاهده خواهید کرد:
hitting tcp 10.0.0.104:10001 hitting tcp 10.0.0.104:10002 hitting tcp 10.0.0.104:10003
اگر تاخیر زیادی بین مشتری و سرور شما وجود داشته باشد، تلاش Knock ممکن است با شکست مواجه شود. اگر پورت SSH همچنان بسته است، ممکن است لازم باشد Knock Sequence را چندین بار ارسال کنید.
پس از موفقیت Knock، می توانید از SSH استفاده کنید. پس از اتمام کار، می توانید از Port Knocking برای بستن پورت IP SSH خود استفاده کنید:
knock -v 10.0.0.104 10003 10002 10001
توجه داشته باشید که Knockd فقط مربوط به Knock Sequence ارسال شده به رابط شبکه اصلی (معروف به آدرس IP اصلی) است. اگر سرور چندین آدرس IP داشته باشد و سعی کنید Knock Sequence را به آدرس IP دیگری ارسال کنید، Knockd نمی تواند پورت SSH را باز کند.
نحوه راه اندازی مجدد خودکار Knockd
اگر Knockd Daemon از کار بیفتد، نمی توانید SSH را وارد کنید. برای جلوگیری از این اتفاق، میتوانید یک Cron Job ایجاد کنید تا Knockd را هر ساعت بهطور خودکار راهاندازی مجدد کند. برای این کار موارد زیر را انجام دهید.
ابتدا باید فایل Crontab کاربر اصلی را ویرایش کنید:
sudo crontab -e
سپس خط زیر را به فایل اضافه کنید.
@hourly systemctl restart knockd
در نهایت فایل را ذخیره کرده و ببندید.
اگر Knockd متوقف شود، همچنان می توانید با استفاده از کنسول میزبانی مبتنی بر وب به سرور خود دسترسی داشته باشید. سپس می توانید Knockd را به صورت دستی شروع کنید. بنابراین شما دوباره به SSH دسترسی خواهید داشت.
بدون رمز SSH وارد شوید
فعال کردن احراز هویت کلید عمومی (ورود بدون رمز عبور) می تواند امنیت سرویس SSH شما را بیشتر بهبود بخشد.
خلاصه ای از تنظیمات ضربه پورت
اجرای Port Knocking در SSH. همانطور که قبلا ذکر شد، Knock Sequence مانند رمز عبور پورت SSH است. فقط کاربران مجاز با Knock Sequence مناسب می توانند به آن اجازه دهند پورت SSH را باز کند. امیدوارم این آموزش به شما کمک کرده باشد که یک پورت ضربه را در سرور اوبونتو/دبیان خود راه اندازی کنید.
سوالات متداول
1. Port Security چه می کند؟
Port Security با جلوگیری از ارسال بسته ها از دستگاه های ناشناس به محافظت از شبکه کمک می کند. هنگامی که پیوند ناموفق باشد، همه URL های قفل شده به صورت پویا منتشر می شوند. با امنیت پورت، می توانید تعداد آدرس های MAC را در یک پورت محدود کنید.
2. آیا پورت SSH امن است؟
SSH احراز هویت را بر اساس رمز عبور یا کلید عمومی فراهم می کند و اتصالات بین دو نقطه پایانی شبکه را رمزگذاری می کند. این یک جایگزین امن برای پروتکل های ورود به سیستم قدیمی (مانند telnet، rlogin) و روش های ناامن انتقال فایل (مانند FTP) است.
{“@context”: “https://schema.org”، “@type”: “FAQPage”، “mainEntity”: [{
“@type”: “Question”,
“name”: “Port Security چه میکند؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “Port Security با جلوگیری از فوروارده پکتها توسط دستگاههای ناشناس، به ایمنسازی شبکه کمک میکند. هنگامی که یک لینک از کار میافتد، تمام آدرسهای قفلشده به صورت داینامیک آزاد میشوند. با امنیت پورت میتوانید تعداد آدرسهای MAC را در یک پورت معین محدود کنید.”
}
},{
“@type”: “Question”,
“name”: “آیا پورت SSH امن است؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “SSH احراز هویت مبتنی بر رمز عبور یا کلید عمومی را فراهم می کند و اتصالات بین دو نقطه پایانی شبکه را رمزگذاری می کند. این یک جایگزین امن برای پروتکل های ورود به سیستم قدیمی (مانند telnet، rlogin) و روش های ناامن انتقال فایل (مانند FTP) است.”
}
}]
}
منتشر شده در آموزش واکسیناسیون SSH با استفاده از ضربه زدن به پورت (در اوبونتو و دبیان) برای اولین بار در پارسوپک. به نظر می رسد.