InTrust RDP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рджрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

InTrust RDP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рджрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдЬрд┐рд╕ рдХрд┐рд╕реА рдиреЗ рднреА рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд╡рд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдорд╛рдирдХ рдЖрд░рдбреАрдкреА рдкреЛрд░реНрдЯ, рдЕрдЧрд░ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреБрдирд┐рдпрд╛ рднрд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЖрдИрдкреА рдкрддреЛрдВ рд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рдмреНрд░реВрдЯ рдлреЛрд░реНрд╕ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рддрд░рдВрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рд╣рдорд▓рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рджреЗрдЦ-рд░реЗрдЦ рдореЗрдВ рд░рдЦрдирд╛ рдЖрдк рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдореЗрдВ рдПрдХ рдирдпрд╛ рдирд┐рдпрдо рдЬреЛрдбрд╝рдХрд░ рдкрд╛рд╕рд╡рд░реНрдб рдмреНрд░реВрдЯ рдлрд╝реЛрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдирдЯреНрд░рд╕реНрдЯ рд╣реИ рд╕реАрдПрд▓рдПрдо рдордВрдЪ рдЕрд╕рдВрд░рдЪрд┐рдд рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реИрдХрдбрд╝реЛрдВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред

рдХреНрд╡реЗрд╕реНрдЯ рдЗрдирдЯреНрд░рд╕реНрдЯ рдореЗрдВ рдЖрдк рдирд┐рдпрдо рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЙрдЧ рд╕рдВрдЧреНрд░рд╣ рдПрдЬреЗрдВрдЯ рд╕реЗ, рдЗрдирдЯреНрд░рд╕реНрдЯ рдХреЛ рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдпрд╛ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрд╕рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдореЗрдВ рдирдП рдЖрдИрдкреА рдкрддреЗ рдЬреЛрдбрд╝рдиреЗ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХрд╛рдзрд┐рдХ рд╡рд┐рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдХрд╕реНрдЯрдо рдирд┐рдпрдо рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдПрдХ рдкреНрд░рддрд┐ рдЦреЛрд▓рдиреА рд╣реЛрдЧреА:

InTrust RDP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рджрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рд╡рд┐рдВрдбреЛрдЬрд╝ рд▓реЙрдЧ рдореЗрдВ рдИрд╡реЗрдВрдЯ рдЗрдВрд╕рд░реНрд╢рдирд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдордХ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╡реЗрдВрдЯ рдХреЛрдб 4625 рдХреЗ рд▓рд┐рдП рдореИрдЪ рджреЗрдЦреЗрдВ (рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдЕрд╕рдлрд▓ рд▓реЙрдЧрд┐рди рд╣реИ) рдФрд░ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЬрд┐рди рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╡реЗ InsertionString14 (рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдирд╛рдо) рдФрд░ InsertionString20 (рд╕реНрд░реЛрдд рдиреЗрдЯрд╡рд░реНрдХ рдкрддрд╛) рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рд╣рдорд▓рд╛ рдХрд░рддреЗ рд╕рдордп, рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдирд╛рдо рдлрд╝реАрд▓реНрдб рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрдЧреА рдЦрд╛рд▓реА рд░рд╣реЗрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реНрдерд╛рди рд╕реНрд░реЛрдд рдиреЗрдЯрд╡рд░реНрдХ рдкрддреЗ рд╕реЗ рдорд╛рди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдЗрд╡реЗрдВрдЯ 4625 рдХрд╛ рдкрд╛рда рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд┐рдЦрддрд╛ рд╣реИ:

An account failed to log on.
Subject:
	Security ID:		S-1-5-21-1135140816-2109348461-2107143693-500
	Account Name:		ALebovsky
	Account Domain:		LOGISTICS
	Logon ID:		0x2a88a
Logon Type:			2
Account For Which Logon Failed:
	Security ID:		S-1-0-0
	Account Name:		Paul
	Account Domain:		LOGISTICS
Failure Information:
	Failure Reason:		Account locked out.
	Status:			0xc0000234
	Sub Status:		0x0
Process Information:
	Caller Process ID:	0x3f8
	Caller Process Name:	C:WindowsSystem32svchost.exe
Network Information:
	Workstation Name:	DCC1
	Source Network Address:	::1
	Source Port:		0
Detailed Authentication Information:
	Logon Process:		seclogo
	Authentication Package:	Negotiate
	Transited Services:	-
	Package Name (NTLM only):	-
	Key Length:		0
This event is generated when a logon request fails. It is generated on the computer where access was attempted.
The Subject fields indicate the account on the local system which requested the logon. This is most commonly a service such as the Server service, or a local process such as Winlogon.exe or Services.exe.
The Logon Type field indicates the kind of logon that was requested. The most common types are 2 (interactive) and 3 (network).
The Process Information fields indicate which account and process on the system requested the logon.
The Network Information fields indicate where a remote logon request originated. Workstation name is not always available and may be left blank in some cases.
The authentication information fields provide detailed information about this specific logon request.
	- Transited services indicate which intermediate services have participated in this logon request.
	- Package name indicates which sub-protocol was used among the NTLM protocols.
	- Key length indicates the length of the generated session key. This will be 0 if no session key was requested.

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рдо рдЗрд╡реЗрдВрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рд╕реЛрд░реНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдПрдбреНрд░реЗрд╕ рдорд╛рди рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред

InTrust RDP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рджрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдлрд┐рд░ рдЖрдкрдХреЛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдВрдбреЛрдЬ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдореЗрдВ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░ рджреЗрдЧреАред рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ

param(
         [Parameter(Mandatory = $true)]
         [ValidateNotNullOrEmpty()]   
         [string]
         $SourceAddress
)

$SourceAddress = $SourceAddress.Trim()
$ErrorActionPreference = 'Stop'
$ruleName = 'Quest-InTrust-Block-Failed-Logons'
$ruleDisplayName = 'Quest InTrust: Blocks IP addresses from failed logons'

function Get-BlockedIps {
    (Get-NetFirewallRule -Name $ruleName -ErrorAction SilentlyContinue | get-netfirewalladdressfilter).RemoteAddress
}

$blockedIps = Get-BlockedIps
$allIps = [array]$SourceAddress + [array]$blockedIps | Select-Object -Unique | Sort-Object

if (Get-NetFirewallRule -Name $ruleName -ErrorAction SilentlyContinue) {
    Set-NetFirewallRule -Name $ruleName -RemoteAddress $allIps
} else {
    New-NetFirewallRule -Name $ruleName -DisplayName $ruleDisplayName -Direction Inbound -Action Block -RemoteAddress $allIps
}

рдЕрдм рдЖрдк рдмрд╛рдж рдореЗрдВ рднреНрд░рдо рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдХрд╛ рдирд╛рдо рдФрд░ рд╡рд┐рд╡рд░рдг рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

InTrust RDP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рджрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдЕрдм рдЖрдкрдХреЛ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рдпрдо рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдирд┐рдпрдо рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рдпрдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдирд┐рдЧрд░рд╛рдиреА рдиреАрддрд┐ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдПрдЬреЗрдВрдЯ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╕рд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

InTrust RDP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рджрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЕрд╕рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ 80% рдХреА рдХрдореА рдЖрдИред рд▓рд╛рдн? рдХреНрдпрд╛ рдмрдврд╝рд┐рдпрд╛ рд╣реИ!

InTrust RDP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рджрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдХрднреА-рдХрднреА рдлрд┐рд░ рд╕реЗ рдереЛрдбрд╝реА рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд▓реЗ рдХреЗ рдирдП рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдЙрднрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдШрдЯрдиреЗ рд▓рдЧрддрд╛ рд╣реИред

рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рджреМрд░рд╛рди, рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдо рдореЗрдВ 66 рдЖрдИрдкреА рдкрддреЗ рдЬреЛрдбрд╝реЗ рдЧрдПред

InTrust RDP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рджрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдиреАрдЪреЗ 10 рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдореЛрдВ рд╡рд╛рд▓реА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдпреВрдЬрд╝рд░ рдиреЗрдо

рд╕рдВрдЦреНрдпрд╛

рдкреНрд░рддрд┐рд╢рдд рдореЗрдВ

рдкреНрд░рд╢рд╛рд╕рдХ

1220235

40.78

рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ

672109

22.46

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛

219870

7.35

рдХреЙрдиреНрдЯреЛрд╕реЛ

126088

4.21

contoso.com

73048

2.44

рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ

55319

1.85

рд╕рд░реНрд╡рд░

39403

1.32

sgazlabdc01.contoso.com

32177

1.08

administrateur

32377

1.08

sgazlabdc01

31259

1.04

рд╣рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдк рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдЦрддрд░реЛрдВ рдкрд░ рдХреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддреЗ рд╣реИрдВред рдЖрдк рдХрд┐рд╕ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдХрд┐рддрдиреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ?

рдпрджрд┐ рдЖрдк рдЗрдирдЯреНрд░рд╕реНрдЯ рдХреЛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рд╣реЛрддреЗ рджреЗрдЦрдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдПрдХ рдЕрдиреБрд░реЛрдз рдЫреЛрдбрд╝реЗрдВ рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдлреАрдбрдмреИрдХ рдлреЙрд░реНрдо рдореЗрдВ рдпрд╛ рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрджреЗрд╢ рдореЗрдВ рд▓рд┐рдЦреЗрдВред

рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░ рд╣рдорд╛рд░реЗ рдЕрдиреНрдп рд▓реЗрдЦ рдкрдврд╝реЗрдВ:

рд╣рдо рд░реИрдВрд╕рдорд╡реЗрдпрд░ рд╣рдорд▓реЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рдбреЛрдореЗрди рдирд┐рдпрдВрддреНрд░рдХ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрди рд╣рдорд▓реЛрдВ рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ

рд╡рд┐рдВрдбреЛрдЬрд╝-рдЖрдзрд╛рд░рд┐рдд рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдХреЗ рд▓реЙрдЧ рд╕реЗ рдХреМрди рд╕реА рдЙрдкрдпреЛрдЧреА рдЪреАрдЬрд╝реЗрдВ рдирд┐рдХрд╛рд▓реА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ? (рд▓реЛрдХрдкреНрд░рд┐рдп рд▓реЗрдЦ)

рдкреНрд▓рд╛рдпрд░реНрд╕ рдпрд╛ рдбрдХреНрдЯ рдЯреЗрдк рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛

рдпреЗ рдХрд┐рд╕рдиреЗ рдХрд┐рдпрд╛? рд╣рдо рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдСрдбрд┐рдЯ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ

рдПрд╕рдЖрдИрдИрдПрдо рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреА рд▓рд╛рдЧрдд рдХреИрд╕реЗ рдХрдо рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХреЛ рд╕реЗрдВрдЯреНрд░рд▓ рд▓реЙрдЧ рдореИрдиреЗрдЬрдореЗрдВрдЯ (рд╕реАрдПрд▓рдПрдо) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ