質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

2回答

6952閲覧

サーバーのアクセス制限

yuta.a

総合スコア14

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

0クリップ

投稿2018/06/05 04:27

編集2018/06/06 04:09

■やりたいこと(サーバー:AWS centOS7)
既存のユーザーとは別に、客先用のユーザーを追加して、
その客先ユーザーでログインした場合、一部のディレクトリしかアクセスできないようにしたいです。
var/www/html/プロジェクト名/webroot/csv_data/data(すべて所有者centos) 。
→最後のdataディレクトリだけを客先用のユーザーに公開したいです。

【問題1】
客先用のユーザーを追加したのですが、そもそもFTPサーバーに接続できないです。
使用ツールはWinSCPを使っています。

デフォルトユーザーのcentosは通常通り接続できます。
その際情報としては、SFTP/ホスト/ユーザー名/パスワード/秘密鍵を入力しています。
客先用のユーザーの場合も、同じく
SFTP/ホスト/ユーザー名/パスワード/秘密鍵(centosと同じ)を入力しています。

客先用のユーザーでログインしようとすると下記メッセージが表示されます。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
認証ログ (詳細はセッションログを見て下さい):
ユーザ名"dfhonbu" を使用中
サーバが鍵を拒否しました

認証に失敗
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

ユーザーを追加する際のコマンドは、
useradd -d var/www/html/kyakusaki -s /sbin/nologin userkyakusaki
さらにパスワードを設定し、グループをデフォルトユーザーのcentosと一緒にしました。

Q:以上をふまえて客先用のユーザーuserkyakusakiでWinSCPを使って接続するにはさらに何か設定が必要か教えていただきたいです。

【問題2】
その客先ユーザーでログインした場合、一部のディレクトリしかアクセスできないようにするために下記サイトを参考にし、SSH接続して設定してみました。
リンク内容

サイト内ではvsftpdの話をされてます。
このサイトを見てからvsftpdをサーバー内にインストールしました。
つまり今まではvsftpdは使ってなかったです。
ここでもう一つ関連するといいますか、よく出てくるのがsftpだと思います。
上記でも記載したように、WinSCPではプロトコルをsftpに設定し接続していました。
このことも大きくかかわるのでしょうか。

Q:以上をふまえて、最終目的である、客先用のユーザーuserkyakusakiには一部のディレクトリしかアクセスできないようにするための設定としては、上記サイトのやりかたであってますか?
sftpで接続しているならこの方法がいいよ!などあれば教えていただきたいです。

恐れ入りますが、ご教授いただければ幸いです。

----------------------------追記20180606-----------------------
【問題1】は解決いたしました!ありがとうございます。

【問題2】について追記いたします。

var/www/html/プロジェクト名/webroot/csv_data/data(すべて所有者centos) 。
→最後のdataディレクトリだけを客先用のユーザーに公開したいです。

パーミッションをあれこれいじっていたのですが、うまくいかず、下記URLを参照にディレクトリ制限を行いました。
リンク内容

しかし、先程まで客先用のユーザーuserkyakusakiでFTPサーバーに接続できていたのが、下記エラーが表示されます。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
「認証ログ (詳細はセッションログを見て下さい):
ユーザ名"dfhonbu" を使用中
サーバが鍵を拒否しました
認証に失敗」
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

下記/etc/ssh/sshd_configの変更内容となります。

# override default of no subsystems #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match group sftponly ChrootDirectory /var/www/html/プロジェクト/webroot/csv_data/data X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp AuthorizedKeysFile /home/userkyakusaki/.ssh/authorized_keys

パーミッションは下記。
/var/www/html/プロジェクト/webroot/csv_data(root:root rwxr-xr-x)/data(userkyakusaki:userkyakusaki rwxr-xr-x)

恐れ入りますがどうかアドバイスお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

over

2018/06/06 02:41

ベストアンサーとなっているので、本欄にて補足です。・「internal-sftp」定義時の設定が足りないように思えます。・ChrootDirectoryを指定している場合は、自ホームの鍵情報を定義してあげましょう。
yuta.a

2018/06/06 02:56

ご回答ありがとうございます。自ホームの鍵情報を定義とは具体的にどのようにすればよろしいでしょうか。よろしければご教授いただきたいです
over

2018/06/06 02:59

ssh 鍵認証 chrootdirectory で検索すればご期待のサイトが見つかると思います。
yuta.a

2018/06/06 04:12

具体的には、「AuthorizedKeysFile /home/userkyakusaki /.ssh/authorized_keys」を追記しました。しかしまだできません。そもそもこれらの設定は、/home~以下しか設定できないわけではないですよね...
over

2018/06/06 04:33

出典頂いているサイトの記載項目をそのまま移行している個所が見受けられますが、おのおのの設定項目を理解されていますか?例えば「sftponly」というグループは当該環境に存在するんですか?
yuta.a

2018/06/06 04:42

はい!グループを追加し、そのグループにユーザーも追加し次のような状態です。・uid=1001(userkyakusaki) gid=1001(userkyakusaki) groups=1001(userkyakusaki),1002(sftponly)
over

2018/06/06 05:03

では、chrootdirectory関連の設定をしなかったとして、ssh鍵認証はできる状態ですか?
yuta.a

2018/06/06 06:31

ssh接続でサーバーにログインは可能です!!!
over

2018/06/06 06:41

その場合、WinSCPでも接続可能ですか?
yuta.a

2018/06/07 00:11

シンボリックリンクを書いたら成功しました!!!!!ご丁寧にありがとうございました!!!!
guest

回答2

0

ベストアンサー

やるべきは2点です。

  • 客先用ユーザーでのSSHログイン
  • ディレクトリの権限を適切に行う

ログインのメッセージを見ると ユーザ名"dfhonbu" を使用中 とありますが、なぜ客先用のユーザー名ではないのですか?
また、鍵認証をしたい場合はサーバー側に公開鍵の設定が必要になりますが、そちらは完了しているでしょうか?
(そもそも鍵認証が通っていればパスワードは不要なのですが…)

ディレクトリの権限設定は所有者と所有グループ、その他のユーザーについて適切に行なってください。
例えば var/www/html/プロジェクト名 の権限が 0755 となっている場合は客先用ユーザーからも参照できてしまいます。
詳しくはご自身で調べてみてください。

y_waiwaiさんからの回答にもありますが、 vsftpd は不要だと思います。

投稿2018/06/05 06:21

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuta.a

2018/06/05 06:32

ご回答ありがとうございます。 ・ログインのメッセージを見ると ユーザ名"dfhonbu" を使用中 とありますが、なぜ客先用のユーザー名ではないのですか? →すみません、dfhonbu=客先用のユーザー名(ここで説明しているuserkyakusaki)です。 ・鍵認証をしたい場合はサーバー側に公開鍵の設定が必要になりますが、そちらは完了しているでしょうか? →再度確認いたします。 ・ディレクトリの権限設定は所有者と所有グループ、その他のユーザーについて適切に行なってください。 例えば var/www/html/プロジェクト名 の権限が 0755 となっている場合は客先用ユーザーからも参照できてしまいます。 →そうですか!貴重なアドヴァイスありがとうございます。 全体的に思ったのですが、1つのユーザーに対して1つSSHでログインして、またそのユーザーのための設定をしてあげなければならないのですね!無知ですみません。。。
yuta.a

2018/06/06 01:39

度々すみません。 追加した客先用のユーザーにてSSH接続完了し、WinSCPにてFTPサーバーに接続も可能になりました。 あとはディレクトリ制限をしたく、私が行った内容を追記いたしましたので、ご確認いただけないでしょうか。恐れ入りますがよろしくお願いいたします。
mather

2018/06/06 02:21

追記の内容をみてもSSH接続完了しているように見えないのですが、どういうことでしょうか…? パーミッションに関しては実際に客先用アカウントでログインして確認するのが一番いいのですが、csv_dataも閲覧できてしまうと思いますよ。それがなぜなのかは下記を参考にするなどして、一旦ご自身で調べてください。 https://qiita.com/shisama/items/5f4c4fa768642aad9e06 なお、パスの書き方がおかしいです。/csv_dataと書いてしまうと / (ルートディレクトリ)直下に csv_data が存在することになってしまいます。 無用に改行を入れずフルパスを記載したほうが齟齬が生まれないと思います。 /var/www/html/プロジェクト/webroot/csv_data
yuta.a

2018/06/06 02:53

ご回答・ご指摘ありがとうございます!!! URL参考にさせていただきます!!!!!
guest

0

まず、客先ユーザでSSHでログインできるようにする必要があります
それができれば、同じ設定でWinSCPでアクセスできるようになります
vsftpd は必要ありません

投稿2018/06/05 05:50

y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2018/06/05 06:29

まーそゆはなしですねえ。 まずはSSHログインできるようにして、あとは権限設定になりますが、そこらへんはぐぐると設定例がたくさん出てきますねー
yuta.a

2018/06/05 06:33

ありがとうございます! 大変参考になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問