Raspberry Piを保護するにはどうすればよいですか?


82

何万ものRaspberry Piがインターネットに接続されていることは、特に多くの人がネットワークサーバーを実行するためにPiを使用している場合に、小さなコンピューターに不快なことをしたい一部の人々の関心を最終的に獲得します。Linuxは、すぐれたセキュリティを備えた堅固なOSですが、パスワードを変更するだけでなく、デバイスでインターネット向けサービスをホストする場合は、Raspberry Piを「強化」するために何を行う必要がありますか?

「数万」のクイップをサポートするために、Eben Uptonは「Raspberry Piは基本的なコンピューターモジュールを20万台以上販売し、現在1日に4,000台を出荷しています」と述べています。これらの200,000人のうち何万人もがインターネットに接続されていると想定しても安全でしょう。インターネットに接続された何万ものRaspberry Piが一般向けのWebサービスをホストしていると想定するのはそれほど安全ではありませんが、ハッカーの熱意は依然として存在します。


3
「数万」接続されているかもしれませんが、(現在)3つの個別のLinuxディストリビューションが利用可能であり(私が知っている)、Linuxベースではないプロジェクトもいくつかあると思います。これは、ハッカーの視点に影響します。それでも、セキュリティが重要な場合は、ディストリビューションを最新の状態に保ち、必要に応じてデバイスをファイアウォールの内側に置いてください。
RLH

良い点RLH野生のRaspberry Piの数をサポートする質問にいくつかの追加情報を追加して、Steveが回答で述べたRaspberry Piの攻撃面のより良いアイデアを提供します。
ダンB

@DanB攻撃対象領域は、Piの数ではなく、攻撃に利用できるシステムとサービスの数の関数です。en.wikipedia.org/wiki/Attack_surface
スティーブロビラード

@SteveRobillardコメントがわからない場合は申し訳ありませんが、質問に対して行った編集では、一般向けサービスをホストしているため、攻撃可能なサービスを提供するPiの数を定性的な方法で削減しようとしました。
ダンB

SSHを使用する際にラズベリーパイを保護する方法についての短いチュートリアルを見つけましたが、これは非常に適切です。->チュートリアル
ドミニク聖

回答:


54

コンピューターのセキュリティ保護は簡単なプロセスではなく、本全体がこのトピックについて書かれています。Piのサイズは、潜在的な攻撃者に提示されるセキュリティの脅威や攻撃対象を減らすことはありません。その結果、関連する手順を説明し、より詳細な手順とチュートリアルへのリンクを提供します。

あなたが使用しているディストリビューションについては触れていないので、推奨されるRaspbian Distroを想定します。

  1. デフォルトのパスワードを変更します。Raspbianディストリビューションには、初期起動スクリプトのオプションとしてこれが含まれています。まだこれを行っていない場合は、passwdコマンドを使用して変更できます。強力なパスワード選択してください。
  2. 未使用のサービスを無効にします推奨されるRaspbianディストリビューションにはApache Webサーバーが含まれており、起動時に有効になることがわかりました(誰か確認できますか)。Webサーバーが本当に必要ですか?無効にしない場合。Apacheを実行する必要がある場合は、Apacheをセキュリティで保護し、他のサービス(FTP、NGINX、MySQLなど)についても同様に行う必要があります。Google検索でいくつかのリソースを検索する必要があります。
  3. iptablesをインストールして構成します。
  4. システムを最新の状態に保ちます。cronまたはcron-aptを使用して、これを自動化できます。
  5. ログインおよびログイン試行の失敗を監視するロギング設定します。可能であれば、外部ハードドライブを使用して/ varパーティションをホストします。これにより、より多くのスペースが確保され、ログファイルがSDカードをいっぱいにせず、SDカードの寿命が延びます。

考慮したい追加事項:

また、この関連する質問を読む必要があります。インターネットに接続する前に(特にパブリックIPアドレスで)侵入とマルウェアから保護するにはどうすればよいですか?

これは、Piを保護するための最低限の手順です。詳細については、Securing Debian Manualを読んでください。


6
必ず独自のsshキーを生成してください。一部の画像には既にキーが含まれていると思います。
ジョンラルーイ

2
Apacheはデフォルトではraspbianにインストールされていません(ユーザーはphp5-mysql IIRCのようなものをインストールしました)。裸のiptablesよりもやさしいパケットフィルターの場合、おそらくufwをお勧めします。GUIフロントエンドgufwをお勧めします。
elmicha

1
ルーターの後ろにいる場合でも、iptablesをインストールするのは理にかなっていますか?
ケイキ

2
@ otakun85はい、これは多層防御と呼ばれます。誰かがあなたのルーターを完全に信頼することで、誰かがあなたのルーターを越えてiptablesを稼働させていると、さらなるエクスプロイトがより困難になります。
スティーブロビラード

2
未使用のサービスを無効にすると、起動時間が短縮され、(少量の)メモリとCPUが節約されます。
-TomG

11

RPiを見ると、いくつかのことを行う限り、箱から出してかなり安全なデバイスのように見えます。

デフォルトのユーザー/パスの変更が必要です。少なくとも、パスワードを変更してください。セキュリティを強化するために、ユーザー名も変更します。(新しいユーザーを追加し、PIを無効にします。ルートがSSHログインからも無効になっていることを確認しますが、とにかくデフォルトであると思います。)

RPiをスキャンすると、1つの開いているポート22(SSH接続)のみが返され、表示する前にオンにする必要があります(ほとんどの人はモニター、キーボード、マウスの代わりに使用しますが、特に{web}サーバー)

SSHポート番号を変更することもできますが、ポートスキャンは簡単にできるため、それほど大きなことはありません。代わりに、SSH-Key認証を有効にします。

正しいSSHキー、ユーザー名、パスワードがなければ、だれもマシンにアクセスする方法はありません。

次に、ウェブサーバーを設定します。Apacheはまさにその場所にあります。これはデフォルトとしてポート80に座って監視し、ブラウザからの接続に自動的に応答して、Webページを提供します。

ファイアウォールまたはルーターがある場合は、RPiポートを変更し、ルーターにトラフィックを1つのポートから別のポートに転送させることができます。たとえば、ルーターへのポート80のトラフィックはRPiのポート75にリダイレクトされ、22のSSHはポート72にリダイレクトされます。これにより、別の保護層が追加されますが、少し複雑です。

明らかに、すべてを更新してパッチを適用してください。

これは、後で追加する可能性のあるJava、フラッシュ、SQLサーバーなどを悪用する攻撃からユーザーを保護しませんが、実際には基本的なものです。

また、ファイアウォールを追加することもできます。これにより、新しいサービスをインストールすると、システムにアクセスする人が別のポートにアクセスするのが遅くなります。ルーターはそれを処理する必要がありますが、直接接続されている場合は、セットアップして、どれだけ時間がかかるかを問わず実行することもできます-システムリソースの妨げにはなりません。

追加したいもう1つのことはfail2ban(http://www.fail2ban.org/wiki/index.php/Main_Page)です。これは、複数のログイン試行をブロックするファイアウォールルールを追加し、辞書攻撃を防ぎます。上記に従っている場合、これらはシステム上では機能しませんが、何らかの理由でパスワードのみのSSH認証を残す必要がある場合(たとえば、多くの異なるマシンからのリモートログイン)、辞書攻撃を防ぎます仕事から。指定した試行回数の後、そのIPアドレスからのそれ以上の試行はしばらくブロックされます。(ルーター/ローカルIPアドレスが表示されないように注意し、それを早すぎるまたは長すぎる時間禁止します!)

追加して編集:すべてがうまくセットアップできたら、ddやWin32DiskImagerなどのツールを使用して、SDカードの完全なビット単位のバックアップを作成します。そうすれば、何か問題が発生した場合、同じカードに復元したり、新しいカードに書き込んだりして、関係なく続行できます。(ただし、ハッキングされた場合は、見つかった穴を特定して、おそらく最初に閉じたいと思うでしょう!)


1
ルーターのRPiポートを変更すると、別の保護層がどのように追加されるかを説明できますか?
アンドレイ


-1

OSを強化するだけでなく、クラウドベースのセキュリティ監視サービスを使用して、デバイスとの間のアクティビティを監視し、不必要なことが検出された場合にアラートを受信することも検討できます。最近利用可能なクラウドベースのSIEMツールはいくつかあり、一部(シームレスなど)はフリーミアムモデルを操作するため、ホームユーザーは1円も払う必要がありません。このようなサービスを使用するには、すべてのLinux OSディストリビューションの標準的な部分であるrsyslog / syslogのようなものに慣れる必要があります。


1
クラウドツールは攻撃対象領域を増やし、ローカルセキュリティの監視(ログ警告/チェック)は優れたツールですが、この答えは不完全であり、コメントです。
user1133275
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.