Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅
ΠΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ°ΠΌΠΎ ΠΎΠ±Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΏΠΎΡΠΎΠΊΠ°.
Π‘Π°ΠΌΠ°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Ρ Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠΎΠ·ΠΈ Π±Π°ΠΉΡΠΊΠΎΠ΄ ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π° Π² ΡΠ΄ΡΠΎΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Netlink ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π½Π°ΠΏΠΎΠΌΠ½ΡΡΠ° Π½Π° BPF (Berkeley Packet Filters). Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄, ΡΠ°Π±ΠΎΡΠ΅Ρ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ, ΠΈ Π΄Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° Π°Π½Π°Π»ΠΈΠ· ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ:
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° IPsec, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΡΠ½Π΅Π»Π½ΠΈ Π°Π΄ΡΠ΅ΡΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ, ID Π½Π° IPsec Π·Π°ΡΠ²ΠΊΠ° ΠΈ SPI (ΠΠ½Π΄Π΅ΠΊΡ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ) ΡΠ°Π³. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
... ipsec Π² ip saddr 192.168.1.0/24
... ipsec Π² spi 1-65536Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈ Π΄Π°Π»ΠΈ Π΄Π°Π΄Π΅Π½ ΠΌΠ°ΡΡΡΡΡ ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠ΅Π· IPsec ΡΡΠ½Π΅Π». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ ΡΡΠ°ΡΠΈΠΊ Π½Π΅ ΡΡΠ΅Π· IPSec:
β¦ ΡΠΈΠ»ΡΡΡΠ΅Π½ ΠΈΠ·Ρ ΠΎΠ΄ rt ipsec Π»ΠΈΠΏΡΠ²Π°ΡΠ° ΠΊΠ°ΠΏΠΊΠ°
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° IGMP (Internet Group Management Protocol). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π·Π° ΠΎΡΡ
Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° Π²Ρ
ΠΎΠ΄ΡΡΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° ΡΠ»Π΅Π½ΡΡΠ²ΠΎ Π² IGMP Π³ΡΡΠΏΠ°
nft Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎ netdev foo bar igmp type membership-query counter drop
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅Ρ
ΠΎΠ΄Π½ΠΈ Π²Π΅ΡΠΈΠ³ΠΈ (jump / goto). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΠΉΡΠ΅ dest = ber
Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ip foo bar jump $dest - ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠ°ΡΠΊΠΈ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ (OS Fingerprint) Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° TTL ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² Π·Π°Π³Π»Π°Π²ΠΊΠ°ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΠΌΠ°ΡΠΊΠΈΡΠ°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΠ‘ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°:
... meta mark set osf ttl skip name map { "Linux" : 0x1,
"Windows": 0x2,
"MacOS": 0x3,
"Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ΅Π½": 0x0}
... osf ttl ΠΏΡΠΎΠΏΡΡΠ½Π΅ΡΠ΅ Π²Π΅ΡΡΠΈΡ "Linux:4.20" - ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π½Π° ARP Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠ΅Π»Ρ ΠΈ IPv4 Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠΈΡΠ΅ Π±ΡΠΎΡΡΠ° Π½Π° ARP ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ ΠΎΡ Π°Π΄ΡΠ΅Ρ 192.168.2.1, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ:
ΡΠ°Π±Π»ΠΈΡΠ° arp x {
Π²Π΅ΡΠΈΠ³Π° y {
ΡΠΈΠΏ ΡΠΈΠ»ΡΡΡ ΠΊΡΠΊΠ° Π²Ρ ΠΎΠ΄Π΅Π½ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΡΠΈΠ»ΡΡΡ; ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΡΠΈΠ΅ΠΌΠ°;
arp saddr ip 192.168.2.1 Π±ΡΠΎΡΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ 1 Π±Π°ΠΉΡΠ° 46
}
} - ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΏΡΠ΅Π· ΠΏΡΠΎΠΊΡΠΈ (tproxy). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΠΏΡΠ΅Π½Π°ΡΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΠΊΡΠΌ ΠΏΠΎΡΡ 80 ΠΊΡΠΌ ΠΏΡΠΎΠΊΡΠΈ ΠΏΠΎΡΡ 8080:
ΡΠ°Π±Π»ΠΈΡΠ° ip x {
Π²Π΅ΡΠΈΠ³Π° y {
ΡΠΈΠΏ ΡΠΈΠ»ΡΡΡ ΠΊΡΠΊΠ° ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ -150; ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΡΠΈΠ΅ΠΌΠ°;
tcp dport 80 tΠΏΡΠΎΠΊΡΠΈ ΠΊΡΠΌ :8080
}
} - ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π΅ Π½Π° Π³Π½Π΅Π·Π΄Π° Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½Π°ΡΠ° ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΡΠ΅Π· setsockopt() Π² ΡΠ΅ΠΆΠΈΠΌ SO_MARK. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΡΠ°Π±Π»ΠΈΡΠ° inet x {
Π²Π΅ΡΠΈΠ³Π° y {
ΡΠΈΠΏ ΡΠΈΠ»ΡΡΡ ΠΊΡΠΊΠ° ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ -150; ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΡΠΈΠ΅ΠΌΠ°;
tcp dport 8080 ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΡΠΎΠΊΠ΅Ρ
}
} - ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ ΠΈΠΌΠ΅Π½Π° Π·Π° Π²Π΅ΡΠΈΠ³ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
nft add chain ip x raw { type filter hook prerouting priority raw; }
nft Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ Π²Π΅ΡΠΈΠ³Π° ip x ΡΠΈΠ»ΡΡΡ { ΡΠΈΠΏ ΡΠΈΠ»ΡΡΡ ΠΊΡΠΊΠ° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ΅Π½ ΡΠΈΠ»ΡΡΡ Π·Π° ΠΏΡΠ΅ΠΌΠ°ΡΡΡΡΡΠΈΡΠ°Π½Π΅; }
nft Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ Π²Π΅ΡΠΈΠ³Π° ip x filter_later { type filter hook prerouting priority filter + 10; } - ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° SELinux ΡΠ°Π³ΠΎΠ²Π΅ (Secmark). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΡΠ°Π³Π° "sshtag" Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° SELinux, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅:
nft Π΄ΠΎΠ±Π°Π²ΠΈ secmark inet ΡΠΈΠ»ΡΡΡ sshtag "system_u:object_r:ssh_server_packet_t:s0"
Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·ΠΈ Π΅ΡΠΈΠΊΠ΅Ρ Π² ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ°:
nft Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎ inet ΡΠΈΠ»ΡΡΡ input tcp dport 22 meta secmark set βsshtagβ
nft Π΄ΠΎΠ±Π°Π²ΠΈ ΠΊΠ°ΡΡΠ° inet filter secmapping { type inet_service : secmark; }
nft Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ inet filter secmapping { 22 : "sshtag" }
nft Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎ inet ΡΠΈΠ»ΡΡΡ input meta secmark set tcp dport map @secmapping - ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΠ²Π΅, ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π² ΡΠ΅ΠΊΡΡΠΎΠ²Π° ΡΠΎΡΠΌΠ°, ΠΊΠ°ΠΊΡΠΎ ΡΠ° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ Π²ΡΠ² ΡΠ°ΠΉΠ»Π° /etc/services. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
nft Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ xy tcp dport "ssh"
Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΡΠΏΠΈΡΡΠΊ Π½Π° nft -l
ΡΠ°Π±Π»ΠΈΡΠ° x {
Π²Π΅ΡΠΈΠ³Π° y {
...
tcp dport "ssh"
}
} - ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²ΠΈΠ΄Π° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ inet raw prerouting meta iifkind "vrf" accept
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½Π°Π±ΠΎΡΠΈ ΡΡΠ΅Π· ΠΈΠ·ΡΠΈΡΠ½ΠΎ ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ»Π°Π³Π° βΠ΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½β. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π°Π±ΠΎΡΠ° "s", Π·Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈ Π΄Π° Π½ΡΠ»ΠΈΡΠ°ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°, Π°ΠΊΠΎ Π½ΡΠΌΠ° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° 30 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ:
Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠ° x
add set xs { type ipv4_addr; ΡΠ°Π·ΠΌΠ΅Ρ 128; ΡΠ°ΠΉΠΌΠ°ΡΡ 30s; ΡΠ»Π°Π³ΠΎΠ²Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ; }
Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ Π²Π΅ΡΠΈΠ³Π° xy { ΡΠΈΠΏ ΡΠΈΠ»ΡΡΡ ΠΊΡΠΊΠ° Π²Ρ ΠΎΠ΄Π΅Π½ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ 0; }
Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ xy Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ @s { ip saddr } - ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π·Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΏΡΠΈΡΡΠΈΠ³Π°ΡΠΈ Π½Π° ΠΏΠΎΡΡ 8888, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅:
ΡΠ°Π±Π»ΠΈΡΠ° IP ΡΠΈΠ»ΡΡΡ {
ct timeout aggressive-tcp {
ΠΏΡΠΎΡΠΎΠΊΠΎΠ» tcp;
l3proto ip;
ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° = {ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½ΠΎ: 100, close_wait: 4, Π·Π°ΡΠ²Π°ΡΡΠ½Π΅: 4}
}
Π²Π΅ΡΠΈΠΆΠ΅Π½ ΠΈΠ·Ρ ΠΎΠ΄ {
...
tcp dport 8888 ct ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ "aggressive-tcp"
}
} - NAT ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° inet ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ:
ΡΠ°Π±Π»ΠΈΡΠ° inet nat {
...
ip6 daddr ΠΌΡΡΡΡΠ²::2::1 dnat ΠΊΡΠΌ ΠΌΡΡΡΡΠ²:2::99
} - ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ ΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ΅ΡΠ°ΡΠ½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ:
nft Π΄ΠΎΠ±Π°Π²Ρ ΡΠ΅ΡΡ Π·Π° Π²Π΅ΡΠΈΠΆΠ΅Π½ ΡΠΈΠ»ΡΡΡ
ΠΡΠ΅ΡΠΊΠ°: ΠΡΠΌΠ° ΡΠ°ΠΊΡΠ² ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ; ΠΈΠΌΠ°Ρ ΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ βΡΠΈΠ»ΡΡΡβ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π² ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎΡΠΎ ip?
Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΡΠ΅ΡΡ Π·Π° Π²Π΅ΡΠΈΠΆΠ΅Π½ ΡΠΈΠ»ΡΡΡ
^^^^^^ - ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π² Π½Π°Π±ΠΎΡΠΈ:
set sc {
ΡΠΈΠΏ inet_service. ifname
Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ = { "ssh" . "eth0"}
} - ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²Π΅:
nft Π΄ΠΎΠ±Π°Π²ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° x
nft add flowtable x ft {hook ingress priority 0; ΡΡΡΡΠΎΠΉΡΡΠ²Π° = {eth0, wlan0}; }
...
nft Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎ x ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° ip ΠΏΡΠΎΡΠΎΠΊΠΎΠ» {tcp, udp} ΠΏΠΎΡΠΎΠΊ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° @ft - ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° JSON.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru