私はシステム管理の世界ではかなり新しいです。最近アプリケーションに取り組んでいて、アプリケーションサーバーのログを確認すると、ブルートフォースでサーバーに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
これはかなり正常なことですか、それとも何か心配事をする必要がありますか?
インターネットのすばらしい世界へようこそ...
ssh
のデフォルトポートを変更しましたか?しかし、本当の答えは次のとおりです:はい、これは正常です:BotNet Maffiaは常にいくつかの余分に保護されたサーバーを使用できます...
フラッディングログを作成するのに十分なログイントライアウトを行うのは、ごく普通のことです。
SSHポートの変更は、「あいまいさによるセキュリティ」タイプの解決策ですが、洪水には役立ちます。あまりエレガントではないことを強調します。理由により、サービス用の事実上のポートがあります。
デフォルトではオンになっているはずですが、ルートとしてサーバーにSSH接続できないことを確認してください。これは、サーバー間でかなり一貫しているユーザー名であり、したがって、パスワードのブルートフォースログイン試行の主要なターゲットです。 sshd_config
の次の行で設定を適用します。
PermitRootLogin no
また、sshdログを監視して、違反者の再発を監視しているfail2ban
も確認してください。たとえば、特定のIPから3分間に5回ログインに失敗すると、そのIPは10分間ブロックされます。ログのスパムをさらに減らすために、禁止期間を24時間に増やしました-成功しました。 :)
いくつかのことを行うことをお勧めします。
/ 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
)を更新することにより、一時的または永続的に障害が発生しやすいアドレスを禁止します。
信頼できる場所をホワイトリストに登録していることを確認してください。
はい、心配してください。火傷することはありませんが、ITのベストプラクティスに従う必要があります。転ばぬ先の杖。
私は病院のネットワーク管理者です。ボックスをインターネットに直接接続することは、常に悪い考えです。あなたが見ているのは、インターネット上の脆弱性をスキャンする何千もの自動化されたスキャナーです。これらすべての種類のソフトウェア(ポートスキャン、さまざまな既知の脆弱性テスト)のすべての種類のソフトウェア(ssh、telnet、ftpなど)がidsボックスに表示されます。
ご使用のマシンはファイアウォール/ NATソリューションの背後にあり、必要なポートのみをインターネットに転送する必要があります(80、443など)。比較的簡単です。
managent(SSH telnet)に使用できるものを用意することは、インターネットに直面するのはよくありません。何らかの理由で、そのサーバーのSSH/telnetソフトウェアにバグがある場合、自動ボットはハートビートでそれを検出し、あなたはめちゃくちゃになります。ソフトウェアのバグは常に発生し、パッチがリリースされるまで、またはパッチの適用を忘れないようにするには、しばらく時間がかかる場合があります。
リモートで管理する必要がある場合は、VPNソリューションなどの設定を検討するか、Windowsを使用している場合は、リモートデスクトップ用のターミナルサービスゲートウェイを設定してください。 2つのNICを備えた個別のLinuxまたはWindowsボックスを使用して、VPNのルーティングとリモートアクセスをセットアップし、NAT=小規模なショップの場合はそれ以外の場合は、シスコのようなベンダーがハードウェアを持っていることを知っています。ファイアウォール/ NATソリューション(Cisco ASA)。
要約すると、マシンをNATの背後に置きます。サービスの目的を実行するために必要なポートのみをポート転送します。 管理に使用されるサービスをインターネットにポート転送しないでください代わりに、リモート管理のためにVPNを調べます。
P.S。SSHポートを変更するとログボリュームが改善される場合がありますが、実際にはSSHへのアクセスが妨げられるわけではありません。何千もの自動化された脆弱性ファインダーのどれでも、ポートスキャンを実行して、どのポートがどのサービスをリッスンしているかを確認できます。 nmap と呼ばれるツールを使用して自分で行うことができます。
カーネルの内部ファイアウォールは 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
あなたは本当にインターネット上のあなたのサーバーを必要としますか?あなたが本当にそれをインターネットに置きたいなら、あなたがそれをそこに置く前にそれが安全であることを確認してください。
ポートの変更は、あいまいなことによる単なるセキュリティです。攻撃者がスクリプトを実行するよりも高度な場合、それは役に立ちません。
すでに言及したいくつかのこともお勧めします:
私がこのコミュニティに参加したのは、十分に対処されていないと思われることが2つあるためです。
SSHサーバーでの後続の「試行」を禁止する場合の@cff回答の別の例:
Sudo iptables -A INPUT -p tcp -m tcp --dport ssh -m state --state NEW -m recent --update --seconds 600 --hitcount 4 --name DEFAULT --mask 255.255.255.255 --rsource -j DROP
Sudo iptables -A INPUT -p tcp -m tcp --dport ssh -m state --state NEW -m recent --set --name DEFAULT --mask 255.255.255.255 --rsource
Sudo iptables-save
これは「タグ」接続の試行であり、600秒(10分)に4回以上発生した場合、オリジンは「禁止」されます。より安全であるため、@ cffソリューションの代わりにこれを使用してください(自分をロックアウトした場合は、10分待ってから再試行してください)。