Tuesday, February 11, 2020

დინამიურად განსაზღვრეული დიაპაზონი (სია) ექსელში

ექსელში მუშაობისას ძალიან ეფექტურია წინასწარ განსაზღვრული დიაპაზონიდან მოცემულ სიასთან მუშაობა Data Validation-სთვის, დიაგრამებისთვის და ა.შ. თუმცა ყოველდღიური  პრაქტიკული ამოცანები მოითხოვენ რომ ასეთი სიები მაქსიმალურად მოქნილნი იყვნენ. მაგალითად რაღაც პოზიცია შეიძლება არ იყოს უკვე აქტუალური და უნდა წაიშალოს ან პირიქით სიას დაემატოს პროდუქტების ახალი დასახელებები და შესაბამისად ერთ სიაში ამ ცვლილების ასახვით ისინი უნდა გავრცელდნენ მთელ ფაილზე.  ასეთ სიებს ხოლმე დინამიურად განსაზღვრულს უწოდებენ.
დინამიურად განსაზღვრული სიის ფორმირებისთვის მრავალი მეთოდი არსებობს, მაგრამ ჩვენ დღეს ვისაუბრებთ ერთ-ერთ ყველაზე მარტივზე - ფუნქცია INDEX-ის გამოყენებით.
ყველაზე მარტივი დიაპაზონი შეიძლება გაკეთდეს  სვეტში მოცემული მონაცემებისგან:

ვინაიდან არ გვინდა, რომ სათაურიც მოხვდეს სიაში მის ფორმირებას დავიწყებთ A2 უჯრიდან. სტანდარტულ სიტუაციაში სიის დიაპაზონი იქნებოდა $A$1:$A$6. მაგრამ რადგანაც გვინდა რომ ეს სია მაქსიმალურად მოქნილი იყოს და ასახავდეს მასში ახალი დასახელებების დამატებას ან ძველების წაშლას გამოვიყენებთ მსგავსი ტიპის ფორმულას:
=$A$2:INDEX($A:$A,COUNTA($A:$A))
აღნიშნული ფორმულა უნდა ჩავწეროთ დიალოგურ ფანჯარაში, რომელსაც გამოვიძახებთ Formulas თაბიდან Define Names ბრძანებით.




მოდით გავარჩიოთ, როგორ მიიღწევა ასეთი შედეგი:
ჩვენ ფორმულა იწყება A2 უჯრით და შემდეგ მოდის დიაპაზონის აღმნიშვნელი : ანუ ნათელია, რომ დიაპაზონი იწყება A სვეტის 2 უჯრიდან, დიაპაზონის სიმბოლოს მერე მოდის ფუნქცია INDEX, რომელიც თავის მხრივ რაღაც მონაცემებს იღებს მეორე ფუნქციიდან COUNTA-დან. ამიტომ უფრო ყურადღებით შევხედოთ ჩვენი ფორმულის ამ კონსტრუქციას:
INDEX($A:$A,COUNTA($A:$A))
ეს კონსტრუქცია განსაზღვრავს თუ რომელი იქნება A2 დაწყებული დიაპაზონის ბოლო უჯრა: კონკრეტულად კი COUNTA ადგენს რომელი არის ბოლო შევსებული (არა ცარიელი უჯრა) და ამ ინფორმაციას გადასცემს ფუნქცია ინდექსს, რომელიც უკვე განსაზღვრავს დიაპაზონის ბოლო უჯრას.

მსგავსი მიდგომით შესაძლებელია ასევე დინამიური დიაპაზონის ფორმირება როგორც სვეტების ისე სტრიქონების მეშვეობით. (მართალია ასეთი დინამიური დიაპაზონი Data Validation-ისთვის შეიძლება აღარ იყოს გამოსადეგი, მაგრამ მისი გამოყენება შეიძლება მაგალითად დიაგრამებში, ან რაიმე ფორმულებში)
=$A$1:INDEX($1:$1048576,COUNTA($A:$A),COUNTA($1:$1))
აღნიშნულ შემთხვევაში ინდექსი მოიცავს ექსელის გვერდის ყველა უჯრას დაწყებული 1დან დამთავრებული 1048576 (უფრო გადაზღვევის მიზნით, არა მგონია ოდესმე მთლიანად შეავსოთ ექსელის გვერდი), ხოლო COUNTA  „აკონტროლებს“ როგორც სვეტებს, ისე სტრიქონებს.

გვერდის ჩარჩო ვორდში

გვერდის ჩარჩოსთან მუშაობა ხასიათდება მცირე განსხვავებით ვორდის ვერსიის მიხედვით, თუმცა ზოგადი მომენტები საერთოა. ჩვენ უშუალოდ განვიხილავთ ამ საკითხს Office 2019-ს მაგალითზე.
პირველ რიგში გახსენით Design თაბი (ძველ ვერსიებზე გახსენით Layout ან Page Layout თაბები) და დააჭირეთ Page Borders ღილაკს, რის შემდეგ გაიხსნება პატარა ფანჯარა სახელად Borders and Shading, როგორც წესი ავტომატურად Page Border თაბზე.
Depending on your version of Word, click the Design or Layout/Page Layout tab, then click Page Borders
დააჭირეთ Box-ს რათა დაამატოთ სტანდარტული ჩარჩო თქვენ დოკუმენტში, თქვენ შეგიძლიათ შეცვალოთ  ხაზების სტილი, ფერი, ჩარჩოს სისქე გვერდზე მოცემული ჩამოსაშლელი მენიუებიდან. დააჭირეთ ok-ს და ჩარჩო დაემატება თქვენი დოკუმენტის ყველა გვერდს (ან თქვენ შეგიძლიათ ჩარჩო მხოლოდ მოცემულ სექციაზე გამოიყენოთ – Apply to ჩამოსაშლელი მენიუს მეშვეობით, რომელიც განლაგებულია ფანჯრის ქვედა მარჯვენა კუთხეში. თუ აირჩევთ None-ს სტილი არ დაემატება. (ხოლო უკვე ჩარჩოიან გვერდზე ამ ფანჯარაში None-ს არჩვა გააქრობს ჩარჩოს გვერდიდან).
In the Borders and Shading dialog box, select Box, choose your color, style and width options, then click OK to apply it to your document

გარდა სტანდარტული სადა ჩარჩოსი, თქვენ შეგიძლიათ დაამატოთ სხვა სტილის ჩარჩოები, მაგალითად ჩრდილის ტიპის (Shadow) ან ე. წ. სამგანზომილებიანი (3-D)
Select your Word border style by clicking one of the options in the "Setting" section of the "Page Border" tab in the "Borders and Shading" dialog box
Word იძლევა საშუალებას ჩარჩოს ოთხივე მხარის ვიზუალის კონტროლის: ჩვენ შეგვიძლია გავაქროთ გარკვეული ხაზები, ამისთვის ფანჯრის Preview ნაწილში დააჭირეთ ჩარჩოს სქემატური გამოსახულების სასურველ ნაწილს ან იქვე არსებულ პატარა პიქტოგრამებს.
In your Microsoft Word page border settings, click on the individual border lines in the Preview sections to add/remove each line

თუ ჩარჩოს თითო მხარე უნდა იყოს განსხვავებული ფერის, სისქის და ა.შ. მაშინ Setting მხარეს აირჩიეთ Сustom, აირჩიეთ სასურველი სტილი, ფერი, სისქე და ა.შ. და შემდეგ დააჭირეთ ჩარჩოს სქემატური გამოსახულების სასურველ მხარეს ან მხარეებს. (ამ შემთხვევაში თითო მხარეს ინდივიდუალურად უნდა დააჭიროთ). ყველა სხვა Setting-ის შემთხვევაში აღჩეული ფერი, სისქე და სხვა პარამეტრები ავტომატურად ენიჭება ჩარჩოს ოთხივე მხარეს.
In the Page Border options for Microsoft Word, select Custom, select your formatting, then click on one of the border lines in the Preview section to apply it

Wednesday, February 5, 2020

პრინტერის წაშლის არასტანდარტული მეთოდები Windows-ში

პრინტერის წაშლის ტრადიციული გზა საკმაოდ მარტივია. საკმარისია გახსნათ Control Panel -> Devices and Printers, ქვეგანყოფილება Printers-ში დააკლიკოთ მარჯვენა ღილაკით წასაშლელ პრინტერს და აირჩიოთ Remove Device, შემდეგ კი დაადასტუროთ პრინტერის წაშლა.  გამართულ ვინდოუსზე ერთადერთი დაბრკოლებაშეიძლება იყოს ის, რომ თქვენ არ გაქვთ ადმინისტრატორის უფლებები ანდა არ  იცით ადმინისტრატორის პაროლი.
მაგრამ შეიძლება მოხდეს ისე, რომ Device and Printer-ებიდან პრინტერის წაშლა წარუმატებელია. ამ შემთხვევაში სპეციალისტი იძულებულია მიმართოს ალტერნატიულ გზებს და ამ გზებიდან ერთ-ერთი  აუცილებლად წაშლის პრინტერს, თუმცა თვითონ პრინტერის დრაივერის წაშლა შესაძლებელია დამატებით მოგიწიოთ.

მეთოდი 1.  Print Server Properties

თუ უკვე იმყოფებით Device and Printer-ებში  აირჩიეთ პრინტერი და შემდეგ დააჭირეთ ზემოთ გამოჩენილ Print Server properties-ს. ახლად გახსნილ ფანჯარაში გადადით Drivers-ს ტაბზე. ჩამოშლილი სიიდან აირჩიეთ წასაშლელი პრინტერის დასახელება და მიეცით Remove. პროცედურის დასრულების შემდეგ დაარესტარტეთ კომპიუტერი და ცადეთ პრინტერის წაშლა ტრადიციული ან ქვემოთ მოყვანილი სხვა ხერხებით



მეთოდი 2. წაშალეთ პრინტერი პრინტერების ფოლდერიდან:

Win+R კლავიატურული კომბინაციის მეშვეობით გახსნილ Run ფანჯარაში ჩაწერეთ: explorer shell:::{2227A280-3AEA-1069-A2DE-08002B30309D}
გახსნილ ფანჯარაში აირჩიეთ წასაშლელი პრინტერი და მიეცით Delete.


მეთოდი 3. გაასუფთავეთ Print Jobs Queue

Win+R კლავიატურული კომბინაციის მეშვეობით გახსნილ Run ფანჯარაში ჩაწერეთ: C:\Windows\System32\spool\PRINTERS წაშალეთ ამ ფოლდერში არსებული ნებისმიერი ფოლდერი თუ ფაილი. ცადეთ პრინტერის სტანდარტული წესით წაშლა.

მეთოდი 4. პრინტერის წაშლა Setting-ებიდან

თანამედროვე ვინდოუსებში კონტროლ პანელის ალტერნატივად გვევლინება Settings. სანამ უფრო რთულ მეთოდებს აირჩევთ Settings პრინტერის წაშლის ცდა ღირს. Win+R კლავიატურული კომბინაციის მეშვეობით გახსნილ Run ფანჯარაში ჩაწერეთ: ms-settings:connecteddevices მარცხნივ მოცემული სიიდან აირჩიეთ Printers & Scanners და ახლად გახსნილ სიაში დააჭირეთ წასაშლელ პრინტერს და მიეცით Remove. ყოველი შემთხვევისთვის დაარესტარტეთ კომპიუტერი.


მეთოდი 5. პრინტერის წაშლა Print Management-დან

გაითვალისწინეთ რომ Print Management ვინდოუსის ყველა ვერსიას არ აქვს.
Win+R კლავიატურული კომბინაციის მეშვეობით გახსნილ Run ფანჯარაში ჩაწერეთ: printmanagement.msc. ახლად გახსნილ ფანჯარაში ჩამოშალეთ Custom Filters და აირჩიეთ All Printers. შუაში გახსნილ სიაში აირჩიეთ წასაშლელი პრინტერი დააჭირეთ მარჯვენა ღილაკს და მიეცით Delete. დაარესტარტეთ კომპიუტერი.


მეთოდი 6. პრინტერის წაშლა რეესტრიდან

ყურადღება! რეესტრთან მუშაობისას გამოიჩინეთ განსაკუთრებული ყურადღება და სიფრთხილე. შეცდომით  სხვა პარამეტრის წაშლა ან შეცვლა შეიძლება გამოიწვიოს ვინდოუსის დაზიანებაც.
არ არის საიდუმლო, რომ ვინდოუსის ყველა პარამეტრი თუ არა მათი აბსოლუტური უმრავლესობა ინახება რეესტრში. გამონაკლისი არც პრინტერებია. სისტემაში არსებული პრინტერები მოცემულია რეესტრის შემდეგ ჩანაწერში HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Print > Printers . Win+R კლავიატურული კომბინაციის მეშვეობით გასნილ Run ფანჯარაში ჩაწერეთ regedit და შემდეგ მოძებნეთ ზემოთ მოცემული „მისამართი“. Printers ქვემოთ მოცემულ სიაში კი წაშალეთ არასასურველი პრინტერი (მისი ფოლდერი მთლიანად). დაარესტარტეთ კომპიუტერი და ცადეთ  პრინტერის სტანდარტულად წაშლა.

მეთოდი 7. პრინტერის წაშლა cmd-დან ან Powershell-ის მეშვეობით.

იმისთვის რომ წაშალოთ პრინტერი cmd-დან ჯერ უნდა ჩაინიშნოთ მისი სახელი. ამისთვის გახსენით command prompt ადმინისტრატორის უფლებებით და  ჩაწერეთ
wmic printer get name
წასაშლელად კი გამოგადგებათ ბრძანება
printui.exe /dl /n "Name of Printer"
რა თქმა უნდა Name of Printer-ის ნაცვლად უნდა ჩაწეროთ პრინტერის კონკრეტული სახელი. მაგალითად:
printui.exe /dl /n “HP LaserJet MFP M130nw (BD1C6B)”
მსგავსი ლოგიკით ვმოქმედებთ Powershell-ში:
ვიგებთ პრინტერის სახელს
Get-Printer | Format-List Name
და ვშლით სასურველ პრინტერს
Remove-Printer -Name " HP LaserJet MFP M130nw (BD1C6B)"

Tuesday, February 4, 2020

პროცესორის რესურსის გამოყენების კონტროლი ლინუქსში




ლინუქსის სერვერების უპრობლემო მუშაობისთვის მნიშვნელოვანია, რომ პროცესორის რესურსები მეტნაკლებად თანაბრად იყოს ხელმისაწვდომი ყველა საჭირო პროცესისთვის. ამიტომ მნიშვნელოვანია გაკონტროლდეს თუ რა პროცესი პროცესორის რა რესურს იყენებს.
საამისოდ ჩვენ გამოგვადგება ლინუქსის ორი უტილიტა: top და ps

1.       top
top უტილიტა ფართოდ გამოიყენება ადმინების მიერ და ვინდოუსის ტასკ მენეჯერის ანალოგად შეიძლება მოვიაზროთ. top რეალურ დროში (უფრო ზუსტად 5 წამიანი განახლებით) გვიჩვენებს სხვადასხვა პროცესის მიერ პროცესორის, ოპერატიულის, სვაპის გამოყენებას, გაშვებული პროცესების რაოდენობას, პროცესების PID-ებს და ა.შ. სტანდარტულად top პროცესებს ალაგებს CPU დატვირთულობის შესაბამისად, ამიტომ სულ ზემოთ პროცესორის ყველაზე მეტად გამომყენებელი პროგრამები მოექცევიან
top-ის შედეგებში ნაჩვენები სვეტები
PID: პროცესის უნიკალური ნომერი
USER: პროცესის მფლობელი იუზერი, ხშირად ეს პროცესის იგივე გამშვები იუზერია
PR: პროცესის პრიორიტელობა
NI: პროცესის NICE მნიშვნელობა
VIRT: რამდენ ვირტუალურ მეხსიერებას იყენებს პროცესი
RES: რამდენ რეალურ ოპერატიულ მეხსიერებას იყენებს პროცესი
SHR: რამდენ shared მეხსიერებას იყენებს პროცესი
S: როგორია პროცესის სტატუსი: S=sleep, R=running, Z=ზომბი
%CPU: პროცესორის რამდენ პროცენტს იყენებს პროცესი
%MEM:  RAM-ის რამდენ პროცენტს იყენებს პროცესი
TIME+: რამდენი ხანია გაშვებული პროცესი
Command: პროცესის სახელი
თუ გინდათ პროცესის სახელის ნაცვლად ნახოთ მისი სრული მისამართი გაუშვით ბრძანება top -c
2.       ps
ps გამოიყენება პროცესების სამართავად. მისი გამოყენება სისტემის დატვირთულობის დასადგენად შესაძლებელია თუმცა შედარებით უფრო რთულია, ვინაიდან ჩვენ უნდა ვუთხრათ ბრძანებას რომ გვსურს ყველა პროცესის ჩვენება და მათი დალაგება პროცესორის დატვირთვის შესაბამისად.

sudo ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head
sudo: რუთის უფლებებით გაშვება
ps: პროცესის ბრძანება
-e: ყველა პროცესის გათვალისწინება
-o: იძლევა შედეგების  ჩვენი საჭიროებისამებს დალაგების საშუალებას
PID: პროცესის უნიკალური ნომერი
PPID: პროცესის მშობელი პროცესის უნიკალური ნომერი
%CPU: პროცესორის რამდენ პროცენტს იყენებს პროცესი
%MEM:  RAM-ის რამდენ პროცენტს იყენებს პროცესი
head - რიგით პირველი ათეული შედეგის ჩვენება
cmd - პროცესის სრული მისამართი, ასევე პროცესის ყველა პარამეტრი. თუ საჭიროა მხოლოდ პროცესორის სახელი მაშინ  cmd-ს ნაცვლად comm ჩაწერეთ




Nmap. ბრძანებები ადმინებისთვის

წინა პოსტში განვიხილე Nmap-ის ყველაზე ბაზისური საშუალებები, თუმცა IT  სპეციალისტების წინაშე როგორც წესი დგას უფრო სპეციფიური ამოცანები, რომლებზეც დღეს ვისაუბრებ
  1. ჰოსტების სკანირება კონკრეტულ პორტებზე

Nmap გვაძლევს საშუალებას შევამოწმოთ მხოლოდ კონკრეტული პორტები  ჰოსტზე. ქვემოთ მოცემულ მაგალითში მოწმდება 21, 22, 80, 443 პორტები
nmap -p 21,22,80,443 tux-pc
nmap -p 21,22,80,443 192.168.1.1
საჭიროებისამებრ შეიძლება შემოწმდეს ასევე პორტების რეინჯი:
nmap -p 122-200 tux-pc
  1. TCP/UDP სკანირება

Nmap შეუძლია ცალ-ცალკე დაასკანიროს TCP და UDP პორტები, გამოიყენოს ცვლადები და ა.შ.
nmap -p -T:20-25, 80, 443 U:53,67,111  192.168.1.1
ზემოთ მოცემულ მაგალითში დასკანირდება 20-25, 80 და 443 TCP პორტი და UDP  53, 67, 111 პორტები 192.168.1.1 ჰოსტზე.
შემდეგ მაგალითში იგივე ჰოსტი დასკანირდება მხოლოდ ყველაზე გავრცელებულ 10 პორტზე
nmap –top-ports 10 192.168.1.1
  1. ქსელის სეგმენტში უბრალოდ ჰოსტების ჩამოთვლა

რიგ შემთხვევაში ადმინს ჭირდება გაიგოს მხოლოდ თუ რა ჰოსტებია რეალურად ჩართული ამა თუ იმ ქსელში, ისე რომ მათი პორტების დასკანირება არ ჭირდება. ამის მიღწევა შეიძლება შემდეგი ბრძანებით:
sudo nmap -sn  192.168.1.0/24
როგორც ხედავთ რიგ შემთხვევაში Nmap-ის გაშვება ხდება რუთის (ადმინის) უფლებებით (sudo). ამ კონკრეტულ შემთხვევაში Nmap სხვანაირად უბრალოდ ვერ გააგზავნიდა TCP ACK მოთხოვნას. ამიტომაც თუ ამჩნევთ რომ Nmap რაღაცას ბოლომდე ვერ აკეთებს ცადეთ იმავე ბრძანების რუთის უფლებებით გაშვება.
  1. სწრაფი სკანირება

თუ საჭიროა სწრაფი სკანირება მხოლოდ ყველაზე გამოყენებად პორტებზე გამოიყენეთ პარამეტრი -F
nmap  -F 192.168.1.0/24
  1. მხოლოდ ღია პორტების ჩვენება

თუ საჭიროა მხოლოდ ღია პორტების ჩვენება გამოიყენეთ პარამეტრი --open
nmap  - - open  tux-pc
  1. პორტის მდგომარეობის მიზეზის დადგენა

მაგალითად კონკრეტული პორტი შეიძლება გახსნილი იყოს კონკრეტული მიზნისთვის (მაგალითად syn-ack). ამ მიზნის დადგენა შეიძლება პარამეტრი --reason გამოყენებით
nmap -- reason localhost
  1. ქსელის ინტერფეისების და როუტების ჩვენება

ეს ალბათ ის იშვიათი შემთხვევა როცა nmap ინფორმაციას გვაძლევს არა დაშორებულ ჰოსტზე, არამედ ჩვენ საკუთარი მოწყობილობაზე. -- iflist პარამეტრით ჩვენ მივიღებთ ინფორმაციას ჩვენი ჰოსტის ინტერფეისებზე და როუტებზე
  1. nmap-ის სკანირების აგრესიის განსაზღვრა

რაც უფრო აგრესიულია Nmap სკანირებისას მით უფრო მალე მთავრდება სკანირება. თუმცა მაღალი აგრესიულობის პირობებში დასასკანირებელ ჰოსტზე შეიძლება წარმოიქნას პრობლემები. აგრესიულობის დონე იწყება 0დან (ყველაზე მშვიდი) და მთავრდება 5-ით (ყველაზე აგრესიული) სტანდარტულად Nmap მუშაობს მესამე დონეზე. თუმცა -T პარამეტრით ჩვენ შეგვიძლია მივუთითოთ კონკრეტული დონე, მაგალითად მეოთხე:
nmap --top-ports 10 -T4 192.168.1.1
  1. ოპერაციული სისტემის დადგენა

წინა პოსტში ჩვენ პრინციპში ვისაუბრეთ ჰოსტის ოპერაციული სისტემის ვერსიის დადგენაზე. თუ საჭიროა ჰოსტების რეინჯის ოპერაციული სისტემების დადგენა გამოიყენეთ პარამეტრი -O
nmap -O 192.168.1.1/24
რიგ შემთხვევაში Nmap-მა შეიძლება  ვერ ცნოს ჰოსტის ოპერაციული სისტემა (მაგალითად ფაირვოლის გამო). ასეთ შემთხვევაში გაუშვით იგივე ბრძანება რუთის უფლებებით და  დამატებით გამოიყენეთ პარამეტრი --osscan-guess. Nmap პროცენტულ შეფარდებაშ გაჩვენებთ თუ სავარაუდოდ რა ოპერაციული სისტემები აყენია ჰოსტზე.
nmap -O --osscan-guess 192.168.1.1/24

  1. ზოგი სერვისის ვერსიის გარკვევა

ქსელის უსაფრთხოებისთვის მნიშვნელოვანია რომ სერვისები რომლებიც „გარეთ“ იყურებიან ყოველთვის განახლებულები იყვნენ. იმისთვის რომ გაირკვეს თუ  რა ვერსიებისაა ამა თუ იმ ჰოსტ(ებ)ის ქსელური სერვისები გამოგადგებათ პარამეტრი -sV
nmap -sV  192.168.1.103
  1. თუ ICMP დაბლოკილია...

სტანდარტულად Nmap თავის ძიებებში ეფუძნება ICMP პროტოკოლს („პინგის პროტოკოლი“). შესაბამისად თუ ჰოსტზე დაბლოკილია პინგი, Nmap-ისთვის უნდა გამოიყენოთ ალტერნატიული მეთოდები: TCP SYN  ან TCP ACK. ამ მეთოდებით Nmap-ს შეუძლია დაადგინოს არის თუ არა ჰოსტი ჩართული და ასკანირებს მის პორტებს სტანდარტული TCP შეერთების დამყარების გარეშე. -PS გამოიყენება  TCP SYN-სთვის, ხოლო  -PA TCP-ACK-სთვის. გაითვალისწინეთ რომ პარამეტრსა და პორტი იწერება გადაბმულად, გამოტოვების გამოყენება დაუშვებელია:
sudo nmap -PS22-25, 80,110,8080 192.168.0.101
sudo nmap -PA20-25,80,110,8080 192.168.0.101

  1. OS Fingerprints

პროცედურა რომელსაც შეიძლება დავარქვათ ოპერაციულის სისტემის ანაბეჭდების აღებას გულისხმობს დაშორებულ ჰოსტებზე ინფორმაციის პასიურ რეჟიმში შეგროვებას ჩვეულებრივი ქსელური კომუნიკაციების დროს. ეს განსაკუთრებით კარგია თუ საჭიროა რომ ინფორმაცია რაც შეიძლება შეუმჩნევლად შეგროვდეს დაშორებული სისტემის დაცვის მექანიზმებისთვის. Nmap ასეთ მიდგომას TCP connect scan-ს უწოდებს.
nmap -sT 192.168.1.1/24
  1. რა IP პროტოკოლებია დაშვებული დაშორებულ ჰოსტზე?

თუ არსებობს ეჭვი რომ დაშორებულ ჰოსტზე დაბლოკილია გარკვეული პროტოკოლები. ჩვენ -sO პროტოკოლის მეშვეობით შეგვიძლია დავადგინოთ დაშვებული პროტოკოლები. ამ შემთხვევაში ჯობია გამოვიყენოთ -v პარამეტრიც.
nmap -v -sO 192.168.1.1
  1. non-statefull ფაირვოლებისთვის გვერდის ავლა

ფაირვოლებმა იციან Nmap-ის არსებობის შესახებ ცდილობენ მისთვის ინფორმაციის დაბლოკვას. თუმცა ამ სამი თანმიმდევრული ბრძანებით არსებობს non-statefull ფაირვოლისთვის გვერდის ავლის დიდი შანსი.
nmap -sN 192.168.1.1   #null TCP flag -ის გაგზავნა
nmap -sF 192.168.1.1   #FIN bit დაყენება
nmap -sX 192.168.1.1  #დამატებით PSH და URG ბიტების დაყენება

Saturday, February 1, 2020

NMap ბაზისები


Nmap (Network MAPper) არის ერთ-ერთი ყველაზე გამოყენებადი და ბაზისური ინსტრუმენტი ქსელის სკანირებისთვის მისი სტრუქტურის ანდა უსაფრთხოების შესასწავლად.

თუ თქვენ არასოდეს არ გამოგიყენებიათ nmap ან საერთოდ პირველად გესმისთ ამ ბრძანების შესახებ - ეს პოსტი ზუსტად თქვენთვისაა, რადგანაც ამ პოსტში განვიხილავ ბაზისურ nmap ბრძანებებს.
მარტივად რომ ვთქვათ nmap-ით თქვენ მიიღებთ მაქსიმალურ ინფორმაციას სხვა კომპიუტერზე ან ქსელზე – რა პორტებია იქ გახსნილი ან დახურული, რა ოპერაციული სისტემა/სისტემები აყენია და მრავალი სხვა.
Nmap თავისი არსით Unix ინსტრუმენტია და მისი ნომერ პირველი გამოყენების პლატფორმაა ლინუქსი. 2000 წლიდან ინსტრუმენტის გამოყენება შესაძლებელია ვინდოუსზეც. ინფორმაცია, თუ როგორ შეიძლება მისი  ვინდოუსზე დაყენება და რა შეზღუდვები  აქვს ლინუქს ვერსიასთან შედარებით  დევს Nmap-ის ოფიციალურ საიტზე. ჩვენ კი ამ სტატის დაწერისას გამოვიყენეთ Linux Mint 19.3, სადაც Nmap დაყენდა მარტივი ბრძანებით:
sudo apt install nmap
ყველაზე მარტივი რაც შეიძლება გაკეთდეს nmap-ით. ეს არის ერთი კონკრეტუი ჰოსტის დასკანირება. ჰოსტი შეიძლება მივუთითოთ, როგორც მისი IP მისამართით, ისე hostname-ით
nmap  192.168.1.1
ან
nmap tux-pc
თუ საჭიროა დროის დაზოგვა nmap გვაძლევს საშუალებას ერთდროულად მივუთითოთ რამდენიმე ჰოსტი. ამისთვის საჭიროა მათი ჩამოთვლა გამოტოვებით:
nmap 192.168.1.1  192.168.1.2 192.168.1.6
nmap tux-pc server1 server2
თუ IP მისამართები ერთ ქსელში არიან განთავსებული, მაშინ მათი ჩამოთვლა შემოკლებულადაც შეიძლება:
nmap 192.168.1.1,2,6
რა თქმა უნდა nmap იძლევა საშუალებას დავასკანიროთ IP მისამართების კონკრეტული რეინჯი:
nmap 192.168.1.1-27
თუ საჭიროა დასკანირდეს ყველა ხელმისაწვდომი ჰოსტი, შეგიძლიათ გამოიყენოთ wildcard. მაგალითად:
nmap 192.168.1.*
კონკრეტული საბნეტის დასკანირებისთვის საკმარისია საბნეტის მითითება:
nmap 192.168.1.1/16
nmap შეუძლია ასევე წაიკითხოს მისამართები ფაილიდან და შემდეგ დაასკანიროს ისინი.
Nmap -iL /home/tux/Desktop/hosts
--exclude  პარამეტრი საშუალებას იძლევა გამორიცხოთ გარკვეული ჰოსტები რეინჯის დასკანირებისას.  --excludefile შესაბამისად გამორიცხავს მითითებულ ფაილეში მოცემულ ჰოსტებს
nmap 192.168.1.1/16  --exclude 192.168.1.1,2,3
nmap -iL  /home/ tux/Desktop/ hosts --excludefile /tmp/nohost
nmap-ს აქვს პარამეტრი -v, რომლის მითითებისას  Nmap  არამარტო საბოლოო შედეგს გიჩვენებთ, არამედ ამ შედეგის მიღების პროცესსაც – ეს განსაკუთრებით კარგია nmap-ის დამწყები მომხმარებლისთვის. მათთვის უფრო ნათელი ხდება nmap-ის მუშაობის ლოგიკა
თუ საჭიროა ჰოსტის ოპერაციული სისტემის შესახებ ინფორმაციის მიღება გამოიყენება პარამეტრი -A
nmap -A 192.168.1.1
როგორც წესი მნიშვნელოვანი ჰოსტები firewall დაცვის ქვეშ არიან. ამიტომ  მათი  დასკანირებისას შეგიძლიათ გამოიყენოთ პარამეტრი -sA
nmap -sA 192.168.0.1
თუ ჰოსტ(ებ)ი დაცულია გარე ფაირვოლ(ებ)ით მაშინ -PN პარამეტრი გაფილტრავს არა რელევანტურ ინფორმაციას ჰოსტზე:
nmap -PN 192.168.1.1
საქართველოში IPv6 ჰოსტები ჯერ არაა პოპულარული, მაგრამ საჭიროების შემთხვევაში nmap-ს ასეთ ჰოსტებთანაც შეუძლია მუშაობა -6 პარამეტრით
nmap -6   tux-pc

Friday, January 3, 2020

ქსელური უსაფრთხოების ბანალური შეცდომები

პრაქტიკულად დღე არ გავა ისე, რომ რომელიმე მსხვილი ან პოპულარული რესურსის გატეხვის ან მისგან მონაცემების გაჟონვის ამბავი არ გავრცელდეს. რიგ შემთხვევებში ეს არქიტექტორული შეცდომების ბრალია, მაგრამ ხშირად ადამიანური უყურადღებობის ან კიბერუსაფრთხოების ელემენტარული წესების დარღვევის შედეგია.
ამ პოსტში ჩვენ შევეცდებით განვხილოთ მონაცემთა  დამუშავების, შენახვის და გადაცემის სისტემების კონფიგურაციის ყველაზე ხშირი და ამავე დროს ბანალური შეცდომები.

 

მონაცემების ქსელში ღია სახით გადაცემა

ერთ-ერთი ყველაზე ხშირი და ამავე დროს ელემენტარული შეცდომაა. ჯერ კიდევ არსებობს უამრავი პროტოკოლი, რომელიც ღია დაუშიფრავი სახით გადასცემს ქსელში ინფორმაციას (HTTP,  LDAP, Telnet, საფოსტო პროტოკოლები შიფრაციის გარეშე). ღია არხით გადაიცემა მათ შორის მომხმარებელთა იუზერები და პაროლები და სხვა საიდუმლო ინფორმაციაც, რომლიც წაკითხვა ბოროტმოქმედისთვის ძალზედ ადვილია.  ღიად ინფორმაციას შეიძლება გადასცემდეს:
                ვებ-სერვერი - ამ შემთხვევაში საჭიროა HTTP-დან HTTPS-ზე გადასვლა. კომპანიის შიდა რესურსებისთვის დასაშვებია გამოიყენოთ თქვენს მიერვე ხელმოწერილი სერტიფიკატები, რომლებიც შემოწმდებიან სერტიფიკაციის შიდა სისტემის მიერ.  საზოგადოებისთვის ხელმისაწვდომი საიტებისთვის ჯობია გამოიყენოთ სანდო ცენტრების მიერ გამოშვებული სერტიფიკატები.
                LDAP .  LDAP პროტოკოლის გამოყენებისას ჯობია გამოიყენოთ აუთენტიფიკაცია Kerberos-ის მეშვეობით. ასევე ჩართოთ LDAPS და კლიენტები მომართოთ TLS-ის გამოყენებაზე LDAP სერვერისთვის მიმართვის დროს.  მაიკროსოფტმა საკმაოდ დეტალური ინსტრუქცია მოამზადა ამ საკითხზე.
                საფოსტო კლიენტები. კლიენტების (და სერვერების) პარამეტრებში TLS-ის დაყენება. სტანდარტული POP3, IMAP, SMTP პორტების გამოყენების ნაცვლად გამოიყენეთ დაცული პორტები თქვენი პროვაიდერის ინსტრუქციების თანახმად. თუ რაღაც მიზეზების გამო პროვაიდერი არ გაძლევთ ასეთ შესაძლებლობას ჯობია დაფიქრდეთ მის შეცვლაზე.
                Telnet.  აქ ყველაფერი მარტივია. ტელნეტის გამოყენებაზე საერთოდ უნდა თქვათ უარი და გადახვიდეთ SSH-ზე
                FTP. FTP-ს საჭიროების შემთხვევაში უნდა  გადახვიდეთ FTPS - ეს არის FTP  SSL პროტოკოლის გამოყენებით. სიტუაცია სერტიფიკატებთან აქ იგივეა, როგორიც ვებ-სერვერების შემთხვევაში. თუ FTP სერვერზე პარალელურად ssh წვდომაც გაქვთ შეგიძლიათ  გამოიყენოთ SFTP, რომელიც ზუსტად რომ ssh არხს იყენებს. შესაბამისად ნაკლები კონფიგურაცია მოგიწევთ

რემოუთ წვდომის უტილიტების გამოყენება

რემოუთ წვდომის უტილიტების გამოყენება მკაცრი კონტროლის ქვეშ უნდა იყოს აყვანილი. რიგი პროტოკოლი (როგორიცაა მაგალითად RDP) პოტენციური ხვრელია უსაფრთხოებაში. შესაბამისად რემოუთ წვდომის საშუალება უნდა ქონდეთ, მხოლოდ იმ მომხმარებლებს ვისაც ეს ნამდვილად ჭირდება. ამის მიღწევა შეიძლება მაგალითად ორგანიზაციაში სოფტის თეთრი სიის პრინციპის დანერგვით - მომხმარებლებს შეეძლებათ მხოლოდ იმ პროგრამების გამოყენება, რომელიც უშუალოდ მოცემულია სიაში, ყველაფერი დანარჩენი ავტომატურად აკრძალულია. რა თქმა უნდა რემოუთ წვდომის ყველა პროგრამა და პროტოკოლი ბოლო ვერსიამდე უნდა იყოს განახლებული

LLNMR და NetBios

ეს ორი პროტოკოლი საშუალებას აძლევს ბოროტმოქმედს ჩაატაროს MITM (man in the middle) შეტევა. საქმე იმაშია რომ აღნიშნული პროტოკოლები იძლევიან საშუალებას DNS სერვერის გარეშეც კომპიუტერებმა ბროადქასთ რექვესტების მეშვეობით დაარეზოლვონ „მეზობელი“ კომპიუტერები. შიდა ქსელში აღმოჩენილი ბოროტმოქმედი უპასუხებს ბროადქასტ რეკვესტს და გადაამისამართებს შესაბამის მოთხოვნებს თავის კონტროლირებად სერვერზე. ასეთი გზით ბოროტმოქმედს პრაქტიკულად ნებისმიერი ინფორმაციის მიღება შეუძლია.
LLNMR გათიშვა შეიძლება პოლიტიკით Turn Off Multicast Name Resolution, რომელც განლაგებულია Computer Configuration -> Administrative Templates -> Network -> DNS Client. პოლიტიკის ამუშავებისთვის მინი მნიშვნელობა უნდა იყოს:  Enabled
Netbios -ის გასათიშად  გამოიყენეთ dhcpmgmt.msc. Server Options: ჩანართ Advanced -> Microsoft Windows 2000 Options -> Microsoft Disable Netbios Option.  დააყენეთ მნიშვნელობა 0x2.


NetBios -ის გათიშვა შეიძლება ასევე Powershell-ის სკტიპტის მეშვეობით ჯგუფური პოლიტიკების დამხარებით. სკრიპტი ასე გამოიყერება:
$regkey = "HKLM:SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces"
Get-ChildItem $regkey |foreach { Set-ItemProperty -Path "$regkey\$($_.pschildname)" -Name NetbiosOptions -Value 2 -Verbose}

როგორც ხედავთ NetBios გათიშვა შეიძლება უშუალოდ  რეესტრიდანაც:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces -ში NetbiosOptions 2-ზე გადაყვანით.

სანამ ამ ორი პროტოკოლის გლობალურ გათიშვას გადაწყვეტთ დარწმუნდით რომ კორპორატიული სოფტიდან არც ერთი არაა დამოკიდებული ამ პროტოკოლებზე. გარდა ამისა თუ ქსელში ჯერ კიდევ შემორჩენილია Windows XP ან Windows 2000 ჯობია ეს პროტოკოლები არ გათიშოთ. (ჯერ აღნიშნული კომპიუტერების შეცვლა იქნება უპირველესი ამოცანა)

ქსელის კონფიგურაციის შეცდომები

საბნეტებს შორის ზედმეტად მაღალი ნდობის შემთხვევაში ბოროტმოქმედმა საკმარისია ერთ-ერთი მაინც ჩაიგდოს ხელში, რომ მთელი ქსელი და სერვერები კონტროლზე აიყვანოს.  საბნეტებს შორის შესაძლებელია ACL (access control list) პოლიტიკების გაწერა (მართალია ამისთვის ტპ-ლინკის დონის აპარატურა არ გამოგადგებათ).
შიდა რესურსების წვდომა გარე DNS სერვერებთან საჭიროების გარეშე. თუ ქსელში არსებობს შიდა DNS სერვერი  და დომენური სახელების სისტემა მნიშნველოვანია რომ შესაბამისი ინფორმაცია დამუშავდეს მხოლოდ შიგნით და ამ მიზნებისთვის არ იყოს ხელმისაწვდომი public DNS სერვერები.
და რა თქმა უნდა საჭიროების გარეშე გახსნილი ქსელური პორტები და სერვისები. აქაც ჯობია იმოქმედოთ თეთრი სიის პოლიტიკით. გახსნილი პორტები და სერვისები სახელდობრ უნდა იყოს აღწერილი, ყველაფერი დანარჩენი კი დახურული
სასურველია იუზერებს აუკრძალოთ თავისი ქსელური პარამეტრების შეცვლა შემდეგი პოლიტიკით: User Configuration -> Administrative Templates -> Network -> Network Connections.

ტრაფიკის დამალვა

მომხმარებლებს არ უნდა შეეძლოთ თვითნებურად VPN-ის, Tor-ის,  proxy-ს და სხვა მსგავსი ინსტრუმენტების გამოყენება.  ასეთ ინსტრუმენტებთან ბრძოლის საშუალებებია:
                ლოკალური იუზერის უფლებების ადეკვატური შეზღუდვა
                გამოსაყენებელი პროგრამების თეთრი სიის პოლიტიკა
                ფაირვოლის ეფექტური კონფიგურაცია და მონიტორინგი
                ქსელური პორტების დახურვა
აღნიშნული მეთოდები შეიძლება ვებრძოლოთ ასევე ისეთ საფრთხეებს, როგორიცაა მაინერები, ტორენტ კლიენტები, კრიპტატორები და ა.შ.