Wazuh Installation

প্রতিনিয়ত সাইবার অ্যটাকের সংখ্যা বৃদ্ধির ফলে আমাদের নিরাপত্তা ব্যবস্থার উন্নতির প্রয়োজনীয়তা উপলব্ধি করতে পারি। বর্তমান সাইবার ওয়ার্ল্ডে নিরাপদ থাকতে প্রয়োজন ‍সঠিক নিরাপত্তা ব্যবস্থা এবং মনিটরিং সিসটেম। একটি ইনফ্রাস্ট্রাকচার এর সিকিউরিটি মনিটরিং গুরুত্তপূর্ণ একটি কাজ। আমরা একটি Open-Source SIEM Solution ব্যবহার করে Log Analysis করব এবং এর Installation Process দেখব।

এ পর্বে আমরা শুধু Wazuh ইনস্টলেশন স্ট্রাকচার সম্পর্কে জানব, কিভাবে কাজ করে, কিভাবে ইন্সটল করতে হয় ইত্যাদি বিষয়ে ধারণা নিবো।

Wazuh হলো OSSEC এর SIEM Solution based একটি Opensource SIEM Solution. পুরো SIEM Solution এ Wazuh-manager, Wazuh-agent, Filebeat, Kibana, Elasticsearch এর ব্যবহার করা হয়। এ সার্ভিসগুলো প্রতিটি আলাদা আলাদাভাবে ইনস্টল করে একটির সাথে আরেকটির সমন্বয় করতে হয়।

আমরা সকল সার্ভিস একটি মেশিনে ইনস্টল করবো এবং একটি এজেন্ট অন্য একটি মেশিনে ইনস্টল করবো।

এই প্রসেসটির নাম অল ইন ওয়ান ডিপ্লয়মেন্ট। আমরা ইনস্টলেশন এর জন্য  Wazuh এর অফিসিয়াল ডকুমেন্ট অনুসরণ করবো। সম্পুর্ণ ইন্সটলেশনের জন্য ভার্চুয়ালবক্স ব্যবহার করব। উপরে ডিজাইন আর্কিটেকচার দেখে বোঝা যাচ্ছে, সকল সার্ভিস ইন্সটলেশনের জন্য একটি মাত্র অপারেটিং সিস্টেম ব্যবহার করা হবে। সম্পূর্ণ প্রসেসটি আমরা ভার্চুয়ালবক্সে সিমুলেট করব। যদিও হোস্ট মেশিনে এক সাথে সকল সার্ভিস ইন্সটল করব, তদুপরি এর মাঝে কিছু প্রসেস ধাপে ধাপে সম্পন্ন হয়ে থাকে। অর্থাৎ, এজেন্ট থেকে লগ কালেকশন করে Wazuh-Manager এর কাছে লগ পাঠানো এবং লগ Visualization এর মাঝে যে প্রসেসগুলো হয় তার একটি সামারি তুলে ধরছি।

Wazuh-Agent থেকে লগ নিয়ে Wazuh-manager এ পাঠানো হয়, Wazuh-manager এ সেট করা রুলস অনুযায়ী লগ গুলো প্রসেস করে Filebeat এর সাহায্যে Elasticsearch এর কাছে পাঠানো হয়। Elasticsearch এখানে Database এর মত কাজ করে। Elasticsearch লগ গুলো Kibana তে পাঠায়, এর পর Kibana এর মাধ্যমে লগ গুলো ড্যাশবোর্ড এ বোধগম্যভাবে উপস্থাপন করা হয়।

সম্পূর্ণ প্রোসেসটি সিমুলেট করতে Operating System হিসেবে Ubuntu ব্যবহার করব।

Ubuntu আমরা হোস্ট মেশিন হিসেবে ব্যবহার করব। ভার্চুয়াল বক্সে OS টিতে Minimum 2 GB RAM, 1 টি CPU দিতে হবে, যেহেতু সেখানে সকল Service Install হবে। Network Adapter এ Bridge Adapter (Host/main OS এর সাথে Communicate করতে চাইলে) অথবা Nat-Network রেখে, Allow VMs অথবা Allow All করতে হবে।

এই ধাপে আমরা শুধু হোস্ট মেশিন রেডি করব। অর্থাৎ Wazuh-Manager, Filebeat, Elasticsearch, Kibana এগুলো install করে হোস্ট মেশিন রেডি করব।

ইন্সটলেশনের প্রথম ধাপে, Ubuntu মেশিন আপডেট করে নিতে হবে, এর পর সিরিয়াল অনুযায়ী একটার পর একটা Command দিয়ে যেতে হবে।

Command গুলো Run করার সময় Administrative privilege প্রয়োজন হবে।

Installation এর শুরুতে প্যাকেজগুলো Install করে নিতে হবে

apt-get install apt-transport-https zip unzip lsb-release curl gnupg

১। Install GPG Key

curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg –no-default-keyring –keyring gnupg-ring:/usr/share/keyrings/elasticsearch.gpg –import && chmod 644 /usr/share/keyrings/elasticsearch.gpg

2. Repo Add করব।

echo “deb [signed-by=/usr/share/keyrings/elasticsearch.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main” | tee /etc/apt/sources.list.d/elastic-7.x.list

৩। আপডেট করে নিব।

apt-get update

আমাদের মেশিন এখন Elasticsearch Install এর জন্য প্রস্তুত।

এখন Elasticsearch Install এবং Configure করব।

১। Elasticsearch পাকেজগুলো ইন্সটল করে নিই।

apt-get install elasticsearch=7.17.9

২। Configuration file download করি।

curl -so /etc/elasticsearch/elasticsearch.yml https://packages.wazuh.com/4.4/tpl/elastic-basic/elasticsearch_all_in_one.yml

এই অংশে সার্টিফিকেট Create করা এবং Deploy করা দেখব

১। সার্টিফিকেট তৈরীর জন্য Configuration ফাইল Download করি।

curl -so /usr/share/elasticsearch/instances.yml https://packages.wazuh.com/4.4/tpl/elastic-basic/instances_aio.yml

২। নিচের কমান্ড রান করলে elasticsearch-certutil tool এর মাধ্যমে সার্টিফিকেট তৈরী হবে।

/usr/share/elasticsearch/bin/elasticsearch-certutil cert ca –pem –in instances.yml –keep-ca-key –out ~/certs.zip

৩। সার্টিফিকেট রেডি! এখন সার্টিফিকেট এর zip ফাইল unzip করতে হবে।

unzip ~/certs.zip -d ~/certs

৪। এই ধাপে Elasticsearch এর সার্টিফিকেটের জন্য একটি directory তৈরী করব এবং সার্টিফিকেটগুলো Directory তে রাখব।

mkdir /etc/elasticsearch/certs/ca -p

cp -R ~/certs/ca/ ~/certs/elasticsearch/* /etc/elasticsearch/certs/

chown -R elasticsearch: /etc/elasticsearch/certs

chmod -R 500 /etc/elasticsearch/certs

chmod 400 /etc/elasticsearch/certs/ca/ca.* /etc/elasticsearch/certs/elasticsearch.*

rm -rf ~/certs/ ~/certs.zip

৫। এখন Elasticsearch service enable করব এবং service start করব।

systemctl daemon-reload

systemctl enable elasticsearch

systemctl start elasticsearch

৬। Elasticsearch এর সকল User এবং প্রয়োজনীয় রুলসের জন্য credential তৈরী করব।

/usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto

এই কমান্ডটি নিচের মত আউটপুট দিবে, এগুলো সেভ করে রাখতে হবে, পরবর্তীতে ব্যবহার করার জন্য।

Changed password for user apm_system

PASSWORD apm_system = 4w3qt8Q7fC4bs956W84r

Changed password for user kibana_system

PASSWORD kibana_system = CUANVQIaChV6P6U86Ups

Changed password for user kibana

PASSWORD kibana = CUANVQIaChV6P6U86Ups

Changed password for user logstash_system

PASSWORD logstash_system = gz3lCnmLZWsZUQ6uw0F3

Changed password for user beats_system

PASSWORD beats_system = H2Qfc1UUqCvxYSfJcoR2

Changed password for user remote_monitoring_user

PASSWORD remote_monitoring_user = AwbIMfrafL1aM1GKrMQc

Changed password for user elastic

PASSWORD elastic = dQYzrlwVZPhdKANPlHOB

এখন চেক করা যেতে পারে, সার্ভিসগুলো ঠিকভাবে ইন্সটল হলো কি না।

[<passএর স্থানে সার্ভিস গুলোর Password দিতে হবে, যেগুলো একটু আগে আমরা কপি করে রাখলাম (আপনার password আপনি সেভ করে রেখেছেন)]

elastic
curl -XGET -u -k

remote monitoring user

curl -XGET -u -k

beast system

curl -XGET -u -k

logsthash system

curl -XGET -u  -k

kibana

curl -XGET -u -k

kibana system

curl -XGET -u -k

apm system

curl -XGET -u -k

উপরক্ত কমান্ড দিলে সার্ভিসগুলো চালু থাকলে এমন আউটপুট আসবে।

root@nayem-VirtualBox:/home/nayem# curl -XGET https://localhost:9200 -u elastic:dQYzrlwVZPhdKANPlHOB -k
{

  “name” : “elasticsearch”,

  “cluster_name” : “elasticsearch”,

  “cluster_uuid” : “QoGKtHL0QoyPP_IYkw0s-Q”,

  “version” : {

    “number” : “7.17.9”,

    “build_flavor” : “default”,

    “build_type” : “deb”,

    “build_hash” : “ef48222227ee6b9e70e502f0f0daa52435ee634d”,

    “build_date” : “2023-01-31T05:34:43.305517834Z”,

    “build_snapshot” : false,

    “lucene_version” : “8.11.1”,

    “minimum_wire_compatibility_version” : “6.8.0”,

    “minimum_index_compatibility_version” : “6.0.0-beta1”

  },

  “tagline” : “You Know, for Search”

}

Wazuh repository অ্যাড করার অংশ

১। GPG Key Install করি।

curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg –no-default-keyring –keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg –import && chmod 644 /usr/share/keyrings/wazuh.gpg

২। Add Repo.

echo “deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main” | tee -a /etc/apt/sources.list.d/wazuh.list

৩। Update করে নিই

apt-get updat

১। Wazuh-manager প্যাকেজ ইন্সটল করি

apt-get install wazuh-manager

২। Wazuh-manager সার্ভিস Enable & Start

systemctl daemon-reload
systemctl enable wazuh-manager
systemctl start wazuh-manager

৩। Wazuh-manager সার্ভিস চালু আছে কি না চেক করি

systemctl status wazuh-manager

আশা করছি Wazuh-manager running আছে এবং সব কিছু ঠিক ঠাক Install করতে পেরেছেন। এবার পরের ধাপে আমরা Fileeat ইন্সটল করব।

১। নিচের কমান্ডের মাধ্যমে Filebeat পাকেজ ইন্সটল করি।

apt-get install filebeat=7.17.9

২। পূর্বে থেকে কনফিগার করা Filebeat এর config ফাইল ইন্সটল করব। এর মাধ্যমে ফাইলবিট Wazuh alert Elasticsearch এর কাছে পাঠায়।

curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.4/tpl/elastic-basic/filebeat_all_in_one.yml

৩। Elasticsearch এর জন্য Alert Sample ডাউনলোড এবং Permission দেওয়া

curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.4/extensions/elasticsearch/7.x/wazuh-template.json

chmod go+r /etc/filebeat/wazuh-template.json

৪। Filebeat এর জন্য Wazuh Module ডাউনলোড

curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.2.tar.gz | tar -xvz -C /usr/share/filebeat/module

৫। filebeat.yml ফাইলটি এডিট করার জন্য নির্দিষ্ট লোকেশানে যেতে হবে এবং ফাইলটি এডিট করতে হবে

nano /etc/filebeat/filebeat.yml

৬। এই লাইনটি এডিট করতে হবে <pass> এর ‍স্থানে আপনার Elastic password দিতে হবে

output.elasticsearch.password:

এর পর সেভ করার জন্য

[ctrl + o] + enter >> to save

[ctrl + x] >> to exit

৭। সার্টিফিকেটগুলো কপি করার জন্য

cp -r /etc/elasticsearch/certs/ca/ /etc/filebeat/certs/
cp /etc/elasticsearch/certs/elasticsearch.crt /etc/filebeat/certs/filebeat.crt
cp /etc/elasticsearch/certs/elasticsearch.key /etc/filebeat/certs/filebeat.key

৮। অতঃপর Filebeat সার্ভিস স্টার্ট করার জন্য কমান্ড

systemctl daemon-reloadsystemctl enable filebeatsystemctl start filebeat

৯। Filebeat ঠিক মত ইন্সটল হয়েছে কি না, তা দেখার জন্য

filebeat test output

এর পরের ধাপে Kibana ইন্সটল করব

১। Kibana প্যাকেজ ইন্সটল

apt-get install kibana=7.17.9

২। Kibana কনফিগারেশন ফোল্ডারে ইলাস্টিকসার্চ সার্টিফিকেট কপি করি

mkdir /etc/kibana/certs/ca -pcp -R /etc/elasticsearch/certs/ca/ /etc/kibana/certs/cp /etc/elasticsearch/certs/elasticsearch.key /etc/kibana/certs/kibana.keycp /etc/elasticsearch/certs/elasticsearch.crt /etc/kibana/certs/kibana.crtchown -R kibana:kibana /etc/kibana/chmod -R 500 /etc/kibana/certschmod 440 /etc/kibana/certs/ca/ca.* /etc/kibana/certs/kibana.*

৩। Kibana কনফিগারেশন ফাইল ডাউনলোড

curl -so /etc/kibana/kibana.yml https://packages.wazuh.com/4.4/tpl/elastic-basic/kibana_all_in_one.yml

৪। kibana.yml ফাইলটি এডিট করতে হবে

nano /etc/kibana/kibana.yml
elasticsearch.password:

সেভ করার জন্য

[ctrl + o] + enter >> to save

[ctrl + x] >> to exit

৫। ডেটা ফোল্ডার তৈরী করা এবং পারমিশন দেওয়া

mkdir /usr/share/kibana/data
chown -R kibana:kibana /usr/share/kibana

৬। Kibana Plug-in ইন্সটল

cd /usr/share/kibana
sudo -u kibana /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-4.4.1_7.17.9-1.zip

৭। Port 443 এর সাথে Link করা

setcap ‘cap_net_bind_service=+ep’ /usr/share/kibana/node/bin/node

৮। এবারে Kibana সার্ভিস Enable & Start করতে হবে

systemctl daemon-reloadsystemctl enable kibanasystemctl start kibana

এবারে Wazuh-manager এর IP (যে মেশিনে এতক্ষণ আমরা সব ইন্সটল করলাম) দিয়ে ব্রাউস করতে হবে।

IP দেখতে ifconfig command টি দিতে হবে।

URL: https:// <IP>

সব কিছু ঠিক থাকলে, Username এবং Password চাইবে

সেখানে Username: elastic এবং Password দিতে হবে Elastic এর Password (যে Password পূর্বে তৈরী করা হয়েছে) ।

সব কিছু ঠিক থাকলে, আপনি Successfully Log-in করতে পারবেন।

এবারে ছোট্ট একটি কাজ করি, যেন অপ্রয়োজনীয় আপডেট হয়ে চেঞ্জ না হয়ে যায়।

sed -i “s/^deb/#deb/” /etc/apt/sources.list.d/wazuh.list
sed -i “s/^deb/#deb/” /etc/apt/sources.list.d/elastic-7.x.list
apt-get update

Wazuh-manager এবং প্রয়োজনীয় আনুষাঙ্গিক Element Install করা হয়ে গিয়েছে। আগামী পর্বে আমরা এর সাথে Agent add করব, এবং Agent থেকে লগ কালেক্ট করব।

Leave a Comment

Your email address will not be published. Required fields are marked *

What is Lorem Ipsum?

Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.