私はシステム管理の世界に初めて触れました。最近アプリケーションを開発していますが、アプリケーションサーバーのログを確認すると、私のサーバーにSSHを無差別に代入しようとするさまざまなIPアドレスが引き続き表示されます。私のサーバーログの例は次のとおりです。
Feb 14 04:07:20 foodwiz3 sshd[1264]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
Feb 14 04:07:21 foodwiz3 sshd[1264]: reverse mapping checking getaddrinfo for coenamor.columbiansabbatical.com [23.249.167.223] failed - POSSIBLE BREAK-IN ATTEMPT!
Feb 14 04:07:21 foodwiz3 sshd[1264]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=23.249.167.223 user=root
Feb 14 04:07:23 foodwiz3 sshd[1264]: Failed password for root from 23.249.167.223 port 32997 ssh2
Feb 14 04:07:23 foodwiz3 sshd[1264]: Received disconnect from 23.249.167.223: 11: Bye Bye [preauth]
Feb 14 04:13:04 foodwiz3 sshd[1289]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
Feb 14 04:13:05 foodwiz3 sshd[1289]: reverse mapping checking getaddrinfo for coenamor.columbiansabbatical.com [23.249.167.223] failed - POSSIBLE BREAK-IN ATTEMPT!
Feb 14 04:13:05 foodwiz3 sshd[1289]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=23.249.167.223 user=root
Feb 14 04:13:07 foodwiz3 sshd[1289]: Failed password for root from 23.249.167.223 port 41562 ssh2
これはかなり普通のことですか、それともそれについて懸念または措置を講じるべきですか?
答え1
素晴らしいインターネットの世界へようこそ...あなたは:
- サーバーをハードウェアファイアウォールの背後に置きますか?
- 有効ソフトウェアファイアウォール? (ハードウェアファイアウォールが失敗した場合に備えて)
- 固まったあなたのサーバー?
- インストール済みヘッドハンターオンラインで上げる前に?
- 活動的な自動毎日セキュリティ更新?
- デフォルトポートが変更されましたか
ssh
? - ...
しかし、実際の答えは次のとおりです。うんこれは普通です。:BotNet Maffiaは常により強力に保護されたサーバーを使用できます…
答え2
Floodログを作成するのに十分なログイン試行が発生するのは非常に正常な現象です。
SSHポートの変更は「ステルスセキュリティ」タイプのソリューションに近いですが、サービスの超過に役立ちます。私はこれが事実上、サービスポートが存在するにはあまりエレガントではないことを強調しています。
デフォルトではオンになっている必要がありますが、rootとしてサーバーにSSHで接続できないことを確認してください。これはサーバー間でかなり一貫したユーザー名なので、パスワードの無差別ログイン試行の主なターゲットです。設定を強制するには、次の行を使用しますsshd_config
。
PermitRootLogin no
また、fail2ban
反復違反があるかどうかsshdログを確認して監視します。たとえば、特定のIPが3分以内に5回ログインに失敗した場合、そのIPは10分間ブロックされます。ログスパムをさらに減らすために、ブロック時間を24時間に延長することに成功しました。 :)
答え3
私はあなたがいくつかのことをすることを提案します:
- SSHがリッスンしているポート(1024よりはるかに高い)を変更し、プロトコルバージョン1を使用していないことを確認してください。
/etc/ssh/sshd_config
# What ports, IPs and protocols we listen for
Port 50022
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
インストール
fail2ban
- 既存のファイアウォールルール()を更新してログファイルを監視し、障害が発生しやすいアドレスを一時的または継続的にブロックしますiptables
。信頼できる場所をホワイトリストに追加します。
答え4
以下では、カーネルの内部ファイアウォールを構成できます。iptables。これにより、サーバーにSSH経由で接続できるシステムはほんの数しかなく、他のIPパケットは失われます。詳細についてはを参照してくださいman iptables
。
たとえば、192.168.1.67がSSHを送信するホストの場合は、サーバーで次のように入力します。
sudo iptables -A INPUT -p tcp --dport ssh -s 192.168.1.67 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport ssh -j DROP
sudo iptables-save