á áá¬ážáá»á®áž
áá»áœááºá¯ááºááá¯á·á âáááºáááºáááºážááŸá®ážááŸá¯â ááẠááœááºáá²á·áá±á¬ ááŸá áºááŸá áºááááºážá á áááºáá²á·áááºá á¡áááºá á¡ááºááºáááºá áá®áá±á¬á·áá²ááºááᯠá¡ááœá±á¡ááŒá Ạáá»ááºáá¬ážáá²á·ááá¯á· á¡áá¯ááºáá±áá¬á¡áá áºááᯠáá±á¬ááºáá²á·áááºá ááá¬ážáááºá á¬ááœááºá á¬áááºážááŸááœá²á á¡ááºáá¬áááºáá±á«áºááœáẠáá»áœááºá¯ááºááŸá¬áááœá±á·áá«á ááá¯áááºáá»áŸáẠáááºááẠâRudderâ á 99% áá±á¬ááá á¹á áá»á¬ážááœáẠáááºá¹áá±á¬áŠážáá¯ááºáá»á¬ážááŸáá·áº quadcopters áá»á¬ážáá«áá¬áááá·áºáááºá áá»áœááºáá±á¬áº áá°á·áá® áá»ááºážáááºááá¯ááºáá²á·áááºá á€áá±á¬á·ááºáá²ááºáá¡ááá¯ááºážá¡ááá¯ááºážááẠá¡á¬ážáááºážáá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºáá¡ááœá±á·á¡ááŒá¯á¶ááŸáá·áº á¡ááá¯ááºá á¬ážááᯠáá»áŸáá±ááẠáá¯á¶ážááŒááºáá²á·áááºá áá«á áá áºá á¯á¶áá áºáá±á¬ááºá¡ááœáẠá¡áá¯á¶ážáááºáááºááá¯á· áááºáá«áááºá
áá®áá±á¬á· Rudder
Rudder ááẠsystem configuration ááá¯á¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºáááºáá°áá®áá±ážáá±á¬ open source auditing and configuration management utility áá áºáá¯ááŒá áºáááºá áááºážááẠáá¯á¶ážá áœá²áá°áá áºáŠážá á®á¡ááœáẠá¡á±ážáá»áá·áºáá áºáá¯ááᯠááá·áºááœááºážááŒááºážá áááá¬áá¡á áá¯ááºáá±á¬ááºáááºá á¡áááºááŒá±áá±á¬ á¡ááºáá¬áá±á·á áºáá áºáá¯ááŸáá áºááá·áº áá»áœááºá¯ááºááá¯á·áá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááẠáááºááŸááºáá¬ážáá±á¬áá°áá«ááá»á¬ážá¡á¬ážáá¯á¶ážááᯠáááºáá»áŸááá¯ááºáá¬áááºááᯠá á±á¬áá·áºááŒáá·áºááá¯ááºáá«áááºá
áá¡áá¯á¶ážááŒá¯ááŸá¯
á¡á±á¬ááºááœáẠáá»áœááºá¯ááºááẠRudder á¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áºá¡áá¬ááᯠáá±á¬áºááŒáá«áááºá
-
ááá¯ááºáá»á¬ážááŸáá·áº configs ááááºážáá»á¯ááºááŸá¯- ./ssh/authorized_keys ; /etc/hosts ; iptables áá»á¬áž ; (ááŒá®ážááẠáááºážáá²á· á áááºáá°ážá áááºááᯠáŠážáááºáá±áá²)
-
ááá·áºááœááºážáá¬ážáá±á¬ áááºáá±á·áá»áºáá»á¬ážááᯠááááºážáá»á¯ááºááŒááºáž- zabbix.agent ááá¯á·ááá¯áẠá¡ááŒá¬ážáá±á¬á·ááºáá²ááºáá áºáá¯áá¯
áá¬áá¬áááºáááºááŒááºážá
áááŒá¬áá±ážáá®á áá»áœááºá¯ááºááẠáá¬ážááŸááºáž 5 á០6.1 ááá¯á· á¡ááºááááºáá¯ááºáá²á·áááºá á¡áá¬á¡á¬ážáá¯á¶áž áá±á¬ááºážááœááºááœá¬ážáááºá á¡á±á¬ááºáá±á¬áºááŒáá«áá»á¬ážááẠDeban/Ubuntu á¡ááœáẠá¡áááá·áºáá»á¬ážááŒá
áºáá±á¬áºáááºáž áá¶á·ááá¯ážááŸá¯áááºáž ááŸááá«áááºá
áááºážááá¯á áááºá¡ááŸá±á¬áá·áºá¡ááŸááºáááŒá áºá á±ááá¯á·á¡ááœáẠáááºáááºááŸá¯ááᯠspoiler ááŸá¬ ááŸááºáá¬ážáááºá
áá¯áá°áá±á¬áá°
ááŸá®ááá¯ááŸá¯
rudder-server ááẠJava RE á¡áááºážáá¯á¶ážáá¬ážááŸááºáž 8 ááá¯á¡ááºáááºá áá¯á¶ááŸááºááá¯ááŸá±á¬ááºááŸá¯á០ááá·áºááœááºážááá¯ááºáááº-
áááºáááºáá¬ážááŒááºáž ááŸáááááŸá á á áºáá±ážáá±áá«áááºá
java -version
áááá¯á¶ážáá»á¯ááºáá»áŸááº
-bash: java: command not found
ááá¯á·áá±á¬áẠinstall áá¯ááºáá«á
apt install default-jre
áá¬áá¬á
áá±á¬á·áááºááœááºážááŒááºážá
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -
á€ááœáẠáá¯á¶ááŸáááºáá°ááá¯ááºááá¯ááºááŒá áºáááºá
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key) <[email protected]>
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8
áá»áœááºá¯ááºááá¯á·ááœáẠá¡ááá±ážá á¬áááºážááœááºážááŸá¯áá áºáá¯áááŸááá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá±á¬áºááŒáá« ááá¯ááŸá±á¬ááºáááºážááᯠáá±á«ááºážááá·áºáá«áááºá
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
ááá¯ááŸá±á¬ááºáá¬á á¬áááºážááᯠá¡ááºááááºáá¯ááºááŒá®áž áá¬áá¬ááᯠááá·áºááœááºážáá«á
apt update
apt install rudder-server-root
á¡áá¯á¶ážááŒá¯áá° á á®áá¶ááá·áºááœá²áá°ááᯠáááºáá®ážáá«á
rudder server create-user -u admin -p "ÐÐ°Ñ ÐаÑПлÑ"
á¡áá¬áááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡áá¯á¶ážááŒá¯áá°áá»á¬ážááᯠconfig ááŒáá·áº á á®áá¶ááá·áºááœá²ááá¯ááºáá«áááºá
áá«áá²á áá¬áᬠá¡áááºááá·áºááŒá áºáá±áá«ááŒá®á
Server Tuning
ááᯠáááºááẠá¡á±ážáá»áá·áºáá»á¬ážá IP ááááºá á¬áá»á¬áž ááá¯á·ááá¯áẠsubnet áá áºáá¯áá¯á¶ážááᯠrudder á¡á±ážáá»áá·áºááá¯á· áá±á«ááºážááá·áºááẠááá¯á¡ááºáááºá áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶ááŒá¯á¶áá±ážáá°áá«áááᯠá¡ááááá¬ážáááºá
áááºáááºáá»á¬áž -> á¡ááœá±ááœá±
âááœááºáááºáá áºáá¯ááá·áºáá«â á¡ááœááºááœááºá ááááºá á¬ááŸáá·áº áá»ááºááŸá¬áá¯á¶ážáá±á¬áºáááºááᯠxxxx/xx ááá¯ááºááá·áºáá«á á¡ááœááºážááœááºáááºá ááááºá á¬á¡á¬ážáá¯á¶ážá០áááºáá±á¬ááºááœáá·áºááŒá¯áááºá¡ááœáẠ(áá«á á ááºážáááºááœááºáááºáá áºáá¯ááŒá áºááŒá®áž áááºááẠNAT áá±á¬ááºááœááºááŸááá¯ááºáá«á) ááŒáá·áºááœááºážáá«- 0.0.0.0/0
á¡áá±ážááŒá®ážááẠ- ip ááááºá á¬ááᯠáá±á«ááºážááá·áºááŒá®ážáá±á¬ááºá ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠSave ááá¯ááŸáááºááẠááá±á·áá«ááŸáá·áºá ááá¯á·ááá¯ááºáá«á áááºááá·áºá¡áá¬á០ááááºážáááºážáááºááá¯ááºáá«á
ááááºáááºážáá»á¬áž
áá¬áá¬áá±á«áºááœáẠá¡á±á¬ááºáá« port áá»á¬ážááá¯ááœáá·áºáá«á
-
443 - tcp
-
5309 - tcp
-
514 - udp
áá»áœááºá¯ááºááá¯á·ááẠáááŠážáá¬áá¬áááºáááºááŸá¯ááᯠá á®á á¥áºáá¬ážáááºá
ááá¯ááºá á¬ážááŸáẠáááºáááºááŒááºážá
áá¯áá°áá±á¬áá°
áá±á¬á·ááá·áºááŒááºážá
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -
áá±á¬á·áááºááœá±
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key) <[email protected]>
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8
ááá¯ááŸá±á¬ááºáááºážááᯠáá±á«ááºážááá·áºááŒááºážá
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
á¡á±ážáá»áá·áºááᯠááá·áºááœááºážááŒááºážá
apt update
apt install rudder-agent
á¡á±ážáá»áá·áº á áá áºááá·áºááœááºážááŒááºážá
áá»áœááºá¯ááºááá¯á·ááẠáá°áá«ááá¬áá¬á IP ááááºá á¬ááᯠááá¯ááºá á¬ážááŸááºá¡á¬áž ááœáŸááºááŒáá«áááºá
rudder agent policy-server <rudder server ip or hostname> #Ðез ÑкПбПк. ÐПжМП Ñакже ОÑпПлÑзПваÑÑ ÐŽÐŸÐŒÐµÐœÐœÐŸÐµ ОЌÑ
á¡á±á¬ááºáá« command ááᯠrun ááŒááºážááŒáá·áº server ááá¯á· á¡á±ážáá»áá·áºá¡áá áºááá·áºááẠáá±á¬ááºážááá¯áá»ááºáá áºáᯠáá±ážááá¯á·áááºááŒá áºááŒá®áž áááá áºá¡áááºážáááºá¡ááœááºáž áááºážááẠá¡á±ážáá»áá·áºá¡áá áºáá»á¬ážá á¬áááºážááœáẠáá±á«áºáá¬áááºááŒá áºááŒá®áž áá±á¬ááºá¡ááá¯ááºážááœáẠáááºááá¯á·ááá·áºááááºááᯠááŸááºážááŒáá«áááºá
rudder agent inventory
áá»áœááºá¯ááºááá¯á·ááẠá¡á±ážáá»áá·áºááᯠá áááºáááºáááºáž ááœááºážá¡á¬ážáá±ážááá¯ááºááŒá®áž áááºážááẠáá±á¬ááºážááá¯áá»ááºáá»ááºáá»ááºáž áá±ážááá¯á·áááºááŒá áºáááºá
rudder agent run
áá»áœááºá¯ááºááá¯á·á á¡á±ážáá»áá·áºááᯠááœá²á·á ááºážáá¬ážááŒá®ážá áááºááœá¬ážááŒáá«á áá¯á·á
á¡á±ážáá»áá·áºáá»á¬ážááá·áºááŒááºážá
áá±á¬á·ááºá¡ááº
https://127.0.0.1/rudder/index.html
áááºá á¡á±ážáá»áá·áºááẠ"áááºáá¶ááá·áº áá¯á¶ááŸááºá¡áá áºáá»á¬áž" ááá¹áááœáẠáá±á«áºáá¬áááºááŒá áºááŒá®ážá á¡ááœááºááᯠá¡ááŸááºááŒá áºááŒá®áž áááºáá¶áááºááᯠááŸáááºáá«á
á áá áºááẠáá¬áá¬ááᯠááá¯ááºáá»á±á¬áá®ááœá±ááŸáá á±ááẠá á áºáá±ážáááºá¡áá á¡áá»áááºá¡áááºážáááºáá°ááá«áááºá
áá¬áá¬á¡á¯ááºá á¯áá»á¬ážáááºáá®ážááŒááºážá
á¡ááœá²á·áá áºáá¯áááºáá®ážááá¯ááºáá¡á±á¬áẠ(á¡á²áá«á áá»á±á¬áºááŒá±áá±ážáá²)á developer ááœá±á áá¬ááŒá±á¬áá·áº áá®ááá¯áá»áá¯áž áááºá ááºááŒááºážááŒá¯ááºáá²á·á¡ááœá²á·ááᯠááœá²á·á ááºážáá²á·áá¬áá²ááá¯áᬠááááá±ááá·áº áá»áœááºáá±á¬áºáá¬ážáááºááá±á¬ááºáá±á¬á· áááŒá¬ážáááºážáááºážáááŸááá«áá°ážá Node á á®áá¶ááá·áºááœá²ááŸá¯ -> Groups ááá¹áááá¯ááœá¬ážááŒá®áž Create ááá¯ááŸáááºáá«á static group ááŸáá·áº name ááá¯ááœá±ážáá»ááºáá«á
áá»áœááºá¯ááºááá¯á·ááẠá¡áá°ážá¡ááºá¹áá«áááºáá»á¬ážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááá¯á¡ááºáá±á¬ áá¬áá¬ááᯠá¥ááá¬á¡á¬ážááŒáá·áº ip ááááºá á¬ááŒáá·áº á á áºáá¯ááºááŒá®áž ááááºážáááºážáá«á
á¡ááœá²á·ááᯠáááºáá±á¬ááºáá¬ážáááºá
á ááºážáááºážáááºááŸááºááŒááºážá
ááœá²á·á ááºážááŸá¯áá°áá«á â á ááºážáááºážáá»á¬áž ááá¯á· ááœá¬ážáᬠá ááºážáá»ááºážá¡áá áºáá áºáᯠáááºáá®ážáá«á
á á±á¬á á±á¬á ááŒááºáááºáá¬ážáá²á· á¡ááœá²á·ááᯠááá·áºáá« (áá«ááᯠáá±á¬ááºá០áá¯ááºááá¯ááºáá«áááº)
ááŒá®ážáá±á¬á· ááœáŸááºááŒá¬ážáá»ááºá¡áá áºááᯠááœá²á·áááºá
á¡áá»á¬ážáá°ááŸá¬áá±á¬á·áá»á¬ážááᯠ.ssh/authorized_keys ááœáẠááá·áºááœááºážáááºá¡ááœáẠáááºážááœáŸááºáá»ááºáá áºáᯠáááºáá®ážááŒáá«á áá¯á·á áááºáááºážá¡áá áºá ááœááºááœá¬ážáá²á·á¡áá« áá«ááŸááá¯áẠá¡á¬ááá¶á¡ááœááºá á¥ááᬠáá áºá á¯á¶áá áºáá±á¬ááºá áá»áœááºáá±á¬á·áºáá±á¬á·ááᯠááá±á¬áºáá ááŒááºááœá¬ážáá²á·á¡áá« áá«ááá¯áá¯á¶ážáá«áááºá
Configuration policy â Directives ááá¯á·ááœá¬ážáá« áááºáááºááŸá "ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážá á¬ááŒáá·áºááá¯ááº" ááá¯ááœá±á·ááŒááºáááŒá®áž "Remote access â SSH authorized keys" ááá¯ááŸá¬áá«á áá¬áááºá Create Directive ááá¯ááŸáááºáá«á
áá»áœááºá¯ááºááá¯á·ááẠá¡áá¯á¶ážááŒá¯áá°á á¡áá»ááºá¡áááºááᯠááá·áºááœááºážááŒá®áž áá°ááá±á¬á·ááᯠááá·áºáá«áááºá ááá¯á·áá±á¬áẠáá»áŸá±á¬ááºááœáŸá¬áá°áá«áááᯠááœá±ážáá»ááºáá«á
-
ááá¹áá¬áá¯á¶ážááá¯ááºáᬠ- áá°áááºážáá°áá«á
-
Enforce - ááœá±ážáá»ááºáá¬ážáá±á¬ áá¬áá¬áá»á¬ážááœáẠáá¯ááºáá±á¬ááºáá«á
-
á á¬áááºážá á Ạ- á á¬áááºážá á áºáá áºáá¯áá¯ááºáá±á¬ááºááŒá®áž áááºááá·áºáá±á¬ááºáááºáá»á¬áž áá±á¬á·ááŸááááºááᯠááŒá±á¬ááŒáááá·áºáááºá
áá»áœááºá¯ááºááá¯á·á á ááºážáá»ááºážááᯠáá±áá»á¬ááœáŸááºááŒáá«á
ááŒá®ážááẠsave ááŒá®ážááœá¬ážáá«ááŒá®á
áááºážá á áºáá±áž
áá±á¬á·ááᯠá¡á±á¬ááºááŒááºá áœá¬ ááá·áºááœááºážáá²á·áááºá
áá±á«ááºáá¯áá·áºáá»á¬áž
á¡á±ážáá»áá·áºááẠáá¬áá¬ááŸáá·áºáááºáááºááá·áº á¡áá»ááºá¡áááºá¡ááŒáá·áºá¡á á¯á¶ááᯠáá±ážáá±á¬ááºáááºá ááá·áºááœááºážáá¬ážáá±á¬ áááºáá±á·áá»áºáá»á¬ážá á¬áááºážáá»á¬ážá á¡ááºáá¬áá±á·á áºáá»á¬ážá á¡ááœáá·áºá¡áá±á«ááºáá»á¬ážááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážá áœá¬ááᯠá¡á±á¬ááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ áááºáá¬ážááŒááºáá¬ááºáá¯á¶ááœáẠáááºááŒáá·áºááŸá¯ááá¯ááºáá«áááºá
áá±á¬á·ááºáá²ááºááᯠLinux ááœááºáá¬áá Windows ááœááºáááºáž ááá·áºááœááºážááááºážáá»á¯ááºááá¯ááºáááºá áá»áœááºá¯ááºááẠáá±á¬ááºááŸá á áºáá±ážááŒááºážáááŸááá«á áááá¯á¡ááºáá«á
á á¬áá±ážáá°ááŸ
ááŸá±ážááŸá±ážáá¯ááºážá ansible áá²á· áá¯ááºáá±ážááᯠáá®ááœááºááŒá®ážááŒá® ááá¯ááẠáá®ážááᯠáá¬ááŒá±á¬áá·áº ááŒááºáá®ááœááºáááŸá¬áá² ááá¯á· áá±ážáá±ááá¯ááºáá«áááºá
áá»áœááºáá±á¬áºááŒá±áááº- Ansible ááœáẠá¡á¬ážáááºážáá»ááºá¡áá»áá¯á·ááŸááááºá á¥ááá¬á ဠconfig ááẠááá¯á¡áá»áááºááœáẠáááºááá·áºá¡ááŒá±á¡áá±ááœááºááŸááá±áááºááᯠáá»áœááºá¯ááºááá¯á·áááœá±á·ááá±á¬á·áá«á ááá¯á·ááá¯áẠáááºá¡áááºážááá¹ááá áºáᯠááá¯á·ááá¯áẠplaybook ááá¯ááœáá·áºááá¯ááºáá±á¬á¡áá«ááœáẠáááºážááŸá®ážáá±á¬á¡ááŒá±á¡áá±ááŸáá·áº áá»ááºá á®ážááŸá¯ááá¯ááºáá¬á¡ááŸá¬ážá¡ááœááºážáá»á¬áž áá±á«áºáá¬ááŒá®áž áá¬áá¬áá±á«áºááá¯á·áááºá ááŒááºááá¯ááºáááºá áááºáááºáá±á·ááºá»ááᯠáááºááŸá¬ á¡ááºááááºáá¯ááºáá¬ážáá²á ááŒá®ážáá±á¬á· áá»áœááºáá±á¬áºá áá¯ááºáá±ážáá²á· á¡áá¯ááºááá¯ááºáá°áž..
Rudder á¡ááœáẠá¡á¬ážáááºážáá»ááºáá»á¬áž ááŸááá«ááá¬ážá á¡áá»á¬ážááŒá®ážá á á¡á±ážáá»áá·áºááœá± ááŒá¯ááºáá»ááŒá®áž áá°ááá¯á·ááᯠááŒááºáááºáááºáááẠáá«ááŸááá¯áẠrudder reset command ááá¯áá¯á¶ážááááºááá¯áá²á·á¡áá»ááºá á ááŒá®ážá (ááá¯á·áá±á¬áºá á€á¡áá¬ááᯠáá¬ážááŸááºáž 6 ááœáẠáá»áœááºá¯ááºáááŒááºááá±ážáá«) á¡ááœááºááŸá¯ááºááœá±ážáá±á¬ áááºáááºááŸá¯ááŸáá·áº áá¯áá¹ááááááºáá±á¬ áá»ááºááŸá¬ááŒááºááᯠááŒá áºáá±á«áºá á±áááºá
á¡á¬ážáá¬áá»ááºáá»á¬áž ááŸááá«ááá¬ážá ááá¯á·á¡ááŒáẠá¡á¬ážáá¬áá»ááºáá»á¬ážá áœá¬áááºážááŸááá«áááº- áá¬áááºááŒá®áž Ansible ááŸáá·áºááá°áá²á áá»áœááºá¯ááºááá¯á·ááœáẠáá»áœááºá¯ááºááá¯á·áá»áá·áºáá¯á¶ážáá²á·ááá·áº ááá¯ááºáá»á±á¬áá®ááœá±ááŸá¯ááᯠáááºááŒááºááá¯ááºááá·áº áááºá¡ááºáá¬áá±á·á áºáá áºáá¯ááŸááááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááá¹áá¬ááá¯á·ááœááºáá±áá±á¬ port áá»á¬ážááẠfirewall áá¡ááŒá±á¡áá±ááá¬áá²á áááºáááºáá¬ážáá±á¬áá¯á¶ááŒá¯á¶áá±ážá¡á±ážáá»áá·áºáá»á¬ážááá¯á·ááá¯ááºá¡ááŒá¬áž gadget áá»á¬ážááŒá áºáááºá
á€áá±á¬á·ááºáá²ááẠááááºážá¡áá»ááºá¡áááºáá¯á¶ááŒá¯á¶áá±ážáá¬áá¡ááœáẠááŒá®ážááŒáá·áºá á¯á¶áááºá á¡ááŒá±á¬ááºážááŸá¬ á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá¡ááŒá±á¡áá±ááẠááá·áºáá»ááºá áááŸá±á·ááœáẠá¡ááŒá²ááŸááá±áááºááŒá áºááŒá®áž á ááºážáá»ááºážáá»á¬áž á¡áá®áá±á¬ááºáá±á«áºáá±áá«áá áááºážááẠáá¬áá¬ááá¯á·ááœá¬ážáá±á¬ááºáááºáááºááẠá¡ááŒá±á¬ááºážááŒáá»ááºáá áºáá¯ááŒá áºáááºá áá«ááŒá±á¬áá²á·áááá¯áá²á áá« Rudder ááᯠáá¯á¶ážáá±áᬠá ááŸá áºááŸáááŒá®á áááºážáááºážáááºáž áá±ážááááºáá±á¬ááºááẠááá ááá¯áá±á¬ááºážáá¬áááºá ááŒá®ážáá¬ážáá±á¬á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá áºáá¯ááœáẠá¡áááºáá²áá¯á¶ážá¡áá¬ááŸá¬ ááœááºáááœáẠáá¯á¶ááŒá¯á¶áá±ážá¡á±ážáá»áá·áºáá»á¬áž ááá·áºááœááºážááŒááºážá០ááœááºááœá¬ážáááºááŒá áºá á± ááá¯á·ááá¯áẠiptables áá»á¬ážááᯠááŸááºáááºá áœá¬ááŒááºáááºááŒááºážááŸááááŸáá ááá¯á·áá±á¬áº rudder ááẠááá·áºá¡á¬áž á¡ááŒá áºá¡áá»ááºá¡á¬ážáá¯á¶ážááᯠáááºáá±á¬ááºáááºážááá¯ááºááẠáá°áá®áá±ážáááºááŒá áºáááºá áááºáááºááá¯ááºáááºááá¯áᬠááááá¬ážáá«á )
PS áááºážáááºáá»áœááºá¯ááºá á®á ááºáá¬ážáááºáááºáá»á¬ážá áœá¬ááá¯ááœááºáá¬áááºá áááºáá±á·áá»áºáááºááá¯á·ááá·áºááœááºážááááºááá¯áá±á¬áºááŒáááºááá¯ááºáá«á áá¯ááºááááºáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááŸááá«ááá¯áááá¡ááá¯ááºážááá¯áá±ážáá«áááºá
PSS áá±á¬ááºážáá«ážááẠááááºážá¡áá»ááºá¡áááºááá¯ááºáᬠáááºááœááºáá»ááºá¡ááœááºááŒá áºááŒá®áž á¡ááºáá¬áááºáá±á«áºááœáẠá¡áá»ááºá¡áááºáá»á¬áž á¡ááœááºáááºážáá«ážáá±á¬ááŒá±á¬áá·áº áá»áŸáá±ááẠáá¯á¶ážááŒááºáá²á·áááºá áá«á áá áºá á¯á¶áá áºáá±á¬ááºá¡ááœáẠá áááºáááºá á¬ážá áᬠááŒá áºáá±á¬ááºážááŒá áºááá¯ááºáá«áááºá áá±á¬ááºážáá±á¬áá±á·áá±ážááŒá áºáá«á á± áá»á áºáá°áááºáá»ááºážááá¯á·áá±)
ááŒá±á¬áºááŒá¬á¡ááŒá áº
Epic áá¬áá¬áá»á¬áž - á
source: www.habr.com