初めて自分の家と他人の家が違う、と意識した時

CentOS6.2を使用しています。
iptablesを無効にする為、以下の作業を行いましたが
マシンを再起動すると動作しているようです。
何か足りない設定コマンドがありますでしょうか?

#service iptables stop
#chkconfig iptables off
#/etc/rc.d/init.d/iptables stop

再起動後ステータスを確認すると以下の表示されてしまいます。
[root@マシン名 ~]# service iptables status
テーブル: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination

Chain FORWARD (policy ACCEPT)
num target prot opt source destination

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

因みに
以下のようにsuコマンドで切り替えたり、rc.dの下の/init.d/iptables stopではなく、
#etc/init.d/iptables stopもしてみました。

[root@マシン名 ~]#su -
[root@マシン名 ~]#/etc/init.d/iptables stop

宜しくお願い致します。

A 回答 (5件)

私の環境でのCentOS6.2では、質問者さんのような結果にはなりません。


iptables serviceを無効にすると、即座に無効になります。
添付画像 上図参照。
もちろん再起動しても status は無効のままです。
「稼動していません」と表示されます。(あたりまえですが・・・)
添付画像 下図参照。
kernel再構築などは必要ありません。
「iptablesの無効設定」の回答画像5
    • good
    • 0

申し訳ありません。


service iptables statusでiptablesの情報を見ることが無いのでちょっと誤った情報を伝えてしまった部分があるようです。
(といってもカーネル機能であることなどiptablesの本質の部分は間違っていないです)
>CentOS6.0のサーバの方で同じく以下のコマンドを叩いているのですが、
>#service iptables statusをした時には
>iptables: ファイアウォールが稼働していません。
>というメッセージが表示されています。
>CentOS6.2から変わりましたでしょうか?

CentOS6.2でこのコマンドを実行しましたが、
iptables: Firewall is not running
のメッセージが出ますね。(メッセージはインストールなどで若干異なるかもです)

そうすると質問者さんの環境でなぜこのようになるかですね。

service iptables statusで走るスクリプトの実態はご存じの通り
/etc/rc.d/init.d/iptables
ですのでこのスクリプトを見るとわかりますが、

iptables: Firewall is not running

この表示の制御は、
service iptables startにて、
/var/lock/subsys/iptables
というファイルを作成して、

service iptables stopにて
/var/lock/subsys/iptables
を削除していて、

service iptables statusでは、
/var/lock/subsys/iptables
ファイルが無ければ(ほかにも条件がありますが)
iptables: Firewall is not running
を表示するようになっているようです。

/var/lock/subsys/iptables
このファイルと/etc/rc.d/init.d/iptablesスクリプトの内容を確認して見てはいかがでしょうか。

iptables自体の動作は結果を見る限り問題ないです。
    • good
    • 0

すべてのrunlebelで無効にする


#chkconfig --level 123456 iptables off
は試してみましたか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
#chkconfig --list iptablesで確認はしていましたが、全てoffにはなっていました。

お礼日時:2012/07/10 15:33

Linuxのパケットフィルタはカーネルの機能になります。


iptablesはそれを設定するツールということになります。

従って、本当にパケットフィルタを止めたければカーネルの再構築(コンパイル)をしないと止まりません。

Apacheやpostfixのような個別モジュールではないので勘違いし易いところかなと思います。

service iptables statusの結果として書かれている状態は、全てのパケットを許可している状態なので、無効と同等な状態と解釈して良いと思います。

service iptables stopを実行する(chkconfig iptables offで再起動も同じ)とこの全てのパケットを許可ということになります。
    • good
    • 0
この回答へのお礼

ありがとうございます。

CentOS6.0のサーバの方で同じく以下のコマンドを叩いているのですが、
#service iptables statusをした時には
iptables: ファイアウォールが稼働していません。
というメッセージが表示されています。
CentOS6.2から変わりましたでしょうか?
もしご存知であれば教えていただけますでしょうか。

#service iptables stop
#chkconfig iptables off
#/etc/rc.d/init.d/iptables stop

定義としては残っているけど
サービスとしては停止されているという理解で良いでしょうか?

お礼日時:2012/07/10 15:41

>Chain INPUT (policy ACCEPT)


>Chain FORWARD (policy ACCEPT)
>Chain OUTPUT (policy ACCEPT)

全て「受け入れ」となっていますので、『フィルタは設定されていない。』ということになります。

service iptables stopなどで止めた場合は「全て受け入れ」になります。
# もちろん/etc/sysconfig/iptablesを編集して「全て受け入れ」にしても「フィルタしない」という事実は変わりませんが。
    • good
    • 0
この回答へのお礼

ありがとうございます。
分かりました。

お礼日時:2012/07/10 15:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報