Home / სისტემები / ავტორიზაციის ლოგირება დომენში

ავტორიზაციის ლოგირება დომენში

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

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

  1. მოქმედების ტიპი: logon ან logoff
  2. კომპიუტერის სახელი (Computer Name)
  3. მომხმარებლის სახელლი
  4. მოქმედების თარიღი

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

 

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

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

Const MY_COMPUTER = &H11&
Set objNetwork = CreateObject(“Wscript.Network”)
objComputerName = objNetwork.ComputerName
objUserName = objNetwork.UserName
Set objShell = CreateObject(“Shell.Application”)
Set objFolder = objShell.Namespace(MY_COMPUTER)
Set objFolderItem = objFolder.Self
MyStroka = “მომხმარებელი: ” & (objUserName) & vbNewLine & “კომპიუტერი: ” & (objComputerName) & vbNewLine & “თარიღი: “‘

On Error Resume Next
Const ForWriting = 2
Const ForReading = 1
Const ForAppending = 8
Const TristateFalse = 0
Set fso = CreateObject(“Scripting.FileSystemObject”)
Set GObjArgs = WScript.Arguments
GStrCmd = GObjArgs(0)
Call crypt(GStrCmd)

Sub crypt(msg)
n = Len(msg)
c = 0
Do Until c = n
c = c + 1
t1 = Mid(msg,c,1)
ch = Chr(asc(t1)+n)
output = output & ch
Loop

MyComp = objComputerName
MyPath = “\\ქსელური დისკის IP\დირექტორია\”
MyDate = Date
MyTime = Time
MyDir = MyPath & MyComp
If Not FSO.FolderExists(MyDir) Then
FSO.CreateFolder(MyDir)
End If

Mytxt = “.txt”
My1 = “\”
Myfile = MyDir & My1 & MyDate & Mytxt

Set GObjLocalF = fso.OpenTextFile(Myfile,ForAppending,True)
GObjLocalF.WriteLine “###########LOGON#################”
GObjLocalF.WriteLine MyStroka & Time
GObjLocalF.WriteLine “#################################”
GObjLocalF.Close
End Sub

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

ჯგუფურ პოლიტიკაში დასამატებლად გამოვიყენეთ სტანდარტული GPO. არ დავიწყებ სურათების დამატებას, რადგან ინტერნეტში არის ტონობით სტატია ამის შესახებ. უბრალოდ მოკლედ გეტყვით თუ როგორ გავაკეთე ეს მე. პირველ რიგში შევქმენი ახალი პილიტიკა (თქვენც ამავეს გირჩევთ, რომ ყოველი ახალი ფუნქციისათვის შექმნათ მისთვის განკუთვნილი ახალი პოლიტიკა), ვთიშავთ მასში კომპიუტერის კონფიგურაციას, ეს არაფერში არ გვჭირდება. სკრიფტები დაემატება მომხმარებლის პარამეტრებში. ვარქმევთ სკრიფტებს მარტივ სახელებს მაგ: logon.vbs და logoff.vbs. ვუთითებთ თითოეულ ქმედებას საკუთარ სკრიფტს. ამის შემდეგ გადაიტანეთ ან დალინკეთ სკრიფტები საჭირო ადგილას და ამით დასრულდება.

 

მუშაობის შემოწმება

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

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

თუ მართლაც ასეა, ესეიგი ყველაფერმა წარმატებით ჩაიარა

ინფორმაცია itbrain