見出し画像

[WEBセキュリティ]緊張しながら、iptablesを設定する!(失敗した時の対策は重要!)

iptablesの設定をミスるとssh出来なくなるので、緊張しながら設定変更をしていこうと思います。

以下で、ChatGPTにiptablesについて、色々レクチャーしてもらいましたが、今回は実践編です。


事前準備

ミスった場合を考慮し、定期的にiptablesをリセットするシェルを起動しておく

ただ緊張するだけではなく、ミスった場合にすぐにリカバリーできるように、1時間に1回iptablesをリセットするシェルを起動しておきます。
それと、検証用なのでサーバーは最悪ssh出来なくなっても良いインスタンスを使用しました。(多少セットアップに時間がかかるのでssh出来なくなるのは嫌なのですが)

ChatGPTに作ってもらったシェルも、ちゃんと動作確認する

1時間に1回iptablesをリセットするシェルは、毎度お世話になっているChatGPTにさくっと作ってもらいます。
1時間に1回iptablesをリセットするシェルの動作確認も実施しておきます。このシェルが正常に動作しないと終わってしまうので。。

段取りを整理

  1. 1時間ごとにiptablesをリセットするshを起動しておく

  2. ターミナルを2つ起動し、ssh接続しておく(1つは予備)

  3. 既存のルールをクリア

  4. 全てのトラフィックを拒否

  5. SSHトラフィックを許可

  6. (色々設定)

  7. 動作確認


iptablesの設定変更作業

設定変更開始!

緊張しながら、設定変更を実施していきます!

「3 既存のルールをクリア」は、iptablesをリセットするshと同じ内容なので、ステップ3まで順調に行きました。次の緊張ポイントの「4 全てのトラフィックを拒否」です

「全てのトラフィックを拒否」で、ssh出来なくなる・・・

[1] iptables -P INPUT DROP
[2] iptables -P FORWARD DROP
[3] iptables -P OUTPUT ACCEPT

上記[1]のコマンドを起動した瞬間、sshが・・・
「あーーー!!」「ターミナルがああ・・」「かなしい・・・」

iptablesの設定はシェルなどですべての設定を1回で済ませないと、ダメでしたね・・
ちなみに「2 ターミナルを2つ起動し、ssh接続しておく(1つは予備)」は、何となく保険で用意しておきましたが、2つ目のターミナルも即、動かなくなってしまったので、この対策ではダメでした、、

1時間ごとにiptablesをリセットするshで、リセットされるのを祈りながら待つ!

あとは「1時間ごとにiptablesをリセットするsh」でiptablesがリセットされるのを祈るのみですね。。動作確認しているので大丈夫なはず!
待ち時間はソワソワしてしまいますね、、

無事、1時間後にiptablesがリセットされた!

1時間後ぐらいに、「1時間ごとにiptablesをリセットするsh」が無事に起動してくれ、sshすることが出来ました!ふ〜
やはりミスした時のリカバリー対策は大切ですね。

iptablesコマンドをshにまとめて起動

その後、iptablesとして設定するコマンドをshにまとめて、起動したところ正常に設定が完了し、sshもすることが出来ました!
詳細の動作確認はこれからですが、区切りが良いので今回はこの辺りで終わりにしたいと思います。


おわりに

最後まで読んで頂き、ありがとうございました!

iptablesの設定は、なかなか疲れる作業ですね、、
やったことを整理すると、大したことをやっていなのですが、事前準備や段取りの確認などで、トータルの時間としては結構かかってしまいました。

iptablesの設定は、WEBアプリのコーディングと違い、地味でストイックな作業ですが、これにめげずに少しずつ進めていこうと思います。

いいなと思ったら応援しよう!