サーバーでのユーザID/パスワードの管理方法 〜システム管理研究室〜



 ナビゲータのEVEです。
ハッカー.jpg
 昨日までは、DBへ接続するためのユーザーIDとパスワードを ハードコーディング する場合、どうしたらいいのかという検討をしてきました。
 本日は、同ユーザIDとパスワードをどのような形で管理をしたらいいのか具体的な検討に入りたいと思います。

[管理方法]
 ChatGPTは管理する形式について、一例ですが、以下の方法を提案しています。

?@INIファイル
?AJSONファイル
?B環境変数
?CPHPファイル


 以上のファイルをどのように管理するのかその保管方法について以下の内容で提案しています。

1)ファイルのアクセス権限
2)機密情報の暗号化
3)ファイルの場所
4)サーバーのログに記録されないように



[検討]
 ファイルを指定して、中身に定義している変数の内容を取り出すのはどの形式のファイルでも同じようです。そのため、プログラミングの 生産性 という意味では、?@〜?Cにおいては、同じと言うことになります。それでは、次に1)〜4)の セキュリティ について考えて見ましょう。
 1)は当然リリース時に実施します。 所有者はApache でそれ以外のユーザーに利用させないようにします。現在は以上のように設定していますが、EVEシステムでは 構成管理システム で自動で行う予定としています。
 2)はどうでしょうか?DBへ接続するユーザーとパスワードのユーザを格納するファイルを 暗号化 した場合、当然 復号 しなければ利用できません。それを、データベースを利用するたびに実施するのでしょうか?この方法は現実的ではありません。私の作るシステムでは利用は難しいようです。
 3)ファイルの格納場所ですが、どこがいいでしょうか、 Windows ユーザーにはあまり知られていませんが、Linux系OSの各フォルダには役割が決まっています。この機会に、 Ubuntu で利用している各フォルダの役割についてChatGPTに解説をしてもらいましょう!

?/bin (Binary):
役割: このディレクトリには、システムの基本的なコマンドやプログラムが格納されています。システムが実行されているときに必要なコマンドがここにあります。
?/boot:
役割: システムの起動に必要なブートローダ、カーネルイメージ、および関連するファイルが格納されています。ブートプロセスで使用されます。
?/dev (Device):
役割: デバイスファイルが格納される場所です。デバイスファイルはハードウェアや仮想デバイスと通信するための特殊なファイルです。
?/etc (Editable Text Configuration):
役割: システムの設定ファイルが格納される場所です。ほとんどのシステムの設定はこのディレクトリ内のファイルで管理されます。
?/home:
役割: ユーザーホームディレクトリがここに格納されます。各ユーザーはここに自分専用のディレクトリを持ち、そこに個人用のファイルや設定が保存されます。
?/lib (Library):
役割: 共有ライブラリが格納される場所です。システムとアプリケーションプログラムが使用する共有のライブラリがここにあります。
?/media:
役割: 可能な場合には、リムーバブルメディア(USBドライブ、CD-ROMなど)が自動的にマウントされるディレクトリです。
?/mnt (Mount):
役割: 一時的にファイルシステムをマウントするためのディレクトリです。通常、外部のデバイスやネットワークファイルシステムをここにマウントします。
?/opt (Optional):
役割: オプションのソフトウェアパッケージが通常ここにインストールされます。これにはサードパーティのアプリケーションが含まれます。
?/proc (Process):
役割: カーネルとプロセスに関連する情報が仮想ファイルシステムとして提供されます。実行中のプロセスやシステムのステータスにアクセスできます。
?/root:
役割: rootユーザーのホームディレクトリです。通常のユーザーのホームディレクトリは/homeにあります。
?/run:
役割: 実行時に生成されるデータやプロセスの一時ファイルが格納されます。一時的なデータやPIDファイルがここに配置されます。
?/sbin (System Binary):
役割: システムの管理者が使用する管理コマンドやシステム設定に必要なプログラムが格納されています。
?/srv (Service):
役割: システムが提供するサービスに関連するデータが格納される場所です。例えば、Webサーバーのドキュメントルートがここに配置されることがあります。
?/sys (System):
役割: カーネルとハードウェアに関する情報が提供されるディレクトリです。/procと同様に、仮想ファイルシステムです。
?/tmp (Temporary):
役割: 一時的なファイルが格納される場所です。通常、システムが再起動するときに削除されます。
?/usr (Unix System Resources):
役割: システムのほとんどのプログラムやファイル、ライブラリがここに配置されます。通常は共有されるリソースが格納されるディレクトリです。
?/var (Variable):
役割: システムの変動するデータ(ログファイル、データベースファイル、メールなど)が格納される場所です。頻繁に変更されるデータがここに保存されます。


以上の調査結果から、 etc がふさわしいようです。
 4)については、セキュリティにおいてログの管理方法を検討する機会があります。その時にどうしたらいいのか検討したいと思います。そのため、ここでの検討は省略します。

[あとがき] 
 今日も時間がきましたので、この辺までとさせていただきます。

 現在、クラスを製造していますが、そろそろ、文字クラスの製造の終わりが見えてきました。以前、以下のクラスを作ると話していました。

■DB関連class ← 作成済み
・データベース検索メソッド
・Fetchメソッド
・テーブル一覧取得メソッド
・SQLdbqueryメソッド
・レコード追加メソッド
・レコード更新メソッド
・レコード削除メソッド
・トランザクション開始メソッド
・コミットメソッド
・ロールバックメソッド
・レコード件数取得メソッド
・エラーメッセージ取得メソッド
・エラーNo取得メソッド
・トランザクション変数取得メソッド


■ファイルClass
・ファイル取得メソッド
・ファイルコピーメソッド
・ファイル書き出しメソッド
・ファイル削除メソッド
・ファイル読込メソッド
・コンテンツ取得メソッド

■数値Class
・数字チェックメソッド

■文字Class
・配列⇔文字列変換メソッド
・乱数取得メソッド
・文字列編集メソッド
・文字列部分取り出しメソッド
・指定文字列検索メソッド
・指定文字列削除メソッド
・html⇔文字列変換メソッド

■時間Class
・現在日付取得メソッド
・日付取得メソッド
・タイムスタンプ編集メソッド

■セキュリティClass
・SHA3ハッシュ値取得メソッド

■配列Class ← 作成済み
・配列結合メソッド
>

■メールClass
・メール送信メソッド

■メッセージClass
・メッセージ出力メソッド
・エラーログ出力メソッド


ただ、予定が変わり、現在は、文字クラスなら、Prototype EVEで利用していた関数をすべてクラスに変更しています。理由は、文字クラスならそのクラスで文字列に対する機能を プロパティ メソッド 等という形で提供していることを作っている途中で悟ったからです。そのため、配列Classは1つしかメソッドを記述していませんが、それ以外にもメソッドを製造しています。
 その他のクラスも同様に製造する予定です。そのような製造方針で作っていて、2月末日までに製造が完了するかどうか、あやしくなってきました。これから、速度を上げて製造していきたいと思います。

 では、また!

検索
<< 2024年11月 >>
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
最新記事
タグクラウド
カテゴリーアーカイブ
ファン
最新コメント
プロフィール
ゼロから始めるシステム開発さんの画像
ゼロから始めるシステム開発
 こんにちは!ナビゲータのEVEです。各種研究室を用意し、次期EVEシステムを製造しようと日々頑張っています。現在一番力を入れているのが、資金調達です。このブログもその一環ですので、ご協力いただければ嬉しいです。

2024年01月20日

この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/12393937
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: