私の状況は次のとおりです。 SSHクライアント(192.168.0.11) - > SSHサーバーと設定ポート転送を持つパブリッククラウドVM(139.90.90.90)(CentOS7.9) - >内部SSHサーバー1台(10.24 .24.24)(CentOS 7.9)))。内部SSHサーバーの1つにアクセスするためのポート転送を作成し、特定のポートを持つパブリッククラウドVMを介してアクセスできます。
ssh -L *:10100:10.24.24.24:10100 -N -f [email protected]
私のラップトップSSHクライアントは139.90.90.90:10100に正常にアクセスできます。
ところで、最近問題を発見しました。インターネットでポートを開いているため、SSHログイン要求が多すぎてサーバーが追加のリソースを消費することがありました。安全でなければならないため、firewalld-cmd
一部のソースIPを拒否したりしました。
私の質問は、これらのソースIPを検出する方法です。内部SSHサーバーにあるため、パブリッククラウドのIPアドレスは139.90.90.90のみ表示されます。たとえば、内部Linuxサーバー(/var/log/secure
)では、次のようになります。
May 10 23:48:46 z1 sshd[17066]: input_userauth_request: invalid user nano [preauth] May 10 23:48:46 z1 sshd[17066]: pam_unix(sshd:auth): check pass; user unknown May 10 23:48:46 z1 sshd[17066]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=139.90.90.90 May 10 23:48:48 z1 sshd[17066]: Failed password for invalid user nano from 139.90.90.90 port 40800 ssh2
ソースIPを見つける方法を知り、ファイアウォールを介してパブリッククラウドサーバーからブロックできます。
ありがとう、ユージン
答え1
とにかく正確に識別できる方法は見つかりませんでした。ところで、これらの攻撃者(ハッカー)を防ぐのに役立つ可能性を発見しました。 SSH 構成ファイルを「LogLevel DEBUG1」に変更すると、「server_request_direct_tcpip: Originator 128.199.32.98 port 48498, target 211.95.84.14」など、多くの項目が表示されます。この時点で、これらのIPが有効であることを確認できます。その後、IPが無効であることを確認し、接続をブロックするスクリプトを作成できます。
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=$IP reject"
有効な接続を許可するホワイトリストを作成することもできます。