Ero sivun ”NFTables” versioiden välillä
p (luokitus kuntoon) |
(+esimerkki) |
||
Rivi 21: | Rivi 21: | ||
** Esimerkiksi sääntöjen listauksesta luettavassa JSON-muodossa: <code>nft export json | jq</code> | ** Esimerkiksi sääntöjen listauksesta luettavassa JSON-muodossa: <code>nft export json | jq</code> | ||
* Yhdistetty IPv4 ja IPv6 sääntö <code>inet</code>-nimen alle, mutta myös <code>ip</code> ja <code>ip6</code> ovat käytettävissä erikseen | * Yhdistetty IPv4 ja IPv6 sääntö <code>inet</code>-nimen alle, mutta myös <code>ip</code> ja <code>ip6</code> ovat käytettävissä erikseen | ||
== Esimerkki == | |||
<code>/etc/nftables.conf</code> | |||
<pre> | |||
# Käytetään inet-taulua, joka mätsää ipv4- sekä ipv6-liikenteen | |||
table inet filter { | |||
chain INPUT { | |||
# Pudota kaikki paketit vakiona | |||
type filter hook input priority 0; policy drop; | |||
# Salli ping (ICMP) | |||
icmp type echo-request counter packets 0 bytes 0 accept | |||
icmp type echo-reply counter packets 0 bytes 0 accept | |||
# Salli DHCP | |||
udp sport 67-68 udp dport 67-68 counter packets 0 bytes 0 accept | |||
# Salli DNS | |||
udp dport 53 counter packets 0 bytes 0 accept | |||
udp sport 53 counter packets 0 bytes 0 accept | |||
# Salli LAN <-> LAN -liikenne | |||
ip saddr 10.0.0.0/8 ip daddr 10.0.0.0/8 counter packets 0 bytes 0 accept | |||
ip saddr 172.16.0.0/12 ip daddr 172.16.0.0/12 counter packets 0 bytes 0 accept | |||
ip saddr 192.168.0.0/16 ip daddr 192.168.0.0/16 counter packets 0 bytes 0 accept | |||
ct state established,related counter packets 0 bytes 0 accept | |||
# Salli loopback interface 127.0.0.1 lo | |||
iifname "lo" counter packets 0 bytes 0 accept | |||
} | |||
chain OUTPUT { | |||
# Pudota kaikki paketit vakiona | |||
type filter hook output priority 0; policy drop; | |||
# Salli ping | |||
icmp type echo-request counter packets 0 bytes 0 accept | |||
icmp type echo-reply counter packets 0 bytes 0 accept | |||
# Salli DHCP | |||
udp sport 67-68 udp dport 67-68 counter packets 0 bytes 0 accept | |||
# Allow DNS | |||
udp dport 53 counter packets 0 bytes 0 accept | |||
udp sport 53 counter packets 0 bytes 0 accept | |||
# Salli LAN <-> LAN | |||
ip saddr 10.0.0.0/8 ip daddr 10.0.0.0/8 counter packets 0 bytes 0 accept | |||
ip saddr 172.16.0.0/12 ip daddr 172.16.0.0/12 counter packets 0 bytes 0 accept | |||
ip saddr 192.168.0.0/16 ip daddr 192.168.0.0/16 counter packets 0 bytes 0 accept | |||
# Allow loopback interface 127.0.0.1 | |||
oifname "lo" counter packets 0 bytes 0 accept | |||
ct state new counter packets 0 bytes 0 accept | |||
ct state related,established counter packets 0 bytes 0 accept | |||
} | |||
chain FORWARD { | |||
# Pudota kaikki paketit vakiona | |||
type filter hook forward priority 0; policy drop; | |||
} | |||
} | |||
</pre> | |||
== Muuta == | == Muuta == |
Nykyinen versio 4. kesäkuuta 2019 kello 16.53
NFTables (nft
) korvaa vanhat iptables
(IPv4), ip6tables
(IPv6), arptables
(ARP/RARP) ja ebtables
(Silta) -palomuuriohjelmistot. NFTables nitoo kaikki vanhat ohjelmat yhden ohjelman alle. Joissain jakeluissa NFTables on asennettu jo vakiona ja joihinkin se pitää asentaa. Paketin nimi on yleensä nft
tai nftables
. NFTables kehitettiin mm. siksi, että vanhoja edellä mainittuja ohjelmia on paljon ja näin monen ohjelman ylläpito ja kehitys on hankalaa. NFTables tulee syrjäyttämään vanhat palomuuriohjelmat tulevaisuudessa.
Joitain ominaisuuksia[muokkaa]
- Atominen tuki (lisää/korvaa/muuta kaikki tai osa säännöistä kerralla)
- Vanhassa iptablesissa säännöt syötettiin yksitellen ja ne astuivat voimaan syöttämisjärjestyksessä
- Interaktiivinen konsoli
- Skriptituki
- Reaaliaikainen palomuurisääntöjen muutosten seuranta (
nft monitor
)- Mahdollistaa esimerkiksi skriptin teon, joka ottaa automaattiset varmuuskopiot git-versionhallinnan avulla sekä kirjoittaa tiedon milloin muutos tehtiin
- Tämä taas mahdollistaa helpon palomuurisääntöjen historiaseurannan ja muutoksen peruutuksen
- Mahdollistaa esimerkiksi skriptin teon, joka ottaa automaattiset varmuuskopiot git-versionhallinnan avulla sekä kirjoittaa tiedon milloin muutos tehtiin
- JSON- ja XML-tuki
- Helpottaa sääntöjen kirjoittamista ja luettavuutta ohjelmistoilla
- Esimerkiksi sääntöjen listauksesta luettavassa JSON-muodossa:
nft export json | jq
- Yhdistetty IPv4 ja IPv6 sääntö
inet
-nimen alle, mutta myösip
jaip6
ovat käytettävissä erikseen
Esimerkki[muokkaa]
/etc/nftables.conf
# Käytetään inet-taulua, joka mätsää ipv4- sekä ipv6-liikenteen table inet filter { chain INPUT { # Pudota kaikki paketit vakiona type filter hook input priority 0; policy drop; # Salli ping (ICMP) icmp type echo-request counter packets 0 bytes 0 accept icmp type echo-reply counter packets 0 bytes 0 accept # Salli DHCP udp sport 67-68 udp dport 67-68 counter packets 0 bytes 0 accept # Salli DNS udp dport 53 counter packets 0 bytes 0 accept udp sport 53 counter packets 0 bytes 0 accept # Salli LAN <-> LAN -liikenne ip saddr 10.0.0.0/8 ip daddr 10.0.0.0/8 counter packets 0 bytes 0 accept ip saddr 172.16.0.0/12 ip daddr 172.16.0.0/12 counter packets 0 bytes 0 accept ip saddr 192.168.0.0/16 ip daddr 192.168.0.0/16 counter packets 0 bytes 0 accept ct state established,related counter packets 0 bytes 0 accept # Salli loopback interface 127.0.0.1 lo iifname "lo" counter packets 0 bytes 0 accept } chain OUTPUT { # Pudota kaikki paketit vakiona type filter hook output priority 0; policy drop; # Salli ping icmp type echo-request counter packets 0 bytes 0 accept icmp type echo-reply counter packets 0 bytes 0 accept # Salli DHCP udp sport 67-68 udp dport 67-68 counter packets 0 bytes 0 accept # Allow DNS udp dport 53 counter packets 0 bytes 0 accept udp sport 53 counter packets 0 bytes 0 accept # Salli LAN <-> LAN ip saddr 10.0.0.0/8 ip daddr 10.0.0.0/8 counter packets 0 bytes 0 accept ip saddr 172.16.0.0/12 ip daddr 172.16.0.0/12 counter packets 0 bytes 0 accept ip saddr 192.168.0.0/16 ip daddr 192.168.0.0/16 counter packets 0 bytes 0 accept # Allow loopback interface 127.0.0.1 oifname "lo" counter packets 0 bytes 0 accept ct state new counter packets 0 bytes 0 accept ct state related,established counter packets 0 bytes 0 accept } chain FORWARD { # Pudota kaikki paketit vakiona type filter hook forward priority 0; policy drop; } }
Muuta[muokkaa]
NFTablesiin on tehty apuohjelmia ja skriptejä, joilla voit käyttää NFTablesia kuten käyttäisit iptablesia, mutta apuohjelma muuttaa iptables-säännöt NFTables-yhteensopiviksi. Esimerkiksi Ubuntussa paketin nimi on iptables-nftables-compat
.
Aiheesta muualla[muokkaa]
- Kotisivu: http://netfilter.org/projects/nftables/
- Wiki: https://wiki.nftables.org/wiki-nftables/index.php/Main_Page
- Arch Linuxin wiki: https://wiki.archlinux.org/index.php/nftables
- Gentoon wiki: https://wiki.gentoo.org/wiki/Nftables