重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

に限定する方法を教えてください

サーバーを192.168.2.10としてサーバの設定ファイルを
/etc/ssh/sshd_config:
...................
...................
Match User apache
ForceCommand internal-sftp
ChrootDirectory /var/www/html

とすると以前はできていたのですが
最近はこれで以下のエラーが発生し接続できません
$ ssh apache@192.168.2.10
packet_write_wait: Connection to 192.168.2.10 port 22: Broken pipe

設定ファイルの3行を削除すると接続できますが/var/www/html以下のディレクトリにアクセス制限できません

どうしたらこの問題を解決しクライアントに対してディレクトリのアクセス制限ができるでしょうか?

A 回答 (3件)

最初に私自身にはApacheの知識が皆無であることをお断りしておきます。


「バカが寝ぼけたことを。」と考えながらお読みいただくとして、その上でですが...

1.以下の資料を参照すると...

https://zenn.dev/y_mrok/articles/ssh_security_me …

「configファイルの構文チェックをやれよ!」ということになっています。お試しになったら如何でしょうか...

sudo /usr/sbin/sshd -t

2.以下の資料を参照すると...

https://l-w-i.net/t/openssh/conf_001.txt

ForceCommandはMatchオプションに付随する機能であることが説明されていますが(資料の一番下にMatchの設定例が載ってます。)、それに対しChrootDirectoryはMatchオプションに付随する機能ではないようです。全くの推測ですが「ChrootDirectoryオプションの設定をMatch行の上に移動すれば良いかも。」の様に思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
いろいろ順番を入れ替えても同じでした
ご提案の資料を確認していろいろ試してみます

お礼日時:2025/01/07 09:55

Chrootするといろいろ面倒(chrootした先にetcディレクトリやetc/passwd等がないとファイル一覧取得したときにユーザー名が見えない…とか。

vsftpdのほうだったかな?)ですが…
/etc/passwdファイルで、そのユーザーのホームディレクトリを設定する。
というのではダメなんでしょうか?
chrootしていないと上位のディレクトリや他のディレクトリへの移動も可能かもしれませんが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
実はサーバーの相手はWindowsPCで
sshでなくwinscpを使ってサーバーの/var/www/html配下のディレクトリ、ファイルだけが見えるようにしたかったのです
ssh apache@192.168.2.10でその検証をしていたのです
クライアントに関係無いものを見せない、触らせないということです
見えてしまうと悪さされるだけでなく余計なものが見えるので混乱するということです(特にlinuxを知らない人にとって)

お礼日時:2025/01/07 16:03

余計なことと思いましたが、以下の資料も参考になりそうです...



https://ameblo.jp/yukozutakeshizu/entry-12443078 …

私の環境ではsshd_configファイルの設定は以下のようになっています(デフォルト設定です。)。

# override default of no subsystems
Subsystem sftp /usr/lib/openssh/sftp-server
    • good
    • 0
この回答へのお礼

再度ありがとうございます
ご提案の方法は既にやっていました
そもそも当初動いていたのでルール上は合っていて
その後に追加した何らかの設定との相性で動いていないものと思われます
何がそれに相当するかわかれば良いのですが
一例として以前
/etc/httpd/conf/httpd.conf
にリバースプロキシの設定したのでそれが悪さをしているかと思い
リバースプロキシの設定を外してみましたが
同じくダメでした
相性の問題だと同じ経験をしている人でないと解決できないのではないかと思っています
centosを再インストールして再構築するときに
ひとつひとつの設定をするたびにsshしてみれば原因がわかると思いますが
すでに稼働しているシステムが存在するので
暇なときに別のPCでやってみるしかなさそうです

お礼日時:2025/01/07 12:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A