本番環境でiptablesを反映する時って何回やってもドキドキですよね。
もちろん本番環境でiptablesを反映する時は、事前に通信テストパターンを準備した上で、反映後のテストで通信に影響がでた場合はすぐに戻せる様にもしていますが、最も最悪なパターンとしては反映した途端にSSHがつながらなるパターン。
今回はその最悪のパターンを回避する為にiptables変更後、一定時間キーボートからの入力がなければiptablesの設定を切り戻すスクリプトを作成しましたのでぜひご活用いただければと思います。
前提条件
- 動作環境はCentOS6系
- スクリプトはiptablesの反映のみを行う
スクリプトの概要
基本的にはiptablesサービスを起動するだけのスクリプトですが、5秒間入力がなかったらiptablesサービスをストップします。
これによってiptablesの設定ミスなどでiptablesサービスを起動した途端に対象サーバとのSSH通信が遮断されたとしても、5秒間入力がなければiptablesサービスをストップするのでSSH通信が出来なくなると言う最悪の事態を防ぐ事ができます。
スクリプトの作成
$ vi iptables.sh ### iptables.sh ### #!/bin/bash echo "service iptables start" sudo service iptables start if read -p "Please Enter (y):" -t 5 RES then if [ $RES = "y" ] then echo "Done." exit; fi fi sudo service iptables stop echo "service iptables stopped"
スクリプトの使い方
1.「/etc/sysconfig/iptables」を編集する
$ sudo vi /etc/sysconfig/iptables ### /etc/sysconfig/iptables ### # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] ・ 〜 中略 〜 ・ COMMIT
2.iptablesサービスを停止する
$ sudo service iptables stop
3.スクリプトを実行する
$ bash iptables.sh
以上となります。