مهندس کلان داده | عضو هیئت مدیره شرکت داده پایای سپهر | عضو هیئت مدیره شرکت مدیریت دارایی راسا
بررسی عملی امنیت زیرساخت های کلان داده - بخش چهارم
به روزرسانی: بخش پنجم این مستند منتشر شد. پس از مطالعه این بخش، به سراغ قسمت بعدی در این لینک بروید.
در بخش قبل به پیکربندی هدوپ با قابلیت دسترسپذیری یا High Availability و معرفی ابزار Apache Ranger پرداخته شد. در این بخش به ادامه مباحث مربوطه خواهیم پرداخت.
توجه: اگر بخش قبل را مطالعه نکردید، به این لینک مراجعه کنید.
نصب و پیکربندی Ranger Admin
پورتال مدیریت Ranger یعنی Ranger Admin پیش نیاز هایی برای نصب و راه اندازی دارد. لیست کامل نرم افزارها و ابزارهای پیش نیاز ضروری به شرح زیر می باشند:
بسته JDK جاوا (نسخه 1.7 به بالا) به منظور اجرای RangerAdmin.
نرم افزار Maven به منظور build کردن Apache Ranger.
پایتون (آخرین به روزرسانی نسخه 2، ترجیها 2.7.16) به منظور اجرای فرآیند نصب Ranger Admin.
یکی از پایگاه داده رابطه ای MySQL/MariaDB (نسخه 5.7 به بالا به غیر از نسخه 8)، اوراکل (نسخه نهایی)، Postgres (نسخه نهایی)، SQL Server (نسخه نهایی) جهت ذخیره سازی سیاست ها، اطلاعات کاربری و گزارشات.
کتابخانه Client پایگاه داده رابطه ای در جاوا به منظور وارد کردن داده های موردنیاز نصب در پایگاه داده (به طور مثال اگر از MySQL استفاده می کنید وجود MySQL Connector for Java نیاز است).
نرم افزار Kerberos (نسخه 5) به منظور اطمینان از عملکرد صحیح فرآیند احراز هویت و عدم سوء استفاده کاربران و جعل هویت.
پیش نیاز های غیرضروری نیز به شرح زیر می باشند:
فریم ورک Hadoop (نسخه 2.10.0 به بالا) جهت ذخیره سازی گزارشات بازرسی.
نرم افزار Solr (نسخه 5.2.1 به بالا) جهت ذخیره سازی گزارشات بازرسی و جستجوی آنها. نکته قابل توجه این است که جهت ذخیره سازی گزارشات بازرسی در نسخه های قدیمی می توانستیم از سه ابزار پایگاه داده، HDFS و Solr استفاده کنیم اما در نسخه نهایی Apache Ranger فقط امکان استفاده از Solr وجود دارد و استفاده از آن پیشنهاد شده است. فرآیند نصب Solr نیز در ادامه بررسی خواهیم کرد.
در ابتدا بسته Apache Ranger را از سایت رسمی دانلود می کنیم. نسخه موردنظر ما در این سند 2.0.0 می باشد. دقت کنید که تنها سورس کد این ابزار برای دانلود موجود است و می بایست توسط ابزار Maven آنرا build کنید. حجم فایل های نهایی Apache Ranger پس از build در حدود 1.5 گیگابایت خواهد بود. نرم افزار Maven را از سایت رسمی دانلود و استخراج کنید. سپس مسیر قرارگیری Maven را در فایل .bashrc به صورت زیر وارد کنید:
export MAVEN_HOME=/opt/maven
export PATH=$MAVEN_HOME/bin:$PATH
فایل را ذخیره و دستور زیر را جهت اعمال تنظیمات اجرا کنید:
source ~/.bashrcحالا با اجرای دستور mvn -version می بایست خروجی زیر نمایش یابد:
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T20:11:47+03:30)
Maven home: /opt/maven
Java version: 1.8.0_111, vendor: Oracle Corporation
Java home: /usr/lib/jvm/jdk1.8.0_111/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-91-generic", arch: "amd64", family: "unix"
به همین صورت می تواند بسته jdk جاوا را نیز نصب کنید. با این تفاوت که در فایل .bashrc مقدار متغیر را برابر با JAVA_HOME قرار دهید.
پس از انجام اینکار برای build کردن Apache Ranger با مراجعه به پوشه استخراج شده، دستور زیر را اجرا کنید:
mvn clean compile package assembly:assembly installپس از انجام موفقیت آمیز دستور بالا، در پوشه target در همان مسیر فایل های فشرده مربوط به ابزارهای Apache Ranger با پسوند tar.gz را که در زیر لیست شده اند مشاهده خواهید کرد.
ranger-<version>-admin.tar.gz
ranger-<version>-atlas-plugin.tar.gz
ranger-<version>-hbase-plugin.tar.gz
ranger-<version>-hdfs-plugin.tar.gz
ranger-<version>-hive-plugin.tar.gz
ranger-<version>-kafka-plugin.tar.gz
ranger-<version>-kms.tar.gz
ranger-<version>-knox-plugin.tar.gz
ranger-<version>-migration-util.tar.gz
ranger-<version>-ranger-tools.tar.gz
ranger-<version>-solr-plugin.tar.gz
ranger-<version>-sqoop-plugin.tar.gz
ranger-<version>-src.tar.gz
ranger-<version>-storm-plugin.tar.gz
ranger-<version>-tagsync.tar.gz
ranger-<version>-usersync.tar.gz
ranger-<version>-yarn-plugin.tar.gz
ranger-<version>-kylin-plugin.tar.gz
ranger-<version>-elasticsearch-plugin.tar.gz
این فایل ها بسته نصب ابزارها و افزونه های Ranger می باشند. پیش از کپی کردن این فایل ها برای استفاده، نیاز است تا کاربر اصلی مربوط به Apache Ranger را بسازید.
با اجرای دستور زیر کاربری به نام ranger می سازیم و رمز عبور دلخواه خود را برای آن تعریف می کنیم. این کاربر مالک و اجراکننده سرویس های اصلی متعلق به Apache Ranger می باشد:
sudo useradd rangersudo passwd rangerبرای نصب Ranger Admin به بسته ranger-admin.tar.gz نیاز داریم. ما به دلخواه ابزارهای مرتبط با Ranger را در مسیر /opt ذخیره می کنیم. فایل مربوطه با دستور زیر در مسیر /opt کپی و استخراج کنید:
sudo cp ranger-admin.tar.gz /opt
cd /opt
sudo tar xvf ranger-admin.tar.gz
sudo mv ranger-admin-2.0.0 ranger
sudo chown -R ranger:ranger /opt/rangerدر خط شماره 1 فایل بسته Ranger Admin را به مسیر /opt کپی کردیم. در خط شماره 2 به پوشه /opt وارد می شویم و در خط 3 بسته را استخراج می کنیم. سپس در خط شماره 4 نام پوشه را به ranger تغییر نام و در خط آخر مالک پوشه موردنظر را به کاربر ranger تغییر می دهیم.
در این مرحله پوشه مربوط به Ranger Admin آماده نصب است اما قبل از شروع فرآیند تنظیم و نصب می بایست نرم افزار های موردنیاز را به صورت کامل نصب نماییم.
برای ذخیره سازی تنظیمات مربوط به Ranger Admin می بایست یکی از پایگاه داده رابطه ای برروی یکی از سرورها موجود باشد. در این سند ما از پایگاه داده MariaDB استفاده می کنیم. برای نصب MariaDB از دستور زیر استفاده می کنیم:
sudo yum install mariadb-server mariadb-libs mariadbپس از نصب موفقیت آمیز آن، سرویس MariaDB را راه اندازی می کنیم. به صورت زیر:
sudo systemctl start mariadbسپس سرویس مربوط به MariaDB را جهت اجرای خودکار در هنگام راه اندازی سیستم عامل به صورت زیر تنظیم می کنیم:
sudo systemctl enable mariadbپس از اینکار می بایست نصب MariaDB را تکمیل کنیم. در این مرحله رمزعبور دلخواه مربوط به کاربر root سوال می شود که از اهمیت بالایی برخوردار است. این رمزعبور را برای استفاده در مراحل بعدی به خاطر بسپارید. برای اینکار دستور زیر را اجرا و فرآیند تکمیل نصب را ادامه دهید:
sudo mysql_secure_installationدر مرحله بعد می بایست از طریق دستور زیر به کنسول مربوط به پایگاه داده MariaDB وارد شوید:
mysql -u root -pبا اجرای دستور بالا رمز عبوری که در هنگام نصب وارد کرده اید را وارد کنید. پس از اینکار صفحه کنسول مربوط به MariaDB به صورت زیر اجرا می شود:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 410
Server version: 5.5.64-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
Ranger Admin جهت تعامل با MariaDB میبایست از کاربری که از قبل تعریف شده است استفاده کند. با استفاده از دستورات زیر کاربری به نام rangerdba در MariaDB می سازیم و دسترسی های لازم را برای آن تنظیم می کنیم. به صورت زیر:
CREATE USER 'rangerdba'@'localhost' IDENTIFIED BY 'rangerdba';
GRANT ALL PRIVILEGES ON . TO 'rangerdba'@'localhost';
CREATE USER 'rangerdba'@'%' IDENTIFIED BY 'rangerdba';
GRANT ALL PRIVILEGES ON . TO 'rangerdba'@'%';
GRANT ALL PRIVILEGES ON . TO 'rangerdba'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON . TO 'rangerdba'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;در خط شماره 1 کاربری به نام rangerdba و رمزعبوری به همین نام برروی میزبان localhost می سازیم. در خط شماره 2 تمامی دسترسی های موردنیاز برروی پایگاه داده ها را به این کاربر می دهیم. همچنین در خط شماره 3 همان کاربر را برروی میزبان های دیگر نیز تعریف میکنیم. در خطوط شماره 4 تا 6 دسترسی های کامل را به کاربر موردنظر داده و در نهایت در خط شماره 7 دسترسی ها را تازه گردانی می کنیم.
در مرحله بعد با دستور زیر، پایگاه داده مربوط به Ranger Admin که ranger نام دارد را ایجاد می کنیم:
create database ranger;نصب و پیکربندی MariaDB به پایان می رسد. در مرحله بعد به سراغ نصب Solr جهت ذخیره سازی گزارشات دسترسی می رویم.
در این سند، برای ذخیره سازی گزارشات بازرسی از Solr استفاده خواهیم کرد. Solr یک سکوی جستجوی توزیع شده قدرتمند است که با استفاده از ابزار Apache Lucene امکاناتی مثل جستجوی Full-text، اندیس گزاری توزیع شده و... را فراهم می کند. Solr را می توان به صورت Standalone و Cloud راه اندازی نمود. در این پیکربندی Solr را به صورت Standalone راه اندازی خواهیم کرد. اگرچه بخواهیم Solr را در محیط تولید یا Production استفاده کنیم پیشنهاد می شود آنرا در حالت Cloud راه اندازی کنیم. این ابزار نقطه حساس کارایی بخش بازرسی Ranger Admin می باشد. Solr در استفاده از CPU، رم و دیسک پر مصرف است و باید میزبان قابل توجهی از این منابع در اختیار او باشد. اگر نرخ دسترسی ها در محیط شما زیاد است، پیشنهاد شده است که حجم دیسکی برابر با 1 ترابایت را در اختیار Solr قرار دهید. همچنین هرچقدر رم بالاتری به این ابزار تخصیص دهید کارایی مناسب تری خواهد داشت. مقدار 32 گیگابایت رم پیشنهاد شده است.
برای نصب این ابزار نیاز است که بسته اجرایی Solr را از سایت رسمی آن دانلود نمایید و پس از آن در مسیر /opt استخراج نمایید. اگرچه ابزاری در Ranger Admin وجود دارد که می تواند Solr را به صورت اتوماتیک دانلود و تنظیم نماید. پیشنهاد می شود از این روش استفاده نکنید و به صورت دستی این کار را انجام دهید. در این مرحله فرض می شود که بسته Solr در مسیر /opt/solr وجود دارد. اما آنرا راه اندازی و پیکربندی نمی کنیم. با دستور زیر کاربری به نام solr بسازید و مالک این پوشه را به این کاربر تغییر دهید.
sudo useradd solr
sudo passwd solr
sudo chown -R solr:hadoop /opt/solrبه دلیل آنکه در بسته Ranger Admin ابزاری وجود دارد که یک Core برروی Solr می سازد که Ranger Admin از آن برای ذخیره سازی گزارشات بازرسی و جستجوی آنها استفاده می کند نیازی به پیکربندی و نصب آن نیست. Core در واقع یک Instance از اندیس Lucene است که برای انجام عملیات ذخیره سازی و اندیس گزاری از آن استفاده می شود.
برای نصب این Core به مسیر /opt/ranger/ contrib/solr_for_audit_setup بروید و کاربر جاری را با دستور زیر به ranger تغییر دهید. زیرا که مالک این بسته کاربر ranger می باشد.
su rangerسپس فایل install.properties را با یکی از ویرایشگرهای متنی برای ویرایش باز کنید و مقادیر زیر را در این فایل تغییر دهید:
مقدار JAVA_HOME را برابر با مسیر نصب شده JDK قرار دهید.
مقدار SOLR_USER و SOLR_GROUP را به ترتیب برابر با solr و solr قرار دهید.
مقدار MAX_AUDIT_RETENTION_DAYS تعیین می کند که گزارشات بازرسی تا چند روز نگه داری شود. این مقدار به صورت پیش فرض برابر با 90 روز است که مناسب نیست. به دلخواه این مقدار را تغییر دهید.
مقدار SOLR_INSTALL_FOLDER را برابر با مسیر نصب شده Solr یعنی /opt/solr قرار دهید.
این تنظیمات دارای مقادیر دیگری نیز می باشد که در این قسمت به آنها نیاز نخواهیم داشت. پس از انجام مراحل بالا دستور زیر را جهت نصب Core اجرا کنید:
sudo ./setup.shپس از اجرای موفقیت آمیز عملیات نصب، مسیر نصب شده Solr که می بایست اجرا شود /opt/solr/ranger_audit_server خواهد بود. با تغییر کاربر جاری به solr و مراجعه به پوشه scripts دستور زیر را جهت اجرای پردازه Solr مربوط به Core نصب شده اجرا نمایید:
./start_solr.shبا اجرای موفقیت آمیز دستور بالا با مراجعه به آدرس http://masternode:6083 صفحه اصلی Core مربوط به Ranger را می توانید مشاهده کنید. این آدرس را در هنگام اعمال تنظیمات اصلی Ranger Admin به خاطر داشته باشید.
قبل از پیکربندی تنظیمات اصلی Ranger Admin می بایست Principal های مورد استفاده Ranger Admin را در Kadmin بسازیم و فایل کلید آنها را در مسیر قابل دسترس برای کاربر ranger قرار دهیم. به ترتیب دستورات زیر را در Kadmin اجرا می کنیم:
addprinc -randkey rangeradmin
addprinc -randkey rangerlookup
addprinc -randkey rangerusersync
addprinc -randkey rangertagsync
xst -kt /home/hdfs/rangeradmin.keytab rangeradmin/masternode
xst -kt /home/hdfs/rangerlookup.keytab rangerlookup/masternode
xst -kt /home/hdfs/rangerusersync.keytab rangerusersync/masternode
xst -kt /home/hdfs/rangertagsync.keytab rangertagsync/masternode
xst -kt /home/hdfs/spnego.service.keytab HTTP/masternode
exitفایل کلیدهای ساخته شده در مسیر خصوصی کاربر hdfs ذخیره خواهند شد. علت اینکار این فایل کلید ها را می بایست در مسیر عمومی دلخواه منتقل و مالک آنرا به کاربر ranger تغییر و سطح دسترسی استاندارد را تنظیم نمایید. به صورت زیر:
sudo mkdir -p /etc/security/keytabs
sudo mv /home/hdfs/*.keytab /etc/security/keytabs
sudo chown ranger:ranger /etc/security/keytabs/*.keytabهمچنین نیاز است که پایتون برروی ماشینی که قصد نصب Ranger Admin برروی آن را داریم موجود باشد. برای نصب پایتون نسخه 2.7.16 را از سایت رسمی آن دانلود نمایید و بسته موردنظر را استخراج نمایید. سپس دستورات زیر را در کنسول برای کامپایل وارد کنید(برای انجام عملیات موردنظر می بایست از نصب بسته gcc و make مطمئن شوید):
cd Python-2.7.16
./configure
make
sudo make installمورد دیگر از نیازمندی های ضروری، وجود کتابخانه Client جاوا است. به دلیل اینکه در این نصب از MySQL استفاده می کنیم کتابخانه mysql-connector-java را دانلود کرده و در مسیر /opt قرار میدهیم.
در مرحله بعد به پیکربندی تنظیمات اصلی Ranger Admin می پردازیم. پیش از آن کاربر جاری را به ranger تغییر دهید.
در مسیر /opt/ranger فایل install.properties را با یکی از ویرایشگرهای متنی برای ویرایش باز کنید و مقادیر زیر را تنظیم کنید:
مقدار PYTHON_COMMAND_INVOKER به صورت پیش فرض python در نظر گرفته شده است. اگر در متغیر محیطی PATH مسیر کامل python موجود باشد نیازی به تغییر این مقدار نیست. اما اگر موجود نیست این مقدار را با مسیر کامل مربوط به پایتون تغییر دهید.
مقدار DB_FLAVOR را برابر با نام پایگاه داده رابطه ای مدنظر خود قرار دهید. به صورت پیش فرض برروی MYSQL تنظیم شده است.
مقدار SQL_CONNECTOR_JAR را برابر با مسیر قرارگیری کتابخانه Client جاوا مربوط به پایگاه داده موردنظر خود قرار دهید.
مقادیر db_root_user، db_root_password و db_host را به ترتیب برابر با نام کاربر root، رمز عبور کاربر root و نام میزبانی که برروی آن MySQL نصب شده است قرار دهید.
مقادیر db_name، db_user و db_password را به ترتیب برابر با نام پایگاه داده ساخته شده یعنی ranger، نام کاربر پایگاه داده یعنی rangerdba و رمزعبور آن قرار دهید.
مقدار audit_store به صورت پیش فرض برروی solr تنظیم شده است و در نسخه نهایی تنها می توان از آن استفاده کرد. از این مقدار بدون تغییر عبور کنید.
مقادیر audit_solr_urls، audit_solr_user و audit_solr_password را به ترتیب برابر با آدرس Core ساخته شده برروی Solr(در اینجا http://masternode:6083/solr/ranger_audits)، نام کاربر سرویس Solr و رمز عبور آن قرار دهید. در صورت استفاده از حالت Cloud می توانید مقدار audit_solr_zookeepers را تنظیم کنید.
مقدار policymgr_external_url را برابر با نام میزبان و شماره پورت دلخواه خود(به صورت پیش فرض 6080) قرار دهید.
مقادیر unix_user، unix_user_pwd و unix_group را به ترتیب برابر با کاربر مالک پوشه ranger، رمزعبور و گروه کاربری آن قرار دهید.
مقدار spnego_principal را برابر با Principal کامل مربوط به HTTP قرار دهید(به طور مثال HTTP/masternode@TEST.COM.
مقدار spnego_keytab را برابر با آدرس فایل کلید Principal بالا قرار دهید(آدرس کامل فایل کلید ساخته شده با نام spnego.service.keytab را در اینجا وارد نمایید).
مقدار cookie_domain را برابر با نام میزبان Ranger Admin قرار دهید(در اینجا masternode).
مقدار admin_principal را برابر با Principal مربوط به rangeradmin(به طور مثال rangeradmin/masternode@TEST.COM) قرار دهید.
مقدار admin_keytab را برابر با آدرس فایل کلید Principal قبلی قرار دهید.
مقدار lookup_principal را برابر با Principal مربوط به کاربر rangerlookup قرار دهید(به طور مثال rangerlookup/masternode@TEST.COM).
مقدار lookup_keytab را برابر با آدرس فایل کلید Principal قبلی قرار دهید.
مقدار hadoop_conf را برابر با آدرس قرارگیری تنظیمات مربوط به هدوپ قرار دهید(به طور مثال /usr/share/hadoop/etc/hadoop).
پس از انجام پیکربندی بالا، دستور زیر را جهت شروع فرآیند نصب Ranger Admin اجرا کنید:
sudo ./setup.shبا اجرای موفقیت آمیز دستور بالا، پیغام زیر در خروجی چاپ می شود:
Installation of Ranger PolicyManager Web Application is completed.
برای راه اندازی سرویس Ranger Admin دستور زیر را اجرا کنید:
ranger-admin startبا مراجعه به آدرس http://masternode:6080 در مرورگر، صفحه ورود مربوط به Ranger Admin را می توانید مشاهده کنید. لازم به ذکر است کلمه عبور و رمز عبور پیش فرض برای ورود به این محیط admin و admin است که نیاز است در هنگام استفاده در محیط عملیاتی تغییر دهید.
نصب و پیکربندی Ranger UserSync
برای نصب و پیکربندی Ranger UserSync می بایست بسته فشرده مربوط به آن به نام ranger-usersync.tar.gz را در مسیر دلخواه(در اینجا /opt) کپی و استخراج نمایید. پیش از انجام پیکربندی موردنیاز این ابزار، نیاز است که در مسیر /etc/ranger/usersync/conf/cert/ کلید رمز مربوط به این سرویس توسط ابزار Keytool در جاوا تولید شود. این ابزار در LDAP مورد استفاده قرار می گرد اما برای نصب این ابزار ضروری است. برای اینکار، دستورات زیر را اجرا نمایید:
sudo mkdir -p /etc/ranger/usersync/conf/cert/
sudo keytool -genkeypair -keyalg RSA -alias selfsigned -keystore /etc/ranger/usersync/conf/cert/unixauthservice.jks -keypass UnIx529p -storepass UnIx529p -validity 3600 -keysize 2048 -dname 'cn=unixauthservice,ou=authenticator,o=mycompany,c=US'
sudo chown -R ranger:ranger /etc/ranger/usersync/conf/cert
sudo chmod -R 400 /etc/ranger/usersync/conf/certدر خط شماره 1 پوشه استاندارد مربوط به فایل کلید رمز ساخته می شود. در خط شماره 2، با استفاده از ابزار keytool در جاوا فایل کلید را ایجاد می کنیم. در خطوط شماره 3 و 4 نیز مالک و دسترسی پوشه محتوی فایل کلید رمز را تغییر می دهیم.
پس از انجام اینکار با مراجعه به پوشه آن، فایل پیکربندی install.properties را با یکی از ویرایشگرهای متنی برای ویرایش باز کنید و مقادیر زیر را مقداردهی کنید:
مقدار POLICY_MGR_URL را برابر با آدرس URL مربوط به Ranger Admin قرار دهید(به طور مثال http://masternode:6080).
مقدار SYNC_SOURCE را برابر با یکی از دو مقدار unix و ldap قرار دهید. این مقدار به منظور انتخاب منبع همسان سازی کاربری مورد استفاده قرار می گیرد. اگر برروی مقدار unix قرار گیرد، منبع همسان سازی کاربران سیستم عامل خواهد بود و اگر برروی ldap قرار گیرد منبع همسان سازی LDAP خواهد بود. تنها این دو مقدار در Ranger پشتیبانی می شوند.
مقدار SYNC_INTERVAL برای تعیین دوره زمانی همسان سازی به دقیقه به کار می رود. این مقدار اگر مقداردهی نشود، به صورت پیش فرض در منبع unix 5 دقیقه در نظر گرفته می شود و در منبع LDAP 360 دقیقه تعیین می شود.
مقادیر unix_user و unix_group را به ترتیب برابر با کاربر مالک سرویس یعنی ranger و گروه کاربری آن قرار دهید.
مقدار usersync_principal را برابر با Principal مربوط به rangerusersync قرار دهید(به طور مثال usersync/masternode@TEST.COM).
مقدار usersync_keytab را برابر با آدرس فایل کلید Principal قبلی قرار دهید.
مقدار hadoop_conf را برابر با آدرس قرارگیری تنظیمات مربوط به هدوپ قرار دهید(به طور مثال /usr/share/hadoop/etc/hadoop).
پس از انجام تنظیمات بالا، دستور زیر را جهت نصب Ranger UserSync اجرا کنید:
sudo ./setup.shپس از نصب موفقیت آمیز، برای اجرای سرویس از دستور زیر استفاده کنید:
./ranger-usersync-services.sh startنصب و راه اندازی افزونه هدوپ(سرویس HDFS و YARN) در Ranger Admin
برای نصب افزونه مربوط به سرویس های اصلی هدوپ می بایست بسته فشرده مربوط به آن افزونه را به مسیر مناسب منتقل و سپس استخراج کنید. برای سرویس HDFS به افزونه ranger-hdfs-plugin.tar.gz و برای سرویس YARN به افزونه ranger-yarn-plugin.tar.gz نیاز داریم. این فایل ها را از محل ذکر شده در هنگام نصب Ranger Admin به مسیر دلخواه(در اینجا /opt منتقل و سپس آنرا استخراج نمایید. لازم به ذکر است نیاز است که مالک پوشه استخراج شده را به ranger تغییر دهید. پس از انجام اینکار، فایل تنظیمات install.properties در پوشه افزونه را توسط یکی از ویرایشگرهای متنی برای ویرایش باز کنید و مقادیر زیر را مقداردهی کنید(مقادیر مربوط به تنظیمات پیش از نصب افزونه ها تقریبا مشابه یکدیگر هستند):
مقدار POLICY_MGR_URL را برابر با آدرس URL مربوط به Ranger Admin قرار دهید(به طور مثال http://masternode:6080).
مقدار REPOSITORY_NAME را برابر با نام دلخواه سرویس موردنظر که در Ranger Admin خواهید ساخت قرار دهید. دقت نمایید که پس از نصب افزونه نیاز است که سرویس موردنظر در بخش Access Manager اضافه گردد. این سرویس دارای نامی است که می بایست با نامی که در اینجا مقداردهی کرده اید برابر باشد).
مقدار COMPONENT_INSTALL_DIR_NAME را برابر با مسیر اصلی هدوپ مقدار دهی کنید.
مقدار XAAUDIT.SOLR.ENABLE را جهت فعال سازی امکان ذخیره سازی گزارشات بازرسی در Solr فعال و برابر با true قرار دهید.
پس از فعال سازی مقدار قبلی، مقدار XAAUDIT.SOLR.URL را برابر با آدرس کامل Core مربوط به Ranger(به طور مثال http://masternode:6083/solr/ranger_audits قرار دهید).
مقدار XAAUDIT.SOLR.USER و XAAUDIT.SOLR.PASSWORD را به ترتیب برابر با نام کاربر مالک Solr و رمزعبور آن قرار دهید.
در صورت استفاده از حالت Cloud در Solr، مقدار XAAUDIT.SOLR.ZOOKEEPER را مقداردهی کنید.
مقدار XAAUDIT.SOLR.IS_ENABLED را جهت فعال سازی Solr مجددا برابر با true قرار دهید.
مقدار XAAUDIT.SOLR.SOLR_URL را برابر با آدرس کامل Core مربوط به Ranger(به طور مثال http://masternode:6083/solr/ranger_audits قرار دهید).
مقادیر CUSTOM_USER و CUSTOM_GROUP را به ترتیب برابر با کاربر مالک سرویس و گروه کاربر آن قرار دهید.
سپس برای نصب افزونه دستور زیر را وارد نمایید:
sudo ./enable-hdfs-plugin.shپس از فعال سازی افزونه، می بایست سرویس دوباره راه اندازی شود. قبل از اینکار می بایست به مسیر تنظیمات هدوپ بروید و فایل ranger-hdfs-security.xml را با یکی از ویرایشگرهای متنی برای ویرایش باز کنید. در انتهای این فایل مقدار زیر را برابر با false قرار دهید:
<property>
<name>xasecure.add-hadoop-authorization</name>
<value>false</value>
</property>
با تغییر مقدار بالا، در واقع به Ranger گفته اید که لایه امنیتی ACL هدوپ را به فریم ورک Ranger اضافه نکن. علت این است که Apache Ranger قابلیت مدیریت و کنترل مرکزی امنیت زیرساخت کلان داده را بر عهده دارد و تصمیمات دسترسی می بایست فقط از طریق Ranger انجام شود. اگر این گزینه فعال باشد، ایجاد و اعمال هرگونه سیاست در Ranger مبتنی بر دسترسی های ACL موجود برروی HDFS خواهد بود. به این معنی که لایه امنیتی ACL در اولویت بالاتری نسبت به Ranger قرار خواهد گرفت. فرض کنید در Ranger دسترسی کاربر ali را به پوشه x برروی HDFS محدود می کنید اما سطح دسترسی این پوشه به ali اجازه دسترسی را داده است. در این سناریو، اولویت با سطح دسترسی هدوپ است و اجازه دسترسی به ali داده می شود و Ranger نقشی در سیاست گزاری نخواهد داشت.
فایل بالا را ذخیره کنید و برای اعمال فعال سازی افزونه برروی سرویس HDFS، یکبار هدوپ را مجددا راه اندازی نمایید. به صورت کلی در پس از نصب افزونه مربوط به هر سرویس، برای اعمال کارکرد می بایست یکبار سرویس دوباره راه اندازی شود.
فرآیند نصب مربوط به YARN نیز مشابه افزونه HDFS می باشد.
ادامه دارد ...
به روزرسانی: بخش پنجم این مستند منتشر شد. پس از مطالعه این بخش، به سراغ قسمت بعدی در این لینک بروید.
با من در بخش های دیگر این مستند همراه باشید و در صورت وجود ابهام و سوال و ارتباط با من می توانید با ایمیل من mobinranjbar1 روی جیمیل و یا لینکدین من مکاتبه کنید.
مطلبی دیگر از این انتشارات
بررسی عملی امنیت زیرساخت های کلان داده - مقدمه و بخش اول
مطلبی دیگر از این انتشارات
بررسی عملی امنیت زیرساخت های کلان داده - بخش پنجم
مطلبی دیگر از این انتشارات
بررسی عملی امنیت زیرساخت های کلان داده - بخش سوم