35pt
$ sudo /etc/init.d/iptables restart
これは実際には stop 実行後に start が実行される。
stop の直後には全パケット拒否状態になるので普通はネットワークが切断される。
そして SSH が切断されるとそのコネクションで実行していたプログラムも中断するので
その後の start が実行されずに接続不能になる。
手元にある他のサーバで同じスクリプトを走らせたあと、restartしても普通にssh接続が続行できています。
stop から start までの間が極端に短い場合、SSH のコネクションがタイムアウトにならずぎりぎりで
間に合うケースがある。
負荷が低いとかネットワーク的に近いとか。
そういう場合はコネクションが切断されず、start まできっちり実行されるので問題ない。
対策としてはコネクションが切断されることを全ていに restart が中断されないようにする。
nohup コマンドをつかうか、screen で再接続できるようにしておくとよいだろう。
【 nohup 】 ログアウトした後もコマンドを実行し続ける:ITpro
35pt
パケット フィルタ リング ルールの適用 (GUI ツール)
CentOS(というか、元になる Redhat Enterprise Linux)では、GUI からの Firewall の設定ができるようになっていて、そのための RH-Firewall-1-INPUT というチェーンが設定されています。それとの兼ね合いでは無いかと思われます。
具体的に、どうなってしまうかは確認していませんが、一度、iptables -L で適用後の状態を確認するとはっきりとした原因が分かると思います。
遠隔にあるサーバなので、sshが切られた状態でコマンドを走らせることは出来ないのです。
screen使ってみたのですけど、やっぱり切られてしまいました。