/ var / wwwにchmod 777を含めるべきではない理由


67

ローカルホストでページを開発するときに、「Permission denied」エラーが表示されることがありますが、これはを実行することで解決できchmod -R 777 /var/wwwます。しかし、これはセキュリティ上の理由から悪い考えだと人々は言っています。

なぜ/var/www777のchmodが必要ないのですか?


@ serverfault.comでこのスレッドをお勧めします。これは、apache2とパーミッションの設定例を提供するという素晴らしい仕事をします。serverfault.com/q/6895/57036 PSコメントできませんので、回答として追加する必要があります。
MystaMax

回答:


80

777は一般に悪い許可であり、その理由を説明します。

カジノやラスベガスでどのように見えるかに関わらず、777はあなたにとって大当たりを意味しません。むしろ、あなたのファイルを変更したい人のための大当たり。777(およびそのい従兄弟666)は、other読み取りおよび書き込み許可(および777の場合はExecute)を許可します。ファイルのアクセス許可がどのように機能するかについて詳しく知ることができますが、要するに、所有者、グループ、およびその他の 3つのアクセス許可グループがあります。他のユーザーのアクセス許可を6または7(rw-またはrwx)に設定すると、すべてのユーザーがこれらのファイルとフォルダーを編集および操作できるようになります。通常、想像できるように、これはセキュリティに悪影響を及ぼします。

これが私の例です:

marco@desktop:~/Projects/AskUbuntu/20105$ cd ..
marco@desktop:~/Projects/AskUbuntu$ chmod 0777 20105
marco@desktop:~/Projects/AskUbuntu$ cd 20105/
marco@desktop:~/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:32 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
marco@desktop:~/Projects/AskUbuntu/20105$ touch test
marco@desktop:~/Projects/AskUbuntu/20105$ chmod 0666 test 

これまでのところ、フォルダを作成し、「不正な」アクセス許可(777および666)を持つファイルを作成しました。次に、別のユーザーに切り替えて、これらのファイルを操作します。

marco@desktop:~/Projects/AskUbuntu/20105$ sudo su - malicious
malicious@desktop:~$ cd /home/marco/Projects/AskUbuntu/20105
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls
test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:33 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
-rw-rw-rw- 1 marco marco    0 2011-01-04 20:33 test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ touch bad
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ echo "OVERWRITE" > test 
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cat test 
OVERWRITE

この「悪意のある」ユーザーとして、ファイルをディレクトリに配置し、既存のファイルにテキストを挿入することができました。一方、755のディレクトリと644のファイルでは、内部のファイルとディレクトリを見ることができますが、ファイルを編集したり新しいファイルを作成したりすることはできません。

malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cd /home/marco/Projects
malicious@desktop:/home/marco/Projects$ touch hey
touch: cannot touch `hey': Permission denied

Apacheの許可についてはumask 022、フォルダーとファイルをそれぞれ0755と0644(別名)に固定したいと思うでしょう。これにより、ファイルの所有者として、操作に必要な最低限のアクセスレベルをApacheに提供しながら、ファイルを編集および操作できます。


13
言語については申し訳ありませんが、これは簡単な答えです。ありがとう、マルコ。
ルイスアルバラード

/ var / wwwフォルダーを自由に管理できるユーザー用のユーザーのみを作成した場合はどうなりますか?私は、実行する各Webサーバーに専用の仮想マシンを使用していますが、注意が必要なのはまだ当てはまるのでしょうか。
-UrkoM

1
@UrkoMあなたはあまり注意することはできません。ユーザーに同じファイルにアクセスさせたい場合は、グループのアクセス許可を6/7(0664/0775)に上げて、各ユーザーをそのグループに追加できます。この設定(および回答で説明した設定)がすべての基準を満たしているわけではありませんが、90%の時間0755/0644が使用するアクセス許可であると言えます。あなただけの「一人のユーザー」のシステムを持っている場合は、その後のリスクが持っている他の書き込み権限を持つていないとして、多くのリスク。
マルコセッピ

4
@UrkoM考慮すべきもう1つの点は、実在の人物を表していないが、特定のサービスが機能を低下させて実行できるように存在する「ユーザー」が多いことです安定性のバグから)。内容を見る/etc/passwdと次のようなユーザーが表示されますmailnewsnobody。システムの実際のすべてのユーザーがのコンテンツを変更できるようにしても/var/www、それがすべてのプロセスをこれらの「人工」ユーザーとして実行できるようにしたいわけではありません。
エリアケイガン

1)できる限り簡単な答えとして。ApacheまたはNginxがフォルダーまたはファイルを操作する方法については説明しません。Apacheやnginxのは、アプリケーションが、彼らはあなたの「悪質な」ユーザでないように、彼らが入力できない、サーバーであるls -lahtouch badまたは任意の他のコマンド。フォルダーとファイルをどのように操作できますか?2)継承。フォルダーとフォルダー内のファイル間の継承については説明しませんでした。ファイルの前に少なくとも2-3のステップがあります:/var/var/www/var/www/project。どのユーザー/グループの権限が/var必要ですか?どのユーザー/グループの権限が/var/www必要ですか?等々。彼らはどのように協力しますか?
グリーン

15

基本的に、777のアクセス許可を持っているからといって、自分でハッキングされることはありませんが、誰かがどこかで手掛かりを取得した場合、それを使用してアクセス許可をエスカレートし、コンピューターを完全に制御できます。最悪の部分は、アクセス許可が「7」を使用していることです。つまり、読み取り、書き込み、および実行のアクセス許可を意味します。

ハッカーがあなたのコンピューターを乗っ取りたいとしましょう。彼はWebブラウザーを使用してコンピューターに接続し、http://yourcomputer.example.com:80 /に接続します。。画像をアップロードできるページがある場合、実行可能ファイルの名前を「.jpg」で終わるように変更して、サーバーにアップロードできます。現在、彼はWebブラウザでそのファイルを参照して実行します。これは、Linuxが拡張子を気にせず、実行可能ファイルであることがわかるだけだからです。それは彼にあまり得られないかもしれませんが、それはまったく実行されたので、彼はそれがApacheユーザーとして実行されたことを知っています。次に、Apacheの設定ファイルを編集する修正バージョンをアップロードし、さらにアクセスを許可します-apacheが/ etc / passwdの内容を出力するようにしましょう。その後、その情報を使用して、システムに存在するユーザーを確認できます。その後、彼はsshを使用して接続し、一般的なパスワードを試してそれらのユーザーとしてログインします。それがうまくいかない場合は、完全なブルートフォース攻撃を使用します。彼がsudoアクセスを持つユーザーとしてログインした場合、

さて、あなたはそれはそうではないと言うかもしれません、またはそれは本当のハッカーがどのように働くかではないと言うかもしれません。それは事実ですが、ポイントは、ファイルをchmod 777に設定することにより、ハッカーが使用できるセキュリティホールを開けたということです。

代わりに、最小限の特権原則に従う場合、そのホールは発生せず、システムをハッキングするのはそれほど難しくありません。物事を適切に行うことはより困難ですが、それを行うためにあらゆる努力をする必要があります。


「toehold」と「escalate」の+1。概念をよく説明しています。
カリカリエネン

3
jpgを装ったファイルをサーバーで実行する方法を説明してください。
アヌラグペシュネ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.