web-dev-qa-db-ja.com

SSH中の注意事項

可能性のある複製:
サーバー上のSSHへのユーザーおよびアクセス試行を監査するにはどうすればよいですか?

私は最近、Ubuntu 12.10のルートパスワードを友人の1人に渡して、システムにSSHで接続していくつかのファイルを送信できるようにしなければなりませんでした。今、彼は私の友人であり、私は彼を信頼しているので、パスワードを共有することに消極的ではありませんでした。その後、変更しました。

しかし、システムにリモートログインしている他のユーザーによって実行されたすべてのコマンドを表示するにはどうすればよいかわかりました(明らかに私の友人ではありません。一般的にはどういう意味ですか)。 Last Passを使用してアカウントパスワードにもアクセスできますか?)そして、システムにログインした後にブラウザを開いた場合、Chromeが提供する「パスワードを保存」オプションを使用して保存したすべてのパスワードにアクセスできます

また、誰かにシステムへのリモートログインを許可する場合、どのような予防策を講じる必要がありますか?また、それらが使用するさまざまなコマンドまたはシステムで行った変更を追跡するにはどうすればよいですか? /var/log/auth.logファイルをチェックする以外に、誰かがシステムにログインするたびに通知を受ける簡単な方法もありますか?

5
Shagun Sodhani

this AskAbuntuの質問を読んでVPSを確認した後、同様の問題が発生しました。それは私が行動を起こすことにしたときです。

さて、私がリンクした質問によると、sshを介したマシンでのログイン試行の失敗(ブルートフォースの試行など)を確認したい場合は、次のように入力してください。

_grep sshd.\*Failed /var/log/auth.log | less
_

出力が複数の行で構成されている場合、つまりブルートフォースが多数試行されている場合、特に短い間隔で発生した場合は、次のアクションを実行することをお勧めします。

Ssh構成ファイルを変更する

これを行うには、/etc/ssh/sshd_config にあるファイルを、この_vim /etc/ssh/sshd_config_のようなお気に入りのエディターで開きます。

1。 sshをポート22 から移動してみてください。次の行を見つけます:

_# What ports, IPs and protocols we listen for
Port 22
_

ポート22をコメントアウトし、好きな人を使用します。例:

_# What ports, IPs and protocols we listen for
# Port 22
Port 28934
_

Please remember that ports below 1024 need special (root) permission.これがどのように干渉するかわかりませんが、私はただ言っています。

2。 ssh を介したルートログインの無効化:ルートユーザー名は予測可能であり、システムへの完全なアクセスを提供するため、SSHを介してこのアカウントに自由にアクセスできます。 PermitRootLogin と表示されている行を見つけて、 no に設定します。

_PermitRootLogin no
_

3。パスワード認証を無効にする SSHキーを生成して使用するシステムにログインします。パスワードを有効にしないと、攻撃者はサーバーにアクセスするためにSSH秘密鍵を推測(または盗み)する必要があります。非常に非常に難しいことです。 PasswordAuthentication と表示されている行を見つけて、 no に設定します。

_PasswordAuthentication no
_

!WARNING!その前に、このガイドを参照してください こちら 証明書認証の設定方法について。

注:変更を行ったら、_Sudo /etc/init.d/ssh restart_を使用します。 sshを使用して別のポートに接続するには、_ssh [email protected] -p <port_number>_を使用します。

ファイアウォールを設定する

Linuxに統合されている非常に強力で効果的なファイアウォール IPTables の設定方法については、 このガイド をご覧ください。

セキュリティに役立つセットアップスクリプト

私が個人的に使用し、すぐに思い浮かぶのは Fail2Ban です。 Fail2banは、ログイン試行の失敗についてログファイルを監視します。 IPアドレスが認証試行の最大回数を超えると、ネットワークレベルでブロックされ、イベントは_/var/log/fail2ban.log_に記録されます。インストールするには:_Sudo apt-get install fail2ban_

Ssh経由でコマンド履歴を確認する

historyという名前のLinuxコマンドがあります。これにより、その時点までに入力されたコマンドを確認できます。ターミナルでhistoryと入力して、その時点までのすべてのコマンドを確認してください。あなたが root である場合に役立ちます。

特定のコマンドを検索するにはを試してください:_history | grep command-name_

ssh の後のすべてのコマンドをリストするには:_fc -l ssh_

vi を使用してコマンドを編集することもできます(vimは試していませんが、同様に機能すると仮定しています):_fc -e vi_

履歴を削除することもできます:_history -c_

注:コマンドhistoryのファンでない場合は、ホームディレクトリ(_cd ~_)にもというファイルがあります。 /].bash_history(bashを使用している場合)catを使用して、bashシェルに入力されたすべてを表示できます。

1
NlightNFotis

SSHはデフォルト設定では完全に安全ではありません。


パスワードを指定して、リモートユーザーがSSHを介してコンピューターに接続できるようにする場合、進行中のアクセスを停止するには、これらの権限をrevokedにする必要があります。

パスワードを変更すると[〜#〜] not [〜#〜]これらの権利が取り消されます。

1
david6