Nftables : サービスを有効化する2024/06/18 |
|
Nftables の基本操作です。 nftables は、従来の iptables, ip6tables, arptables, ebtables の機能を統合したツールです。 |
|
| [1] | Ubuntu 24.04 では、nftables は UFW のデフォルトのバックエンドとして使用されています。 |
|
root@dlp:~# update-alternatives --config iptables There are 2 choices for the alternative iptables (providing /usr/sbin/iptables). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/sbin/iptables-nft 20 auto mode 1 /usr/sbin/iptables-legacy 10 manual mode 2 /usr/sbin/iptables-nft 20 manual mode Press <enter> to keep the current choice[*], or type selection number: |
| [2] | nftables を直接使用する場合は、フロントエンドの UFW サービスは無効化します。 また、システムの再起動時にフィルタリングのルールセットを復元できるように、nftables のサービスを有効化しておきます。 |
|
root@dlp:~# systemctl disable --now ufw Synchronizing state of ufw.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install disable ufw Removed "/etc/systemd/system/multi-user.target.wants/ufw.service".root@dlp:~# systemctl enable --now nftables Created symlink /etc/systemd/system/sysinit.target.wants/nftables.service → /usr/lib/systemd/system/nftables.service. # [nftables.service] は起動時に [/etc/nftables.conf] を読み込んでルールセットを復元するサービス root@dlp:~# systemctl cat nftables.service # /usr/lib/systemd/system/nftables.service [Unit] Description=nftables Documentation=man:nft(8) http://wiki.nftables.org Wants=network-pre.target Before=network-pre.target shutdown.target Conflicts=shutdown.target DefaultDependencies=no [Service] Type=oneshot RemainAfterExit=yes StandardInput=null ProtectSystem=full ProtectHome=true ExecStart=/usr/sbin/nft -f /etc/nftables.conf ExecReload=/usr/sbin/nft -f /etc/nftables.conf ExecStop=/usr/sbin/nft flush ruleset [Install] WantedBy=sysinit.target # [/etc/nftables.conf] はデフォルトではフィルタリングの設定なし root@dlp:~# cat /etc/nftables.conf
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority filter;
}
chain forward {
type filter hook forward priority filter;
}
chain output {
type filter hook output priority filter;
}
}
|
| [3] | UFW に設定したルールセットを引き継いで nftables サービスに切り替えたい合は、以下のように設定します。 |
|
# UFW の現在の設定確認 ( ufw サービス稼働中が前提 ) root@dlp:~# ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere 80/tcp ALLOW IN Anywhere 2049/tcp ALLOW IN Anywhere 22/tcp (v6) ALLOW IN Anywhere (v6) 80/tcp (v6) ALLOW IN Anywhere (v6) 2049/tcp (v6) ALLOW IN Anywhere (v6) # 現在のルールセットを [/etc/nftables.conf] に書き出す root@dlp:~# iptables-save > ufw-rules.dump root@dlp:~# iptables-restore-translate -f ufw-rules.dump > ruleset.nft root@dlp:~# nft flush ruleset root@dlp:~# nft -f ruleset.nft root@dlp:~# nft list ruleset > /etc/nftables.conf
# ufw サービス停止 & nftables サービス起動 root@dlp:~# systemctl disable --now ufw root@dlp:~# systemctl enable --now nftables
# ルールセット表示 root@dlp:~# nft list ruleset
table ip filter {
chain INPUT {
type filter hook input priority filter; policy drop;
counter packets 0 bytes 0 jump ufw-before-logging-input
counter packets 0 bytes 0 jump ufw-before-input
counter packets 0 bytes 0 jump ufw-after-input
counter packets 0 bytes 0 jump ufw-after-logging-input
counter packets 0 bytes 0 jump ufw-reject-input
counter packets 0 bytes 0 jump ufw-track-input
counter packets 0 bytes 0 jump ufw-before-logging-input
counter packets 0 bytes 0 jump ufw-before-input
counter packets 0 bytes 0 jump ufw-after-input
counter packets 0 bytes 0 jump ufw-after-logging-input
counter packets 0 bytes 0 jump ufw-reject-input
counter packets 0 bytes 0 jump ufw-track-input
}
.....
.....
# 例えば [UFW] で許可されていたサービスは以下のように確認可 root@dlp:~# nft list chain ip filter ufw-user-input
table ip filter {
chain ufw-user-input {
tcp dport 22 counter packets 0 bytes 0 accept
tcp dport 80 counter packets 0 bytes 0 accept
tcp dport 2049 counter packets 0 bytes 0 accept
}
}
|
| Sponsored Link |
|
|