ΠΠ΄ ΡΡΠ΅Π΄ΡΠ²Π°ΡΠΎΡ Π½Π° Π±Π»ΠΎΠ³ Π½Π° Google: ΠΠ°Π»ΠΈ Π½Π΅ΠΊΠΎΠ³Π°Ρ ΡΡΠ΅ ΡΠ΅ Π·Π°ΠΏΡΠ°ΡΠ°Π»Π΅ ΠΊΠ°ΠΊΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π½Π° Google Cloud Technical Solutions (TSE) ΡΠ΅ ΡΠΏΡΠ°Π²ΡΠ²Π°Π°Ρ ΡΠΎ Π²Π°ΡΠΈΡΠ΅ Π±Π°ΡΠ°ΡΠ° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°? ΠΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π·Π° ΡΠ΅Ρ
Π½ΠΈΡΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π½Π° TSE ΡΠ΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°ΡΠ΅ ΠΈ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ·Π²ΠΎΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡΠΈΡΠ°Π²Π΅Π½ΠΈ ΠΎΠ΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅. ΠΠ΅ΠΊΠΎΠΈ ΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠ΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΈ, Π½ΠΎ ΠΏΠΎΠ½Π΅ΠΊΠΎΠ³Π°Ρ ΡΠ΅ Π½Π°ΠΈΠ΄Π΅ΡΠ΅ Π½Π° Π±ΠΈΠ»Π΅Ρ ΡΡΠΎ Π±Π°ΡΠ° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠ΄ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈ ΠΎΠ΄Π΅Π΄Π½Π°Ρ. ΠΠΎ ΠΎΠ²Π°Π° ΡΡΠ°ΡΠΈΡΠ°, Π΅Π΄Π΅Π½ ΠΎΠ΄ Π²ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈΡΠ΅ Π²ΠΎ Π’Π‘Π ΡΠ΅ Π½ΠΈ ΠΊΠ°ΠΆΠ΅ Π·Π° Π΅Π΄Π΅Π½ ΠΌΠ½ΠΎΠ³Ρ Π½Π΅Π·Π³ΠΎΠ΄Π΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΎΠ΄ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π½Π΅ΠΎΠ΄Π°ΠΌΠ½Π΅ΡΠ½Π° ΠΏΡΠ°ΠΊΡΠ° -
Π Π΅ΡΠ°Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π΅ ΠΈ Π½Π°ΡΠΊΠ° ΠΈ ΡΠΌΠ΅ΡΠ½ΠΎΡΡ. Π‘Γ¨ Π·Π°ΠΏΠΎΡΠ½ΡΠ²Π° ΡΠΎ ΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° Ρ
ΠΈΠΏΠΎΡΠ΅Π·Π° Π·Π° ΠΏΡΠΈΡΠΈΠ½Π°ΡΠ° Π·Π° Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎΡΠΎ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ, ΠΏΠΎ ΡΡΠΎ ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠ° Π·Π° ΡΠ°ΡΠΈΠ½Π°. ΠΠ΅ΡΡΡΠΎΠ°, ΠΏΡΠ΅Π΄ Π΄Π° ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°ΠΌΠ΅ Ρ
ΠΈΠΏΠΎΡΠ΅Π·Π°, ΠΌΠΎΡΠ° ΡΠ°ΡΠ½ΠΎ Π΄Π° Π³ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΠΌΠ΅ ΠΈ ΠΏΡΠ΅ΡΠΈΠ·Π½ΠΎ Π΄Π° Π³ΠΎ ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ. ΠΠΊΠΎ ΠΏΡΠ°ΡΠ°ΡΠ΅ΡΠΎ Π·Π²ΡΡΠΈ ΠΏΡΠ΅ΠΌΠ½ΠΎΠ³Ρ Π½Π΅ΡΠ°ΡΠ½ΠΎ, ΡΠΎΠ³Π°Ρ ΡΠ΅ ΠΌΠΎΡΠ° Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΓ¨; ΠΠ²Π° Π΅ βΡΠΌΠ΅ΡΠ½ΠΎΡΡΠ°β Π½Π° ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΠΎΠ΄ Google Cloud, ΡΠ°ΠΊΠ²ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ ΡΡΠ°Π½ΡΠ²Π°Π°Ρ Π΅ΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ°Π»Π½ΠΎ ΠΏΠΎΡΠ»ΠΎΠΆΠ΅Π½ΠΈ, Π±ΠΈΠ΄Π΅ΡΡΠΈ Google Cloud ΡΠ΅ ΡΡΡΠ΄ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π΄Π° ΡΠ° Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΡΡΠ° Π½Π° ΡΠ²ΠΎΠΈΡΠ΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ. ΠΠΎΡΠ°Π΄ΠΈ ΠΎΠ²Π°, ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π½Π° TSE Π½Π΅ΠΌΠ°Π°Ρ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄Π° Π³ΠΈ ΡΡΠ΅Π΄ΡΠ²Π°Π°Ρ Π²Π°ΡΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π½ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° Π³ΠΈ Π³Π»Π΅Π΄Π°Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈΡΠ΅ ΡΠΎΠ»ΠΊΡ ΡΠΈΡΠΎΠΊΠΎ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΠΈΠΌΠ°Π°Ρ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅. ΠΠ°ΡΠΎΠ°, Π·Π° Π΄Π° ΡΠ΅ΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π΅ΠΊΠΎΡΠ° ΠΎΠ΄ Π½Π°ΡΠΈΡΠ΅ Ρ
ΠΈΠΏΠΎΡΠ΅Π·ΠΈ, Π½ΠΈΠ΅ (ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅) Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π±ΡΠ·ΠΎ Π΄Π° Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΡ.
ΠΠ΅ΠΊΠΎΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ Π²Π΅ΡΡΠ²Π°Π°Ρ Π΄Π΅ΠΊΠ° ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΓ¨ ΠΊΠ°ΠΊΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ° Π²ΠΎ ΡΠ΅ΡΠ²ΠΈΡ Π·Π° Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ ΠΈ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠ΅ Π½ΠΈ ΠΈΡΠΏΡΠ°ΡΠΈΠΌΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π΄ΠΎΠ΄Π΅ΠΊΠ° Π²ΠΎ ΡΠ΅Π°Π»Π½ΠΎΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΡΠ΅ ΠΎΠ΄Π²ΠΈΠ²Π° Π²ΠΎ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ: ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΠΎΡΠ²ΡΠ΄ΡΠ²Π°ΡΠ΅ (ΠΈΠ»ΠΈ ΠΏΠΎΠ±ΠΈΠ²Π°ΡΠ΅) Ρ ΠΈΠΏΠΎΡΠ΅Π·ΠΈ, ΠΈ, Π½Π° ΠΊΡΠ°ΡΠΎΡ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΠΎ ΠΎΠ΄Π»ΡΠΊΠ°ΡΠ° ΡΠ΅ Π·Π°ΡΠ½ΠΎΠ²Π°Π°Ρ Π½Π° ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ.
ΠΡΠΎΠ±Π»Π΅ΠΌ Π΅ Π²ΠΎ ΠΏΡΠ°ΡΠ°ΡΠ΅
ΠΠ΅Π½Π΅Ρ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡΠΈΠΊΠ°Π·Π½Π° ΡΠΎ Π΄ΠΎΠ±Π°Ρ ΠΊΡΠ°Ρ. ΠΠ΄Π½Π° ΠΎΠ΄ ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΎΡ ΡΠ»ΡΡΠ°Ρ Π΅ ΠΌΠ½ΠΎΠ³Ρ Π΄Π΅ΡΠ°Π»Π΅Π½ ΠΈ ΡΠΎΡΠ΅Π½ ΠΎΠΏΠΈΡ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ. ΠΠΎΠ΄ΠΎΠ»Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ° ΠΎΠ΄ ΠΏΡΠ²ΠΈΠΎΡ Π±ΠΈΠ»Π΅Ρ (ΡΡΠ΅Π΄Π΅Π½ Π·Π° Π΄Π° ΡΠ΅ ΡΠΎΠΊΡΠΈΡΠ°Ρ Π΄ΠΎΠ²Π΅ΡΠ»ΠΈΠ²ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ):
ΠΠ²Π°Π° ΠΏΠΎΡΠ°ΠΊΠ° ΡΠΎΠ΄ΡΠΆΠΈ ΠΌΠ½ΠΎΠ³Ρ ΠΊΠΎΡΠΈΡΠ½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° Π½Π°Ρ:
- ΠΠ°Π²Π΅Π΄Π΅Π½ΠΎ Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎ VM
- Π‘Π°ΠΌΠΈΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅ ΠΎΠ·Π½Π°ΡΠ΅Π½ - DNS Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ
- Π‘Π΅ ΠΎΠ·Π½Π°ΡΡΠ²Π° ΠΊΠ°Π΄Π΅ ΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΈΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ - VM ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ
- ΠΠ°Π²Π΅Π΄Π΅Π½ΠΈ ΡΠ΅ ΡΠ΅ΠΊΠΎΡΠΈΡΠ΅ ΡΡΠΎ Π³ΠΈ ΠΏΡΠ΅Π·Π΅Π» ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π·Π° Π΄Π° Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ.
ΠΠ°ΡΠ°ΡΠ΅ΡΠΎ Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΎ ΠΊΠ°ΠΊΠΎ βP1: Critical Impact - Service Unusable in productionβ, ΡΡΠΎ Π·Π½Π°ΡΠΈ ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΎ ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π½Π° ΡΠΎΡΡΠΎΡΠ±Π°ΡΠ° 24/7 ΡΠΏΠΎΡΠ΅Π΄ ΡΠ΅ΠΌΠ°ΡΠ° βΠ‘Π»Π΅Π΄ΠΈ Π³ΠΎ ΡΠΎΠ½ΡΠ΅ΡΠΎβ (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π°
ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΡ ΠΊΠΎΠ³Π° Π±ΠΈΠ»Π΅ΡΠΎΡ ΡΡΠΈΠ³Π½Π° Π²ΠΎ Π¦ΠΈΡΠΈΡ , Π²Π΅ΡΠ΅ Π³ΠΈ ΠΈΠΌΠ°Π²ΠΌΠ΅ ΠΏΡΠΈ ΡΠ°ΠΊΠ° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ:
- Π‘ΠΎΠ΄ΡΠΆΠΈΠ½Π°
/etc/hosts
- Π‘ΠΎΠ΄ΡΠΆΠΈΠ½Π°
/etc/resolv.conf
- ΠΠ·Π»Π΅Π·
iptables-save
- Π‘ΠΎΠ±ΡΠ°Π½ΠΈ ΠΎΠ΄ ΡΠΈΠΌΠΎΡ
ngrep
pcap Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°
Π‘ΠΎ ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, Π±Π΅Π²ΠΌΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π΄Π° ΡΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌΠ΅ ΡΠ°Π·Π°ΡΠ° Π½Π° βΠΈΡΡΡΠ°Π³Π°β ΠΈ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΠ°ΡΠΈΡΠ΅ ΠΏΡΠ²ΠΈ ΡΠ΅ΠΊΠΎΡΠΈ
ΠΡΠ²ΠΎ, Π³ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ²ΠΌΠ΅ Π΄Π½Π΅Π²Π½ΠΈΡΠΈΡΠ΅ ΠΈ ΡΡΠ°ΡΡΡΠΎΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π·Π° ΠΌΠ΅ΡΠ°ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ ΡΠ΅ ΡΠ²Π΅ΡΠΈΠ²ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ. Π‘Π΅ΡΠ²Π΅ΡΠΎΡ Π·Π° ΠΌΠ΅ΡΠ°ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ° Π½Π° IP Π°Π΄ΡΠ΅ΡΠ°ΡΠ° 169.254.169.254 ΠΈ, ΠΌΠ΅ΡΡ Π΄ΡΡΠ³ΠΎΡΠΎ, Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΈΠΌΠΈΡΠ°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΈ. ΠΡΡΠΎ ΡΠ°ΠΊΠ°, Π΄Π²Π°ΠΏΠ°ΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ²ΠΌΠ΅ Π΄Π°Π»ΠΈ Π·Π°ΡΡΠΈΡΠ½ΠΈΠΎΡ ΡΠΈΠ΄ ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΡΠΎ VM ΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΈ.
Π’ΠΎΠ° Π±Π΅ΡΠ΅ Π½Π΅ΠΊΠΎΡ Π²ΠΈΠ΄ ΡΡΠ΄Π΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° nmap ΡΠ° ΠΏΠΎΠ±ΠΈ Π½Π°ΡΠ°ΡΠ° Π³Π»Π°Π²Π½Π° Ρ ΠΈΠΏΠΎΡΠ΅Π·Π° Π·Π° Π³ΡΠ±Π΅ΡΠ΅ Π½Π° UDP ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΏΠ° ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ Π΄ΠΎΡΠ΄ΠΎΠ²ΠΌΠ΅ Π΄ΠΎ ΡΡΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΎΠΏΡΠΈΠΈ ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π΄Π° Π³ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌΠ΅:
- ΠΠ°Π»ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΠ΅ ΠΏΠ°ΡΠ°Π°Ρ ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ? => ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π³ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π½Π° iptables
- ΠΠ° Π½Π΅ Π΅ ΠΏΡΠ΅ΠΌΠ°Π»?
ΠΠ’Π£ ? => ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π³ΠΎ ΠΈΠ·Π»Π΅Π·ΠΎΡip a show
- ΠΠ°Π»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π²Π»ΠΈΡΠ°Π΅ ΡΠ°ΠΌΠΎ Π½Π° UDP ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΠΈΠ»ΠΈ Π½Π° TCP? => ΠΠΎΠ·Π΅ΡΠ΅ ΡΠ΅
dig +tcp
- ΠΠ°Π»ΠΈ ΡΠ΅ Π²ΡΠ°ΡΠ°Π°Ρ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠΎ ΠΈΡΠΊΠΎΠΏΡΠ²Π°ΡΠ΅? => ΠΠΎΠ·Π΅ΡΠ΅ ΡΠ΅
tcpdump
- ΠΠ°Π»ΠΈ libdns ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ? => ΠΠΎΠ·Π΅ΡΠ΅ ΡΠ΅
strace
Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈ ΠΏΡΠ΅Π½ΠΎΡΠΎΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π²ΠΎ Π΄Π²Π΅ΡΠ΅ Π½Π°ΡΠΎΠΊΠΈ
ΠΠ²Π΄Π΅ ΡΠ΅ΡΠΈΠ²ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΏΠΎΠ²ΠΈΠΊΠ°ΠΌΠ΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π·Π° Π΄Π° Π³ΠΈ ΡΠ΅ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Π²ΠΎ ΠΆΠΈΠ²ΠΎ.
ΠΠ° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠΎΡ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ°Π±ΠΎΡΠΈ:
- ΠΠΎ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π³ΠΈ ΠΈΡΠΊΠ»ΡΡΡΠ²Π°ΠΌΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° iptables ΠΎΠ΄ Π»ΠΈΡΡΠ°ΡΠ° Π½Π° ΠΏΡΠΈΡΠΈΠ½ΠΈ
- ΠΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ ΠΌΡΠ΅ΠΆΠ½ΠΈΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΈ ΠΈ ΡΠ°Π±Π΅Π»ΠΈΡΠ΅ Π·Π° Π½Π°ΡΠΎΡΡΠ²Π°ΡΠ΅ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π΄Π²Π°ΠΏΠ°ΡΠΈ Π΄Π°Π»ΠΈ MTU Π΅ ΡΠΎΡΠ΅Π½
- ΠΠΎ ΠΎΡΠΊΡΠΈΠ²Π°ΠΌΠ΅ ΡΠΎΠ°
dig +tcp google.com
(TCP) ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΡΠ΅Π±Π°, Π½ΠΎdig google.com
(UDP) Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ - ΠΡΠΊΠ°ΠΊΠΎ ΡΠ΅ ΠΈΠ·Π±ΡΠΊΠ°Π°
tcpdump
ΡΓ¨ ΡΡΡΠ΅ ΡΠ°Π±ΠΎΡΠΈdig
, ΠΎΡΠΊΡΠΈΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° UDP ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΠ΅ Π²ΡΠ°ΡΠ°Π°Ρ - ΠΠΎΠ·ΠΈΠΌΠ΅
strace dig google.com
ΠΈ Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ ΠΊΠΎΠΏΠ° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°sendmsg()
ΠΈrecvms()
, ΠΌΠ΅ΡΡΡΠΎΠ° Π²ΡΠΎΡΠΈΠΎΡ Π΅ ΠΏΡΠ΅ΠΊΠΈΠ½Π°Ρ ΡΠΎ ΡΠ°ΡΠΌΠ°ΡΡ
ΠΠ° ΠΆΠ°Π», ΠΏΡΠΈΡΡΠΈΠ³Π½ΡΠ²Π° ΠΊΡΠ°ΡΠΎΡ Π½Π° ΡΠΌΠ΅Π½Π°ΡΠ° ΠΈ ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ΠΈ ΡΠΌΠ΅ Π΄Π° Π³ΠΎ Π΅ΡΠΊΠ°Π»ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π²ΠΎ ΡΠ»Π΅Π΄Π½Π°ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠ° Π·ΠΎΠ½Π°. ΠΠ°ΡΠ°ΡΠ΅ΡΠΎ, ΡΠ΅ΠΏΠ°ΠΊ, ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΊΠ°Ρ Π½Π°ΡΠΈΠΎΡ ΡΠΈΠΌ, Π° Π΅Π΄Π΅Π½ ΠΊΠΎΠ»Π΅Π³Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π° ΠΏΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ DNS ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΎΡ Π·Π° ΡΠΊΡΡΠ΅Π½ΠΈ 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 ΡΠ΅ Π²ΡΠ°ΡΠ° ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π³ΠΎ ΠΏΡΠΈΠΌΠ°, ΠΏΠΎΡΠ²ΡΠ΄ΡΠ²Π°ΡΡΠΈ Π΄Π΅ΠΊΠ° Π½Π΅ΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΌΡΠ΅ΠΆΠ°.
ΠΠΎ ΡΡΡΠ΅ Π΅Π΄Π½ΠΎ βΠΏΠ°ΡΡΠ²Π°ΡΠ΅ ΠΎΠΊΠΎΠ»Ρ ΡΠ²Π΅ΡΠΎΡβ, Π±Π°ΡΠ°ΡΠ΅ΡΠΎ ΡΠ΅ Π²ΡΠ°ΡΠ° Π²ΠΎ Π½Π°ΡΠΈΠΎΡ ΡΠΈΠΌ ΠΈ ΡΠ°Ρ ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π³ΠΎ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°ΠΌ Π½Π° ΡΠ΅Π±Π΅, ΠΌΠΈΡΠ»Π΅ΡΡΠΈ Π΄Π΅ΠΊΠ° ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΏΠΎΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π°ΠΊΠΎ Π±Π°ΡΠ°ΡΠ΅ΡΠΎ ΠΏΡΠ΅ΡΡΠ°Π½Π΅ Π΄Π° ΠΊΡΡΠΆΠΈ ΠΎΠ΄ ΠΌΠ΅ΡΡΠΎ Π΄ΠΎ ΠΌΠ΅ΡΡΠΎ.
ΠΠΎ ΠΌΠ΅ΡΡΠ²ΡΠ΅ΠΌΠ΅, ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΡΡΠ±Π΅Π·Π½ΠΎ ΡΠ΅ ΡΠΎΠ³Π»Π°ΡΡΠ²Π° Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΡΠ»ΠΈΠΊΠ° ΠΎΠ΄ ΡΠ»ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ. ΠΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³Ρ Π΄ΠΎΠ±ΡΠ° Π²Π΅ΡΡ: ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΡΠ°ΠΌ ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ±ΡΠ·ΠΎ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΡΠ°ΠΌ Π΄Π° Π±Π°ΡΠ°ΠΌ ΠΎΠ΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Π΄Π° ΠΌΠΈ Π³ΠΈ ΠΈΡΠΏΡΠ°ΡΠ° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΈ Π΄Π° Π³ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°, ΠΌΠΎΠΆΠ°ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²Π°ΠΌ ΡΓ¨ ΡΠ°ΠΌ!
ΠΠΎΠ»Π΅Π³ΠΈΡΠ΅ ΠΏΠΎΡΠ½Π°Π° ΠΌΠ°Π»ΠΊΡ Π΄Π° ΠΌΠΈ Π·Π°Π²ΠΈΠ΄ΡΠ²Π°Π°Ρ. ΠΠ° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΡΡΠ΅ΠΊΠΎΡ ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠ°ΠΌΠ΅ Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·Π±Π°ΡΠ°, Π½ΠΎ Π½ΠΈΠΊΠΎΡ Π½Π΅ Π·Π½Π°Π΅ ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π°. ΠΠ° ΡΡΠ΅ΡΠ°, ΡΠ°ΠΌΠΈΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ Π²Π΅ΡΠ΅ ΠΈΠΌΠ° ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½ΠΎ ΠΌΠ΅ΡΠΊΠΈ Π·Π° ΡΠ±Π»Π°ΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΈΡΠΈΡΠ΅ ΠΈ Π½Π΅ ΡΠ΅ Π±ΡΠ·Π°, ΠΏΠ° ΠΈΠΌΠ°ΠΌΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΎ ΡΠ°ΡΠ΅ΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ. Π Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ»ΠΈΠΊΠ°, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΈΠ·Π²ΡΡΠΈΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ Π±ΠΈΠ»ΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΈ ΡΡΠΎ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΈΡΠ°Π°Ρ. ΠΠ΄Π»ΠΈΡΠ½ΠΎ!
ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ ΡΠ΅ΠΊΠΎΡ Π½Π°Π·Π°Π΄
ΠΠ΄Π½ΠΎ ΠΎΠ΄ Π½Π°ΡΠΏΠΎΠΏΡΠ»Π°ΡΠ½ΠΈΡΠ΅ ΠΏΡΠ°ΡΠ°ΡΠ° Π·Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ Π·Π° ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π·Π° ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π΅: βΠ¨ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π° ΠΊΠΎΠ³Π° ΠΏΠΈΠ½Π³ΡΠ²Π°ΡΠ΅
Π Π΅ΡΠΈΠ² Π΄Π° Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π°ΠΌ ΠΎΠ²Π° ΠΏΡΠ°ΡΠ°ΡΠ΅ Π·Π° ΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½Π° Π°ΠΊΡΡΠ΅Π»Π΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΡΠ±ΠΎ ΠΊΠ°ΠΆΠ°Π½ΠΎ, ΠΊΠΎΠ³Π° ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°ΡΠ΅ Π΄Π° ΠΎΠ΄ΡΠ΅Π΄ΠΈΡΠ΅ ΠΈΠΌΠ΅ Π½Π° DNS, ΡΠ΅ ΡΠ»ΡΡΡΠ²Π° ΡΠ»Π΅Π΄Π½ΠΎΠ²ΠΎ:
- ΠΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΡΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ libdns
- libdns ΡΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π΄ΠΎ ΠΊΠΎΡ DNS ΡΠ΅ΡΠ²Π΅Ρ ΡΡΠ΅Π±Π° Π΄Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΈΡΠ° (Π½Π° Π΄ΠΈΡΠ°Π³ΡΠ°ΠΌΠΎΡ ΠΎΠ²Π° Π΅ 169.254.169.254, ΡΠ΅ΡΠ²Π΅Ρ Π·Π° ΠΌΠ΅ΡΠ°ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ)
- libdns ΠΊΠΎΡΠΈΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ Π·Π° Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ UDP ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ (SOKET_DGRAM) ΠΈ Π΄Π° ΠΈΡΠΏΡΠ°ΡΠ° UDP ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠΎ Π±Π°ΡΠ°ΡΠ΅ DNS Π²ΠΎ Π΄Π²Π΅ΡΠ΅ Π½Π°ΡΠΎΠΊΠΈ
- ΠΡΠ΅ΠΊΡ sysctl ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΡΡΠ΅ΠΊΠΎΡ UDP Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ
- ΠΠ°Π΄ΡΠΎΡΠΎ ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ° ΡΠΎ Ρ Π°ΡΠ΄Π²Π΅ΡΠΎΡ Π·Π° Π΄Π° ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΏΡΠ΅ΠΊΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΌΡΠ΅ΠΆΠ½ΠΈΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ
- Π₯ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠΎΡ Π³ΠΎ ΡΠ°ΡΠ° ΠΈ Π³ΠΎ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΡ Π΄ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π·Π° ΠΌΠ΅ΡΠ°ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΏΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡ ΡΠΎ Π½Π΅Π³ΠΎ
- Π‘Π΅ΡΠ²Π΅ΡΠΎΡ Π·Π° ΠΌΠ΅ΡΠ°ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΠΏΠΎ ΡΠ²ΠΎΡΠ°ΡΠ° ΠΌΠ°Π³ΠΈΡΠ°, Π³ΠΎ ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° DNS ΠΈ Π²ΡΠ°ΡΠ° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎ ΠΈΡΡΠΈΠΎΡ ΠΌΠ΅ΡΠΎΠ΄
ΠΠΎΠ·Π²ΠΎΠ»Π΅ΡΠ΅ ΠΌΠΈ Π΄Π° Π²Π΅ ΠΏΠΎΡΡΠ΅ΡΠ°ΠΌ ΠΊΠΎΠΈ Ρ
ΠΈΠΏΠΎΡΠ΅Π·ΠΈ Π²Π΅ΡΠ΅ Π³ΠΈ ΡΠ°Π·Π³Π»Π΅Π΄Π°Π²ΠΌΠ΅:
Π₯ΠΈΠΏΠΎΡΠ΅Π·Π°: Π‘ΠΊΡΡΠ΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
- Π’Π΅ΡΡ 1: ΡΡΠ°ΡΡΡΠ²Π°ΡΡΠ΅ ΡΡΠ°ΡΠ° Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ, ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ dig Π³ΠΈ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° ΡΠΎΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: Π‘Π΅ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ
- Π’Π΅ΡΡ 2: ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ srapy Π·Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌΠ΅ Π΄Π°Π»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΎΠ΄ΡΠ΅Π΄ΠΈΠΌΠ΅ ΠΈΠΌΠΈΡΠ° ΠΊΠΎΠΈ Π³ΠΈ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΡΠ²Π°Π°Ρ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: ΠΌΠΎΠΆΠ΅ΠΌΠ΅
- Π’Π΅ΡΡ 3: ΠΈΠ·Π²ΡΡΠ΅ΡΠ΅ rpm βV Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΡ libdns ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° md5sum
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: ΠΊΠΎΠ΄ΠΎΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ ΡΠΎ ΠΊΠΎΠ΄ΠΎΡ Π²ΠΎ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΡΠΈΡΡΠ΅ΠΌ
- Π’Π΅ΡΡ 4: ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΡΠ΅ ΡΠ° ΡΠ»ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΡΠ΅Π½ΡΠΊΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π½Π° VM Π±Π΅Π· ΠΎΠ²Π° ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅, ΡΡΠ°ΡΡΡΠ²Π°ΡΡΠ΅ Π³ΠΎ chroot, ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ DNS ΡΠ°Π±ΠΎΡΠΈ
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: DNS ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ
ΠΠ°ΠΊΠ»ΡΡΠΎΠΊ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΈ: ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π½Π΅ Π΅ Π²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅
Π₯ΠΈΠΏΠΎΡΠ΅Π·Π°: ΠΠΌΠ° Π³ΡΠ΅ΡΠΊΠ° Π²ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ Π·Π° DNS
- Π’Π΅ΡΡ 1: ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π³ΠΎ tcpdump ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ DNS ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΠ΅ ΠΈΡΠΏΡΠ°ΡΠ°Π°Ρ ΠΈ ΡΠ΅ Π²ΡΠ°ΡΠ°Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΏΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΈΡΠΊΠΎΠΏΡΠ²Π°ΡΠ΅ΡΠΎ
- Π Π΅Π·ΡΠ»ΡΠ°Ρ: ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ
- Π’Π΅ΡΡ 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
. Π’ΠΈΠΏΠΈΡΠ½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡ Π΅ Π½Π΅ΠΊΠ°Π΄Π΅ ΠΎΠΊΠΎΠ»Ρ 200 KiB, Π½ΠΎ Π°ΠΊΠΎ Π²Π°ΡΠΈΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ 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
Π΅ ΠΎΠ΄ ΡΠΈΠΏΠΎΡ ΠΈΠ½Ρsize
Π΅ ΠΎΠ΄ ΡΠΈΠΏΠΎΡ u16 (Π½Π΅ΠΏΠΎΡΠΏΠΈΡΠ°Π½ ΡΠ΅ΡΠ½Π°Π΅ΡΠ΅Ρ-Π±ΠΈΡΠ΅Π½ int) ΠΈ ΡΠ° ΡΠΊΠ»Π°Π΄ΠΈΡΠ° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΡsk->sk_rcybuf
Π΅ ΠΎΠ΄ ΡΠΈΠΏΠΎΡ int ΠΈ ΡΠ° ΡΠΊΠ»Π°Π΄ΠΈΡΠ° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° Π±Π°ΡΠ΅ΡΠΎΡ ΠΊΠΎΡΠ°, ΠΏΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°, Π΅ Π΅Π΄Π½Π°ΠΊΠ²Π° Π½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π²ΠΎnet.core.rmem_default
ΠΠΎΠ³Π° sk_rcvbuf
ΡΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΡΠ²Π° Π΄ΠΎ 231, ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ° ΡΠΎ
ΠΡΠ΅ΡΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ° Π½Π° ΡΡΠΈΠ²ΠΈΡΠ°Π»Π΅Π½ Π½Π°ΡΠΈΠ½: ΡΠΎ ΠΊΠ°ΡΡΠΈΠ½Π³ unsigned int
. ΠΠ° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ² ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ°ΡΠ° ΠΈ Π³ΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π² ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΈ DNS ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅.
ΠΠΊΡΡΠΎΡ Π½Π° ΠΏΠΎΠ±Π΅Π΄Π°ΡΠ°
ΠΠΈ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΠ² ΠΌΠΎΠΈΡΠ΅ Π½Π°ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ ΠΈ ΠΈΡΠΏΡΠ°ΡΠΈΠ²
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ·Π½Π°Π΅ Π΄Π΅ΠΊΠ° ΡΠ»ΡΡΠ°ΡΠΎΡ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊΠΎ ΡΠ΅Π΄ΠΎΠΊ, ΠΈ Π·Π° ΡΡΠ΅ΡΠ° ΡΠ΅ΡΠΊΠΎ Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ ΡΠ°ΠΊΠ²ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈ Π±Π°ΡΠ°ΡΠ° ΠΎΠ΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅.
ΠΠ·Π²ΠΎΡ: www.habr.com