たとえば、00:00~04:00までの特定のトラフィックをブロックしたいとします。 nftablesでこれは可能ですか?
(明らかに、この時点で設定を変更するためにcronジョブを設定できますが、これを行うためのnftables "デフォルト"メソッドがあるかどうか疑問に思います。)
答え1
これを行う最近のパッチがありますが、まだどのバージョンでも利用できません。
以下は関連パッチです(ただし、シリーズの一部であるため、単独で適用するには不十分な場合があります)。
Linuxカーネル:
[v5,2/2] netfilter: nft_meta: 時間一致のサポート
libnftnl(ユーザーモードの下位レベルのnftablesライブラリ):
[libnftnl,v2,1/2] expr: メタ: NFT_META_TIME_{NS,DAY,HOUR} を通知します。
nftables(ユーザーモードコマンド):
[nft,2/4] 元: 「時間」、「曜日」、「時」という新しい条件を導入
いくつかの使用例:
time < "2019-06-06 17:00" drop; time < "2019-06-06 17:20:20" drop; time < 12341234 drop; day "Saturday" drop; day 6 drop; hour >= 17:00 drop; hour >= "17:00:01" drop; hour >= 63000 drop;
[...]
私たちは、クロスタイムレンジ(例:23:15-03:22)を正しく処理するために、範囲内で左右の値を交換します。
2019年8月17日にカーネルパッチが提出されましたが、必ずこれを経なければなりません。nf - 次、Next ネットワークそして5.4-rc1にマージ 2019年9月18日。カーネル5.4は数週間以内にリリースされる予定です。
したがって、上記の例に基づいてまだテストしていませんが、カーネル5.4、libnftnl 1.1を使用すると、00:00から04:00の間にローカルメールサーバーに着信接続を切断する方法になる可能性があります. .5 実行中ですか?そしてnftables 0.9.3? :
#!/usr/sbin/nft -f
table inet filter {
chain input {
type filter hook input priority 0; policy accept;
tcp dport 25 hour 00:00-04:00 drop
}
}