اطلاعیه

بستن

در حال به روز رسانی سیستم

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

نحوه نصب و کانفیگ کلاینت FreeIPA در CentOS 7

بستن
X
  • فیلتر کردن
  • زمان
  • نمایش
پاک کردن همه
پست های جدید

  • نحوه نصب و کانفیگ کلاینت FreeIPA در CentOS 7

    FreeIPA یک راهکار امنیتی opensource برای لینوکس است که شبیه به Active Directory مایکروسافت،‌ مدیریت اکانت ها و احراز هویت متمرکز را فراهم میآورد. FreeIPA در حقیقت بین پروژه های اوپن سورس مشابه شامل 389 Directory Server, MIT Kerberos, و SSSD بهترین است.

    FreeIPA برای CentOS 7, Fedora, Ubuntu 14.04/16.04 کلاینت دارد. این کلاینت ها باعث میشوند اضافه کردن ماشین ها به دامین IPA شما، نسبتا سریع و مستقیم شود. ما بقی سیستم عامل ها را میتوان با استفاده از SSSD یا LDAP در FreeIPA اضافه و شناسایی بشوند.

    در این مقاله ما یک ماشین CentOS 7 را برای احراز هویت مقابل یک سرور FreeIPA کانفیگ خواهیم کرد. به محض اینکه Client تان کانفیگ شود شما قادر به مدیریت این خواهید بود که کدام یوزر و گروه ها امکان لاگین به ماشین را دارند. علاوه بر این شما قادر خواهید بود که تعریف کنید کدام یوزرها میتوانند از sudo استفاده کنند.


    پیشنیاز ها

    در این پست شما به موارد زیر نیاز خواهید داشت.
    • یک سرور CentOS 7 که روی آن نرم افزار FreeIPA Server نصب شده باشد.
    • یک سرور CentOS 7 دیگر که به عنوان FreeIPA Client استفاده میشود که میتوانید آنرا با کمک لینک زیر که شامل فایروال است راه اندازی کنید. به هر حال به این دلیل که ما از FreeIPA برای مدیریت کاربران استفاده میکنیم ضروری نیست که به صورت دستی یک کاربر sudo غیر root اضافه کنیم. شما به سادگی میتوانید این پست را تحت کاربر root پیاده سازی کنید.
    • رکوردهای DNS زیر را نیز برای سرورتان تعریف کنید.
    • یک A رکورد با نام سرورتان (به طور مثال : ipa-client.linux-zone.org) که به آدرس ip سرور شما اشاره میکند.
    • یک AAAA رکورد با نام سرورتان که به آدرس ip v6 سرورتان اشاره میکند،‌ که البته این مورد در صورتی است که شما بخواهید سرورتان از طریق ip v6 هم در دسترس باشد.
    • به صورت دلخواه یک ادیتور متنی مانند nano یا vi/vim را روی سیستم تان نصب کنید.

    در طول این مقاله ما از دامین ipa-client.example.com بعنوان یک دامین نمونه برای کلاینت ipa تان استفاده می کنیمو همجنین از ipa.example.com بعنوان سرور ipa تان استفاده خواهیم کرد.



    مرحله 1 : آماده سازی IPA Client

    قبل از اینکه نصب را شروع کنیم نیاز داریم که یکسری پیش نیازها را برای اطمینان از اینکه ماشین کلاینت تان برای اجرای FreeIPA Client آماده است، انجام دهیم. ما hostname سرور را تعریف خواهیم کرد، پکیج های سیستم را update میکنیم و همانطور که در پیش نیازات گفته شد رکوردهای DNS را نیز چک میکنیم.

    برای شروع hostname کلاینت تان نیاز خواهد داشت که با FQDN تان یکی باشد تا FreeIPA Client به درستی کار کند. ما در این مقاله از ipa-client.example.com استفاده خواهیم کرد.

    اگر این مورد یک سرور جدید است شما میتوانید به هنگامی که سرور را ایجاد میکنید hostname را تعریف کنید.

    در صورتی که سرور را از قبل داشتید شما میتوانید از دستور hostname استفاده کنید، دقت کنید از آنجایی که hostname یک پارامتر سیستمی است و نمیتوان آنرا توسط کاربران عادی تغییر داد، برای تغییر hostname یک سرور موجود شما نیاز به کاربر root خواهید داشت.
    کد PHP:
    # hostname ipa-client.example.com 
    اگر شما hostname سرور را با دستور hostname تغییر میدهد،‌ همچنین ایده خوبی است که آنرا به صورت دستی و از طریق فایل /etc/hostname تغییر دهید.
    کد PHP:
    # nano /etc/hostname 
    تنها یک خط در فایل موجود است که هاست نیم اصلی سرورتان را مشخص میکند.
    کد PHP:
    your_original_hostname 
    آنرا به FQDN خود تغییر دهید.
    کد PHP:
    ipa-client.example.com 
    سپس فایل را ذخیره و از آن خارج شوید.

    به محض اینکه hostname سرورتان به درستی تعریف شد، سیستم را update کنید.
    کد PHP:
    # yum update 
    در نهایت ما نیاز داریم که بررسی کنیم آیا نامهای DNS به درستی resolve میشوند. ما میتوانیم از دستور dig استفاده کنیم. در CentOS 7 ابزارهای DNS ی به صورت پیش فرض نصب نیستند و ما باید آنها را از پکیج bind-utils نصب کنیم.
    کد PHP:
    # yum install bind-utils 
    در ابتدا از dig برای بررسی A رکورد استفاده میکنیم.
    کد PHP:
    # dig +short ipa-client.example.com A 
    که باید your_server_ipv4 را برگرداند.

    اگر که روی سیستم تان ipv6 را فعال کرده باشید میتوانید به شیوه یکسانی رکورد AAAA را نیز تست کنید.
    کد PHP:
    # dig +short ipa-client.example.com AAAA 
    که باید your_server_ipv6 را برگرداند.

    همچنین میتوانیم revers lookup را نیز تست کنیم. در این تست میتوانیم بررسی کنیم که آیا از ip آدرس ها hostname ها resolve میشوند یا خیر.
    کد PHP:
    # dig +short -x your_server_ipv4
    # dig +short -x your_server_ipv6 
    هر دو دستور بالا باید ipa-client.example.com را برگرداند.

    اکنون که سرور آماده است ما میتوانیم پکیج FreeIPA کلاینت را نصب و کانفیگ کنیم.



    مرحله 2 : نصب FreeIPA Client

    در CentOS 7 پکیج FreeIPA کلاینت در ریپازیتوری پیش فرض موجود است.
    کد PHP:
    # yum install freeipa-client 
    سپس دستور نصب FreeIPA را اجرا کنید. این دستور یک اسکریپت را اجرا میکند که شما را برای کانفیگ FreeIPA به منظور authenticate شدن در مقابل سرور CentOS FreeIPA کمک میکند.
    کد PHP:
    # ipa-client-install --mkhomedir 
    آپشن —mkhomedir به FreeIPA میگوید که برای کاربران IPA زمانیکه برای اولین بار در ماشین لاگین میکنند، دایرکتوری های home را ایجاد کند. اگر چنین رفتاری را نیاز ندارید میتوانید این آپشن را حذف کنید.

    installer ابتدا از شما دامین IPA را میخواهد که هنگامیکه سرور را کانفیگ میکردید آنرا تعریف کرده اید.
    کد PHP:
    Provide the domain name of your IPA server (exexample.com): ipa.example.com 
    سپس شما نیاز خواهید داشت که domain name سرور IPA را وارد کنید که شبیه به URL است که شما برای دسترسی به اینترفیس گرافیکی تحت وب IPA استفاده میکنید. اگر شما پیش نیازات مربوط به مقاله راه اندازی FreeIPA Server را دنبال کنید متوجه خواهید شد که با IPA Domain یکسان است.
    کد PHP:
    Provide your IPA server name (exipa.example.com): ipa.example.com 
    نکته : سیستم های با سرورهای redundant IPA به احتمال زیاد IPA domain و IPA server name های متفاوتی خواهند داشت.

    با وجود تنها یک سرور مجزا، Failover کار نخواهد کرد. FreeIPA درباره این موضوع به شما هشدار خواهد داد و شما برای ادامه باید yes را وارد کنید.
    کد PHP:
    Autodiscovery of servers for failover cannot work with this configuration.
    If 
    you proceed with the installationservices will be configured to always access the discovered server for all operations and will not fail over to other servers in case of failure.
    Proceed with fixed values and no DNS discovery? [no]: yes 
    تایید کنید که همه گزینه ها درست باشند و سپس ادامه دهید.
    کد PHP:
    Continue to configure the system with these values? [no]: yes 
    سپس یک username ادمین وارد کنید. ما در اینجا از کاربر admin پیش فرض IPA استفاده خواهیم کرد که به هنگام نصب سرور ایجاد شده بود.
    کد PHP:
    User authorized to enroll computersadmin 
    درنهایت،‌ برای کاربر ادمین IPA پسورد وارد کنید. این پسورد نیز در طول کانفیگ FreeIPA Server تعریف شده است.

    بعد از اینکه پسورد را وارد کردید کلاینت FreeIPA سیستم را کانفیگ خواهد کرد. خط آخر از خروجی این است که : Client configuration complete که یک نصب موفقیت آمیز را نمایش میدهد.

    اکنون باید بررسی کنیم که آیا سیستم مان در اینترفیس وب IPA نمایش داده خواهد شد.



    مرحله 3 : بررسی احراز هویت

    به اینترفیس گرافیکی تحت وب IPA روی URL مربوطه : https://ipa.example.com مراجعه کنید با اکانت ادمین IPA که قبلا استفاده میکردید به آن لاگین کنید. باید صفحه زیر را مشاهده کنید.
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: freeipa-1.jpg مشاهده: 0 حجم: 48.8 کیلو بایت



    به تب Hosts بروید. در آنجا باید مشاهده کنید که سرور IPA تان و همچنین کلاینتی که کانفیگ کردید لیست شده باشد. روی قسمت مربوط به کلاینت IPA خود کلیک کنید که باید مروری بر هاست مورد نظر را برای شما نمایش دهد.

    از این صفحه شما میتوانید اطلاعاتی درباره ماشین کلاینت و مدیریت گروه ها و نقش های مربوط به این ماشین را وارد کنید.
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: freeipa-2.jpg مشاهده: 0 حجم: 70.5 کیلو بایت





    نکته : به صورت پیش فرض همه کاربران IPA میتوانند به همه ماشین های درون دامین IPA لاگین کنند.

    شما همچنین میتوانید با یک کاربر IPA از ترمینال لوکال خود به درون ماشین لاگین کنید.
    کد PHP:
    ssh admin@ipa-client.example.com 
    شما میتوانید با عنوان یک کاربر ipa به ماشین تان لاگین کنید.

    کاربران IPA دسترسی ابتدایی خواهند داشت اما sudo غیرفعال است که ما در مرحله بعد sudo را فعال خواهیم کرد.



    مرحله 4 : فعال کردن و بررسی قوانین SUDO (اختیاری)

    برای فعال کردن دسترسی Sudo ضروری نیست که فایل کانفیگ کلاینت را تغییر دهیم، به هر حال اگر بخواهید این کار را انجام دهید شما باید قوانین sudo را در اینترفیس گرافیکی IPA برای باز کردن دسترسی کانفیگ کنید.

    FreeIPA به شما این امکان را میدهد که مشخص کنید کدام user و group ها میتوانند از دستورات sudo روی کدام ماشین ها استفاده کنند. همچنین این امکان وجود دارد که دستورات مروبوط به یک یوزر را که با sudo اجرا میشود را محدود کنیم.

    در این مقاله،‌ ما اضافه کردن یک rule ساده که به group ادمین دسترسی کامل sudo را به همه ماشین ها میدهد آموزش خواهیم داد. دقت کنید که گروه ادمین به همراه گروه های دیگر که در زیر نمایش داده میشوند به صورت پیش فرض در FreeIPA وجود دارند.

    1 - از اینترفیس IPA روی Services و سپس sudo کلیک میکنیم. یک منوی dropdown باید نمایان شود.

    2 - در منوی dropdown روی sudo rules کلیک کنید سپس روی add کلیک کنید، سپس برای Rule خود در فیلد Rule name یک نام وارد کنید. در اینجا ما از admin استفاده میکنیم زیرا دسترسی sudo را میخواهیم برای گروه admin مجاز کنیم.

    3 - سپس روی add and edit کلیک کنید که برای شما لیست کامل آپشن های مربوط به rule را نمایش خواهد داد.

    4 - از منوی Who و User groups روی +add کلیک کنید. گروه admin را انتخاب و از کلید های جهت برای انتقال آن از Available به Prospective استفاده کنید.

    5 - از قسمت Acess this host گزینه Any host را انتخاب کنید و از قسمت Run Commands گزینه Any Command را انتخاب کنید. از قسمت Whom گزینه Anyone و Any Group را انتخاب کنید. اینجا جایی است که شما میتوانید دسترسی sudo ماشین ها را فعال کنید همچنین کامندهایی که میتوان با sudo اجرا کرد را محدود و کاربران مجاز را نیز تعریف نمایید.

    6 - در نهایت به بالای صفحه برگردید و روی Save کلیک کنید.


    اکنون rule شما باید فعال شده باشد. به هر حال ممکن است مقداری زمان طول بکشید تا اعمال شود و شما برای اعمال شدن قوانین sudo باید سرور sshd را restart کنید. برای این کار روی کلاینت IPA دستور systemctl restart sshd.service را اجرا کنید.

    به محض اینکه موارد بالا انجام شد،‌ زمان آن رسیده که دسترسی sudo روی ماشین کلاینت را بررسی کنید. از ماشین local خود تلاش کنید که به کلاینت تان با کاربر admin لاگین کنید. این کاربر به صورت پیش فرض در گروه admin قرار دارد.
    کد PHP:
    ssh admin@ipa-client.example.com 
    به محض اینکه شما لاگین شدید، یک دستور sudo اجرا کنید.
    کد PHP:
    sudo -
    اکنون باید prompt شما به root@ipa-client تغییر کند. به سادگی با تایپ کردن exit میتوانید از آن خارج شوید.

    اگر دسترسی sudo مجاز نبود، شما باید ماشین را reboot کنید و از درست کانفیگ شدن قانون sudo خود اطمینان حاصل کنید.


    نتیجه

    با کانفیگ کردن ماشین تان در مقابل FreeIPA شما میتوانید دسترسی user و group به سیستم تان را از اینترفیس وب IPA یا از طریق اینترفیس command line آن تعریف کنید. FreeIPA کاربردهای پیشرفته بسیاری در خود موجود دارد. اما برای تنظیمات ساده تر شما به آسانی میتوانید کاربران و host هایی اضافه کنید که یک سیستم احراز هویت متمرکز مستقیم را فراهم میآورند.

    FreeIPA یک ابزار احراز هویتی وسیع میباشد، و اقدامات شما بسته به بزرگی آن متفاوت است. برای اطلاعات بیشتر وب سایت FreeIPA را برای لیستی از داکیومنت ها مشاهده کنید.
    ویرایش توسط Habili : http://linux-zone.org/forums/member/5-habili در ساعت 03-06-2019, 11:22 AM
پردازش ...
X