こんにちは、m//t です。
寒くなりましたね。
テレワーク中は起床後、近くのコンビニへ往復1時間近くかけて食料調達に行くのですが、日の出がどんどん遅くなっていきます。
冬至の半月後が一番日の出が遅いらしいです。
目次
iptables と nftables
今回は iptables 運用環境から nftables 運用環境に移行する方法について一例を紹介します。
経緯
業務用サーバを追加するにあたって、「今なら CentOS 8 だよね」ということになり、これまでの CentOS 7 環境とは別に新しく構築を始めたのですが、それまで利用していた iptables の設定がそのまま使えず、対応を検討した結果、nftables に変換できるということを知り、その対応メモとして残します。
firewalld ではないのか?
以前、業務利用しているサーバを CentOS 6 から 7 に更新した際、iptables から firewalld への移行を検討したのですが、設定情報をそのまま利用できるようにと、firewalld を止め、iptables を使うようにしていました。
今回、CentOS 8 を導入するにあたり、firewalld への移行は仕方ないのかと、情報収集してると、内部では nft であり、nftables が使用できると知りました。
そして、iptables の設定を nftables に変換できることも。
であるならば nftables に移行してしまおう、という安直な発想で決定しました。
firewalld が nftables の機能を全て踏襲できてない、とかいう高尚な理由ではありません(苦笑)。
設定情報の変換、投入
設定したい iptables の設定情報が既にあることを前提とします。
それを nft 形式に変換後、nft に食わせます。
-
環境設定
firewalld の停止と、nftables 起動を確認systemctl status firewalld systemctl status nftables systemctl stop firewalld systemctl disable firewalld systemctl enable nftables systemctl start nftables
-
作業前の確認
nft list ruleset
-
変換コマンドで設定情報を変換
cd /etc/sysconfig/ iptables-restore-translate -f iptables> nftables_from_iptables.txt
-
nft に食わせる
nft -i < nftables_from_iptables.txt
-
投入後の確認
nft list ruleset
常用設定
サーバ起動時に読み出されるファイルを更新します。
nftables.conf で includeを有効にしていたり他の設定を入れてないのであればそのまま差し替えていいかもしれません。
cd /etc/sysconfig
cp -p nftables.conf nftables.conf_20201130
nft list ruleset > nftables.conf
nftables.conf で include /etc/nftables/main.nft を有効にしているなら、nft list の出力を /etc/nftables の下に吐き、main.nft から include するのがよいでしょう。
設定の反映
nftables.conf (や、include )を編集した場合、設定の反映が必要です。
systemctl reload nftables
最後に
今回は、既存の iptables 設定を利用して nftables 環境に移行する手法の一つを紹介しました。
各ルールの追加更新については nft の manpage に詳しく記載されていますので、そちらを参照してください。
以上、日照時間が短い盆地の底住みの m//t でした。
COBOL系SE,PG から NetNews(nntp)配送管理者(tnn.netnews.stats集計担当) を経て現職。
社内業務改善(「やりたくない」がモチベーション)でいろいろ社内ツールを作ってきました。
ネットワーク系の機器をいじることも多いので、それらの管理や制御に関するツールもちらほら。
perlで書くことが多いですね。(COBOLやFORTRAN、Pascal でもいいですけど……)
どれだけ読みやすく書けるか、10年後の自分に手紙でも書くような気持ちで。
最近はDNSを少しかじったりしてますが、いろいろ悩ましいことが多すぎます (>_<)
好きなポート番号は53、119、123です。
LINK
クラウドベリージャム:プロフィールページ