سامانه آموزش آنلاین

مقلات آموزشی

سرویسهای FreeBSD برای مهندسین شبکه

کار با inetd در FreeBSD:

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

در FreeBSD برای راه اندازی کردن سرویس ها برنامه ای وجود دارد به نام inetd که در به آن Super server هم گفته می شود، به این دلیل به inetd به اصطلاح super server گفته می شود چون شما با راه اندازی آن می توانید چندین سرور را در قالب یک سرور راه اندازی کنید.  زمانی که یک درخواست به این سرور می رسد، این برنامه تعیین می کند که برای درخواست باید کدام سرور را راه اندازی کند. این برنامه مثل یک وکیل بین درخواست و سرور قرار میگیرد و بعد از دریافت درخواست برای برقراری ارتباط بین سرور و کلاینت یک سوکت ایجاد می کند. در حقیقت inetd به تکثیر کردن سایر daemons ها می پردازد، اما از چند پروتکل ساده در درون خود این برنامه پیاده سازی شده است مثل time  echo day time.

بخشای این مقاله عبارتند از:

  • فایل پیکربندی برنامه inetd.
  • بخش های مختلف فایل پیکربندی.

فایل پیکربندی برنامه inetd:

برای کار کردن با این برنامه شما باید فایل پیکربندی این برنامه را ویرایش کنید مسیر این فایل در زیر شاخه /etc و نام فایل آن inetd.conf است. هر خط در این فایل برای راه اندازی کردن یک سرویس است، خطوطی کا با علامت # شروع می شوند اجرا نمی شود و برای اجرا کردن هر برنامه کافیست که علامت # ابتدای خط مورد نظر حذف کنید و سرویس inetd را دوباره راه اندازی کنید. به دو روش می توانید سرور inetd را راه اندازی کنید، برای هر دو روش باید در داخل فایل rc.conf خط زیر را برای راه اندازی خودکار سیستم اضافه کنید:

inetd_enable="YES"

حال می توانید با استفاده از فرمان Service سرور inted را راه اندازی کنید برای این کار کافیست که فرمان زیر را اجرا کنید:

# service inetd start

شما از طریق فرمان های موجود در زیر شاخه /etc/rc.d هم می توانید inetd را به صورت زیر اجرا کنید:

# /etc/rc.d/inetd start

اگر قصد دارید که برای یکبار فقط این سرویس را راه اندازی کنید می توانید از فرمان زیر به اصطلاح onestart را انجام دهید و در فایل rc.conf خطی اضافه کنید:

# /etc/rc.d/inetd onestart

در بسیاری از موارد اتفاق می افتد که شما تغییری در فایل پیکربندی inted اعمال کرده اید برای فقط بارگذاری فایل پیکربندی و قطع نشدن ارتباط قبلی فقط کافیست که از reload به صورت زیر استفاده کنید:

# service inetd reload

در خط زیر یک مثال از فایل پیکربندی برای راه اندازی کردن سرور ftp را مشاهده می کنید:

ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l

این خط شامل اطلاعاتی است که در ادامه بیشتر با آنها آشنا می شوید، کل اطلاعات این بخش به صورت زیر است:

service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
user[:group][/login-class]
server-program
server-program-arguments

بخش service-name:

بخش اول از خط مورد نظر شما با نام سرویس آغاز می شود این نام ها باید مطابق با فایل /etc/services باشد، که از این فایل شماره پورت مورد نظر جهت ارایه دادن سرویس مشخص می شود. اگر شما از سرویسی استفاده می کنید که در این فایل وجود ندارد در بخش اول باید آنرا در این فایل اضافه کنید.

 

بخش socket-type:

این بخش شامل گزینه های stream , dgram, raw, seqpacket که برای ارتباطهای tcp باید از stream و برای ارتباط از نوع udp باید از dgram استفاده کنید.

 

بخش protocol:

در این بخش شما برای تنظیم کردن نوع ارتباط tcp و udp در دو حالت ورژن 4 و 6 باید از کلید های زیر استفاده کنید:

نما استفاده شده

کلید

tcp or tcp4

TCP IPv4

udp or udp4

UDP IPv4

tcp6

TCP IPv6

udp6

UDP IPv6

tcp46

Both TCP IPv4 and IPv6

udp46

Both UDP IPv4 and IPv6

در یک خط هم شما می توانید دو ورژن 4 و 6 را با هم مشخص کنید.

بخش wait | nowait:

این دو گزینه چگونگی مدیریت کردن سوکت توسط برنامه را مشخص می کند، اتباطات از نوع udp باید از حالت wait استفاده کنند و ارتباط tcp که multi-threaded هستند باید از حالت nowait استفاده کنند، این امر به این دلیل است که حالت wait برای یک پردازش چندین سوکت را باز نمی کند و حالت nowait می تواند هم زمان از چندین سوکت استفاده کند.

 

بخش /max-child:

این بخش دقیقا به از حالت nowait استفاده شده و با / از آن جدا می شود و تعداد child daemons که inetd اجازه دارد برای هر پردازش باز کند را مشخص می کند، برای محدود کردن 10 زیر پردازش باید از عدد /10 استفاده کنید و /0 به معنی بی نهایت است.

 

بخش max-connections-per-ip-per-minute/

این بخش تعداد ارتباطات برقرار شده از یک آدرس ip خاص در مدت یک دقیقه را مشخص می کند، اگر تعداد درخواست ها بیشتر از مقدار مورد نظر باشد اتصال برقرار نشده تا مدت زمان محدودیت به اتمام برسد. این امر باعث کاهش مصرف منابع سیستم می شود و در مواردی هم از حمله ddos جلوگیری می کند.

 

بخش user:

در این بخش می توانید سطح دسترسی کاربری را که می خواهید سرور شما با آن سطح دسترسی کاربر راه اندازی شود را مشخص کنید. این بخش در صورتی که سرور شما هک شود مفید بود و هکر در صورت shell گرفتن از سرور با سطح دسترسی کاربر معمولی به سیستم وارد می شود. معروف ترین این بخش ها deamon و nobody است.

 

بخش Server-program:

در این بخش شما مسیر کامل برنامه ای که به عنوان سرور باید توسط inetd  راه اندازی شود را مشخص کنید.

 

بخش Server-program-arguments:

بعضی از سور ها دارای flags های خاصی هستند که باعث ایجاد تغییرات در نوع و رفتار سرور مورد نظر شما می شود، با استفاده از این بخش شما می توانید تنظیمات خاص خود را اعمال کنید.

 

نظرات (0)

هیچ نظری در اینجا وجود ندارد

نظر خود را اضافه کنید.

ارسال نظر بعنوان یک مهمان ثبت نام یا ورود به حساب کاربری خود.
پیوست ها (0 / 3)
مکان خود را به اشتراک بگذارید
عبارت تصویر زیر را بازنویسی کنید. واضح نیست؟
آموزش BSD با محمدعابدینی

اولین مرکز آموزش BSD  و نخستین مرکز ارائه نرم افزارهای مبتنی بر BSD در ایران

کلیه حقوق این سایت متعلق به محمد عابدینی است که در زمینه آموزش BSD فعالیت می کند.
All rights are reserved for Mohammad Abedini 2019

Search

09356757020
محمد عابدینی
کرج 
مهرشهر
Your SEO optimized title