2. የላስቲክ ቁልል: የደህንነት ምዝግብ ማስታወሻዎች ትንተና. Logstash

2. የላስቲክ ቁልል: የደህንነት ምዝግብ ማስታወሻዎች ትንተና. Logstash

በመጨረሻው ጽሑፍ ተገናኘን። ELK ቁልል, ምን አይነት የሶፍትዌር ምርቶች ያካትታል. እና አንድ መሐንዲስ ከኤልኬ ቁልል ጋር ሲሰራ የሚያጋጥመው የመጀመሪያው ተግባር ለቀጣይ ትንተና በelasticsearch ውስጥ ለማከማቻ ምዝግብ ማስታወሻዎችን መላክ ነው። ሆኖም ይህ የከንፈር አገልግሎት ብቻ ነው፣ elasticsearch ምዝግብ ማስታወሻዎችን በሰነድ መልክ ከተወሰኑ መስኮች እና እሴቶች ጋር ያከማቻል፣ ይህ ማለት መሐንዲሱ ከመጨረሻ ሲስተሞች የተላከውን መልእክት ለመተንተን የተለያዩ መሳሪያዎችን መጠቀም አለበት ማለት ነው። ይህ በብዙ መንገዶች ሊከናወን ይችላል - ኤፒአይን በመጠቀም ሰነዶችን ወደ ዳታቤዝ የሚጨምር ፕሮግራም እራስዎ ይፃፉ ወይም ዝግጁ የሆኑ መፍትሄዎችን ይጠቀሙ። በዚህ ኮርስ ውስጥ መፍትሄውን እንመለከታለን Logstashየ ELK ቁልል አካል የሆነው። ምዝግብ ማስታወሻዎችን ከመጨረሻ ነጥብ ሲስተሞች ወደ Logstash መላክ የምንችልበትን መንገድ እናያለን፣ እና ከዚያ ለመተንተን እና ወደ Elasticsearch ዳታቤዝ ለማዞር የውቅር ፋይል እናዘጋጃለን። ይህንን ለማድረግ ከቼክ ፖይንት ፋየርዎል እንደ ገቢ ስርዓት የምዝግብ ማስታወሻዎችን እንወስዳለን.

በዚህ ርዕስ ላይ እጅግ በጣም ብዙ ቁጥር ያላቸው መጣጥፎች ስላሉ ኮርሱ የ ELK ቁልል መጫንን አይሸፍንም ፣ የአወቃቀሩን አካል እንመለከታለን።

ለ Logstash ውቅረት የድርጊት መርሃ ግብር እናውጣ፡-

  1. ያንን elasticsearch መፈተሽ የምዝግብ ማስታወሻዎችን ይቀበላል (የወደቡን ተግባራዊነት እና ክፍትነት ማረጋገጥ)።
  2. ክስተቶችን ወደ Logstash እንዴት እንደምንልክ፣ ዘዴ እንደምንመርጥ እና እንደምንተገብር እንመለከታለን።
  3. በ Logstash ውቅር ፋይል ውስጥ ግቤትን እናዋቅራለን።
  4. የምዝግብ ማስታወሻው ምን እንደሚመስል ለመረዳት ውፅዓትን በ Logstash ውቅር ፋይል ውስጥ በአርሚ ሁነታ እናዋቅራለን።
  5. ማጣሪያን በማዘጋጀት ላይ።
  6. በ ElasticSearch ውስጥ ትክክለኛውን ውፅዓት በማዘጋጀት ላይ።
  7. Logstash ይጀምራል።
  8. በኪባና ውስጥ ያሉትን ምዝግብ ማስታወሻዎች በመፈተሽ ላይ.

እያንዳንዱን ነጥብ በበለጠ ዝርዝር እንመልከት፡-

ያንን elasticsearch መፈተሽ ምዝግብ ማስታወሻዎችን ይቀበላል

ይህንን ለማድረግ Logstash ከተዘረጋበት ስርዓት የ Elasticsearch መዳረሻን ለመፈተሽ የ curl ትዕዛዙን መጠቀም ይችላሉ። ማረጋገጫው ከተዋቀረ፣ ካልቀየሩት ወደብ 9200 በመግለጽ ተጠቃሚውን/ፓስዎርድን በ curl እናስተላልፋለን። ከታች ካለው ጋር ተመሳሳይ ምላሽ ከተቀበሉ, ሁሉም ነገር በሥርዓት ነው.

[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 በተጫነበት አገልጋይ ላይ በፋየርዎል ታግዷል።

ከቼክ ነጥብ ፋየርዎል ወደ Logstash እንዴት ሎግስታሽ መላክ እንደሚችሉ እንይ

ከCheck Point አስተዳደር አገልጋይ የሎግስታሽ ሎግስታሽ በ syslog log_exporter utility በመጠቀም መላክ ትችላላችሁ፣ስለእሱ የበለጠ ማንበብ ትችላላችሁ እዚህ ጽሑፍእዚህ ዥረቱን የሚፈጥረውን ትዕዛዝ ብቻ እንተዋለን፡-

cp_log_export ስም አክል check_point_syslog target-server < > ኢላማ-ወደብ 5555 ፕሮቶኮል tcp ቅርጸት አጠቃላይ የንባብ ሁነታ ከፊል-የተዋሃደ

< > - Logstash የሚሠራበት የአገልጋይ አድራሻ፣ ኢላማ-ወደብ 5555 - ሎግ የምንልክበት ወደብ፣ በ tcp የምዝግብ ማስታወሻዎችን መላክ አገልጋዩን ሊጭን ይችላል፣ ስለዚህ በአንዳንድ ሁኔታዎች udp መጠቀም የበለጠ ትክክል ነው።

በ Logstash ውቅር ፋይል ውስጥ INPUT ን ማዋቀር

2. የላስቲክ ቁልል: የደህንነት ምዝግብ ማስታወሻዎች ትንተና. Logstash

በነባሪ, የማዋቀሪያው ፋይል በ /etc/logstash/conf.d/ ማውጫ ውስጥ ይገኛል. የማዋቀር ፋይሉ 3 ትርጉም ያላቸውን ክፍሎች ያቀፈ ነው፡ INPUT፣ FILTER፣ OUTPUT። ውስጥ ግቤት ስርዓቱ ምዝግብ ማስታወሻዎችን ከየት እንደሚወስድ እንጠቁማለን FILTER ምዝግብ ማስታወሻውን መተንተን - መልእክቱን ወደ መስኮች እና እሴቶች እንዴት እንደሚከፋፈል ያዋቅሩ ፣ ውስጥ ውፅዓት የውጤት ዥረቱን እናዋቅራለን - የተተነተኑ ምዝግብ ማስታወሻዎች የሚላኩበት።

በመጀመሪያ ፣ INPUT ን እናዋቅር ፣ ሊሆኑ የሚችሉ አንዳንድ ዓይነቶችን እንመልከት - ፋይል ፣ tcp እና exe።

ቲሲፒ፡

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

ሁነታ => "አገልጋይ"
Logstash ግንኙነቶችን እየተቀበለ መሆኑን ያሳያል።

ወደብ => 5555
አስተናጋጅ => "10.10.1.205"
ግንኙነቶችን በአይፒ አድራሻ 10.10.1.205 (Logstash), ወደብ 5555 እንቀበላለን - ወደቡ በፋየርዎል ፖሊሲ ሊፈቀድለት ይገባል.

አይነት => "መፈተሻ ነጥብ"
ሰነዱ ላይ ምልክት እናደርጋለን ፣ ብዙ ገቢ ግንኙነቶች ካሉዎት በጣም ምቹ። በመቀጠል ለእያንዳንዱ ግንኙነት ከተገነባ ምክንያታዊውን በመጠቀም የራስዎን ማጣሪያ መጻፍ ይችላሉ.

ፋይል

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

የቅንብሮች መግለጫ፡-
መንገድ => "/var/log/openvas_report/*"
ፋይሎቹ የሚነበቡበትን ማውጫ እንጠቁማለን።

አይነት => "ክፍት ቫስ"
የክስተት አይነት።

start_position => "መጀመሪያ"
ፋይልን በሚቀይሩበት ጊዜ, ሙሉውን ፋይል ያነባል, "መጨረሻ" ካዘጋጁ, ስርዓቱ በፋይሉ መጨረሻ ላይ አዲስ መዝገቦች እስኪታዩ ይጠብቃል.

ለምሳሌ፡-

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

ይህንን ግቤት በመጠቀም የሼል ትዕዛዝ (ብቻ!) ተጀምሯል እና ውጤቱ ወደ ሎግ መልእክት ይቀየራል።

ትዕዛዝ => "ls-alh"
እኛ የምንፈልገው ውጤታቸው ትእዛዝ።

ክፍተት => 30
የትእዛዝ ጥሪ ክፍተት በሰከንዶች ውስጥ።

ምዝግብ ማስታወሻዎችን ከፋየርዎል ለመቀበል, ማጣሪያ እንመዘግባለን tcp ወይም እ.አ.አ., መዝገቦቹ ወደ Logstash እንዴት እንደሚላኩ ይወሰናል.

የምዝግብ ማስታወሻው ምን እንደሚመስል ለመረዳት ውፅዓትን በ Logstash ውቅር ፋይል ውስጥ በአርሚ ሁነታ እናዋቅራለን።

INPUTን ካዋቀርን በኋላ የሎግ መልእክቱ ምን እንደሚመስል እና የምዝግብ ማስታወሻ ማጣሪያን (parser) ለማዋቀር ምን አይነት ዘዴዎችን መጠቀም እንዳለብን መረዳት አለብን።

ይህንን ለማድረግ ዋናውን መልእክት ለማየት ውጤቱን ወደ 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 = some foo=some” የሚል መልእክት ካለን 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 ሁኔታ logstash

2. የላስቲክ ቁልል: የደህንነት ምዝግብ ማስታወሻዎች ትንተና. Logstash

ሶኬቱ መነሳቱን እንፈትሽ፡-
netstat -nat |grep 5555

2. የላስቲክ ቁልል: የደህንነት ምዝግብ ማስታወሻዎች ትንተና. Logstash

በኪባና ውስጥ ያሉትን ምዝግብ ማስታወሻዎች በመፈተሽ ላይ.

ሁሉም ነገር እየሄደ ከሆነ በኋላ ወደ ኪባና - ያግኙ, ሁሉም ነገር በትክክል መዋቀሩን ያረጋግጡ, ስዕሉ ጠቅ ሊደረግ የሚችል ነው!

2. የላስቲክ ቁልል: የደህንነት ምዝግብ ማስታወሻዎች ትንተና. Logstash

ሁሉም ምዝግብ ማስታወሻዎች በቦታቸው ላይ ናቸው እና ሁሉንም መስኮች እና እሴቶቻቸውን ማየት እንችላለን!

መደምደሚያ

የ Logstash ውቅረት ፋይል እንዴት እንደሚፃፍ ተመልክተናል፣ በዚህም ምክንያት የሁሉም መስኮች እና እሴቶች ተንታኝ አግኝተናል። አሁን የተወሰኑ መስኮችን በመፈለግ እና በማቀድ መስራት እንችላለን. በመቀጠል በኮርሱ ውስጥ ምስላዊነትን በኪባና እንመለከታለን እና ቀላል ዳሽቦርድ እንፈጥራለን። የ Logstash ውቅር ፋይል በተወሰኑ ሁኔታዎች ውስጥ በየጊዜው መዘመን እንደሚያስፈልገው መጥቀስ ተገቢ ነው, ለምሳሌ, የመስክ ዋጋን ከቁጥር ወደ ቃል መተካት ስንፈልግ. በሚቀጥሉት ጽሁፎች ውስጥ ይህንን ያለማቋረጥ እናደርጋለን.

ስለዚህ ተከታተሉት።ቴሌግራም, Facebook, VK, TS መፍትሔ ብሎግ), Yandex ዜን.

ምንጭ: hab.com

አስተያየት ያክሉ