Nftables: Porovnání verzí
Z Wiki UnArt Slavičín
Skočit na navigaciSkočit na vyhledávání
Bez shrnutí editace |
(→Server) |
||
| (Není zobrazena jedna mezilehlá verze od stejného uživatele.) | |||
| Řádek 72: | Řádek 72: | ||
= Server = | = Server = | ||
Jednoduchý firewall pro server: | |||
#!/usr/sbin/nft -f | #!/usr/sbin/nft -f | ||
| Řádek 121: | Řádek 123: | ||
} counter accept comment "Povolení IPv6 pingu" | } counter accept comment "Povolení IPv6 pingu" | ||
tcp dport { | |||
ftp, | ftp, | ||
ssh, | ssh, | ||
| Řádek 128: | Řádek 130: | ||
mysql, | mysql, | ||
tproxy | tproxy | ||
} counter accept comment "Povolení TCP služeb (FTP, SSH, HTTP, HTTPs a MySQL)" | |||
ip saddr @unart4 udp dport snmp counter accept comment "Povolení SNMP z IPv4 rozsahů UnArtu" | |||
ip6 saddr @unart6 udp dport snmp counter accept comment "Povolení SNMP z IPv6 rozsahů UnArtu" | |||
counter comment "Všechno ostatní zakaž" | |||
policy drop | |||
} | } | ||
# omezení provozu ze serveru | # omezení provozu ze serveru | ||
chain output { | chain output { | ||
type filter hook output priority 0 | |||
counter comment "Všechno povol" | |||
policy accept | |||
} | } | ||
} | } | ||
Aktuální verze z 19. 1. 2022, 07:45
Firewall
Jednoduchý firewall brány do internetu:
#!/usr/sbin/nft -f
# rozhraní přistupující do internetu
define wan = ens5f0
# rozhrani přístupující do lokální sítě
define lan = ens5f1
# vymažeme původní pravidla
flush ruleset
# tabulka pro filtrování provozu
table inet filter {
# omezení příchozího provozu NA bránu
chain input {
type filter hook input priority 0
ct state established,related counter accept "Povolení navázaných spojení z conntracku"
icmp type echo-request counter accept comment "Povolení pingu na bránu"
tcp dport ssh counter accept comment "Povolení SSH na bránu"
iifname $wan counter drop comment "Zakázání přístupu na bránu z internetu"
counter comment "Povolení přístupu na bránu z lokální sítě"
policy accept
}
# omezení provozu PŘES bránu
chain forward {
type filter hook forward priority 0
ct state established,related counter accept comment "Povolení navázaných spojení z conntracku"
iifname lo counter accept comemnt "Povolení všeho na loopback rozhraní"
oifname $wan counter accept comment "Povolení vše do internetu"
counter comment "Ostatní provoz blokovat"
policy drop
}
}
# tabulka pro NAT
table ip nat {
# mapování NATu ve formátu vnitřní IP : veřejná IP
map snat_map {
type ipv4_addr : ipv4_addr
flags interval
elements = {
10.143.122.200 : 5.104.17.160
}
}
# SNAT
chain postrouting {
type nat hook postrouting priority 0
oifname $wan counter snat ip saddr map @snat_map comment "Vnitřní IP adresy z mapy snat_map sNATujeme za jim přidělené veřejné IP adresy"
oifname $wan counter masquerade comment "Ostatní vnitřní IP adresy zaNATujeme za veřejnou IP adresu brány"
}
}
Server
Jednoduchý firewall pro server:
#!/usr/sbin/nft -f
# vymazeme puvodni pravidla
flush ruleset
define UNART4 = {
10.143.126.0/24,
5.104.16.0/21
}
define UNART6 = {
2a05:2100::/29
}
# tabulka pro filtrovani provozu (pro IPv4 i IPv6)
table inet filter {
set unart4 {
type ipv4_addr
flags interval
elements = $UNART4
}
set unart6 {
type ipv6_addr
flags interval
elements = $UNART6
}
# omezení provozu na server
chain input {
type filter hook input priority 0
ct state established,related counter accept
icmp type echo-request counter accept comment "Povolení IPv4 pingu"
icmpv6 type {
destination-unreachable,
echo-reply,
echo-request,
nd-neighbor-solicit,
nd-router-advert,
nd-neighbor-advert,
packet-too-big,
parameter-problem,
time-exceeded
} counter accept comment "Povolení IPv6 pingu"
tcp dport {
ftp,
ssh,
http,
https,
mysql,
tproxy
} counter accept comment "Povolení TCP služeb (FTP, SSH, HTTP, HTTPs a MySQL)"
ip saddr @unart4 udp dport snmp counter accept comment "Povolení SNMP z IPv4 rozsahů UnArtu"
ip6 saddr @unart6 udp dport snmp counter accept comment "Povolení SNMP z IPv6 rozsahů UnArtu"
counter comment "Všechno ostatní zakaž"
policy drop
}
# omezení provozu ze serveru
chain output {
type filter hook output priority 0
counter comment "Všechno povol"
policy accept
}
}