重複の可能性:
Linuxディレクトリ権限
サードパーティの開発者と協力しており、SFTP(またはFTP)に、彼らが作業しているWebサイトのルートフォルダーへのアクセスを許可したいのです。つまり、'/var/www/html/website_abc'
にファイルをアップロードできるようにします。他のウェブサイトを同じEC2インスタンスでホストしていることに注意してください。 '/var/www/html/website_xyz'
。
1つの単一のEC2インスタンスで複数のWebサイトを操作していることを強調するために、Webサイトの構造は次のとおりです。
/ var/www/html /
/var/www/html/website_abc
...
/var/www/html/website_xyz
私の目標は次のとおりです。
私は検索を行いましたが、ほとんどの人が、WinSCPを使用してすでにSFTP経由でEC2にアクセスする方法について話していました。
説明:
/var/www/html/website_abc
にコンテンツをアップロードできるようにするには、「adeveloper」が必要です。/var/www/html/
の下のファイル/ディレクトリに対する「書き込み」権限がなく、理想的には「読み取り」権限もない必要があります/var/www/html/
にはすでにアクセス許可777があります。では、「adeveloper」が他のWebサイトにアクセスできないようにするにはどうすればよいですか?部分的に解決しましたOpenSSHを使用して目標を達成しました(/ var/www/html/website_abc /内に.sshフォルダーを作成し、秘密鍵を生成してそれを与えますサードパーティの開発者に)。また、AWSから提供された秘密キーファイルを絶対に提供してはならないことも学びました。まだchrootについて学んでいます。
デフォルトでは、sshやtelnetなどのリモートシェル、またはsftpなどのコマンドの対話型リモートセッションを提供するサービスにより、ローカルユーザーは、アクセス許可のある任意のディレクトリに移動し、アクセス権のあるファイルのコピーを取得できます。
一般的なセキュリティ構成としては、世界中で読み取り可能なファイルやディレクトリが多数必要なため、これは残念です。たとえば、ここにあるリモートCentOSボックスの非rootユーザーがいます。
$ cd /etc
-bash-3.2$ ls -1
acpi
adjtime
aliases
...
例えば私はたくさんのものにアクセスできますが、理想的には、ローカルアクセスを提供したい未知のユーザーから制限したいと思うでしょう。
以下は、/etc/passwd
ファイルで構成されているすべてのローカルユーザーを確認したものです。
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
Unixシステムにはchroot
コマンドがあり、ユーザーの/
をファイルシステム階層内のディレクトリにリセットできます。この場合、ユーザーは「上位」のファイルやディレクトリにアクセスできません。
ただし、あなたのケースでは、リモートシェルサービスによって実装された仮想chrootを提供することが適切です。 sftpは、ローカルユーザーをファイルシステムの特定のサブセットに制限するように簡単に構成できます。
したがって、あなたのケースでは、chroot
adeveloper
ユーザーを/var/www/html/website_abc
ディレクトリに移動する必要があります。
ユーザーがchrootディレクトリを設定して、それらを/var/www/html/website_abc
のようにサブディレクトリ/etc/ssh/sshd_config
に制限することができます。
これには4.8以降のopenssh-serverが必要なため、おそらくCentOS 6.2が必要です
Match Group sftp
ChrootDirectory %h
AllowTcpForwarding no
(テストされていません。man sshd_config
を参照して構文を確認してください)
次に、それらのユーザーをsftpグループに追加します。
groupadd sftp
usermod -d /var/www/html/website_abc adeveloper
usermod -G sftp adeveloper
共有キーについて
adeveloperユーザー用に追加の鍵ペアを作成し、それをコンサルタントに送信する必要があります。 (または、公開鍵を送信して、adeveloper
のauthorized_keysファイルに追加するよう依頼してください)
秘密鍵を決してあきらめないでください、それが秘密と呼ばれる理由です;-)
伝統的なftpの選択肢
vsftp/proftpなどもchroot構成をサポートしますが、今日ではsshベースの構成が通常の方法であり、ftpのサポートは履歴のみです。
ここにはチュートリアルへのリンクがいくつかあります。
http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229
http://www.howtoforge.com/chrooted-ssh-sftp-tutorial-debian-lenny