ec2サーバへのsshを制限する

このサーバへのSSHアクセスを制限かけてみた。

理由

毎日、毎日飽きもせずにSSHへの攻撃が続く・・・

Disconnecting after too many authentication failures for user:
admin : 10 Time(s)
pi : 1 Time(s)
root : 54 Time(s)

Received disconnect:
11: [preauth] : 65 Time(s)
11: Bye Bye [preauth] : 83 Time(s)

こんな感じ。
数値はこんなものじゃないんですけどね^^;;
とりあえず うっとうしい

サーバにはGoogle Authentication経由でID/SSHのキー/1 Time Password

対策

最初は日本国内以外からのアクセスをたたき落とす事を考えていたのですが
色々とめんどくさくて[AWS][CLI] EC2にSSHするときだけ、security groupに自分のアドレスを追加するを参考にしてAWSのSecurity Groupで対応するようにしました。

#!/bin/sh

MYSECURITYGROUP=sg-XXXXXXX
MYIP=`curl checkip.amazonaws.com`

aws –profile=XXXXX ec2 authorize-security-group-ingress –group-id $MYSECURITYGROUP –protocol tcp –port 22 –cidr $MYIP/32
ssh $@
aws –profile=XXXXX ec2 revoke-security-group-ingress –group-id $MYSECURITYGROUP –protocol tcp –port 22 –cidr $MYIP/32

このスクリプトをたたくようにしました。
まぁめんどくさいけどしょうが無いよね。

毎回たたくのは面倒&別端末でのLoginが面倒なので日頃使うIPからはFirewallに入れておく。

これでかなりの数をはじくことが出来るようになります。

結果

SSHへの接続がなくなりました。
精神衛生上大変よろしい