私は最近小さなUbuntuボックスへのSSHアクセスを確立しており、現在ローカルネットワークとオフサイトの両方でボックスにログインできます。
現在リモートで接続されているユーザーは2人だけですが、/var/logs/auth.logを確認すると、次のようにログインしようとするランダムなユーザー名/ポートの組み合わせが多く見えます。
Failed password for invalid user buildbot from xxx.92.16.81 port 11934 ssh2
Received disconnect from xxx.92.16.81 port 11934:11: Bye Bye [preauth]
Disconnected from invalid user buildbot xxx.92.16.81 port 11934 [preauth]
Invalid user aimax from xxx.92.16.81 port 24768
pam_unix(sshd:auth): check pass; user unknown
pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=xxx.92.16.81
sshd_configの許可されたユーザーセクションには2人のユーザーしかないので、これは非常に脅威であるとは思わないが、私の過酷なサーバーがこれらの何百ものユーザーを処理している間に人々が実際にログインしようとしているのを見るのは少し残念です。人々は毎日緊張しています。
特定のポート22で許可されたユーザーに不適切なSSH要求を無視または削除させる方法(ルーター/ファイアウォールまたはサーバー自体(おそらくIPテーブル?)を介して)がありますか?
通常、自宅にいなくてもログインできますが、SSHをできるだけ安全に保つためにどのような措置を講じる必要がありますか?
編集:思ったようにSSHD_configを設定せず、AllowedUsersを更新しました。ひどいです。
答え1
ポート番号は、宛先ポート(22)ではなく送信元ポートです。
SSHサーバーを保護するには、パスワードベースの認証を無効にする必要があります。鍵ベースの認証のみを使用し、鍵が十分に長く安全に保管されていることを確認してください(秘密鍵を共有したり公開したりしないでください)。
IPアドレスなどの情報のみを許可するファイアウォール関連技術は、攻撃率(サーバー負荷の減少)だけを減らすことができます。ただし、デフォルトのファイアウォールがあることを確認する必要があります(おそらくIPアドレスを制限すると使用するのがより困難になる可能性があります。私のデバイスの一部はローカルアクセスに制限されています)。 gufw(ufw用のグラフィックフロントエンド。年に数回だけ使用するコマンドについては、コマンドラインを学ぶ必要はありません)を使用してください。
答え2
Fail2banをインストールする必要があります。インストールするには、このDigitalOceanガイドを確認してください。https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-fail2ban-on-ubuntu-14-04
または、ファイアウォールを使用してSSH経由で特定のIPアドレスのみを許可します。 Ubuntuを使用している場合は通常、ufwをインストールしufw allow from [YOUR IP ADDRESS] to any port 22
(ufwが有効になっていることを確認してください)、またはFirewalld(Redhatバージョンのディストリビューションを使用している場合)を入力してください。
答え3
2人のユーザーが小さなIPアドレスのセットからのみ来ることを知っている場合は、IPテーブルを使用して、そのIPアドレス以外の場所からポート22のすべての接続をブロックできます。着信IPアドレスの範囲を減らすことができない場合は、ログインにSSHキーを使用するように強制し、パスワードログインの試みをブロックすることをお勧めします。
答え4
次のことができます。
- IPTABLESを使用して、ポート22のすべての着信サブネット/ IPアドレスをブロックします(許可されているアドレスを除く)。
- 切断するアイドル時間の設定
- SSHD confファイルを編集して、Puttyから直接rootログインを拒否します。
- ログイン失敗の /var/log/secure ログをモニターし、対処してください。