このスレッドは解決済です(未解決に戻す場合はこちら)
<<戻る

iptablesの初回立ち上げのfilterエラー このメッセージに返信する
日時: 2018/11/26(Mon) 18:27
名前: のり
URL:
CentOS7系でこちらのサイトを参考にしてiptablesを設定したのですが、以前は出なかったエラーが出てきて困っております。

https://centossrv.com/iptables.shtml

内容は上記ほぼそのままでSSHのポート番号を変更したりしているくらいです。CentOS6では出ていませんでした。

sh iptables.shを最初に実行した時に「iptables: Setting chains to policy ACCEPT: filter」がエラー発生します。
もう1度実行するとOKで通るのですが、再起動時に毎回もう1度実行せねばならずエラーの影響でSSHアクセスもできなくなり困っています。
ご対応方法をご存知の方がいらっしゃいましたらご教授下さい。

宜しくお願いいたします。
記事編集 編集
Re: iptablesの初回立ち上げのfilterエラー このメッセージに返信する
日時: 2018/11/27(Tue) 08:45
名前: stranger
URL:
最近のcrアップデートでfirewalld関連もアップデートされたので
firewalldが自動起動される設定に変わっちまったんじゃないの?

ntsysvパッケージを入れておくと便利だよ
端末やログイン画面でntsysvと打つだけ
自動起動の設定になってるサービスが一覧画面で見られる
大昔のredhatからあるコマンド
(スペースキーでon/offできるけど見るだけにしておいたほうがいい)

追記
opensshはマルチポートで接続できるのでローカルからの接続にはport22を開けておいたほうが良い
sshd_configで

Port 22
Port 外部から接続したいportの番号

のように書いておく
後はiptablesの設定で接続を分ければ良い
記事編集 編集
Re: iptablesの初回立ち上げのfilterエラー このメッセージに返信する
日時: 2018/11/27(Tue) 16:46
名前: のり
URL:
確認したところfirewalldが自動起動になっておりました。
ファイアウォールが変わった事で単純にiptablesを追加すると競合して初回起動に失敗するのですね。
XMLベースだから覚えやすそうですが、後々考えるとこちらの方も学んでおいた方が良さそうですね。

ntsysvパッケージやマルチポートの件も参考にさせていただいて対応したいと思います。
ありがとうございました!
記事編集 編集
Re: iptablesの初回立ち上げのfilterエラー このメッセージに返信する
日時: 2018/11/28(Wed) 04:13
名前: stranger
URL:
参考までに
インストール時に実行されるスクリプトを確認してみる

$ sudo rpm -q --scripts firewalld
postinstall scriptlet (using /bin/sh):

if [ $1 -eq 1 ] ; then
# Initial installation
systemctl preset firewalld.service >/dev/null 2>&1 || :
fi
preuninstall scriptlet (using /bin/sh):

if [ $1 -eq 0 ] ; then
# Package removal, not upgrade
systemctl --no-reload disable firewalld.service > /dev/null 2>&1 || :
systemctl stop firewalld.service > /dev/null 2>&1 || :
fi
postuninstall scriptlet (using /bin/sh):

systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
# Package upgrade, not uninstall
systemctl try-restart firewalld.service >/dev/null 2>&1 || :
fi

firewalldは初期インストール(postinstall)では systemctl preset になっています

$ cd /usr/lib/systemd/system-preset
$ ls -1
85-display-manager.preset
90-default.preset
90-epel.preset
99-default-disable.preset
$ cd /usr/lib/systemd/system-preset
$ cat 90-default.preset|grep firewalld
enable firewalld.service

firewalldはenableになっていますから
systemctl enable firewalld.service になります
記事編集 編集
件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -