私が所属するチームは、マシン制御用のプロトタイプシステム(複数のC ++プログラム、Ubuntu Server 16.04で実行されているいくつかのIPC、ネットワーク、およびデバイスI / O)の構築を終えました。すべては起動時にsystemdによって開始および管理され、ほとんど自己調整されているため、ユーザーの介入は必要ありません。
今、私たちはシステムをスキャン、コピー、または盗用したい人からシステムを保護しようとしています(彼らが本当に欲しいなら、あなたのコンピュータにアクセスできます)。私たちが考えたアプローチの1つは、必要ではなく、ハッカーがシステムを操作するのをより困難にするシェル/ターミナルをLinuxから削除することでした。私たちのほとんどは、中間レベルのLinuxシステム管理経験を持つアプリケーションプログラマーなので、次の質問があります。
まず、実際に可能ですか?これを明確にするために、ユーザーが同じコマンドを実行できるようにするすべてを削除しようとしています
cd, cat, ls, apt-get, scp
。可能であれば、これは望ましく、実際にはシステムセキュリティが向上する。これを行うには、他の利点や欠点がありますか?他のオプションがありますか?
これはどのように達成できますか?
ベストアンサー1
シェルを無効にすると攻撃サーフェスが制限される可能性がありますが、/usr/binで読み取りアクセスを制限する方がはるかに簡単です。ユーザーのシェルアクセスを制限するには、ログインシェルを/ sbin / nologinに設定することが効果的です。端末で実行できる操作を制限する場合は、次の操作を行います。
- セキュアブートでeistubを使用してください。
Ubuntuはすでにこの状態でなければなりません。
- initramで回復シェルを無効にします。
これには、initramの抽出、initスクリプトの編集、および回復機能からのシェル呼び出しの削除が含まれます。
- システムでttyを無効にします。
なぜなら、あなたはsystemdを使うからです。
systemctl disable [email protected]
システムとまったく対話できません。リモートまたはローカルのメンテナンスが可能なセキュアブートが有効になっている2番目のシステムを使用できます。それ以外の場合は、ハードドライブを取り外し、chrootを使用して他のシステムでそれを変更する必要があります。
これはpttyが生成されるのを防ぎ、SSHが動作し続けることを意味します。