مهدی اشراقی
مهندس شبکه و Embeded system
مهدی اشراقی
مهندس شبکه و Embeded system
نوشته بلاگ

تنظیمات احراز هویت در بروکر MQTT

۱۳, دی,۱۴۰۱ امنیت, لینوکس
تنظیمات احراز هویت در بروکر MQTT

در این آموزش با تنظیمات بیشتر برای احراز هویت در mqtt broker آشنا میشیم .

سلام .

در ادامه آموزش های mqtt بعد از نصب MQTT broker در لینوکس  و استفاده به صورت ساده میرسیم به تنظیمات بیشتر برای احراز هویت در سرور mqtt که با استفاده از اسکریپت mosquitto_passwd انجام میشه .

در حالت عادی بعد از نصب کامل بروکر و اجرای اون میتونیم به صورت ساده از سرور خودمون استفاده کنیم و پیام ها رو رد و بدل کنیم اما برای استفاده درست از سرور نیاز داریم تا احراز هویت انجام بشه که هر کسی که درخواست فرستاد نتونه به سرور متصل بشه و پیام های ما رو بخونه پس باید دسترسی به سرور رو محدودتر کنیم .

در آموزش قبلی به صورت خلاصه فرآیند رو توضیح دادم اما در این آموزش با جزئیات بیشتری تنظیمات MQTT broker authentication رو دنبال میکنیم .

مرحله اول – بروکر MQTT رو غیر فعال کنید :

با دستور زیر میتونید متوجه بشید که سرور شما با چه شماره ای در حال پردازش هست

بعد از اجرای دستور بالا اگر روی سرور شما بروکر MQTT در حال اجرا باشه یک یا چند عدد رو به شما نشون میده که باید با دستور kill بروکر رو ببندید . فرض کنید بعد از اجرا دستور بالا عدد ۲۵۶۶۷ رو به من نشون داد .

مرحله دوم – استفاده از اسکریپت mosquitto_passwd برای ساخت اکانت ها در بروکر :

برای اینکه بتونیم نام کاربری و رمز عبور های مورد نظر ذخیره کنیم از اسکریپت mosquitto_passwd استفاده میکنیم . نحوه استفاده از اسکریپت به صورت زیر هست :

دستور mosquitto_passwd یه سری گزینه ها داره که به شرح زیر هست .

گزینه های قابل استفاده در mosquitto_passwd :

b- : در صورت استفاده از این گزینه میتوانید پسورد رو به صورت کامند در همون خط وارد کنید
c- : ساخت فایل رمز جدید . اگر فایل از قبل وجود داشته باشد اطلاعات جایگزین اطلاعات قبلی میشود .
D- : حذف نام کاربری مشخص از فایل رمز ها
H- : انتخاب ذخیره سازی رمز ها به صورت رمزنگاری شده (Hash) ، قابلیت انتخاب به صورت : sha512-pbkdf2 و sha512 به صورت پیش فرض [sha512-pbkdf2] استفاده میشود .
U- : برای ارتفا یا تبدیل فایل رمز
passwordfile : محل ذخیره سازی فایل رمز
username : نام کاربری مورد نظر برای ساختن /به روز رسانی / حذف
password : زمانی که از b- استفاده میکنید رمز عبور رو باید به این صورت وارد کنید

حالا برای اینکه بهتر درک کنید مطلب رو چند مثال رو با هم ببینیم :

۱ : اگر بخوایم برای اولین بار نام کاربری meties با رمز عبور ۱۲۳۴۵۶ رو بسازیم به صورت زیر عمل میکنیم :

۲ : اگر بخواهیم روی همین فایل رمز یه نام کاربری دیگه تعرف کنیم که رمز رو به صورت مرحله ای از ما بگیره

۳ : اگر بخواهیم نام کاربری meties2 رو حذف کنیم :

مرحله سوم – قطع دسترسی سرور MQTT Broker به کاربران ناشناس :

خوب الان که نام کاربری و رمز عبور های مورد نظر خودمون رو ساختیم باید سرور رو تنظیم کنیم تا افراد ناشناس و فاقد نام کاربری و رمز عبور اجازه دسترسی و ارسال / دریافت پیام به سرور رو نداشته باشن .

اگر تنظیمات پیش فرض رو از قبل ساختید میتونید این تنظیمات رو در همون فایل اعمال کنید در غیر این صورت به دستور زیر فایل تنظیمات پیش فرض برای سرور mqtt بسازید

با دستور بالا فایلی با نام default.conf ساختیم که به صورت پیش فرض بعد از اجرای بروکر mqtt توسط سرور خوانده و اعمال میشه . حالا باید تنظیمات زیر رو داخل فایلی که باز شده وارد کنیم و فایل رو ذخیره کنیم .

توضیحات دستورات بالا :

allow_anonymous : اجازه دسترسی به کاربران ناشناس که false رو وارد میکنیم که به معنی خیر هست .

password_file : محل ذخیره سازی فایل رمز ما .

مرحله چهارم – اجرای سرور MQTT Broker :

خوب حالا که همه تنظیمات رو وارد کردیم ابتدا با دستور زیر سرویس بروکر سرور خودمون رو مجدد راه اندازی میکنیم

و در آخر سرور رو دوباره اجرا میکنیم .

حالا میتونید سرور و چک کنید و میبینید که فقط نام کاربری و رمز عبور هایی که ساخته شده اجازه دسترسی ، ارسال و دریافت پیام رو دارن .

اگر سوالی بود حتما بپرسید . موفق و پیروز باشید

منبع : سایت رسمی

برچسب ها:
۲ دیدگاه
  • فخرآبادی ۰۹:۵۴ ۷, اسفند,۱۴۰۱ پاسخ

    سلام. وقت بخیر.
    ممنون میشم جواب سوال من رو بدید. چون واقعا چند وقتی هست که درگیرم.
    من فقط از طریق نود رد میتونم به بروکرم متصل بشم. یعنی حتی با mqttx که روی همان سیستم نصب است هم نمیتونم. امتحان کردم هم اینکه آی پی سرور رو بزنم و هم اینکه localhost بزنم. در هیچ صورتی وصل نمیشه.
    اخطار ECONNREFUSED میده.
    خدا خیرتون بده که وقت می‌گذارید…

    • مهدی اشراقی ۱۸:۵۱ ۱۳, اسفند,۱۴۰۱ پاسخ

      سلام .
      لطفاً بیشتر توضیح بدید که بتونم راهنماییتون کنم . بروکر روی چه محیطی نصب شده ؟ رزبری پای یا سرور مجازی ؟

درج دیدگاه

ضبط پیام صوتی

زمان هر پیام صوتی 1 دقیقه است