የፍተሻ ነጥብ R80.10 API በCLI፣ ስክሪፕቶች እና ሌሎችም በኩል ይቆጣጠሩ

የፍተሻ ነጥብ R80.10 API በCLI፣ ስክሪፕቶች እና ሌሎችም በኩል ይቆጣጠሩ

መቼም አብሮ የሰራ ሁሉ እርግጠኛ ነኝ Check Point፣ ቅሬታ ነበረበት አወቃቀሩን ከትዕዛዝ መስመሩ ለማረም የማይቻል. ይህ በተለይ ከዚህ ቀደም ከሲስኮ ኤስኤ ጋር ለሰሩ ሰዎች እንግዳ ነው ፣ ሁሉም ነገር በ CLI ውስጥ ሙሉ በሙሉ ሊዋቀር ይችላል። በቼክ ነጥቡ ሌላኛው መንገድ ነው - ሁሉም የደህንነት ቅንጅቶች የተከናወኑት ከግራፊክ በይነገጽ ብቻ ነው። ነገር ግን፣ አንዳንድ ነገሮች በGUI በኩል ለመስራት ሙሉ ለሙሉ የማይመቹ ናቸው (እንደ ቼክ ፖይንት እንኳን ምቹ የሆነ)። ለምሳሌ, 100 አዳዲስ አስተናጋጆችን ወይም አውታረ መረቦችን የመጨመር ተግባር ወደ ረጅም እና አሰልቺ ሂደት ይቀየራል. ለእያንዳንዱ ነገር መዳፊቱን ብዙ ጊዜ ጠቅ ማድረግ እና የአይፒ አድራሻውን ማስገባት አለብዎት. የጣቢያዎች ቡድን መፍጠር ወይም የአይፒኤስ ፊርማዎችን በብዛት ማንቃት/ማሰናከል ተመሳሳይ ነው። በዚህ ሁኔታ, ስህተት የመሥራት እድሉ ከፍተኛ ነው.

"ተአምር" በአንጻራዊ ሁኔታ በቅርብ ጊዜ ተከሰተ. ከአዲሱ ስሪት መለቀቅ ጋር ጋያ R80 ዕድሉ ይፋ ሆነ የኤፒአይ አጠቃቀም, ይህም ቅንብሮችን, አስተዳደርን, ክትትልን, ወዘተ አውቶማቲክ ለማድረግ ሰፊ እድሎችን ይከፍታል. አሁን የሚከተሉትን ማድረግ ይችላሉ:

  • ዕቃዎችን መፍጠር;
  • የመዳረሻ ዝርዝሮችን ማከል ወይም ማረም;
  • ቢላዎችን ማንቃት/ማሰናከል;
  • የአውታረ መረብ መገናኛዎችን ያዋቅሩ;
  • መመሪያዎችን መጫን;
  • እና ብዙ ተጨማሪ.

እውነት ለመናገር ይህ ዜና በሀብር እንዴት እንደተላለፈ አልገባኝም። በዚህ ጽሑፍ ውስጥ ኤፒአይን እንዴት መጠቀም እንደሚቻል በአጭሩ እንገልፃለን እና በርካታ ተግባራዊ ምሳሌዎችን እናቀርባለን። ስክሪፕቶችን በመጠቀም CheckPoint ቅንብሮች.

ኤፒአይ ለአስተዳደር አገልጋይ ብቻ ጥቅም ላይ እንደሚውል ወዲያውኑ ቦታ ማስያዝ እፈልጋለሁ። እነዚያ። ያለ አስተዳደር አገልጋይ መግቢያ መንገዶችን ማስተዳደር አሁንም አይቻልም።

ይህንን ኤፒአይ በመርህ ደረጃ ማን ሊጠቀም ይችላል?

  1. መደበኛ የፍተሻ ነጥብ ውቅር ስራዎችን ለማቃለል ወይም በራስ ሰር ለማሰራት የሚፈልጉ የስርዓት አስተዳዳሪዎች፤
  2. የቼክ ነጥብን ከሌሎች መፍትሄዎች ጋር ማዋሃድ የሚፈልጉ ኩባንያዎች (ምናባዊ ስርዓት, የቲኬት ስርዓቶች, የውቅረት አስተዳደር ስርዓቶች, ወዘተ.);
  3. ቅንብሮችን መደበኛ ለማድረግ ወይም ተጨማሪ ከቼክ ነጥብ ጋር የተገናኙ ምርቶችን ለመፍጠር የሚፈልጉ የስርዓት ውህዶች።

የተለመደ እቅድ

ስለዚህ፣ ከቼክ ነጥብ ጋር አንድ የተለመደ እቅድ እናስብ፡-

የፍተሻ ነጥብ R80.10 API በCLI፣ ስክሪፕቶች እና ሌሎችም በኩል ይቆጣጠሩ

እንደተለመደው መግቢያ በር አለን (SG), አስተዳደር አገልጋይ (ኤስኤምኤስ) እና የአስተዳዳሪ ኮንሶል (ስማርት ኮንሶል). በዚህ ሁኔታ ፣ የተለመደው የመግቢያ በር ማዋቀር ሂደት ይህንን ይመስላል።

የፍተሻ ነጥብ R80.10 API በCLI፣ ስክሪፕቶች እና ሌሎችም በኩል ይቆጣጠሩ

እነዚያ። በመጀመሪያ በአስተዳዳሪው ኮምፒተር ላይ ማስኬድ ያስፈልግዎታል ስማርት ኮንሶልከአስተዳደሩ አገልጋይ ጋር የምንገናኝበት (ኤስኤምኤስ). የደህንነት ቅንጅቶች በኤስኤምኤስ ላይ ይደረጋሉ እና ከዚያ በኋላ ብቻ ይተገበራሉ (የመጫን ፖሊሲ) ወደ መግቢያው (SG).

ሲጠቀሙ አስተዳደር API, እኛ በመሠረቱ የመጀመሪያውን ነጥብ መዝለል እንችላለን (SmartConsole አስጀምር) እና መጠቀም የኤፒአይ ትዕዛዞች በቀጥታ ወደ አስተዳደር አገልጋይ (ኤስኤምኤስ)።

ኤፒአይን ለመጠቀም መንገዶች

ኤፒአይን በመጠቀም ውቅሩን ለማርትዕ አራት ዋና መንገዶች አሉ፡

1) mgmt_cli መገልገያ በመጠቀም

ለምሳሌ - # mgmt_cli የአስተናጋጅ ስም አክል 1 ip-አድራሻ 192.168.2.100
ይህ ትዕዛዝ ከአስተዳደር አገልጋይ (ኤስኤምኤስ) ትዕዛዝ መስመር ነው የሚሰራው. እኔ እንደማስበው የትእዛዙ አገባብ ግልጽ ነው - host1 የተፈጠረው በአድራሻው 192.168.2.100 ነው።

2) የኤፒአይ ትዕዛዞችን በክሊሽ ያስገቡ (በባለሙያ ሁኔታ)

በመሠረቱ, የሚያስፈልግዎ ነገር ቢኖር ወደ ትዕዛዝ መስመር መግባት ነው (mgmt መግቢያ) በ SmartConsole (ወይም root መለያ) በኩል ሲገናኙ ጥቅም ላይ በሚውለው መለያ ስር። ከዚያ መግባት ይችላሉ። የኤፒአይ ትዕዛዞች (በዚህ ጉዳይ ላይ ከእያንዳንዱ ትዕዛዝ በፊት መገልገያውን መጠቀም አያስፈልግም mgmt_cli). ሙሉ ለሙሉ መፍጠር ይችላሉ BASH ስክሪፕቶች. አስተናጋጁ የሚፈጥረው የስክሪፕት ምሳሌ፡-

bash ስክሪፕት

#!/bin/bash

main() {
    clear

    #LOGIN (don't ask for username and password, user is already logged in to Management server as 'root' user)
    mgmt_cli login --root true > id_add_host.txt
    on_error_print_and_exit "Error: Failed to login, check that the server is up and running (run 'api status')"

    #READ HOST NAME
    printf "Enter host name:n"
    read -e host_name
    on_empty_input_print_and_exit "$host_name" "Error: The host's name cannot be empty."

    #READ IP ADDRESS
    printf "nEnter host IP address:n"
    read -e ip
    on_empty_input_print_and_exit "$ip" "Error: The host's IP address cannot be empty."

    #CREATE HOST
    printf "Creating new host: $host_name with IP address: $ipn"
    new_host_response=$(mgmt_cli add host name $host_name ip-address $ip -s id_add_host.txt 2> /dev/null)
    on_error_print_and_exit "Error: Failed to create host object. n$new_host_response"

    #PUBLISH THE CHANGES
    printf "nPublishing the changesn"
    mgmt_cli publish --root true -s id_add_host.txt &> /dev/null
    on_error_print_and_exit "Error: Failed to publish the changes."

    #LOGOUT
    logout
	
	printf "Done.n"
}

logout(){
	mgmt_cli logout --root true -s id_add_host.txt &> /dev/null
}

on_error_print_and_exit(){
    if [ $? -ne 0 ]; then
        handle_error "$1" 
	fi
}

handle_error(){
    printf "n$1n" #print error message
    mgmt_cli discard --root true -s id_add_host.txt &> /dev/null
    logout
    exit 1
}

on_empty_input_print_and_exit(){
	if [ -z "$1" ]; then
		printf "$2n" #print error message
		logout
		exit 0
	fi
}

# Script starts here. Call function "main".
main

ፍላጎት ካለህ ተዛማጅ የሆነውን ቪዲዮ ማየት ትችላለህ፡-

3) የCLI መስኮቱን በመክፈት በ SmartConsole በኩል

የሚያስፈልግዎ መስኮቱን መክፈት ብቻ ነው CLI በቀጥታ ከ ስማርት ኮንሶልከታች በስዕሉ ላይ እንደሚታየው.

የፍተሻ ነጥብ R80.10 API በCLI፣ ስክሪፕቶች እና ሌሎችም በኩል ይቆጣጠሩ

በዚህ መስኮት ውስጥ ወዲያውኑ የኤፒአይ ትዕዛዞችን ማስገባት ይችላሉ.

4) የድር አገልግሎቶች. የኤችቲቲፒኤስ ፖስት ጥያቄን ተጠቀም (REST API)

በእኛ አስተያየት, ይህ በጣም ተስፋ ሰጭ ዘዴዎች አንዱ ነው, ምክንያቱም ላይ በመመስረት ሙሉ መተግበሪያዎችን "እንዲገነቡ" ይፈቅድልዎታል አስተዳደር አገልጋይ አስተዳደር (ስለ ታውቶሎጂ ይቅርታ) ከዚህ በታች ይህንን ዘዴ በጥቂቱ በዝርዝር እንመለከታለን.

ለማሳጠር:

  1. API + cli ለሲስኮ ለሚጠቀሙ ሰዎች የበለጠ ተስማሚ;
  2. ኤፒአይ + ሼል ስክሪፕቶችን ለመተግበር እና የተለመዱ ተግባራትን ለማከናወን;
  3. የ REST ኤ ፒ አይ ለራስ-ሰር.

ኤፒአይን በማንቃት ላይ

በነባሪ፣ ኤፒአይ ከ4ጂቢ RAM በላይ እና ከ8ጂቢ RAM በላይ ባላቸው የነጠላ ውቅሮች አስተዳደር አገልጋዮች ላይ ነቅቷል። ትዕዛዙን በመጠቀም ሁኔታውን ማረጋገጥ ይችላሉ- api ሁኔታ

ኤፒአይ የተሰናከለ ሆኖ ከተገኘ በSmartConsole በኩል እሱን ማንቃት በጣም ቀላል ነው፡- ያቀናብሩ እና ቅንብሮች > ቅጠሎች > የአስተዳደር ኤፒአይ > የላቁ ቅንብሮች

የፍተሻ ነጥብ R80.10 API በCLI፣ ስክሪፕቶች እና ሌሎችም በኩል ይቆጣጠሩ

ከዚያ ያትሙ (አትም) ይለውጣል እና ትዕዛዙን ያሂዱ api እንደገና አስጀምር.

የድር ጥያቄዎች + Python

የኤፒአይ ትዕዛዞችን ለመፈጸም፣ በመጠቀም የድር ጥያቄዎችን መጠቀም ትችላለህ ዘንዶ እና ቤተ-መጻሕፍት ጥያቄዎች, JSON. በአጠቃላይ የድር ጥያቄ አወቃቀር ሶስት ክፍሎችን ያቀፈ ነው፡-

1) አድራሻ

(https://<managemenet server>:<port>/web_api/<command>) 


2) HTTP ራስጌዎች

content-Type: application/json
x-chkp-sid: <session ID token as returned by the login command>


3) ክፍያ ይጠይቁ

የተለያዩ መለኪያዎችን የያዘ ጽሑፍ በJSON ቅርጸት

የተለያዩ ትዕዛዞችን የመጥራት ምሳሌ፡-


def api_call(ip_addr, port, command, json_payload, sid):
    url = 'https://' + ip_addr + ':' + str(port) + '/web_api/' + command
    if sid == “”:
        request_headers = {'Content-Type' : 'application/json'}
    else:
        request_headers = {'Content-Type' : 'application/json', 'X-chkp-sid' : sid}
    r = requests.post(url,data=json.dumps(json_payload), headers=request_headers,verify=False)
    return r.json()                                        
'xxx.xxx.xxx.xxx' -> Ip address GAIA

የቼክ ነጥብን በሚያስተዳድሩበት ጊዜ ብዙ ጊዜ የሚያጋጥሟቸው ጥቂት የተለመዱ ተግባራት እዚህ አሉ።

1) የፈቃድ እና የመውጣት ተግባራት ምሳሌ፡-

ስክሪፕት


    payload = {‘user’: ‘your_user’, ‘password’ : ‘your_password’}
    response = api_call('xxx.xxx.xxx.xxx', 443, 'login',payload, '')
    return response["sid"]

    response = api_call('xxx.xxx.xxx.xxx', 443,'logout', {} ,sid)
    return response["message"]

2) ቢላዎችን ማብራት እና አውታረ መረቡ ማዋቀር;

ስክሪፕት


new_gateway_data = {'name':'CPGleb','anti-bot':True,'anti-virus' : True,'application-control':True,'ips':True,'url-filtering':True,'interfaces':
                    [{'name':"eth0",'topology':'external','ipv4-address': 'xxx.xxx.xxx.xxx',"ipv4-network-mask": "255.255.255.0"},
                     {'name':"eth1",'topology':'internal','ipv4-address': 'xxx.xxx.xxx.xxx',"ipv4-network-mask": "255.255.255.0"}]}
new_gateway_result = api_call('xxx.xxx.xxx.xxx', 443,'set-simple-gateway', new_gateway_data ,sid)
print(json.dumps(new_gateway_result))

3) የፋየርዎል ደንቦችን መለወጥ;

ስክሪፕት


new_access_data={'name':'Cleanup rule','layer':'Network','action':'Accept'}
new_access_result = api_call('xxx.xxx.xxx.xxx', 443,'set-access-rule', new_access_data ,sid)
print(json.dumps(new_access_result))

4) የመተግበሪያ ንብርብር መጨመር;

ስክሪፕት


add_access_layer_application={ 'name' : 'application123',"applications-and-url-filtering" : True,"firewall" : False}
add_access_layer_application_result = api_call('xxx.xxx.xxx.xxx', 443,'add-access-layer', add_access_layer_application ,sid)
print(json.dumps(add_access_layer_application_result))

set_package_layer={"name" : "Standard","access":True,"access-layers" : {"add" : [ { "name" : "application123","position" :2}]} ,"installation-targets" : "CPGleb"}
set_package_layer_result = api_call('xxx.xxx.xxx.xxx', 443,'set-package', set_package_layer ,sid)
print(json.dumps(set_package_layer_result))

5) ፖሊሲውን ያትሙ እና ያቀናብሩ ፣ የትዕዛዙን አፈፃፀም ያረጋግጡ (ተግባር-መታወቂያ)

ስክሪፕት


publish_result = api_call('xxx.xxx.xxx.xxx', 443,"publish", {},sid)
print("publish result: " + json.dumps(publish_result))
new_policy = {'policy-package':'Standard','access':True,'targets':['CPGleb']}
new_policy_result = api_call('xxx.xxx.xxx.xxx', 443,'install-policy', new_policy ,sid)
print(json.dumps(new_policy_result)

task_id=(json.dumps(new_policy_result ["task-id"]))
len_str=len(task_id)
task_id=task_id[1:(len_str-1)]
show_task_id ={'task-id':(task_id)}
show_task=api_call('xxx.xxx.xxx.xxx',443,'show-task',show_task_id,sid)
print(json.dumps(show_task))

6) አስተናጋጅ አክል

ስክሪፕት


new_host_data = {'name':'JohnDoePc', 'ip-address': '192.168.0.10'}
new_host_result = api_call('xxx.xxx.xxx.xxx', 443,'add-host', new_host_data ,sid)
print(json.dumps(new_host_result))

7) የአደጋ መከላከያ መስክ ይጨምሩ

ስክሪፕት


set_package_layer={'name':'Standard','threat-prevention' :True,'installation-targets':'CPGleb'}
set_package_layer_result = api_call('xxx.xxx.xxx.xxx', 443,'set-package',set_package_layer,sid)
print(json.dumps(set_package_layer_result))

8) የክፍለ-ጊዜዎችን ዝርዝር ይመልከቱ

ስክሪፕት


new_session_data = {'limit':'50', 'offset':'0','details-level' : 'standard'}
new_session_result = api_call('xxx.xxx.xxx.xxx', 443,'show-sessions', new_session_data ,sid)
print(json.dumps(new_session_result))

9) አዲስ መገለጫ ይፍጠሩ;

ስክሪፕት


add_threat_profile={'name':'Apeiron', "active-protections-performance-impact" : "low","active-protections-severity" : "low or above","confidence-level-medium" : "prevent",
  "confidence-level-high" : "prevent", "threat-emulation" : True,"anti-virus" : True,"anti-bot" : True,"ips" : True,
  "ips-settings" : { "newly-updated-protections" : "staging","exclude-protection-with-performance-impact" : True,"exclude-protection-with-performance-impact-mode" : "High or lower"},
  "overrides" : [ {"protection" : "3Com Network Supervisor Directory Traversal","capture-packets" : True,"action" : "Prevent","track" : "Log"},
                  {"protection" : "7-Zip ARJ Archive Handling Buffer Overflow", "capture-packets" : True,"action" : "Prevent","track" : "Log"} ]}
add_threat_profile_result=api_call('xxx.xxx.xxx.xxx',443,'add-threat-profile',add_threat_profile,sid)
print(json.dumps(add_threat_profile_result))  

10) እርምጃውን ለአይፒኤስ ፊርማ ይለውጡ፡-

ስክሪፕት


set_threat_protection={
  "name" : "3Com Network Supervisor Directory Traversal",
  "overrides" : [{ "profile" : "Apeiron","action" : "Detect","track" : "Log","capture-packets" : True},
    { "profile" : "Apeiron", "action" : "Detect", "track" : "Log", "capture-packets" : False} ]}
set_threat_protection_result=api_call('xxx.xxx.xxx.xxx',443,'set-threat-protection',set_threat_protection,sid)
print(json.dumps(set_threat_protection_result))

11) አገልግሎትዎን ይጨምሩ;

ስክሪፕት


add_service_udp={    "name" : "Dota2_udp", "port" : '27000-27030',
"keep-connections-open-after-policy-installation" : False,
"session-timeout" : 0, "match-for-any" : True,
"sync-connections-on-cluster" : True,
"aggressive-aging" : {"enable" : True, "timeout" : 360,"use-default-timeout" : False  },
"accept-replies" : False}
add_service_udp_results=api_call('xxx.xxx.xxx.xxx',443,"add-service-udp",add_service_udp,sid)
print(json.dumps(add_service_udp_results))

12) ምድብ፣ ጣቢያ ወይም ቡድን አክል፡

ስክሪፕት


add_application_site_category={  "name" : "Valve","description" : "Valve Games"}
add_application_site_category_results=api_call('xxx.xxx.xxx.xxx',443,"add-application-site-category",add_application_site_category,sid)
print(json.dumps(add_application_site_category_results))

add_application_site={    "name" : "Dota2", "primary-category" : "Valve",  "description" : "Dotka",
  "url-list" : [ "www.dota2.ru" ], "urls-defined-as-regular-expression" : False}
add_application_site_results=api_call('xxx.xxx.xxx.xxx',443,"add-application-site " , 
add_application_site , sid)
print(json.dumps(add_application_site_results))

add_application_site_group={"name" : "Games","members" : [ "Dota2"]}
add_application_site_group_results=api_call('xxx.xxx.xxx.xxx',443,"add-application-site-group",add_application_site_group,sid)
print(json.dumps(add_application_site_group_results))

በተጨማሪም, በእርዳታ ድር ኤ.ፒ.አይ. አውታረ መረቦችን ፣ አስተናጋጆችን ፣ ሚናዎችን መድረስ ፣ ወዘተ ማከል እና ማስወገድ ይችላሉ። ቢላዎች ሊበጁ ይችላሉ። ጸረ-ቫይረስ፣ አንቲቦት፣ አይፒኤስ፣ ቪፒኤን. ትዕዛዙን በመጠቀም ፍቃዶችን መጫን እንኳን ይቻላል አሂድ-ስክሪፕት. ሁሉም የቼክ ነጥብ ኤፒአይ ትዕዛዞች እዚህ ይገኛሉ እዚህ.

ነጥብ ኤፒአይ + ፖስታ ሰኛን ያረጋግጡ

እንዲሁም ለመጠቀም ምቹ የቼክ ነጥብ ድር ኤፒአይ ጋር ተያይዘው ፖስትማን. ፖስትማን ለዊንዶውስ፣ ሊኑክስ እና ማክኦኤስ የዴስክቶፕ ስሪቶች አሉት። በተጨማሪም, ለ Google Chrome ፕለጊን አለ. እኛ የምንጠቀመው ይህንን ነው. መጀመሪያ በጉግል ክሮም ማከማቻ ውስጥ ፖስትማን ማግኘት እና መጫን ያስፈልግዎታል

የፍተሻ ነጥብ R80.10 API በCLI፣ ስክሪፕቶች እና ሌሎችም በኩል ይቆጣጠሩ

ይህንን መገልገያ በመጠቀም፣ ወደ ቼክ ነጥብ ኤፒአይ የድር ጥያቄዎችን መፍጠር እንችላለን። ሁሉንም የኤፒአይ ትዕዛዞችን ላለማስታወስ ፣ ሁሉንም አስፈላጊ ትዕዛዞችን የያዘውን ስብስቦች (አብነቶች) የሚባሉትን ማስመጣት ይቻላል ።

የፍተሻ ነጥብ R80.10 API በCLI፣ ስክሪፕቶች እና ሌሎችም በኩል ይቆጣጠሩ

ይህ ነው ታገኛለህ ስብስብ R80.10. ካስመጣን በኋላ የኤፒአይ ትዕዛዝ አብነቶች ለእኛ የሚገኙ ይሆናሉ፡-

የፍተሻ ነጥብ R80.10 API በCLI፣ ስክሪፕቶች እና ሌሎችም በኩል ይቆጣጠሩ

በእኔ አስተያየት ይህ በጣም ምቹ ነው. የቼክ ነጥብ ኤፒአይን በመጠቀም መተግበሪያዎችን በፍጥነት ማዘጋጀት መጀመር ይችላሉ።

ነጥቡን ያረጋግጡ + የሚቻል

እንዳለም ማስተዋል እፈልጋለሁ የሚጠራ ሞዱል ለ CheckPoint API ሞጁሉ አወቃቀሮችን እንዲያስተዳድሩ ይፈቅድልዎታል, ነገር ግን ያልተለመዱ ችግሮችን ለመፍታት በጣም ምቹ አይደለም. ስክሪፕቶችን በማንኛውም የፕሮግራም አወጣጥ ቋንቋ መፃፍ የበለጠ ተለዋዋጭ እና ምቹ መፍትሄዎችን ይሰጣል።

መደምደሚያ

የCheck Point API አጭር ግምገማችንን የምንጨርስበት ይህ ነው። በእኔ አስተያየት ይህ ባህሪ በጣም ለረጅም ጊዜ ሲጠበቅ የነበረው እና አስፈላጊ ነበር. የኤፒአይ መከሰት ለሁለቱም የስርዓት አስተዳዳሪዎች እና ከቼክ ነጥብ ምርቶች ጋር ለሚሰሩ የስርዓት ውህዶች በጣም ሰፊ እድሎችን ይከፍታል። ኦርኬስትራ፣ አውቶሜሽን፣ የSIEM ግብረ መልስ... አሁን ሁሉም ይቻላል።

ስለ PS ተጨማሪ ጽሑፎች Check Point እንደ ሁሌም በብሎጋችን ላይ ማግኘት ይችላሉ። ሀብር ወይም በብሎግ ላይ ጣቢያ.

PSS ቼክ ነጥብን ከማቀናበር ጋር ለተያያዙ ቴክኒካዊ ጥያቄዎች፣ ይችላሉ። እዚህ

በዳሰሳ ጥናቱ ውስጥ የተመዘገቡ ተጠቃሚዎች ብቻ መሳተፍ ይችላሉ። ስግን እንእባክህን።

ኤፒአይን ለመጠቀም እያሰቡ ነው?

  • 70,6%አዎ 12

  • 23,5%No4

  • 5,9%ቀድሞውኑ 1 ተጠቅሟል

17 ተጠቃሚዎች ድምጽ ሰጥተዋል። 3 ተጠቃሚዎች ድምፀ ተአቅቦ አድርገዋል።

ምንጭ: hab.com

አስተያየት ያክሉ