インターネットに接続する前に(特にパブリックIPアドレスで)侵入とマルウェアから保護するにはどうすればよいですか?


60

多数のRaspberry Piが野生にあり、それらの大規模なグループが同じように構成されているという事実(新たにフラッシュされたSDカードがいくつかの利用可能なイメージの1つと共にインストールされている場合)は、ボットネットを含むマルウェア。

これを軽減するために何ができますか?

「pi」ユーザー(Debian)と「root」(Arch。)のパスワードを変更する必要があることはかなりよく知られていますが、他のシステムアカウント(「tli」、「pnd」など)はどうですか?おそらくすべてのユニットで同じユニバーサルパスワード?

また、Piで使用可能なSDイメージにインストールされている他のパッケージに既知の脆弱性はありますか(ハードウェアの制限、またはそれらのパッケージの縮小バージョンなどのため)?

特にssh、新しくインストールされたイメージで実行されている可能性があるmysqlおよびその他のサービスが心配です。

回答:


23

Debian Squeezeのストックイメージについてこれまで気づいたこと:

  • / etc / shadowには、piアカウントではないアカウント(buildbotなど)のパスワードハッシュの束が含まれています。まだpiアカウントのパスワードを変更します(まだ自分用に新しいユーザーアカウントを作成してpiアカウントを削除していない場合)が、他のエントリを編集し、ハッシュを* sに置き換えます。/ etc / passwdにはpiアカウントの重複したエントリが含まれているため、adduser / deluserの混乱を招き、削除するだけです。

  • デフォルトのsshデーモン構成では、リモートルートログインが許可されます。これは無効にする必要があります。

  • netstatを使用して、接続をリッスンしているもののセットをチェックする価値があります。典型的な最小限のDebian netinstに比べて驚くほど多くのものが実行されています。一般的に、必要なものだけにさらされないようにすることをお勧めします。そのため、まずすべてを無効にするかファイアウォールですべてをオフにしから、パブリックインターネット上で意図的に表示したいサービスだけを公開します(通常はsshまたはssh + httpのみ)。

  • イメージ内のキーを使用するのではなく、sshホストキーを変更する必要があります(AIUI最新のイメージは実際に最初の起動時にそれらを再生成します)


1
あなたの最初の声明には問題は見当たりません。これらの追加ユーザーは何のためですか?ログインを無効にするべきではありませんか?あなたはsuそれらに試みることによって確認できます。
Jivings

2
これを-1にします。主に、シャドウファイルを手動で編集することをお勧めしているためです。これは非常に悪い考えです。
Jivings

@Jivingsいいえ、彼はしません。彼は同様に使用を暗示するかもしれませんvipw。それは悪い考えですか?いいえ、ちがいます。を使用することを意味する+1 vipw
user2497

41

脆弱性に対処する方法は多数ありますが、最初に知っておくべきことは、Linuxは他のオペレーティングシステムほど侵入の影響を受けにくいということです。これは、主に* NIXを標的とするマルウェアの不足によるものです。それでも、システムにアクセスする方法を知っておく必要があります。

パスワード

まず、ログインできるすべてのユーザーのデフォルトのパスワードを変更する必要があります。Debianの場合、これは単なるデフォルトのユーザーPiです。Arch Linuxの場合、これはスーパーユーザールートです。ユーザーとしてログインするpasswdと、コマンドラインに入力してパスワードが変更されます。

デフォルトのユーザーに対してブルートフォース辞書攻撃を実行するのは非常に簡単なので、安全なパスワードポリシーが推奨されます。適切な中程度の長さのパスワードを選択してください。

あいまいさ

リモートアクセスは、おそらく最も重要なセキュリティホールです。ここで使用できるのは、セキュリティによるセキュリティという名前です。攻撃の一般的な方法は、開いているポートのIPアドレスの範囲をスキャンすることです。したがって、我々がとることができる最も簡単な対策の1つは、デフォルトのポートを使用しないユーザーになることです

ここで行う必要があるのは、一般的に使用されるプロトコルのデフォルトポートを変更することだけです。たとえば、デフォルトのSSHポートは22で、FTPは21です。私のシステムでは、SSHは222とFTP 221を使用します。これにより、これらのプロトコルは自動化された攻撃から隠されます。

接続セキュリティ

まず、最も重要なセキュリティ上の懸念は、rootアカウントがSSH経由でログインできないことです。/etc/ssh/sshd_configこの行をコメント化または削除することにより、ファイルのルートログインを無効にできます。

PermitRootLogin yes

デフォルトではnoに設定する必要がありますが、確認することをお勧めします。


SSHを頻繁に使用し、中間者攻撃、パスワードに対する辞書攻撃が心配な場合は、を使用できますSSH Keys

キーベースの認証には、パスワード認証に比べていくつかの利点があります。たとえば、単純なパスワードよりもキー値をブルートフォースすることは非常に困難です。

SSHキー認証をセットアップするには、最初にキーペアを作成する必要があります。これは、クライアントマシン(Piにアクセスするマシン)で最も簡単に実行できます。

# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa):

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.

ご覧のとおり、これにより2つのファイル、秘密鍵id_rsaと公開鍵が作成されましたid_rsa.pub

秘密鍵はあなただけに知られていて、安全に守られるべきです。対照的に、公開鍵は、接続するSSHサーバーと自由に共有できます。

そこで、公開キーをRaspberry Piにコピーします。これは非常に簡単に行えます。

ssh-copy-id pi@address

piRaspberry Piのユーザー名はどこにあり、Pi addressのIPアドレスです。

繰り返しますが、公開キーを配布します。秘密鍵はあなたのものです。しっかりと握って、そのキーを離すとシステムのセキュリティが壊れます。

アーチのwikiにはこれがどのように機能するかの優れた記述があります。

SSHサーバーのファイルに公開鍵があり、接続を要求していることがわかると、公開鍵を使用してチャレンジを作成して送信します。このチャレンジは、コード化されたメッセージのようなものであり、サーバーがアクセスを許可する前に、適切な応答を満たす必要があります。このコード化されたメッセージを特に安全にしているのは、秘密鍵を持っている人だけが理解できるということです。公開鍵はメッセージの暗号化に使用できますが、同じメッセージの暗号化解除には使用できません。秘密鍵の所有者であるあなただけが、チャレンジを正しく理解し、正しい応答を生成できます。

公開鍵認証のセキュリティの詳細についてウィキペディアに詳細な説明があります。

SSHセキュリティを導入すると、暗号化された安全なデータ転送を大量に実行できます。必要に応じて、他のすべてのポート接続をSSH経由でルーティングできます。別のマシンで表示されるように、SSHを介してXセッションを転送することもできます。

興味深い例として、昨日、デスクトップでEclipseを実行し、Raspberry Piでそれを表示し、Netbookからマウスとキーボードを制御していました。これがSSHの力です。

許可

ファイルのアクセス許可は、Linuxセキュリティシステムの要です。あなたのファイルやフォルダを見ることができる人に影響を与え、データを保護する上で非常に重要です。たとえば、通常のユーザーとしてRaspberry Piにログインし、次を実行します。

cat /etc/shadow

shadowファイルには、システム上のユーザーのために暗号化されたパスワードが含まれているので、我々はちょうど約誰もがそれを見てみたくありません!したがって、次の応答が表示されるはずです。

cat: /etc/shadow: Permission denied

ファイルのパーミッションを見ると、これがなぜなのかがわかります。

ls -l /etc/shadow
-rw------- 1 root root 821 Jun 11 22:13 /etc/shadow

これは、ファイルがルートによって所有され、所有者のみが読み取り/書き込み権限を持っていることを示しています。その出力を分解しましょう。

-rw-------

これが権限の状態です。最初のビットは、ファイルのタイプを示します(-通常のファイルを意味します)。次の3ビットは、ファイルの所有者が使用できるアクションを表します。2番目の3ビットはグループを表し、最後の3ビットは他のユーザーまたは他のすべてのユーザー向けです。したがって、完全な権限を持つディレクトリは次のようになります。

drwxrwxrwx  10 root root   280 Jun 20 11:40 tmp/

これは、所有者、グループ、その他すべてのユーザーの読み取り、書き込み、実行の許可です。

次の重要な部分は2つの名前です。私たちの場合root root。最初のユーザーはファイルの所有者です。2番目はusergroupです。たとえば、次のように表示されるのが一般的です。

drwxr-xr-x  10 pi users   280 Jun 20 11:40 home/pi

これにより、ユーザーpiのホームディレクトリでの読み取り/書き込みアクセスが許可され、他のすべてのユーザーの読み取りアクセスが許可されます。

最も頻繁に参照され、8進数値を使用して制御される権限。たとえば、所有者だけにrwを設定する場合は、次のように入力します。

chmod 600 /path/to/file

これは基本的な概要です。Linuxファイルのアクセス許可の詳細については、こちらをご覧ください。


この理解は、ファイルとフォルダーを保護するときに重要です。たとえば、SSHキーをセットアップしたとしましょう。~/.sshディレクトリ内で他のユーザーに見せたくないのは間違いです。そうしないと、ユーザーはプライベートキーを取得できてしまいます。したがって、読み取り権限を削除します。

chmod 700 ~/.ssh
ls -la ~/.ssh 
drwx------   2 james users  4096 Jun 18 03:05 .

これでLinuxのセキュリティ保護に関する懸念が解消されることを願っています。これから、あなたはそれがかなり安全なシステムであることを見ることができるはずであり、注意すればセキュリティの問題はないはずです。


10
Obscurityの発言に同意しません。デバイスで開いているポートをマップしてsshサーバーを見つけるのに数秒かかります。パスワードによるログインを無効にし、通常のポートに固執します。ftpが必要だとは思わないので、代わりにscpを使用してください。
アレックスチェンバレン

2
@AlexChamberlainこれは、攻撃者にとって一時的なスピードバンプですが、決して完全なソリューションだけではありません。
Jivings

4
デフォルトのポートを変更すると、ドアノックが低下する傾向があり、辞書攻撃が頻繁に発生します。確かにこれは非常に小さなセキュリティ対策ですが、他の利点もあります。つまり、ログの膨張を制限できます。これはセキュリティというより予防的なアクションですが、まだ検討に値します。
ビーブルブロックス

2
@ AlexChamberlain、debian sshキーの大惨事の間、ポート22で多くの試行をログに記録しましたが、それ以外の場所では記録しませんでした。その場合、ハッカーが悪用されたホストのうちどれが価値があるかを突き止めようとしている間に、別のポートで実行すると多くの時間を費やすことになります。攻撃者が具体的にあなたを標的にしている場合、SBOはほとんど役に立ちません。
ジョンラルーイ

1
同意する。私のポイントはそれだけではないということでしたthereotical - SBOは間違いなく最近の記憶では、時間があったやったヘルプを、そして作られた大きな差が。
ジョンラルーイ

6

ブルートフォース攻撃を防ぐために、をインストールして構成できますfail2ban。ログファイル(など/var/log/auth.log)を解析し、いくつかのログイン試行が失敗したかどうかを検出しようとします。次に、でソースIPアドレスを自動的に禁止しiptablesます。

インターネットの周りにはたくさんのハウツーがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.