প্রতিনিয়ত সাইবার অ্যটাকের সংখ্যা বৃদ্ধির ফলে আমাদের নিরাপত্তা ব্যবস্থার উন্নতির প্রয়োজনীয়তা উপলব্ধি করতে পারি। বর্তমান সাইবার ওয়ার্ল্ডে নিরাপদ থাকতে প্রয়োজন সঠিক নিরাপত্তা ব্যবস্থা এবং মনিটরিং সিসটেম। একটি ইনফ্রাস্ট্রাকচার এর সিকিউরিটি মনিটরিং গুরুত্তপূর্ণ একটি কাজ। আমরা একটি 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 প্রয়োজন হবে।
প্রথমে আমরা Elasticsearch ইন্সটল করব
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-Server ইন্সটল পর্ব
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 ইন্সটল পর্ব
১। 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 ইন্সটল পর্ব
১। নিচের কমান্ডের মাধ্যমে 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 ইন্সটল পর্ব
১। 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 থেকে লগ কালেক্ট করব।