debian9から11にバージョンアップしたところ、debian9のときにインストールして使用していたfirewalldがうまく動かなくなってしまったのでiptablesを使用することにした。
iptablesの設定を永続化(再起動時に自動設定)したい。自分でiptables設定のシェルスクリプトを書いといて、それをsystemdで自動起動するようにすればできないことはなさそうだけど、もっと楽に設定できないものか。
ググると/etc/sysconfig/iptablesに設定を書いてiptables.serviceを再起動時に動作するように設定すればよい、と出てきたがそもそもiptables.serviceがない。そのためまずはiptables-servicesのインストールを試みる。
が、aptでupdate後にiptables-servicesをインストールしようとしても「Unable to locate package iptables-services」が出てきてしまいパッケージ自体が存在しなさそう。
Debianの場合はiptables-persistentというパッケージでiptablesの設定永続化や再起動後の自動反映が可能らしい。(persist”a”ntではなくpersist”e”nt)
firewalldとiptablesがカチ合ってもよくなさそうなので取り敢えずsystemctl disable firewalld.serviceでfirewalldをオフにしておく。
aptでiptables-persistentをインストール。途中で現在のiptables設定を書き出すか(後述のnetfilter-persistent saveコマンドを実行しとくか)どうか聞いてくるのでYesを選んでおく。IPv4とIPv6それぞれで聞いてくる。ミスってNoにしてもインストール後にnetfilter-persistent saveを叩けばOK。
サービス名や設定時のコマンドはnetfilter-persistent。
インストール後systemctlでステータスを確認。enabledになっているのでこのままで自動起動はOKっぽそう。なってなかったらsystemctl daemon-reload のあとsystemctl enable netfilter-persistent.serviceで良いかと。
# systemctl status netfilter-persistent.service
● netfilter-persistent.service - netfilter persistent configuration
Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/netfilter-persistent.service.d
mqiptables.conf
Active: active (exited) since Fri 2020-10-29 09:51:00 JST; 37min ago
Docs: man:netfilter-persistent(8)
Main PID: 4296 (code=exited, status=0/SUCCESS)
CPU: 0
CGroup: /system.slice/netfilter-persistent.service
Oct 29 09:51:00 dora systemd[1]: Starting netfilter persistent configuration...
Oct 29 09:51:00 dora netfilter-persistent[4298]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
Oct 29 09:51:00 dora netfilter-persistent[4299]: Warning: skipping IPv4 (no rules to load)
Oct 29 09:51:00 dora netfilter-persistent[4298]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
Oct 29 09:51:00 dora netfilter-persistent[4300]: Warning: skipping IPv6 (no rules to load)
Oct 29 09:51:00 dora systemd[1]: Finished netfilter persistent configuration.
iptables-persistentの使い方はいたってシンプル。
iptables(IPv6ならip6tables)コマンドで所望のiptablesに設定した後、netfilter-persistent saveを実行することで現在のiptables設定を/etc/iptables/rules.v4(IPv4用)と/etc/iptables/rules.v6(IPv6用)保存してくれ、これを自動で起動時に読み込んでiptablesを設定してくれる。
netfilter-persistent reloadで/etc/iptables/rules.v4と/etc/iptables/rules.v6を再読み込みしてiptables設定してくれるので、iptablesコマンドでちまちまやらずにrules.v~を直接書き換えてreloadで一気に設定してしまってもよい。
0 件のコメント:
コメントを投稿