Π‘ΠžΠ’Π•Π’: Π’ сцСнарии rc.test-iptables.txt Π²Ρ‹ смоТСтС Π½Π°ΠΉΡ‚ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ порядкС прохоТдСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

3.2. Π’Π°Π±Π»ΠΈΡ†Π° Mangle

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, эта Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π°, Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (mangle – ΠΈΡΠΊΠ°ΠΆΠ°Ρ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ. ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².). Π’.Π΅. Π² этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΈΡ‚Ρ‹ TOS (Type Of Service) ΠΈ Ρ‚.Π΄.

ΠžΠ‘Π’ΠžΠ ΠžΠ–ΠΠž: Π•Ρ‰Π΅ Ρ€Π°Π· напоминаю Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π² этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½Π΅ слСдуСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ любого Ρ€ΠΎΠ΄Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ, маскировку ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ адрСсов (DNAT, SNAT, MASQUERADE).

Π’ этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ допускаСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ниТСпСрСчислСнныС дСйствия:

TOS

TTL

MARK

ДСйствиС TOS выполняСт установку Π±ΠΈΡ‚ΠΎΠ² поля Type of Service Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для назначСния сСтСвой ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ обслуТивания ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚.Π΅. Π·Π°Π΄Π°Π΅Ρ‚ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. Однако, слСдуСт Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ свойство Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ количСствС ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π½Π΅ слСдуСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ состояниС этого поля для ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², уходящих Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π° Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΈ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ это ΠΏΠΎΠ»Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ принято Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°.

ДСйствиС TTL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки значСния поля TTL (Time To Live) ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π•ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этому Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этому полю, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ наш брандмауэр ΠΎΡ‚ чСрСсчур Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² (Internet Service Providers). Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ Π»ΡŽΠ±ΡΡ‚ ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ раздСляСтся нСсколькими ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ. ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ TTL приходящих ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ «сидит» Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ нСсколько.

ДСйствиС MARK устанавливаСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚, которая Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ Π² iptables ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ iproute2. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Β«ΠΌΠ΅Ρ‚ΠΎΠΊΒ» ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„Ρ„ΠΈΠΊ ΠΈ Ρ‚.ΠΏ.

3.3. Π’Π°Π±Π»ΠΈΡ†Π° Nat

Π­Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для выполнСния ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ сСтСвых адрСсов NAT (Network Address Translation). Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, трансляция адрСсов ΠΈΠ»ΠΈ маскировка ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎ всСм ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ автоматичСски. Для этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ дСйствия:

DNAT

SNAT

MASQUERADE

ДСйствиС DNAT (Destination Network Address Translation) ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ адрСсов назначСния Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, этим дСйствиСм производится ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ адрСса, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

SNAT (Source Network Address Translation) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для измСнСния исходных адрСсов ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого дСйствия ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ структуру локальной сСти, Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ СдинствСнный внСшний IP адрСс ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ локальной сСти для Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. Π’ этом случаС брандмауэр, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SNAT, автоматичСски ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ прямоС ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ адрСсов, Ρ‚Π΅ΠΌ самым давая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ сСрвСрам Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Π² локальной сСти.

ΠœΠ°ΡΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° (MASQUERADE) примСняСтся Π² Ρ‚Π΅Ρ… ΠΆΠ΅ цСлях, Ρ‡Ρ‚ΠΎ ΠΈ SNAT, Π½ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ послСднСй, MASQUERADE Π΄Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΠ»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° систСму. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ это ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этого дСйствия – производится запрос IP адрСса для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² дСйствии сСтСвого интСрфСйса, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ для SNAT IP адрСс указываСтся нСпосрСдствСнно. Однако, благодаря Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡŽ, MASQUERADE ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² случаях с динамичСским IP адрСсом, Ρ‚.Π΅. ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, скаТСм Ρ‡Π΅Ρ€Π΅Π· PPP, SLIP ΠΈΠ»ΠΈ DHCP.

3.4. Π’Π°Π±Π»ΠΈΡ†Π° Filter

Как слСдуСт ΠΈΠ· названия, Π² этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π°Π±ΠΎΡ€Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ» для выполнСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π΄Π°Π»Π΅Π΅, Π»ΠΈΠ±ΠΎ ΠΎΡ‚Π²Π΅Ρ€Π³Π°Ρ‚ΡŒΡΡ (дСйствия ACCEPT ΠΈ DROP соотвСтствСнно), Π² зависимости ΠΎΡ‚ ΠΈΡ… содСрТимого. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…, Π½ΠΎ эта Ρ‚Π°Π±Π»ΠΈΡ†Π° сущСствуСт ΠΈΠΌΠ΅Π½Π½ΠΎ для Π½ΡƒΠΆΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. Π’ этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ допускаСтся использованиС Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… дСйствий, ΠΎΠ΄Π½Π°ΠΊΠΎ ряд дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ рассмотрСли Π²Ρ‹ΡˆΠ΅ Π² этой Π³Π»Π°Π²Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² присущих ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ….

Π“Π»Π°Π²Π° 4. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ опрСдСлСния состояний

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ всС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡƒ опрСдСлСния состояний ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (state machine). По ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ Π΅Π΅ Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ достаточно Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ прСдставлСниС ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°, Π° ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ этому Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ объСм ΠΏΠΎΡΡΠ½ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².

4.1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ опрСдСлСния состояния (state machine) являСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ iptables ΠΈ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ фактичСски являСтся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ трассировки соСдинСний. Однако Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ количСству людСй ΠΎΠ½ извСстСн ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ Β«ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ опрСдСлСния состояния» (state machine). Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ эти названия Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ синонимы. Врассировщик соСдинСний создан для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ netfilter ΠΌΠΎΠ³ постоянно ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ состоянии ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ соСдинСния. НаличиС трассировщика позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с брандмауэрами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°.

Π’ ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… iptables, соСдинСниС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· 4-Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… состояний: NEW, ESTABLISHED, RELATED ΠΈ INVALID. ПозднСС ΠΌΡ‹ остановимся Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ. Для управлСния ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΈΡ… состоянии, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ –state.

Врассировка соСдинСний производится ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π² пространствС ядра – трассировщиком (conntrack). Код трассировщика ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скомпилирован ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ядра, Ρ‚Π°ΠΊ ΠΈ статичСски связан с ядром. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π½Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° Π±ΠΎΠ»Π΅Π΅ спСцифичная информация ΠΎ соСдинСнии, Ρ‡Π΅ΠΌ Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ поставляСт трассировщик ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ трассировщик Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ TCP, UDP ΠΈΠ»ΠΈ ICMP. Бобранная ΠΈΠΌΠΈ информация Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ опрСдСлСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния соСдинСния. НапримСр – соСдинСниС ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ UDP ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ идСнтифицируСтся ΠΏΠΎ IP-адрСсам ΠΈ ΠΏΠΎΡ€Ρ‚Π°ΠΌ источника ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°.

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсиях ядра имСлась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π΄Π΅Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Однако, послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ трассировка соСдинСний Π±Ρ‹Π»Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² состав iptables/netfilter, Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π² этом ΠΎΡ‚ΠΏΠ°Π»Π°. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ трассировщик Π½Π΅ Π² состоянии Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π²ΠΎΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π½Π° Π½Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π΄Π΅Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ поэтому ΠΎΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° постоянно. Π•Π΅ нСльзя ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ² трассировку соСдинСний. ДСфрагмСнтация выполняСтся всСгда, Ссли трассировщик Π²ΠΊΠ»ΡŽΡ‡Π΅Π½.

Врассировка соСдинСний производится Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ PREROUTING, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ случаи, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ процСссами Π½Π° брандмауэрС, Π² этом случаС трассировка производится Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ OUTPUT. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ iptables ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ всС вычислСния, связанныС с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ состояния, Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… этих Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ. Когда Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ процСсс Π½Π° брандмауэрС отправляСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ°, Ρ‚ΠΎ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ OUTPUT Π΅ΠΌΡƒ присваиваСтся состояниС NEW, Π° ΠΊΠΎΠ³Π΄Π° возвращаСтся ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π°, Ρ‚ΠΎ состояниС соСдинСния Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ PREROUTING измСняСтся Π½Π° ESTABLISHED, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Если ΠΆΠ΅ соСдинСниС устанавливаСтся ΠΈΠ·Π²Π½Π΅, Ρ‚ΠΎ состояниС NEW присваиваСтся ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ° Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ PREROUTING. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ состояния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² производится Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ PREROUTING ΠΈ OUTPUT Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ nat.


ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° страницу:
Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π°: