私のサーバーでいくつかのセキュリティ上の問題がありました。いくつかのSSHユーザーは、問題を引き起こすファイアを設定しています。
私はしたいと思います:
- ユーザーのログインとログアウトを追跡する
- 悪意のあるアクティビティを発見するために、これらのSSHのアクティビティを追跡します
- ユーザーがログを削除できないようにする
私はシステム管理者ではないので、この問題についてはかなり経験が浅いので、どんなアドバイスでも大歓迎です。:)
私のサーバーでいくつかのセキュリティ上の問題がありました。いくつかのSSHユーザーは、問題を引き起こすファイアを設定しています。
私はしたいと思います:
私はシステム管理者ではないので、この問題についてはかなり経験が浅いので、どんなアドバイスでも大歓迎です。:)
回答:
SSHサーバーについて説明しているので、コマンドラインソリューションを紹介します。
ユーザーのログインとログアウトを追跡します。それは簡単です、ファイルに/var/log/auth.log
はこの情報が必要です。
それらのユーザーのアクティビティを追跡する:かなり無害な場合.bash_history
は、ホームディレクトリのファイルを確認できます。実行したコマンドのリストが表示されます。問題はもちろん、このファイルを削除または編集できることです。
ユーザーがログを削除できないようにする:ユーザーがに触れないようにする必要がありますauth.log
。彼らが遊ぶのを止める.bash_history
には、いくつかのトリックをする必要があります。
ユーザーがルートアクセスを取得できた場合はどうなりますか?:あなたはめちゃくちゃです。間違えない限り、彼らはすべての足跡を隠すことができます。
~/.bash_history
ない~/.bashrc
)がに表示されるため$HISTFILE
です。しかし、それ自体は完全に合法である可能性があります(たとえば、ユーザーは単に実行しzsh
たい、または代替で独自のオプションを設定したいbashrc
)。
[免責事項]パーティーに遅れていることに気づきましたが、別の質問に答えを貼り付けたいと思います。読者に良い洞察を提供できると思うからです。基本的なssh情報の場所。
AskUbuntuでこの質問を読み、VPSをチェックした後、同様の問題が発生しましたが、無数の総当たり攻撃が見られました。それが私が行動を起こすことにしたときです。
さて、私がリンクした質問によると、sshを介したマシンでのログイン試行の失敗(ブルートフォース攻撃など)を確認するには、次のように入力してください。
grep sshd.\*Failed /var/log/auth.log | less
出力が複数の行で構成されている場合、つまりブルートフォースの試行が多く、特に短い間隔で発生した場合は、次のアクションを実行できます。
これを行うには、次のように/ etc / ssh / sshd_configにあるファイルをお気に入りのエディターで開きますvim /etc/ssh/sshd_config
。
1.ポート22からsshを移動してみます。次の行を見つけます。
# What ports, IPs and protocols we listen for
Port 22
ポート22をコメントアウトし、好きな人を使用します。例:
# What ports, IPs and protocols we listen for
# Port 22
Port 28934
1024未満のポートには特別な(ルート)許可が必要であることを忘れないでください。これがどのように干渉するかはわかりませんが、ただ言っています。
2. sshを介したルートログインの無効化:ルートユーザー名は予測可能であり、システムへの完全なアクセスを提供するため、SSHを介してこのアカウントへの自由なアクセスを提供することは賢明ではありません。読ん行を探しのPermitRootLoginをし、それを設定していない何も。
PermitRootLogin no
3.パスワード認証を無効にする:SSHキーを生成して使用し、システムにログインします。パスワードを有効にしないと、攻撃者はサーバーにアクセスするためにSSH秘密鍵を推測(または盗み)する必要があります。非常に非常に難しいことです。PasswordAuthenticationを読み取る行を見つけて、noに設定します。
PasswordAuthentication no
!警告!その前に、このガイドを参照してくださいこっち証明書認証を設定する方法について。
注:変更を行ったら、を使用しますsudo /etc/init.d/ssh restart
。sshを使用して別のポートに接続するには、次を使用しますssh username@hostname.com -p <port_number>
。
Linuxに統合されている非常に強力で効果的なファイアウォールIPTablesのセットアップ方法については、このガイドをご覧ください。
私が個人的に使用し、すぐに思い浮かぶのはFail2Banです。Fail2banは、ログイン試行の失敗についてログファイルを監視します。IPアドレスが認証試行の最大回数を超えると、ネットワークレベルでブロックされ、イベントがログインし/var/log/fail2ban.log
ます。それをインストールするには:sudo apt-get install fail2ban
という名前のlinuxコマンドがあり、history
その時点までに入力されたコマンドを確認できます。history
ターミナルに入力して、その時点までのすべてのコマンドを確認してください。あなたがルートだったら助けになるでしょう。
特定のコマンドを検索するには:history | grep command-name
sshの後のすべてのコマンドをリストするには:fc -l ssh
viを使用してコマンドを編集することもできます(vimを試したことはありませんが、同様に機能すると仮定しています)。fc -e vi
履歴を削除することもできます:history -c
注:コマンドのファンではない場合history
、ホームディレクトリ(cd ~
)に.bash_history(bashを使用している場合)と呼ばれるファイルがありcat
、bashシェルで入力されたすべてを確認できます。
少しやり過ぎですが、「プロセスイベントコネクタ」を使用して、システムで実行されているすべてを確認できます。
http://www.outflux.net/blog/archives/2010/07/01/reporting-all-execs/
unset HISTFILE
がbash内に入力できないようにする方法はないため、bashの履歴は記録されないことに注意してください。