برو به محتوای اصلی
فرخ یوسفی
سال گذشته پرسیده شده

همانطور که برای استفاده از پایگاه داده MySql از یوزر و پسورد مربوط به پایگاه داده برای امنیت استفاده می‌کنیم، در الاستیک سرچ چطوری این یوزر و پسورد رو تعریف کنیم تا هر کسی به پایگاه داده دسترسی نداشته باشد؟ (من از PHP و XAMPP دارم استفاده می‌کنم)

من کجام؟ اینجا کجاست؟

در جوابکو می‌تونید در مورد هر موضوعی سوال کنید، به سوالای بقیه جواب بدید و تجربتون رو به اشتراک بگذارید!

سیاوش محمودیان
بنیانگذار جواب‌کو

جواب کوتاه این هست که با تنظیم فایروال و همینطور Bind کردن الاستیک سرچ نباید اجازه این رو بدید که آی‌پی‌های خارجی به پایگاه داده شما به هیچ وجه دسترسی داشته باشند.

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

برای این کار اول از همه در فایروالتون باید تعریف کنید که تمام پورت‌ها به جز پورت‌های مورد نیاز مثل ۸۰ و ۴۴۳ (برای http و https) به صورت کامل بسته باشه. معمولا الاستیک‌سرچ روی پورت‌های ۹۲۰۰ و ۹۳۰۰ تنظیم می‌شه و باید مطمئن باشید این پورت‌ها از خارج قابل دسترسی نیستن.

علاوه بر اون خیلی خوبه که در فایل کانفیگ الاستیک‌سرچ مقدار network.host۶۱ و یا network.bind_host رو مطمئن شید روی 0.0.0.0 نیست. مقدار 0.0.0.0 به این معناست که از هر آی‌پی امکان وصل شدن به این بانک اطلاعاتی وجود داره. در صورتی که از یک سرور استفاده می‌کنید و وب‌سرورتون روی سروری هست که الاستیک‌سرچ نصبه، می‌تونید این مقدار رو 127.0.0.1 قرار بدید، یعنی از داخل خود سرور فقط امکان وصل شدن به الاستیک‌سرچ هست. در صورتی که سرور دیگه‌ای وجود داره می‌تونید آی‌پی اون رو هم علاوه بر 127.0.0.1 اضافه کنید.

مورد دوم جهت این هست که در صورتی که هکری به داخل یکی از سرورها نفوذ کرد و پشت فایروال بود، همچنان امکان وصل شدن به الاستیک‌سرچ رو از سرورهای دیگه نداشته باشه.

در صورتی که خواستید چک کنید بانک اطلاعاتیتون رو و ببینید چه اطلاعاتی در اون قرار داره و یا اینکه خواستید به پلاگین head وصل شید تا بانک اطلاعاتی رو Browse کنید، بهترین راه استفاده از SSH Tunnel هست. در واقع شما به سروری که دسترسی به الاستیک‌سرچ داره Tunnel می‌کنید و از طرف اون سرور به بانک اطلاعاتی دسترسی پیدا می‌کنید. مثلا می‌تونید پورت ۹۳۰۰ در سرورتون رو به ۹۳۰۱ در کامپیوتر خودتون Tunnel کنید و بعد قادر خواهید بود از localhost:9301۳۹ به بانک اطلاعاتی دسترسی داشته باشید.

به صورت پیش‌فرض الستیک‌سرچ authentication رو ساپورت نمیکنه. برای حل این مشکل میتونید از محصول دیگه شرکت الستیک به اسم X-Pack همراه الستیک‌سرچ استفاده کنید که کار authentication رو انجام میده یا اینکه با استفاده از فایروال سیستم‌عامل فقط و فقط به سروری که میخواد به الستیک‌سرچ وصل بشه اجازه بدید و بقیه آی‌پی‌ها و پورت‌ها رو ببندید.

سوالات مرتبط

سوال مشابهی موجود نیست.

آمار سوال

۵۶ نمایش
۰ دنبال‌کننده
سال گذشته پرسیده شده
آمار بازدید در این ماه

سوال رو به اشتراک بگذار