広告

2015年7月10日

番号付きパケット・フィルタだから、気がつくと思ったんだけど。 ステートレスとステートフルの違いがありますよって話。

VPCのNetwork ACLはステートレスです!


 high portを消すと、アクセスできなくなっちゃいますってば!

番号付きパケット・フィルタだから、気がつくと思ったんだけど。 ステートレスとステートフルの違いがありますよって話。 VPCのNetwork ACLはステートレスです!  high portを消すと、アクセスできなくなっちゃいますってば!
読む »
NATインスタンスを作り直したら、プライベート・サブネットからアクセスができなくなった件。

ルーティング・テーブルはインスタンス指定


 NATインスタンスを使っている場合、ルーティングテーブルのゲートウェイに設定したインスタンス番号が固定だった。

当然ながら、NATインスタンスを作り直すとルーティングしないので外部アクセスは切れますわな。

NATインスタンスを作り直したら、プライベート・サブネットからアクセスができなくなった件。 ルーティング・テーブルはインスタンス指定  NATインスタンスを使っている場合、ルーティングテーブルのゲートウェイに設定したインスタンス番号が固定だった。 当然な...
読む »

 セキュリティ・グループで通過ポートを指定するのなら443は必須です。

サブネット間にセキュリティ・グループを使って制限するケースときは


 セキュリティ・グループには443を設定すべし!

なぜなら、CentOSのyumもawsコマンドも443を先に使いに行くからだよ。


 セキュリティ・グループで通過ポートを指定するのなら443は必須です。 サブネット間にセキュリティ・グループを使って制限するケースときは  セキュリティ・グループには443を設定すべし! なぜなら、CentOSのyumもawsコマンドも443を先に使いに行くから...
読む »
パーティションのサイズ変更するために、「変更したいEBS」を別のインスタンスにアタッチして起動したところアタッチしたEBSでブートしてしまった。

/dev/sdfなんすが・・・


 デフォルトのブートディスクは/dev/sdaだと思っていたのですが違うのね。

/dev/sdfが起動ディスクになっていて超びっくりしましたよ。


パーティションのサイズ変更するために、「変更したいEBS」を別のインスタンスにアタッチして起動したところアタッチしたEBSでブートしてしまった。 /dev/sdfなんすが・・・  デフォルトのブートディスクは/dev/sdaだと思っていたのですが違うのね。 ...
読む »

 ELBからEC2インスタンスにヘルスチェックが飛ばないのでドキュメントを確認してみたら、「registやり直せ」って・・・メモしときます。

ELBのヘルスチェックは新規のインスタンスが対象らしい


 停止していたインスタンスをUPさせたところ、ヘルスチェックが飛ばないのでなんでだろうと調べたら、ドキュメントに書いてありました。

ということは、起動・停止させるインスタンスの場合には起動時にreregistさせるスクリプトを仕込んでおく必要があるんですわね。

UP/DOWNの検出はELB側でしてほしい(できるでしょ!)と思います。


 ELBからEC2インスタンスにヘルスチェックが飛ばないのでドキュメントを確認してみたら、「registやり直せ」って・・・メモしときます。 ELBのヘルスチェックは新規のインスタンスが対象らしい  停止していたインスタンスをUPさせたところ、ヘルスチェックが...
読む »

 CentOSにcloud-initを入れて、展開時に設定を読ませようとしたところAWS環境変数が通らなくて困った件。

CentOSで、deploy&起動時のこと

deploy時にruncmdを使って設定させようとしていまして、CentOSにcloud-initをインストールしたところエラーを出すんです。

現象を把握するのにちょっと時間がかかったので、メモしておきます。

deployの起動中に設定させようとしているのがエラーを発する要因で、起動後に当該コマンドはエラーを出しません。

AWS環境変数でパスを指定しても、configやcredentialを配置する位置をいろいろと移動させてみたのですが探してくれません。

IAM Rolesが使えると上手くいくのですが、あいにくRoleの割り当て権限がないアカウントでの作業であったため(管理者がIAMの設定方法を知らなかったので)このようなこととなりました。



 CentOSにcloud-initを入れて、展開時に設定を読ませようとしたところAWS環境変数が通らなくて困った件。 CentOSで、deploy&起動時のこと deploy時にruncmdを使って設定させようとしていまして、CentOSにcloud-initをイ...
読む »
ELBを使う場合にはサブネットの指定が必要ですが、プライベート・サブネットを使ったらダメだった。

ELBのサブネット


 ELBに割り当てるサブネットは、サーバを配備したサブネットを指定すると良いと思っていたのですが、ELBが使うサブネットだったんですね。


ELBが使うパブリック・サブネットをAZ毎に用意(ほかには何も無い)、そのパブリック・サブネットをELBで指定します。

Webサーバはプライベート・サブネットに配置して、ELB-WEB間はセキュリティ・グループを使ってアクセス可能な経路だけに固定します。


ELBを使う場合にはサブネットの指定が必要ですが、プライベート・サブネットを使ったらダメだった。 ELBのサブネット  ELBに割り当てるサブネットは、サーバを配備したサブネットを指定すると良いと思っていたのですが、ELBが使うサブネットだったんですね。 EL...
読む »
インターネットからアクセスするためにSSHゲートウェイを一時的に配置したのですが、そこへiptablesのブルートフォース攻撃の防衛設定をおこないました。


ブルートフォース攻撃を防衛するパケットフィルタ設定


# iptables -N ssh_blute
# iptables -N ssh
# iptables -A INPUT -j ssh -p tcp --dport 22
# iptables -A ssh_blute -m recent --name ssh_block --set -j
 LOG --log-level DEBUG --log-prefix "ssh_block: "
# iptables -A ssh_blute -j REJECT
# iptables -A ssh -p tcp ! --syn -m state --state ESTABLISHED,RELATED
 -j ACCEPT
# iptables -A ssh -p tcp --syn -m recent --name ssh_block
 --update --seconds 86400 -j REJECT --reject-with
 --reject-with icmp-port-unreachable
# iptables -A ssh -p tcp --syn -m recent --name ssh_conn --rcheck
 --seconds 60 --hitcount 5 -j ssh_blute
# iptables -A ssh -p tcp --syn -m recent --name ssh_conn --set
# iptables -A ssh -p tcp --syn -j ACCEPT

出典:日経ITPRO

この設定では、1分間に5回以上連続してSSH要求を送ってきた場合には24時間のブロックをするという設定になっています。

午前中の数時間で


この設定で午前中運用させてみたところ、大量のブロックログが出てきてちょっとびっくり。

このサーバは設置間もないですし、常時稼働でもないのですが執拗なブルートフォース攻撃には閉口してしまいました。

ブロックしたIPアドレスをたぐってみたところ、99%が中国発、残りはロシアでした。

iptablesは24時間後に再開するのですが、その時にまた攻撃が再開するというしつこく攻撃するプログラムのようです。

ひとまず、攻撃元のアドレスレンジをまとめてREJECTするようiptablesに追加。

当面の対処


ログを分離して、スクリプトでssh_blockのIPアドレスをフィルタへ追加するようにし、それを毎朝更新させるようにしました。


IPSecやPPTPを使うよう変更したほうが良いようです。


インターネットからアクセスするためにSSHゲートウェイを一時的に配置したのですが、そこへiptablesのブルートフォース攻撃の防衛設定をおこないました。 ブルートフォース攻撃を防衛するパケットフィルタ設定 # iptables -N ssh_blute # ip...
読む »