Настрока фаервола nftables

nftables — подсистема ядра Linux, обеспечивающая фильтрацию и классификацию сетевых пакетов/датаграмм/кадров. Включена в ядро Linux, начиная с версии 3.13, выпущенной 19 января 2014 года. Является проектом по замене пакетов iptables, ip6tables, arptables, ebtables в межсетевом экране Netfilter. За счёт объединения функциональности перечисленных пакетов, в nftables присутствует меньшее дублей кода.

В Linux брандмауэр встроен в ядро и называется он Netfilter. А для управления им могут использоваться различные утилиты. В Debian и Ubuntu более старших версий использовалась утилита iptables. А в Debian 11 и Ubuntu 22.04 начали использовать – nftables. Именно с этой утилитой я вас и познакомлю. Но вначале узнаем как вообще работает Netfilter.

Для начала проверим что iptables удален и зарыт.

apt purge iptables*

Если nft еще не установлен - ставим

apt install nftables

systemctl --now enable nftables

 Список всех присетов находится в системе в /usr/share/doc/nftables/examples

Для себя я подобрал пару, это для веб сервера и роутера.

 


flush ruleset

table ip filter {

chain INPUT {

type filter hook input priority filter; policy drop;

tcp dport 22 counter jump f2b-sshd

iifname "ens18" counter accept

iifname "ens20" counter accept

iifname "lo" counter accept
tcp dport 22 counter accept
tcp dport 49152-65534 counter accept
iifname "tap*" counter accept
iifname "tun*" counter accept
meta l4proto gre counter accept
tcp dport 1723 counter accept
iifname "ens19" icmp type echo-reply counter accept
iifname "ens19" icmp type echo-request counter accept
icmp type source-quench counter accept
icmp type time-exceeded counter accept
iifname "ens19" udp dport 57019 counter accept
iifname "ens19" meta l4proto gre counter accept
meta l4proto tcp ct state established,related counter accept
meta l4proto udp ct state established,related counter accept
tcp dport 20 counter accept
tcp dport 21 counter accept
tcp dport 80 counter accept
iifname "tun5" tcp dport 17380 counter accept
tcp dport 8080 counter accept
tcp dport 443 counter accept
iifname "ens18" ip daddr != 5.9.163.66/32 tcp dport 80 meter limit_meter80 size 65535 { ip saddr ct count over 15 } counter packets 0 bytes 0 reject
iifname "ens21" counter accept
iifname "ens22" counter accept
iifname "ens23" counter accept
}
chain FORWARD {
type filter hook forward priority filter; policy accept;
iifname "ens20" oifname "ens18" counter accept
iifname "ens20" oifname "ens19" counter accept
iifname "ens18" oifname "ens20" counter accept
iifname "ens19" oifname "ens20" counter accept
iifname "tap0" oifname "ens18" counter accept
iifname "ens18" oifname "tap0" counter accept
iifname "ens18" oifname "ens19" counter accept
iifname "ens19" oifname "ens18" counter accept
iifname "ens18" oifname "tap02" counter accept
iifname "tap02" oifname "ens18" counter accept
iifname "ens21" oifname "ens19" counter accept
iifname "ens19" oifname "ens21" counter accept
iifname "ens19" meta l4proto gre counter accept
ip saddr 10.1.0.0/24 ct state established,related counter accept
iifname "ens20" oifname "ens19" ct state established,related counter accept
ip saddr 10.10.10.0/24 ip daddr 10.10.10.0/24 counter accept
iifname "ens18" oifname "tap+" counter accept
iifname "ens18" oifname "tun5" counter accept
iifname "tun5" oifname "ens18" counter accept
iifname "ens22" oifname "ens19" counter accept
iifname "ens19" oifname "ens22" counter accept
iifname "ens22" oifname "ens18" ip daddr 10.4.151.103/8 counter accept
iifname "ens18" oifname "ens22" ip saddr 10.4.151.103/8 counter accept
iifname "ens23" oifname "ens19" counter accept
iifname "ens19" oifname "ens23" counter accept
}
chain OUTPUT {
type filter hook output priority filter; policy accept;
}
chain f2b-sshd {
}
}
table ip nat {
chain PREROUTING {
type nat hook prerouting priority dstnat; policy accept;
ip daddr 188.255.21.60 udp dport 8999 counter dnat to 10.1.0.2
iifname "ens19" udp dport 40890 counter dnat to 10.1.0.2
iifname "ens19" tcp dport 8443 counter dnat to 10.1.0.221:22
ip daddr 188.255.21.60 tcp dport 8880 counter dnat to 10.1.0.153
ip daddr 188.255.21.60 tcp dport 3306 counter dnat to 10.1.0.96
iifname "ens19" udp dport 6881 counter dnat to 10.1.0.2
iifname "ens19" tcp dport 8895 counter dnat 10.1.0.196
iifname "ens19" tcp dport 2266 counter dnat 10.1.6.6:22
iifname "ens19" tcp dport 587 counter dnat 192.168.200.3
iifname "ens19" tcp dport 525 counter dnat 10.1.0.167
iifname "ens19" tcp dport 16338 counter dnat 10.1.0.167:3389
iifname "ens19" tcp dport 143 counter dnat 192.168.200.3
iifname "ens19" tcp dport 993 counter dnat 192.168.200.3
iifname "ens19" tcp dport 22193 counter dnat 10.1.0.193:22
iifname "ens19" tcp dport 223 counter dnat 10.1.0.155:22
iifname "ens19" tcp dport 15432 counter dnat 10.1.0.145:5432
iifname "ens19" tcp dport 8080 ip saddr 178.154.235.183 counter dnat 10.1.0.172
iifname "ens19" tcp dport 13389 counter dnat 10.1.0.87:3389
iifname "ens19" tcp dport 13390 counter dnat 10.1.0.87:3390
iifname "ens19" tcp dport 13391 ip saddr 178.154.235.183 counter dnat 10.1.0.87:3391
iifname "ens19" tcp dport 222 counter dnat 10.1.0.2:22
iifname "ens19" tcp dport 1222 ip saddr 178.154.235.183 counter dnat 10.1.0.87
iifname "ens19" tcp dport 9001 counter dnat 10.1.0.76:3389
iifname "ens19" tcp dport 139 counter dnat 10.1.0.76:139
iifname "ens19" tcp dport 445 counter dnat 10.1.0.76:445
iifname "ens19" tcp dport 138 counter dnat 10.1.0.76:138
iifname "ens19" udp dport 27017 counter dnat 10.1.0.223
iifname "tun5" tcp dport 4873 counter dnat 10.1.0.92
iifname "ens19" tcp dport 17322 counter dnat 10.1.0.173:22
iifname "ens19" udp dport 11443 counter dnat 10.1.0.76
}
chain INPUT {
type nat hook input priority 100; policy accept;
}
chain OUTPUT {
type nat hook output priority -100; policy accept;
}
chain POSTROUTING {
type nat hook postrouting priority srcnat; policy accept;
oifname "ens19" counter masquerade
oifname "tun5" counter masquerade
oifname "tap02" counter masquerade
}
}

Что бы приннять эти правила выполним nft -f /etc/nftables.conf

Корпоративный почтовый сервер на минималках (postfix + dovecot + freeipa)

Postfix — агент передачи почты (MTA — mail transfer agent). Postfix является свободным программным обеспечением, создавался как альтернатива Sendmail.
Изначально Postfix …

bitrix24 + nginx + php-fpm

Битрикс шмитрикс, та еще головная боль. Но бизнес требует что бы проект был на битриксе, а ставить их битриксвм у …

Настрока фаервола nftables

nftables — подсистема ядра Linux, обеспечивающая фильтрацию и классификацию сетевых пакетов/датаграмм/кадров. Включена в ядро Linux, начиная с версии 3.13, выпущенной …

PostgreSQL master slave репликация