web-dev-qa-db-ja.com

Ubuntu ApacheIPベースのアクセス制限

私のサーバーは、私のrootユーザー資格を使用して部外者によって侵入されました。

ルートパスワードを変更して、サーバーを保護するための追加の戦略を見つけようとしています。

/ etc/hosts.allowおよび/ etc/hosts.denyを使用すると、IPアドレスによるアクセスを管理するための実行可能なソリューションのように見えますが、潜在的な問題があります。

hosts.allowファイルで仕事用IPを指定したい。ただし、問題は、サービスプロバイダーがIPアドレスを変更できることです。その場合、サーバーからロックアウトされます。 =私たちのサーバーは自己管理されています。

このシナリオを防止または克服する方法について誰かに教えてもらえますか?

2
sisko

サーバーを保護するためにいくつかの手順を実行しました。

最初は明らかなものです:

標準のポートでsshを実行しないでください。これにより、通常のスクリプトキディの攻撃を取り除くことができます。

2つ目も最先端です。

ノックデーモンを使用します。ノックデーモンは、サーバー上のssh接続用のポートを開く前に、最初に特定のポートとプロトコルでの一連のヒットを待機します。したがって、sshサーバーは、攻撃者がノッククライアントで正しいポートシーケンスに到達するまで、攻撃者には見えません。ほとんどのノックデーモンの実装は、トランザクションシーケンスを統合するためのメカニズムを提供するため、ログインが成功するたびにノッキングシーケンスが変更されます。

この標準設定では、もう少しセキュリティレイヤーが提供されます。

暗号化されたユーザー名とパスワードを使用し、ssh-ログインを特定の(root以外の)ユーザーに制限することもお勧めします。その後、rootタスクを実行するときに、サーバー上のrootユーザーに切り替えることができます。

Nagiosのような監視システムをインストールすると、あなたとあなたの環境により多くのセキュリティが提供され、設定が簡単で、ubuntuパッケージングシステムを通じて提供されます。誰かがssh経由でサーバーにログインしているときに電子メールを送信するように構成できるため、少なくとも、さらに調査するために必要な情報を取得できます。


ただし、正直に言うと、誰かがrootとしてサーバーにアクセスした場合は、すべてを完全に再インストールする必要があります。検出が容易ではないバイナリの置き換えがあり、バックドアが導入される可能性があります。 useraddのような単純なコマンドを実行し、バイナリが置き換えられたと想像してください。コマンドの実行中にtcp接続が開かれ、ユーザーの資格情報が侵入者に送信されます。または、さらに悪いことに、ssh-サーバーバイナリは、特定のユーザー-パス-の組み合わせを介したアクセスを許可するカスタマイズされたバージョンに置き換えられました。

0
Peter

プロバイダーから静的IPを購入します。

4

@Kazimierasの回答に加えて、 dyndns などのシステムを使用して、新しいホスト名をetc/hosts.allowに追加することもできます。

2
MDMoore313

証明書を使用

IPベースの制限を使用する代わりに、証明書を介して パスワードなしのログイン を設定できます。

アクセスしているサーバーに公開証明書を配置する必要があります。これが機能するには、〜/ .sshディレクトリ内の必要なファイルに対するアクセス許可が正しいことを確認する必要があります。

2
Deesbek

たぶんあなたはあなたのサーバーとあなたのオフィスネットワークの間にVPN接続をセットアップすることができます

0
Danielle