ΠΡ Google Blog Editor: Π§ΡΠ΄ΠΈΠ»ΠΈ Π»ΠΈ ΡΡΠ΅ ΡΠ΅ Π½ΡΠΊΠΎΠ³Π° ΠΊΠ°ΠΊ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π½Π° Google Cloud Technical Solutions (TSE) ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π²ΠΈ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°? ΠΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π·Π° ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° TSE ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π²Π°Π½ΠΈΡΠ΅ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΡΠΊΠΎΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠ° Π΄ΠΎΡΡΠ° ΠΏΡΠΎΡΡΠΈ, Π½ΠΎ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΏΠΎΠΏΠ°Π΄Π°ΡΠ΅ Π½Π° Π±ΠΈΠ»Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° TSE ΡΠ΅ Π½ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ Π·Π° Π΅Π΄ΠΈΠ½ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΄Π΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΎΡ ΡΠΊΠΎΡΠΎΡΠ½Π°ΡΠ° ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° -
ΠΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΠΈΠ·ΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ Π΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°ΡΠΊΠ° ΠΈ ΠΈΠ·ΠΊΡΡΡΠ²ΠΎ. ΠΡΠΈΡΠΊΠΎ Π·Π°ΠΏΠΎΡΠ²Π° Ρ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Ρ
ΠΈΠΏΠΎΡΠ΅Π·Π° Π·Π° ΠΏΡΠΈΡΠΈΠ½Π°ΡΠ° Π·Π° Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΡ ΡΠ΅ ΡΠ΅ΡΡΠ²Π° Π·Π° Π·Π΄ΡΠ°Π²ΠΈΠ½Π°. ΠΡΠ΅Π΄ΠΈ ΠΎΠ±Π°ΡΠ΅ Π΄Π° ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°ΠΌΠ΅ Ρ
ΠΈΠΏΠΎΡΠ΅Π·Π°, ΡΡΡΠ±Π²Π° ΡΡΠ½ΠΎ Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΠΌΠ΅ ΠΈ ΠΏΡΠ΅ΡΠΈΠ·Π½ΠΎ ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠΊΠΎ Π²ΡΠΏΡΠΎΡΡΡ Π·Π²ΡΡΠΈ ΡΠ²ΡΡΠ΄Π΅ Π½Π΅ΡΡΠ΅Π½, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΡΡΡΠ±Π²Π° Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ; Π’ΠΎΠ²Π° Π΅ βΠΈΠ·ΠΊΡΡΡΠ²ΠΎΡΠΎβ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΠΎΠ΄ Google Cloud ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ ΡΡΠ°Π²Π°Ρ Π΅ΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Google Cloud ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΠΏΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. ΠΠΎΡΠ°Π΄ΠΈ ΡΠΎΠ²Π° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π½Π° TSE Π½ΡΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Ρ Π²Π°ΡΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π½ΠΈΡΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈΡΠ΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠΈΡΠΎΠΊΠΎ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Π·Π° Π΄Π° ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ Π½ΡΠΊΠΎΡ ΠΎΡ Π½Π°ΡΠΈΡΠ΅ Ρ
ΠΈΠΏΠΎΡΠ΅Π·ΠΈ, Π½ΠΈΠ΅ (ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅) Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π±ΡΡΠ·ΠΎ Π΄Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
ΠΡΠΊΠΎΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠΌΡΡΠ°Ρ, ΡΠ΅ ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠΌ Π²ΡΠΈΡΠΊΠΎ ΠΊΠ°ΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ° Π² Π°Π²ΡΠΎΡΠ΅ΡΠ²ΠΈΠ· ΠΈ ΠΏΡΠΎΡΡΠΎ Π½ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π΄ΠΎΠΊΠ°ΡΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΈΡΠ° Π² ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ: ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π°Π²Π°Π½Π΅ (ΠΈΠ»ΠΈ ΠΎΠΏΡΠΎΠ²Π΅ΡΠ³Π°Π²Π°Π½Π΅) Π½Π° Ρ ΠΈΠΏΠΎΡΠ΅Π·ΠΈ, ΠΈ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π°Ρ Π½Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΡΠ° Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
ΠΡΠΏΡΠΎΡΠ½ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ
ΠΠ½Π΅Ρ ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄Π½Π° ΠΈΡΡΠΎΡΠΈΡ Ρ Π΄ΠΎΠ±ΡΡ ΠΊΡΠ°ΠΉ. ΠΠ΄Π½Π° ΠΎΡ ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΡΡΠΏΠ΅ΡΠ½ΠΎΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°Π·ΡΡ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠΎ-Π΄ΠΎΠ»Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° ΠΏΡΡΠ²ΠΈΡ Π±ΠΈΠ»Π΅Ρ (ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½, Π·Π° Π΄Π° ΡΠΊΡΠΈΠ΅ ΠΏΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ):
Π’ΠΎΠ²Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΄ΡΡΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π½Π°Ρ:
- ΠΠΎΡΠΎΡΠ΅Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° VM
- Π‘Π°ΠΌΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ - DNS Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ
- ΠΠΎΡΠΎΡΠ΅Π½ΠΎ Π΅ ΠΊΡΠ΄Π΅ ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° - VM ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ
- ΠΠΎΡΠΎΡΠ΅Π½ΠΈ ΡΠ° ΡΡΡΠΏΠΊΠΈΡΠ΅, ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ΅ΡΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, Π·Π° Π΄Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΠ°ΡΠ²ΠΊΠ°ΡΠ° Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π° ΠΊΠ°ΡΠΎ βP1: Critical Impact - Service Unusable in productionβ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΡΡΠ° 24/7 ΠΏΠΎ ΡΡ
Π΅ΠΌΠ°ΡΠ° βFollow the Sunβ (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π°
ΠΠΎΠΊΠ°ΡΠΎ Π±ΠΈΠ»Π΅ΡΡΡ ΡΡΠΈΠ³Π½Π΅ Π΄ΠΎ Π¦ΡΡΠΈΡ , Π²Π΅ΡΠ΅ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Ρ ΠΌΠ΅ ΡΡΡ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
- ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅
/etc/hosts
- ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅
/etc/resolv.conf
- ΠΡΠΎΠ΄ΡΠΊΡΠΈΡ
iptables-save
- Π‘Π³Π»ΠΎΠ±ΡΠ²Π° ΡΠ΅ ΠΎΡ Π΅ΠΊΠΈΠΏΠ°
ngrep
pcap ΡΠ°ΠΉΠ»
Π‘ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π±ΡΡ ΠΌΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ ΡΠ°Π·Π°ΡΠ° Π½Π° βΡΠ°Π·ΡΠ»Π΅Π΄Π²Π°Π½Π΅β ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ·ΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ.
ΠΡΡΠ²ΠΈΡΠ΅ Π½ΠΈ ΡΡΡΠΏΠΊΠΈ
ΠΡΡΠ²ΠΎ, ΠΏΡΠΎΠ²Π΅ΡΠΈΡ ΠΌΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΠ²ΡΡΠ° Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠ΅ ΡΠ²Π΅ΡΠΈΡ ΠΌΠ΅, ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ. Π‘ΡΡΠ²ΡΡΡΡ Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° IP Π°Π΄ΡΠ΅Ρ 169.254.169.254 ΠΈ, Π½Π°ΡΠ΅Π΄ Ρ Π΄ΡΡΠ³ΠΈ Π½Π΅ΡΠ°, ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΈΡ ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ Π΄Π°Π»ΠΈ Π·Π°ΡΠΈΡΠ½Π°ΡΠ° ΡΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Ρ Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° ΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΈ.
Π’ΠΎΠ²Π° Π±Π΅ΡΠ΅ Π½ΡΠΊΠ°ΠΊΡΠ² ΡΡΡΠ°Π½Π΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° nmap ΠΎΠΏΡΠΎΠ²Π΅ΡΠ³Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π½ΠΈ Ρ ΠΈΠΏΠΎΡΠ΅Π·Π° Π·Π° Π·Π°Π³ΡΠ±Π°ΡΠ° Π½Π° UDP ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΈΡΠ»Π΅Π½ΠΎ ΠΈΠ·ΠΌΠΈΡΠ»ΠΈΡ ΠΌΠ΅ ΠΎΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΠΏΡΠΈΠΈ ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π΄Π° Π³ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ:
- ΠΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΠΏΡΡΠΊΠ°Ρ Π»ΠΈ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»Π½ΠΎ? => ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π½Π° iptables
- ΠΠ΅ Π΅ Π»ΠΈ ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ°Π»ΡΠΊ?
MTU ? => ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ ΠΈΠ·Ρ ΠΎΠ΄Π°ip a show
- ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΠ°ΠΌΠΎ UDP ΠΏΠ°ΠΊΠ΅ΡΠΈ Π»ΠΈ Π·Π°ΡΡΠ³Π° ΠΈΠ»ΠΈ ΠΈ TCP? => ΠΠ°ΡΠ°ΠΉΡΠ΅
dig +tcp
- ΠΡΡΡΠ°Ρ Π»ΠΈ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΎΡ dig ΠΏΠ°ΠΊΠ΅ΡΠΈ? => ΠΠ°ΡΠ°ΠΉΡΠ΅
tcpdump
- libdns ΡΠ°Π±ΠΎΡΠΈ Π»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ? => ΠΠ°ΡΠ°ΠΉΡΠ΅
strace
Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π² Π΄Π²Π΅ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ
Π’ΡΠΊ ΡΠ΅ΡΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΡΠ΅ ΠΎΠ±Π°Π΄ΠΈΠΌ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° ΠΆΠΈΠ²ΠΎ.
ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π΅ΡΠ°:
- Π‘Π»Π΅Π΄ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π½Π° iptables ΠΎΡ ΡΠΏΠΈΡΡΠΊΠ° Ρ ΠΏΡΠΈΡΠΈΠ½ΠΈ
- ΠΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π΄Π°Π»ΠΈ MTU Π΅ ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½
- ΠΠΈΠ΅ ΠΎΡΠΊΡΠΈΠ²Π°ΠΌΠ΅ ΡΠΎΠ²Π°
dig +tcp google.com
(TCP) ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΠΊΡΠΎ ΡΡΡΠ±Π²Π°, Π½ΠΎdig google.com
(UDP) Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ - ΠΠ°ΡΠΎ ΡΠ΅ ΠΎΡΠ΄Π°Π»Π΅ΡΠΈ
tcpdump
Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ°Π±ΠΎΡΠΈdig
, ΠΎΡΠΊΡΠΈΠ²Π°ΠΌΠ΅, ΡΠ΅ ΡΠ΅ Π²ΡΡΡΠ°Ρ UDP ΠΏΠ°ΠΊΠ΅ΡΠΈ - ΠΠΈΠ΅ ΠΊΠ°ΡΠ°ΠΌΠ΅
strace dig google.com
ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ dig ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°sendmsg()
ΠΈrecvms()
, Π½ΠΎ Π²ΡΠΎΡΠΈΡΡ Π΅ ΠΏΡΠ΅ΠΊΡΡΠ½Π°Ρ ΠΎΡ ΡΠ°ΠΉΠΌΠ°ΡΡ
ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅ Π½Π°Π±Π»ΠΈΠΆΠ°Π²Π° ΠΊΡΠ°ΡΡ Π½Π° ΡΠΌΡΠ½Π°ΡΠ° ΠΈ ΡΠΌΠ΅ ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ΠΈ Π΄Π° Π΅ΡΠΊΠ°Π»ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π΄ΠΎ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΠ°ΡΠΎΠ²Π° Π·ΠΎΠ½Π°. ΠΠ°ΡΠ²ΠΊΠ°ΡΠ° ΠΎΠ±Π°ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π² Π½Π°ΡΠΈΡ Π΅ΠΊΠΈΠΏ ΠΈ ΠΊΠΎΠ»Π΅Π³Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡ DNS ΠΏΠ°ΠΊΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° scrapy Python ΠΌΠΎΠ΄ΡΠ»Π°.
from scapy.all import *
answer = sr1(IP(dst="169.254.169.254")/UDP(dport=53)/DNS(rd=1,qd=DNSQR(qname="google.com")),verbose=0)
print ("169.254.169.254", answer[DNS].summary())
Π’ΠΎΠ·ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΡΠ·Π΄Π°Π²Π° DNS ΠΏΠ°ΠΊΠ΅Ρ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π΄ΠΎ ΡΡΡΠ²ΡΡΠ° Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ.
ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠΎΠ΄Π°, DNS ΠΎΡΠ³ΠΎΠ²ΠΎΡΡΡ ΡΠ΅ Π²ΡΡΡΠ° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°, ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π°Π²Π°ΠΉΠΊΠΈ, ΡΠ΅ Π½ΡΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° Π½ΠΈΠ²ΠΎ ΠΌΡΠ΅ΠΆΠ°.
Π‘Π»Π΅Π΄ ΠΏΠΎΡΠ΅Π΄Π½ΠΎΡΠΎ βΠΎΠΊΠΎΠ»ΠΎΡΠ²Π΅ΡΡΠΊΠΎ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠ΅β Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΡΠ΅ Π²ΡΡΡΠ° ΠΊΡΠΌ Π½Π°ΡΠΈΡ Π΅ΠΊΠΈΠΏ ΠΈ Π°Π· Π½Π°ΠΏΡΠ»Π½ΠΎ Ρ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠΌ Π½Π° ΡΠ΅Π±Π΅ ΡΠΈ, ΠΌΠΈΡΠ»Π΅ΠΉΠΊΠΈ, ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎ-ΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, Π°ΠΊΠΎ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΡΠΏΡΠ΅ Π΄Π° ΠΎΠ±ΠΈΠΊΠ°Π»Ρ ΠΎΡ ΠΌΡΡΡΠΎ Π½Π° ΠΌΡΡΡΠΎ.
ΠΠ΅ΠΆΠ΄ΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π»ΡΠ±Π΅Π·Π½ΠΎ ΡΠ΅ ΡΡΠ³Π»Π°ΡΡΠ²Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ½Π° ΡΠ½ΠΈΠΌΠΊΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΠΎΠ±ΡΠ°Π·. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ° Π½ΠΎΠ²ΠΈΠ½Π°: Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ΡΡΠ²Π°ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ°ΠΌ ΠΏΡΠ°Π²ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΠΈΠ·ΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ, Π·Π°ΡΠΎΡΠΎ Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΠΈΡΠΊΠ°ΠΌ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Π΄Π° ΠΌΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΈ Π΄Π° Π³ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°, ΠΌΠΎΠ³Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ Π²ΡΠΈΡΠΊΠΎ ΡΠ°ΠΌ!
ΠΠΎΠ»Π΅Π³ΠΈΡΠ΅ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π»Π΅ΠΊΠΎ Π΄Π° ΠΌΠΈ Π·Π°Π²ΠΈΠΆΠ΄Π°Ρ. ΠΠ° ΠΎΠ±ΡΠ΄ ΠΎΠ±ΡΡΠΆΠ΄Π°ΠΌΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ, Π½ΠΎ Π½ΠΈΠΊΠΎΠΉ Π½ΡΠΌΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π° ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°. ΠΠ° ΡΠ°ΡΡΠΈΠ΅, ΡΠ°ΠΌΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π²Π΅ΡΠ΅ Π΅ Π²Π·Π΅Π» ΠΌΠ΅ΡΠΊΠΈ Π·Π° ΡΠΌΠ΅ΠΊΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΡΠ° ΠΈ Π½Π΅ Π±ΡΡΠ·Π°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΎΠ²Π΅Π΄Π΅ΠΌ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ. Π‘ΡΡΠ°Ρ ΠΎΡΠ΅Π½!
ΠΡΠ°Π²Ρ ΠΊΡΠ°ΡΠΊΠ° Π½Π°Π·Π°Π΄
ΠΠ΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡΠ΅ Π²ΡΠΏΡΠΎΡΠΈ Π·Π° ΠΈΠ½ΡΠ΅ΡΠ²Ρ Π·Π° ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π΅: βΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΈΠ½Π³Π²Π°ΡΠ΅
Π Π΅ΡΠ°Π²Π°ΠΌ Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ° ΡΠΎΠ·ΠΈ HR Π²ΡΠΏΡΠΎΡ ΠΊΡΠΌ Π½Π°ΡΡΠΎΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΡΠ±ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΡΠ΅ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ DNS ΠΈΠΌΠ΅, ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ:
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠ°ΡΠΎ libdns
- libdns ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΊΡΠΌ ΠΊΠΎΠΉ DNS ΡΡΡΠ²ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ (Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° ΡΠΎΠ²Π° Π΅ 169.254.169.254, ΡΡΡΠ²ΡΡ Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ)
- libdns ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ, Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ UDP ΡΠΎΠΊΠ΅Ρ (SOKET_DGRAM) ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈ UDP ΠΏΠ°ΠΊΠ΅ΡΠΈ Ρ DNS Π·Π°ΡΠ²ΠΊΠ° Π² Π΄Π²Π΅ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ
- Π§ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° sysctl ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ UDP ΡΡΠ΅ΠΊΠ° Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ
- Π―Π΄ΡΠΎΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ°, Π·Π° Π΄Π° ΠΏΡΠ΅Π΄Π°Π²Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΏΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΡΡΠ΅Π· ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
- Π₯ΠΈΠΏΠ΅ΡΠ²Π°ΠΉΠ·ΠΎΡΡΡ ΡΠ»Π°Π²Ρ ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π° ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΊΡΠΌ ΡΡΡΠ²ΡΡΠ° Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Ρ Π½Π΅Π³ΠΎ
- Π‘ΡΡΠ²ΡΡΡΡ Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΡΠ²ΠΎΡ ΠΌΠ°Π³ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ DNS ΠΈΠΌΠ΅ΡΠΎ ΠΈ Π²ΡΡΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄
ΠΠ΅ΠΊΠ° Π²ΠΈ Π½Π°ΠΏΠΎΠΌΠ½Ρ ΠΊΠ°ΠΊΠ²ΠΈ Ρ
ΠΈΠΏΠΎΡΠ΅Π·ΠΈ Π²Π΅ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°Ρ
ΠΌΠ΅:
Π₯ΠΈΠΏΠΎΡΠ΅Π·Π°: Π Π°Π·Π²Π°Π»Π΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
- Π’Π΅ΡΡ 1: ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ strace Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ dig ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: ΠΠ·Π²ΠΈΠΊΠ²Π°Ρ ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ
- Π’Π΅ΡΡ 2: ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° srapy Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°Π»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΈΠΌΠ΅Π½Π°ΡΠ°, Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠΉΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: ΠΌΠΎΠΆΠ΅ΠΌ
- Π’Π΅ΡΡ 3: ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ rpm βV Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° libdns ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ md5sum
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: ΠΊΠΎΠ΄ΡΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ Ρ ΠΊΠΎΠ΄Π° Π² ΡΠ°Π±ΠΎΡΠ΅ΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°
- Π’Π΅ΡΡ 4: ΠΌΠΎΠ½ΡΠΈΡΠ°ΠΉΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° root ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π½Π° VM Π±Π΅Π· ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ chroot, Π²ΠΈΠΆΡΠ΅ Π΄Π°Π»ΠΈ DNS ΡΠ°Π±ΠΎΡΠΈ
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: DNS ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅: ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π½Π΅ Π΅ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅
Π₯ΠΈΠΏΠΎΡΠ΅Π·Π°: ΠΠΌΠ° Π³ΡΠ΅ΡΠΊΠ° Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° DNS
- Π’Π΅ΡΡ 1: ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ tcpdump ΠΈ Π²ΠΈΠΆΡΠ΅ Π΄Π°Π»ΠΈ DNS ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΈ Π²ΡΡΡΠ°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΡΠ»Π΅Π΄ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° dig
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ
- Π’Π΅ΡΡ 2: Π΄Π²ΠΎΠΉΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΡΠ²ΡΡΠ°
/etc/nsswitch.conf
ΠΈ/etc/resolv.conf
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: Π²ΡΠΈΡΠΊΠΎ Π΅ ΡΠΎΡΠ½ΠΎ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅: ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π½Π΅ Π΅ Π² DNS ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°
Π₯ΠΈΠΏΠΎΡΠ΅Π·Π°: ΠΏΠΎΠ²ΡΠ΅Π΄Π΅Π½Π° ΡΡΡΡΠ΅Π²ΠΈΠ½Π°
- Π’Π΅ΡΡ: ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ Π½ΠΎΠ²ΠΎ ΡΠ΄ΡΠΎ, ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°, ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅: ΡΠ΄ΡΠΎΡΠΎ Π½Π΅ Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄Π΅Π½ΠΎ
Π₯ΠΈΠΏΠΎΡΠ΅Π·Π°: Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠ°ΡΠ° ΠΌΡΠ΅ΠΆΠ° (ΠΈΠ»ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²Π°ΠΉΠ·ΠΎΡ)
- Π’Π΅ΡΡ 1: ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° Π²Π°ΡΠ°ΡΠ° Π·Π°ΡΠΈΡΠ½Π° ΡΡΠ΅Π½Π°
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: Π·Π°ΡΠΈΡΠ½Π°ΡΠ° ΡΡΠ΅Π½Π° ΠΏΡΠ΅Π΄Π°Π²Π° DNS ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΊΠ°ΠΊΡΠΎ Π½Π° Ρ ΠΎΡΡΠ°, ΡΠ°ΠΊΠ° ΠΈ Π½Π° GCP
- Π’Π΅ΡΡ 2: ΠΏΡΠΈΡ Π²Π°Π½Π΅ΡΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°ΠΉΡΠ΅ ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ΡΠΎ ΠΈ Π²ΡΡΡΠ°Π½Π΅ΡΠΎ Π½Π° DNS Π·Π°ΡΠ²ΠΊΠΈ
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: tcpdump ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π°Π²Π°, ΡΠ΅ Ρ ΠΎΡΡΡΡ Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» Π²ΡΡΠ½Π°ΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅: ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Π΅ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ°
Π₯ΠΈΠΏΠΎΡΠ΅Π·Π°: ΡΡΡΠ²ΡΡΡΡ Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ
- Π’Π΅ΡΡ 1: ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΡΡΡΠ²ΡΡΠ° Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ Π·Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: Π½ΡΠΌΠ° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Π² ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅
- Π’Π΅ΡΡ 2: ΠΠ°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠ½Π΅ Π½Π° ΡΡΡΠ²ΡΡΠ° Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π·
dig @8.8.8.8
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: Π Π΅Π·ΠΎΠ»ΡΡΠΈΡΡΠ° Π΅ Π½Π°ΡΡΡΠ΅Π½Π° Π΄ΠΎΡΠΈ Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΡΠ²ΡΡ Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅: ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π½Π΅ Π΅ Π² ΡΡΡΠ²ΡΡΠ° Π·Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°: ΡΠ΅ΡΡΠ²Π°Ρ ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅!
ΠΠΌΡΡΠΊΠ°Π½Π΅ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ
ΠΠ° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΡΡΠ΅Π΄Π°ΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΠΏΡΠΈΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ (grub) ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° sysctl. ΠΠΎΠ³Π»Π΅Π΄Π½Π°Ρ
/etc/sysctl.conf
ΠΈ ΡΠ°ΠΌΠΎ ΠΏΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅, ΠΎΡΠΊΡΠΈΡ
Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. Π§ΡΠ²ΡΡΠ²Π°ΠΉΠΊΠΈ ΡΠ΅ ΡΡΠΊΠ°Ρ ΡΡΠΌ ΡΠ΅ Ρ
Π²Π°Π½Π°Π» Π·Π° Π½Π΅ΡΠΎ, ΠΈΠ·Ρ
Π²ΡΡΠ»ΠΈΡ
Π²ΡΠΈΡΠΊΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π±Π΅Π· ΠΌΡΠ΅ΠΆΠ° ΠΈΠ»ΠΈ TCP, ΠΎΡΡΠ°Π²Π°ΠΉΠΊΠΈ Ρ ΠΏΠ»Π°Π½ΠΈΠ½ΡΠΊΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ net.core
. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΎΡΠΈΠ΄ΠΎΡ
Π΄ΠΎ ΠΌΡΡΡΠΎΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ Π±ΡΡ
Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π·Π° Ρ
ΠΎΡΡ Π²ΡΠ² VM ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π°ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π΅Π΄Π½Π° ΠΏΠΎ Π΅Π΄Π½Π°, Π΅Π΄Π½Π° ΡΠ»Π΅Π΄ Π΄ΡΡΠ³Π°, Ρ ΠΏΠΎΠ²ΡΠ΅Π΄Π΅Π½Π°ΡΠ° VM, Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π΅ ΠΎΡΠΊΡΠΈΡ
Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠ°:
net.core.rmem_default = 2147483647
ΠΡΠΎ Ρ, DNS-ΡΠ°Π·Π±ΠΈΠ²Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ! ΠΠ°ΠΌΠ΅ΡΠΈΡ ΠΎΡΡΠΆΠΈΠ΅ΡΠΎ Π½Π° ΡΠ±ΠΈΠΉΡΡΠ²ΠΎΡΠΎ. ΠΠΎ Π·Π°ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΠΎΠ²Π°? ΠΡΠ΅ ΠΎΡΠ΅ ΠΈΠΌΠ°Ρ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΌΠΎΡΠΈΠ².
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π±ΡΡΠ΅ΡΠ° Π½Π° DNS ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΡΡΠ΅Π· net.core.rmem_default
. Π’ΠΈΠΏΠΈΡΠ½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π΅ Π½ΡΠΊΡΠ΄Π΅ ΠΎΠΊΠΎΠ»ΠΎ 200KiB, Π½ΠΎ Π°ΠΊΠΎ Π²Π°ΡΠΈΡΡ ΡΡΡΠ²ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ DNS ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π±ΡΡΠ΅ΡΠ°. ΠΠΊΠΎ Π±ΡΡΠ΅ΡΡΡ Π΅ ΠΏΡΠ»Π΅Π½, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠΈΡΡΠΈΠ³Π½Π΅ Π½ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°ΡΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π±ΡΡΠ·ΠΎ, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° Π³ΡΠ±ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ. ΠΠ»ΠΈΠ΅Π½ΡΡΡ Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π±ΡΡΠ΅ΡΠ°, Π·Π°ΡΠΎΡΠΎ ΡΠ΅ ΡΡΡΠ°Ρ
ΡΠ²Π°ΡΠ΅ ΠΎΡ Π·Π°Π³ΡΠ±Π° Π½Π° Π΄Π°Π½Π½ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΡΠ΅Π· DNS ΠΏΠ°ΠΊΠ΅ΡΠΈ. Π‘ΡΠΎΠΉΠ½ΠΎΡΡΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠΎΠΉ Π·Π°Π΄Π°Π΄Π΅, Π±Π΅ΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½Π°ΡΠ°: 231-1 (Π°ΠΊΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π° Π½Π° 231, ΡΠ΄ΡΠΎΡΠΎ ΡΠ΅ Π²ΡΡΠ½Π΅ βΠΠΠΠΠΠΠΠΠ ΠΠ ΠΠ£ΠΠΠΠ’β).
ΠΠ·Π²Π΅Π΄Π½ΡΠΆ ΡΠ°Π·Π±ΡΠ°Ρ Π·Π°ΡΠΎ nmap ΠΈ scapy ΡΠ°Π±ΠΎΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ: ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π° Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΡΠΎΠΊΠ΅ΡΠΈ! ΠΠ΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈΡΠ΅ ΡΠΎΠΊΠ΅ΡΠΈ ΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ ΡΠΎΠΊΠ΅ΡΠΈ: ΡΠ΅ Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΡ iptables ΠΈ Π½Π΅ ΡΠ° Π±ΡΡΠ΅ΡΠΈΡΠ°Π½ΠΈ!
ΠΠΎ Π·Π°ΡΠΎ "Π±ΡΡΠ΅ΡΡΡ Π΅ ΡΠ²ΡΡΠ΄Π΅ Π³ΠΎΠ»ΡΠΌ" ΡΡΠ·Π΄Π°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ? ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ Π±ΠΈΡ ΠΌΠΎΠ³ΡΠ» Π΄Π° Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΄ΡΠ° ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π²Π΅ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π² ΡΠ΄ΡΠΎΡΠΎ 3.x, Π° ΡΠ΅Π³Π° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΠΈ Π² ΡΠ΄ΡΠΎΡΠΎ 5.x.
ΠΠ°ΠΈΡΡΠΈΠ½Π°, ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅
sysctl -w net.core.rmem_default=$((2**31-1))
DNS ΡΠΏΡΡ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ.
ΠΠ°ΠΏΠΎΡΠ½Π°Ρ Π΄Π° ΡΡΡΡΡ ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΡΡΠ΅Π· ΠΏΡΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° Π΄Π²ΠΎΠΈΡΠ½ΠΎ ΡΡΡΡΠ΅Π½Π΅ ΠΈ ΠΎΡΠΊΡΠΈΡ , ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠΈ Ρ 2147481343, Π½ΠΎ ΡΠΎΠ²Π° ΡΠΈΡΠ»ΠΎ Π±Π΅ΡΠ΅ Π±Π΅Π·ΡΠΌΠΈΡΠ»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠΈΡΠ»Π° Π·Π° ΠΌΠ΅Π½. ΠΡΠ΅Π΄Π»ΠΎΠΆΠΈΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΄Π° ΠΎΠΏΠΈΡΠ° ΡΠΎΠ·ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΈ ΡΠΎΠΉ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ, ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠΈ Ρ google.com, Π½ΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π΄Π°Π²Π° Π³ΡΠ΅ΡΠΊΠ° Ρ Π΄ΡΡΠ³ΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡ ΡΠ°Π·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ ΡΠΈ.
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ
udp_queue_rcv_skb
. ΠΠ·ΡΠ΅Π³Π»ΠΈΡ
ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ
Π½ΡΠΊΠΎΠ»ΠΊΠΎ printk
if
, ΠΈ ΠΏΡΠΎΡΡΠΎ Π³ΠΎ Π³Π»Π΅Π΄Π°ΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π·Π°ΡΠΎΡΠΎ ΡΠΎΠ³Π°Π²Π° Π²ΡΠΈΡΠΊΠΎ Π½Π°ΠΉ-Π½Π°ΠΊΡΠ°Ρ ΡΠ΅ ΡΡΠ±ΡΠ° Π² Π΅Π΄Π½Π° ΡΡΠ»ΠΎΡΡΠ½Π° ΠΊΠ°ΡΡΠΈΠ½Π°: 231-1, Π±Π΅Π·ΡΠΌΠΈΡΠ»Π΅Π½ΠΎ ΡΠΈΡΠ»ΠΎ, Π½Π΅ΡΠ°Π±ΠΎΡΠ΅Ρ Π΄ΠΎΠΌΠ΅ΠΉΠ½... ΠΠ΅ΡΠ΅ ΡΠ°ΡΡ ΠΎΡ ΠΊΠΎΠ΄ Π² __udp_enqueue_schedule_skb
:
if (rmem > (size + sk->sk_rcvbuf))
goto uncharge_drop;
ΠΠΎΠ»Ρ, ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅:
rmem
Π΅ ΠΎΡ ΡΠΈΠΏ intsize
Π΅ ΠΎΡ ΡΠΈΠΏ u16 (Π½Π΅ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ ΡΠ΅ΡΡΠ½Π°Π΄Π΅ΡΠ΅Ρ-Π±ΠΈΡΠΎΠ²ΠΎ int) ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ°sk->sk_rcybuf
Π΅ ΠΎΡ ΡΠΈΠΏ int ΠΈ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π±ΡΡΠ΅ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡ Π΅ ΡΠ°Π²Π΅Π½ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π²net.core.rmem_default
ΠΠΎΠ³Π°ΡΠΎ sk_rcvbuf
Π½Π°Π±Π»ΠΈΠΆΠ°Π²Π° 231, ΡΡΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ
ΠΡΠ΅ΡΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½Π° ΠΏΠΎ ΡΡΠΈΠ²ΠΈΠ°Π»Π΅Π½ Π½Π°ΡΠΈΠ½: ΡΡΠ΅Π· ΠΊΠ°ΡΡΠΈΠ½Π³ unsigned int
. ΠΡΠΈΠ»ΠΎΠΆΠΈΡ
ΠΊΠΎΡΠ΅ΠΊΡΠΈΡΡΠ° ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Ρ
ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ DNS ΠΎΡΠ½ΠΎΠ²ΠΎ Π·Π°ΡΠ°Π±ΠΎΡΠΈ.
ΠΠΊΡΡ Π½Π° ΠΏΠΎΠ±Π΅Π΄Π°
ΠΡΠ΅ΠΏΡΠ°ΡΠΈΡ
ΠΊΠΎΠ½ΡΡΠ°ΡΠ°ΡΠΈΠΈΡΠ΅ ΡΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠΈΡ
Π‘ΡΡΡΠ²Π° ΡΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ·Π½Π°Π΅, ΡΠ΅ ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ ΠΎΠΊΠ°Π·Π° ΡΡΠ΄ΡΠΊ ΠΈ Π·Π° ΡΠ°ΡΡΠΈΠ΅ ΡΡΠ΄ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠ»ΠΎΠΆΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com