2. لچڪدار اسٽيڪ: سيڪيورٽي لاگز جو تجزيو. Logstash

2. لچڪدار اسٽيڪ: سيڪيورٽي لاگز جو تجزيو. Logstash

آخري ۾ مضمون اسان ملياسين ELK اسٽيڪ، ڪهڙي سافٽ ويئر پروڊڪٽس تي مشتمل آهي. ۽ پهريون ڪم جيڪو هڪ انجنيئر منهن ڏئي ٿو جڏهن ELK اسٽيڪ سان ڪم ڪري رهيو آهي لاگ ان موڪلي رهيو آهي اسٽوريج لاءِ لچڪدار ڳولا ۾ ايندڙ تجزيي لاءِ. بهرحال، هي صرف لپ سروس آهي، elasticsearch ڪجهه خاص فيلڊز ۽ قدرن سان دستاويزن جي صورت ۾ لاگ محفوظ ڪري ٿو، جنهن جو مطلب آهي ته انجنيئر کي مختلف اوزار استعمال ڪرڻ گهرجن پيغام کي پارس ڪرڻ لاءِ جيڪو آخري سسٽم مان موڪليو ويو آهي. اهو ڪيترن ئي طريقن سان ٿي سگهي ٿو - پنهنجو پاڻ هڪ پروگرام لکو جيڪو API استعمال ڪندي ڊيٽابيس ۾ دستاويز شامل ڪندو، يا تيار ڪيل حل استعمال ڪندو. هن ڪورس ۾ اسان حل تي غور ڪنداسين Logstash، جيڪو ELK اسٽيڪ جو حصو آهي. اسان ڏسنداسين ته ڪيئن اسان لاگز موڪلي سگھون ٿا آخر پوائنٽ سسٽم کان Logstash ڏانهن، ۽ پوء اسان هڪ ترتيب واري فائيل قائم ڪنداسين پارس ڪرڻ ۽ ريڊائريڪٽ ڪرڻ لاءِ Elasticsearch ڊيٽابيس ڏانهن. ائين ڪرڻ لاءِ، اسان لاگس وٺون ٿا چيڪ پوائنٽ فائر وال مان ايندڙ سسٽم جي طور تي.

ڪورس ELK اسٽيڪ جي تنصيب کي ڍڪي نه ٿو ڏئي، ڇاڪاڻ ته هن موضوع تي مضمونن جو هڪ وڏو تعداد آهي؛ اسان ترتيب جي جزو تي غور ڪنداسين.

اچو ته Logstash configuration لاءِ ايڪشن پلان ٺاھيون:

  1. چيڪ ڪرڻ ته لچڪدار ڳولها لاگ قبول ڪندا (پورٽ جي ڪارڪردگي ۽ کليليت جي جانچ ڪندي).
  2. اسان غور ڪريون ٿا ته ڪيئن اسان واقعن کي Logstash ڏانهن موڪلي سگهون ٿا، هڪ طريقو چونڊيو، ۽ ان تي عمل ڪريو.
  3. اسان ان پٽ کي Logstash configuration فائل ۾ ترتيب ڏيون ٿا.
  4. اسان ڊيبگ موڊ ۾ Logstash configuration فائل ۾ Output کي ترتيب ڏيون ٿا ته سمجھڻ لاءِ ته لاگ ميسيج ڇا ٿو لڳي.
  5. فلٽر ترتيب ڏيڻ.
  6. ElasticSearch ۾ صحيح آئوٽ سيٽ اپ ڪرڻ.
  7. Logstash لانچ.
  8. Kibana ۾ لاگن جي جانچ ڪندي.

اچو ته هر نقطي کي وڌيڪ تفصيل سان ڏسو:

چيڪ ڪرڻ ته elasticsearch لاگ قبول ڪندو

هن کي ڪرڻ لاء، توهان استعمال ڪري سگهو ٿا curl ڪمانڊ تائين رسائي جي جانچ ڪرڻ لاءِ Elasticsearch سسٽم مان جنهن تي Logstash لڳايو ويو آهي. جيڪڏهن توهان تصديق ڪئي آهي ترتيب ڏنل، پوء اسان پڻ صارف/پاسورڊ کي curl ذريعي منتقل ڪريون ٿا، وضاحت ڪندي پورٽ 9200 جيڪڏهن توهان ان کي تبديل نه ڪيو آهي. جيڪڏهن توهان هيٺ ڏنل هڪ جهڙو جواب حاصل ڪيو، ته پوء هر شي ترتيب ۾ آهي.

[elastic@elasticsearch ~]$ curl -u <<user_name>> : <<password>> -sS -XGET "<<ip_address_elasticsearch>>:9200"
{
  "name" : "elastic-1",
  "cluster_name" : "project",
  "cluster_uuid" : "sQzjTTuCR8q4ZO6DrEis0A",
  "version" : {
    "number" : "7.4.1",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "fc0eeb6e2c25915d63d871d344e3d0b45ea0ea1e",
    "build_date" : "2019-10-22T17:16:35.176724Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
[elastic@elasticsearch ~]$

جيڪڏهن جواب موصول نه ٿيو، ته پوءِ ٿي سگهي ٿو ڪيترن ئي قسمن جون غلطيون: elasticsearch جو عمل نه هلي رهيو آهي، غلط بندرگاهه بيان ٿيل آهي، يا بندرگاهه کي بند ڪيو ويو آهي فائر وال طرفان سرور تي جتي elasticsearch انسٽال ٿيل آهي.

اچو ته ڏسو ته توهان ڪيئن موڪلي سگهو ٿا لاگ اسٽش کي چيڪ پوائنٽ فائر وال مان لاگ ان

چيڪ پوائنٽ مئنيجمينٽ سرور مان توهان log_exporter يوٽيليٽي استعمال ڪندي syslog ذريعي Logstash ڏانهن لاگ موڪلي سگهو ٿا، توهان ان بابت وڌيڪ پڙهي سگهو ٿا هتي مضمون، هتي اسان صرف اهو حڪم ڇڏينداسين جيڪو وهڪرو ٺاهي ٿو:

cp_log_export نالو شامل ڪريو check_point_syslog target-server > target-port 5555 protocol tcp فارميٽ عام پڙهڻ واري موڊ نيم متحد

> - سرور جو پتو جنهن تي Logstash هلندو آهي، ٽارگيٽ-پورٽ 5555 - اهو بندرگاهه جنهن تي اسان لاگس موڪلينداسين، tcp ذريعي لاگ موڪلڻ سان سرور لوڊ ٿي سگهي ٿو، تنهن ڪري ڪجهه حالتن ۾ اهو وڌيڪ صحيح آهي udp استعمال ڪرڻ .

Logstash configuration فائل ۾ INPUT کي ترتيب ڏيڻ

2. لچڪدار اسٽيڪ: سيڪيورٽي لاگز جو تجزيو. Logstash

ڊفالٽ طور، ترتيب واري فائل /etc/logstash/conf.d/ ڊاريڪٽري ۾ واقع آهي. ٺاھ جوڙ واري فائل 3 بامعني حصن تي مشتمل آھي: INPUT، FILTER، OUTPUT. IN پٽ اسان ظاھر ڪريون ٿا ته سسٽم ڪٿان لاگ ان ڪندو، ان ۾ FILTER لاگ کي پارس ڪريو - سيٽ اپ ڪريو پيغام کي ڪيئن ورهايو فيلڊز ۽ ويلز ۾ اوٽ اسان آئوٽ پٽ اسٽريم کي ترتيب ڏيون ٿا - جتي پارس ٿيل لاگز موڪليا ويندا.

پهرين، اچو ته INPUT کي ترتيب ڏيو، ڪجهه قسمن تي غور ڪريو جيڪي ٿي سگهن ٿيون - فائل، ٽي سي پي ۽ ايڪس.

ٽي سي پي:

input {
tcp {
    port => 5555
    host => “10.10.1.205”
    type => "checkpoint"
    mode => "server"
}
}

موڊ => "سرور"
اشارو ڪري ٿو ته Logstash ڪنيڪشن قبول ڪري رهيو آهي.

بندرگاهه => 5555
ميزبان => "10.10.1.205"
اسان IP پتي 10.10.1.205 (Logstash) ذريعي ڪنيڪشن قبول ڪريون ٿا، پورٽ 5555 - بندرگاهه کي فائر وال پاليسي جي اجازت هجڻ گهرجي.

ٽائپ => "چيڪ پوائنٽ"
اسان دستاويز کي نشان لڳايو، تمام آسان جيڪڏهن توهان وٽ ڪيترائي ايندڙ ڪنيڪشن آهن. تنهن کان پوءِ، هر ڪنيڪشن لاءِ توهان پنهنجو فلٽر لکي سگهو ٿا منطقي if construct استعمال ڪندي.

عڪس:

input {
  file {
    path => "/var/log/openvas_report/*"
    type => "openvas"
    start_position => "beginning"
    }
}

ٺاھ جوڙ جي وضاحت:
رستو => "/var/log/openvas_report/*"
اسان ڊاريڪٽري کي ظاهر ڪريون ٿا جنهن ۾ فائلن کي پڙهڻ جي ضرورت آهي.

قسم => "اوپن ويس"
واقعي جو قسم.

start_position => "شروعات"
فائل تبديل ڪرڻ وقت، اهو سڄو فائل پڙهي ٿو؛ جيڪڏهن توهان "آخر" سيٽ ڪيو، سسٽم فائل جي آخر ۾ ظاهر ٿيڻ لاء نئين رڪارڊ جو انتظار ڪري ٿو.

Exec:

input {
  exec {
    command => "ls -alh"
    interval => 30
  }
}

ھن ان پٽ کي استعمال ڪندي، ھڪڙو (صرف!) شيل ڪمانڊ شروع ڪيو ويو آھي ۽ ان جي ٻاھر ھڪڙي لاگ پيغام ۾ تبديل ٿي وئي آھي.

حڪم => "ls-alh"
حڪم جنهن جي پيداوار اسان ۾ دلچسپي آهي.

وقفو => 30
ڪمانڊ انوڪيشن وقفو سيڪنڊن ۾.

فائر وال مان لاگز حاصل ڪرڻ لاءِ، اسان فلٽر رجسٽر ڪريون ٿا tcp يا udp, ان تي منحصر آهي ته ڪيئن لاگز Logstash ڏانهن موڪليا ويا آهن.

اسان ڊيبگ موڊ ۾ Logstash configuration فائل ۾ Output کي ترتيب ڏيون ٿا ته سمجھڻ لاءِ ته لاگ ميسيج ڇا ٿو لڳي

INPUT کي ترتيب ڏيڻ کان پوءِ، اسان کي سمجھڻ جي ضرورت آھي ته لاگ ميسيج ڪھڙو نظر ايندو ۽ لاگ فلٽر (پارسر) کي ترتيب ڏيڻ لاءِ ڪھڙا طريقا استعمال ڪرڻ گهرجن.

هن کي ڪرڻ لاء، اسان هڪ فلٽر استعمال ڪنداسين جيڪو نتيجو ڪڍي ٿو stdout اصل پيغام کي ڏسڻ لاء؛ هن وقت مڪمل ترتيب واري فائيل هن طرح نظر ايندي:

input 
{
         tcp 
         {
                port => 5555
  	  	type => "checkpoint"
    		mode => "server"
                host => “10.10.1.205”
   	 }
}

output 
{
	if [type] == "checkpoint" 
       {
		stdout { codec=> json }
	}
}

چيڪ ڪرڻ لاءِ حڪم هلايو:
sudo /usr/share/logstash/bin//logstash -f /etc/logstash/conf.d/checkpoint.conf
اسان نتيجو ڏسون ٿا، تصوير ڪلڪ ڪري سگهجي ٿي:

2. لچڪدار اسٽيڪ: سيڪيورٽي لاگز جو تجزيو. Logstash

جيڪڏهن توهان ان کي نقل ڪيو ته اهو هن طرح نظر ايندو:

action="Accept" conn_direction="Internal" contextnum="1" ifdir="outbound" ifname="bond1.101" logid="0" loguid="{0x5dfb8c13,0x5,0xfe0a0a0a,0xc0000000}" origin="10.10.10.254" originsicname="CN=ts-spb-cpgw-01,O=cp-spb-mgmt-01.tssolution.local.kncafb" sequencenum="8" time="1576766483" version="5" context_num="1" dst="10.10.10.10" dst_machine_name="[email protected]" layer_name="TSS-Standard Security" layer_name="TSS-Standard Application" layer_uuid="dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0" layer_uuid="dbee3718-cf2f-4de0-8681-529cb75be9a6" match_id="8" match_id="33554431" parent_rule="0" parent_rule="0" rule_action="Accept" rule_action="Accept" rule_name="Implicit Cleanup" rule_uid="6dc2396f-9644-4546-8f32-95d98a3344e6" product="VPN-1 & FireWall-1" proto="17" s_port="37317" service="53" service_id="domain-udp" src="10.10.1.180" ","type":"qqqqq","host":"10.10.10.250","@version":"1","port":50620}{"@timestamp":"2019-12-19T14:50:12.153Z","message":"time="1576766483" action="Accept" conn_direction="Internal" contextnum="1" ifdir="outbound" ifname="bond1.101" logid="0" loguid="{0x5dfb8c13,

انهن پيغامن کي ڏسندي، اسان سمجهون ٿا ته لاگز ۾ فارم آهي: فيلڊ = قدر يا ڪيئي = قدر، جنهن جو مطلب آهي فلٽر جنهن کي kv سڏيو ويندو آهي مناسب آهي. هر مخصوص ڪيس لاءِ صحيح فلٽر چونڊڻ لاءِ، اهو هڪ سٺو خيال هوندو ته پاڻ کي فني دستاويزن ۾ انهن سان واقف ڪر، يا ڪنهن دوست کان پڇو.

فلٽر ترتيب ڏيڻ

آخري مرحلي تي اسان چونڊيو kv، هن فلٽر جي تشڪيل هيٺ پيش ڪئي وئي آهي:

filter {
if [type] == "checkpoint"{
	kv {
		value_split => "="
		allow_duplicate_values => false
	}
}
}

اسان علامت چونڊيو جنهن جي ذريعي اسان فيلڊ کي ورهائينداسين ۽ قيمت - "=". جيڪڏهن اسان وٽ لاگ ۾ هڪجهڙا درجا آهن، اسان ڊيٽابيس ۾ صرف هڪ مثال محفوظ ڪندا آهيون، ٻي صورت ۾ توهان هڪجهڙائي واري قدرن جي هڪ صف سان ختم ٿي ويندا، اهو آهي، جيڪڏهن اسان وٽ پيغام آهي "foo = ڪجهه foo = ڪجهه" اسان صرف foo لکندا آهيون. = ڪجھ.

ElasticSearch ۾ صحيح آئوٽ سيٽ اپ ڪرڻ

هڪ دفعو فلٽر ترتيب ڏنو ويو آهي، توهان ڊيٽابيس تي لاگ اپ لوڊ ڪري سگهو ٿا ڳولا ڪرڻ:

output 
{
if [type] == "checkpoint"
{
 	elasticsearch 
        {
		hosts => ["10.10.1.200:9200"]
		index => "checkpoint-%{+YYYY.MM.dd}"
    		user => "tssolution"
    		password => "cool"
  	}
}
}

جيڪڏهن دستاويز چيڪ پوائنٽ جي قسم سان سائن ان ٿيل آهي، اسان ايونٽ کي محفوظ ڪريون ٿا elasticsearch ڊيٽابيس ۾، جيڪو 10.10.1.200 تي ڪنيڪشن قبول ڪري ٿو پورٽ 9200 تي ڊفالٽ. هر دستاويز کي هڪ مخصوص انڊيڪس ۾ محفوظ ڪيو ويندو آهي، انهي صورت ۾ اسان انڊيڪس ۾ محفوظ ڪندا آهيون "چڪ پوائنٽ-" + موجوده وقت جي تاريخ. هر انڊيڪس ۾ فيلڊ جو هڪ مخصوص سيٽ ٿي سگهي ٿو، يا خودڪار طور تي ٺهيل آهي جڏهن هڪ پيغام ۾ هڪ نئون فيلڊ ظاهر ٿئي ٿو؛ فيلڊ سيٽنگون ۽ انهن جو قسم ميپنگ ۾ ڏسي سگهجي ٿو.

جيڪڏهن توهان تصديق ڪئي آهي ترتيب ڏنل آهي (اسان ان کي بعد ۾ ڏسنداسين)، هڪ مخصوص انڊيڪس تي لکڻ لاء سندون بيان ڪيو وڃي، هن مثال ۾ اهو آهي "tssolution" پاسورڊ سان "ٿڌي". توهان صرف هڪ مخصوص انڊيڪس تي لاگ لکڻ لاءِ صارف جي حقن ۾ فرق ڪري سگهو ٿا ۽ وڌيڪ نه.

Logstash لانچ ڪريو.

Logstash ٺاھ جوڙ فائيل:

input 
{
         tcp 
         {
                port => 5555
  	  	type => "checkpoint"
    		mode => "server"
                host => “10.10.1.205”
   	 }
}

filter {
        if [type] == "checkpoint"{
	kv {
		value_split => "="
		allow_duplicate_values => false
	}
        }
}

output 
{
if [type] == "checkpoint"
{
 	elasticsearch 
        {
		hosts => ["10.10.1.200:9200"]
		index => "checkpoint-%{+YYYY.MM.dd}"
    		user => "tssolution"
    		password => "cool"
  	}
}
}

اسان درستي لاءِ ترتيب واري فائل کي چيڪ ڪريون ٿا:
/usr/share/logstash/bin//logstash -f checkpoint.conf
2. لچڪدار اسٽيڪ: سيڪيورٽي لاگز جو تجزيو. Logstash

Logstash عمل شروع ڪريو:
sudo systemctl شروع ڪرڻ شروع ڪريو

اسان چيڪ ڪريون ٿا ته عمل شروع ٿي چڪو آهي:
sudo systemctl status logstash

2. لچڪدار اسٽيڪ: سيڪيورٽي لاگز جو تجزيو. Logstash

اچو ته چيڪ ڪريو ته ساکٽ مٿي آهي:
netstat -nat |grep 5555

2. لچڪدار اسٽيڪ: سيڪيورٽي لاگز جو تجزيو. Logstash

Kibana ۾ لاگن جي جانچ ڪندي.

سڀڪنھن شيء کي ھلڻ کان پوء، ڪيبانا ڏانھن وڃو - دريافت ڪريو، پڪ ڪريو ته سڀ ڪجھ صحيح ترتيب ڏنل آھي، تصوير ڪلڪ ڪرڻ جي قابل آھي!

2. لچڪدار اسٽيڪ: سيڪيورٽي لاگز جو تجزيو. Logstash

سڀئي لاگ ان جاءِ تي آهن ۽ اسان سڀني شعبن ۽ انهن جا قدر ڏسي سگهون ٿا!

ٿڪل

اسان ڏٺو ته ڪيئن لکجي Logstash configuration file، ۽ نتيجي طور اسان کي سڀني شعبن ۽ قدرن جو parser مليو. ھاڻي اسان ڪم ڪري سگھون ٿا ڳولا ۽ پلاٽ ڪرڻ سان مخصوص شعبن لاءِ. اڳتي هلي ڪورس ۾ اسان ڏسنداسين ڪِبانا ۾ ويزولائيزيشن ۽ هڪ سادي ڊيش بورڊ ٺاهي. اهو قابل ذڪر آهي ته Logstash ترتيب واري فائل کي ڪجهه حالتن ۾ مسلسل اپڊيٽ ڪرڻ جي ضرورت آهي، مثال طور، جڏهن اسان هڪ فيلڊ جي قيمت کي هڪ نمبر کان لفظ ۾ تبديل ڪرڻ چاهيون ٿا. ايندڙ مضمونن ۾ اسان اهو مسلسل ڪنداسين.

پوء ڏسندا رهو (تار, ڪريو, VK, TS حل بلاگ), Yandex Zen.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو