Nykyinen versio |
Oma tekstisi |
Rivi 1: |
Rivi 1: |
| '''NFTables''' (<code>nft</code>) korvaa vanhat <code>[[iptables]]</code> ([[IPv4]]), <code>[[ip6tables]]</code> ([[IPv6]]), <code>[[arptables]]</code> ([[ARP]]/RARP) ja <code>[[ebtables]]</code> ([[Bridge|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ä <code>nft</code> tai <code>nftables</code>. 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. | | '''NFTables''' (<code>nft</code>) korvaa vanhat <code>[[iptables]]</code> ([[IPv4]]), <code>[[ip6tables]]</code> ([[IPv6]]), <code>[[arptables]]</code> ([[ARP]]/RARP) ja <code>[[ebtables]]</code> (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ä <code>nft</code> tai <code>nftables</code>. 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 == | | == Joitain ominaisuuksia == |
Rivi 8: |
Rivi 8: |
| * [https://wiki.nftables.org/wiki-nftables/index.php/Scripting Skriptituki] | | * [https://wiki.nftables.org/wiki-nftables/index.php/Scripting Skriptituki] |
| ** Muuttujatuki | | ** Muuttujatuki |
| *** [[NTP]]-aikapalvelimet: <code>define ntp_servers = { 127.0.0.1, 192.168.0.1 }</code> | | *** <code>define ntp_servers = { 127.0.0.1, 192.168.0.1 }</code> |
| *** [[DNS]]-nimipalvelin: <code>define google_dns = 8.8.8.8</code> | | *** <code>define google_dns = 8.8.8.8</code> |
| ** Tiedostojen liittäminen skriptitiedostoihin: | | ** Tiedostojen liittäminen |
| *** <code>include "variables.ruleset"</code> | | *** <code>include "variables.ruleset"</code> |
| *** <code>include "lan-rules.ruleset"</code> | | *** <code>include "lan-rules.ruleset"</code> |
| *** <code>include "wan-rules.ruleset"</code> | | *** <code>include "wan-rules.ruleset"</code> |
| * Reaaliaikainen palomuurisääntöjen muutosten seuranta (<code>nft monitor</code>)
| |
| ** 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
| |
| * [[JSON]]- ja [[XML]]-tuki
| |
| ** Helpottaa sääntöjen kirjoittamista ja luettavuutta ohjelmistoilla
| |
| ** 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
| |
|
| |
| == 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 == |
| NFTablesiin on tehty apuohjelmia ja skriptejä, joilla voit käyttää NFTablesia kuten käyttäisit [[iptables]]ia, mutta apuohjelma muuttaa iptables-säännöt NFTables-yhteensopiviksi. Esimerkiksi [[Ubuntu]]ssa paketin nimi on <code>iptables-nftables-compat</code>. | | 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 <code>iptables-nftables-compat</code>. |
|
| |
|
| == Aiheesta muualla == | | == Aiheesta muualla == |
Rivi 98: |
Rivi 23: |
| * Arch Linuxin wiki: https://wiki.archlinux.org/index.php/nftables | | * Arch Linuxin wiki: https://wiki.archlinux.org/index.php/nftables |
| * Gentoon wiki: https://wiki.gentoo.org/wiki/Nftables | | * Gentoon wiki: https://wiki.gentoo.org/wiki/Nftables |
|
| |
| [[Luokka:Järjestelmä]]
| |
| [[Luokka:Verkko]]
| |
| [[Luokka:Tietoturva]]
| |
| [[Luokka:Ylläpitotyökalut]]
| |
| [[Luokka:Komentorivin perustyökalut]]
| |