Pardus XFCE vs. GNOME:公平なメモリベンチマークでわかることとわからないこと
Pardus XFCEとGNOMEのメモリ使用量を公平に比較します。公式の25.2ソースコードで確認できる内容、利用可能なRAMの測定方法、そしてどちらのエディションがあなたのPCに適しているかをご覧ください。
Ubuntu 24.04 で SSH ユーザーを特定のディレクトリに制限する最も安全な方法は、OpenSSH の `/ ChrootDirectorysudo` を使用することですForceCommand internal-sftp。これは、アカウントがファイル転送のみを必要とする場合に最適です。これにより、ユーザーには選択したディレクトリをファイルシステムのルートとする SFTP ビューが提供され、対話型シェルと SSH 転送はブロックされます。
ユーザーが本当に通常のシェルを必要とする場合は、判断が異なります。chrootされた対話型シェルには、jail内に独自のシェルバイナリ、ライブラリ、デバイスノード、およびサポートファイルが必要です。OpenSSHはこのことを明示的に文書化しています。ほとんどのアップロード、バックアップ、代理店、ベンダー、および共有ホスティングアカウントでは、SFTP専用のchrootの方がはるかに簡単で、エラーも発生しにくいです。完全なコマンド環境を必要とする信頼できないユーザーの場合は、シェルchrootを手動で構築するよりも、コンテナまたは専用のVMの方が通常は管理が容易です。
このガイドでは、Ubuntu 24.04 LTS と、という名前のサンプルユーザーを使用しますalice。このユーザーは に制限され/srv/sftp/alice、 内でのみ書き込みが許可されます/files。サーバーに合わせて名前とパスを置き換えてください。
chroot の最も一般的な失敗は、パーミッションが原因です。OpenSSH では、パスのすべてのコンポーネントChrootDirectoryが root によって所有され、グループや他のユーザーによって書き込み可能であってはならないと要求されます。この要件は無条件にチェックされます。つまり、/srv/sftp/aliceを によって書き込み可能にしてはいけませんalice。
代わりに、jail のルートを root 所有者にして、書き込み可能な子ディレクトリを作成します。
/srv/sftp/alice root:root 755
└── files alice:alice 755
この設計は、Ubuntu 24.04sshd_config(5)マニュアルに記載されている動作に準拠しています。同マニュアルにはinternal-sftp、chroot 内に余分なランタイム ファイルを必要としないため、ファイル転送が制限されたアカウントに最適であると記載されています。

ssh.service。必要に応じてサーバーパッケージをインストールしてください。
sudo apt update
sudo apt install openssh-server
sudo systemctl status ssh.service
Ubuntu の公式 OpenSSH ドキュメントでは、openssh-serverデーモン パッケージとssh.serviceサービス管理に を使用しています。Ubuntu Server OpenSSH ガイドを参照してください。
これがリモートマシンで、SSHが唯一の管理手段である場合は、変更作業中は既存の管理者セッションを開いたままにしておいてください。SSHの設定に問題があると、アクセスできなくなる可能性があります。

制限付きユーザー用のグループを作成します。alice既に存在する場合は、そのユーザーのみをグループに追加します。
sudo groupadd sftpusers
sudo adduser alice
sudo usermod -aG sftpusers alice
id alice
既にSSH公開鍵を使用している場合は、そのまま使用してください。chrootの設定は認証後の動作を制御するものであり、鍵認証からパスワード認証に切り替える必要はありません。
グループベースのルールは、Match Userアカウントごとに個別のブロックを設定するよりも通常は優れています。ポリシーを1か所に集約できるからです。ただし、異なるユーザーをそれぞれ無関係なレイアウトに制限する必要がある場合は、ユーザーごとのルールも依然として有効です。

fileschroot環境のルートディレクトリはrootユーザーが所有したままであり、制限付きユーザーが書き込み可能なのは子ディレクトリのみです。ディレクトリ階層を作成します。
sudo mkdir -p /srv/sftp/alice/files
sudo chown root:root /srv/sftp/alice
sudo chmod 755 /srv/sftp/alice
sudo chown alice:alice /srv/sftp/alice/files
sudo chmod 755 /srv/sftp/alice/files
所有権を確認する:
ls -ld /srv /srv/sftp /srv/sftp/alice /srv/sftp/alice/files
namei -l /srv/sftp/alice
/srvまたはがグループ書き込み可能またはユーザー書き込み可能になっている場合は/srv/sftp、それも修正してください。OpenSSHは最終ディレクトリだけでなく、パスのすべての構成要素をチェックします。

Match Groupは、chroot および SFTP 専用ポリシーを のメンバーにのみ適用しますsftpusers。Ubuntuの現在のサーバードキュメントでは、カスタムSSH設定を/etc/ssh/sshd_config.d/パッケージ化されたメインファイルに混ぜるのではなく、別のファイルに保持することを推奨しています。以下のスニペットを作成してください。
sudo nano /etc/ssh/sshd_config.d/90-sftp-restricted.conf
追加:
Match Group sftpusers
ChrootDirectory /srv/sftp/%u
ForceCommand internal-sftp -d /files
DisableForwarding yes
PermitTTY no
Match all
%uは認証されたユーザー名に展開されるため、aliceに配置されます/srv/sftp/alice。-d /files引数は、内部 SFTP サーバーに書き込み可能な子ディレクトリ内で起動するように指示します。 はDisableForwarding yes、1 つのディレクティブで X11、エージェント、TCP、および StreamLocal 転送を無効にします。これは、制限付き構成を簡素化するために特に文書化されています。
最後の部分はMatch all、後の設定が解析される前に条件付きコンテキストを終了するため、スニペットにおいて重要です。

同じレイアウトの複数のユーザーについては、上記のグループルールを維持してください。例外的な単一のアカウントについては、代わりにユーザー固有のブロックを使用してください。
Match User vendor1
ChrootDirectory /srv/vendor/vendor1
ForceCommand internal-sftp -d /incoming
DisableForwarding yes
PermitTTY no
Match all
管理コストに基づいて選択してください:
| シナリオ | 最良のルール | なぜ |
|---|---|---|
| 同じ構造を持つアップロード専用ユーザー多数 | Match Group | すべての会員に適用されるポリシーは1つです。 |
| ベンダーごとに固有のディレクトリが必要です | Match User | 経路や制限は、他者に影響を与えることなく異なっても構わない。 |
| ユーザーには通常の対話型シェルが必要です | このSFTP専用レシピは使用しないでください | 対話型のchroot環境には、完全な実行環境が必要です。 |
| 信頼できないユーザーはコマンドと強力な隔離を必要とします | コンテナまたはVMについて考えてみましょう | 完全な実行環境の定義と更新が容易になる。 |

ファイル編集後すぐにSSHを再起動しないでください。まずUbuntuが推奨する構文テストを実行してください。
sudo sshd -t
出力がない場合は、構文チェックが成功したことを意味します。また、特定のユーザーの有効な設定を確認することもできます。
sudo sshd -T -C user=alice,host=localhost,addr=127.0.0.1 | grep -E 'chrootdirectory|forcecommand|disableforwarding|permittty'
想定されるchrootパスと強制SFTPコマンドが表示されるはずです。これはUbuntuでは特に便利です。設定は、/etc/ssh/sshd_configと以下の両方のファイルから取得される可能性があるためです/etc/ssh/sshd_config.d/。Ubuntuでは、OpenSSHは通常、ほとんどのディレクティブに対して最初に取得した値を使用するため、どちらのファイルが優先されるかを推測するよりも、有効な設定を確認する方が安全です。

変更を適用する:
sudo systemctl restart ssh.service
sudo systemctl status ssh.service
次に、別の端末から接続します。
sftp alice@server.example.com
SFTP内でテストします。
pwd
ls
put test.txt
ls -l
上記の構成では、初期SFTPディレクトリは になります/files。SFTPによって表示されるスラッシュはchrootのルートであり、実際のサーバーのルートではありません。
通常のシェル試行では、無制限のシェルが生成されるべきではない。
ssh alice@server.example.com
ForceCommand internal-sftpこのアカウントは、要求されたセッションをプロセス内のSFTPサーバーに置き換えるため、意図的にコマンド実行ではなくファイル転送を目的としています。

/etcやなどのパスは、 /rootchroot の外部から見えるようになってはなりません。見かけ上のルートよりも上位に移動して、機密性の高いホストパスを調べてみてください。
cd ..
ls /
ls /etc
ls /root
chroot の内部では、ホスト上で が/表されます。その jail 内にまたはディレクトリを作成しなかった場合、ユーザーはホストの実際の または にアクセスできません。/srv/sftp/aliceetcroot/etc/root
また、へのアップロードもテストしてください/files。エスケープをブロックするものの、誤ってjail全体を読み取り専用にしてしまう設定は安全ですが、アップロードアカウントには役立ちません。
ログインがすぐに失敗した場合は、SSHサービスのログを確認してください。
sudo journalctl -fu ssh.service
UbuntuのOpenSSHガイドでは、トラブルシューティングにSSHサービスジャーナルを使用することを推奨しています。所有権またはモードのエラーが表示された場合は、すべての親ディレクトリを調べてください。
namei -l /srv/sftp/alice
chroot パスは root が所有し、グループや他のユーザーが書き込みできないようにする必要があります。よくある間違いは次のとおりです。
sudo chown alice:alice /srv/sftp/alice
OpenSSHのチェックを弱めることで問題を解決しないでください。代わりに、ユーザーの書き込み可能領域をchrootルートの下に配置してください。
sudo chown root:root /srv/sftp/alice
sudo chmod 755 /srv/sftp/alice
sudo chown alice:alice /srv/sftp/alice/files
ChrootDirectory対話型シェルでも使用できますが、セットアップはかなり複雑になります。OpenSSHによると、対話型chrootには少なくともシェルと基本/devノードに加え、許可するコマンドに必要なバイナリ、ライブラリ、名前解決ファイル、その他の依存関係が必要です。
厳密に管理されたアプライアンスアカウントであれば、このような隔離環境を構築することは正当化されます。しかし、一般的なLinuxコマンドアクセスにおいては、ツールやライブラリのセキュリティアップデートも隔離環境内に反映させる必要があるため、メンテナンスの負担が増えることがよくあります。実際の要件が「このユーザーにコマンドを実行させるが、ホストから隔離する」ことであれば、コンテナ、仮想マシン、または専用に構築された制限付きサービスの方が、監査が容易な場合が多いでしょう。
ディレクトリ制限は、あくまでも一つの対策にすぎません。インターネットに接続するサーバーの場合は、以下の点も考慮する必要があります。
sudoアクセス権を与えないでください。DisableForwarding yesSSH接続がトンネルやエージェント転送に再利用されないように、SFTP専用アカウントでのみ使用してください。journalctl -u ssh.service。ChrootDirectory、、、およびの具体的な動作についてはMatch、Ubuntu 24.04 OpenSSH サーバー設定マニュアルを参照してください。Ubuntu 固有の設定レイアウト、検証、再起動コマンド、およびログ記録については、Ubuntu OpenSSH サーバーの公式ドキュメントを参照してください。ForceCommandDisableForwarding
目的が「この SSH アカウントは、1 つのディレクトリ内でのみファイルのアップロードとダウンロードを許可する」ことであれば、root が所有するディレクトリを使用しChrootDirectory、書き込み可能なコンテンツをユーザー所有の子ディレクトリに配置し、強制的にinternal-sftp設定します。sshd -t再起動する前に で検証し、許可されたアップロード パスと、jail 外からのアクセス試行の両方をテストします。これにより、chroot 内に完全な Linux 環境を構築することなく、小さく分かりやすいセキュリティ境界を実現できます。
Pardus XFCEとGNOMEのメモリ使用量を公平に比較します。公式の25.2ソースコードで確認できる内容、利用可能なRAMの測定方法、そしてどちらのエディションがあなたのPCに適しているかをご覧ください。
ビジネス向けデスクトップOSであるHamoniKR OS 8 Paektuの実践的なレビュー。Ubuntu 24.04をベースとしている点、2034年までのアップデート保証、韓国のワークフロー、企業向けパイロットテストなどを網羅しています。
GRUBリカバリモードを使用して、HamoniKR OSで忘れてしまった管理者パスワードまたはrootパスワードをリセットする方法を、検証済みのコマンド、トラブルシューティングのヒント、および暗号化に関する注意点とともに解説します。
HamoniKRのユーザー設定を外部ドライブにバックアップする方法、アーカイブを検証する方法、選択したデスクトップおよびアプリの設定を安全に復元する方法を学びましょう。
SUSE Linux Enterprise Server 上で LUKS 暗号化ボリュームを作成、ロック解除、フォーマット、マウント、および永続化する方法を学びましょう。安全チェックと復旧のヒントも含まれています。
SUSE Linux Enterprise 上の Btrfs 読み取り専用ファイルシステムを安全に診断します。変更を加える前に、マウントオプション、Snapper スナップショット、カーネルログ、ストレージの状態、およびリカバリ制限を確認してください。
AutoYaST を使用して SLES 15 のインストールを自動化します。XML プロファイルの作成と検証、安全な配信、テストシステムの起動、および展開結果の検証が可能です。
Ubuntu 24.04 LTS で失われた HDMI オーディオを復元するには、ディスプレイの接続を確認し、正しいサウンド出力を選択し、PipeWire を検査し、ハードウェア検出を確認します。
wickedファイルとifcfgファイルを使用して、SLES 15のネットワークボンディングを設定します。ボンディングモードを選択し、ボンディングをアクティブ化して、フェイルオーバーとリンクの状態を確認します。
Ubuntu 24.04 で Bluetooth ヘッドセットのマイクを復元するには、入力デバイス、HSP/HFP プロファイル、アプリ設定、PipeWire サービス、Bluetooth パッケージ、およびペアリングを確認します。