サーバーについて - Shinichi0713/security_specialist GitHub Wiki

linuxとは

Linux(リナックス)は、コンピュータのオペレーティングシステム(OS)で、特にオープンソースであることが特徴。 1991年にリーナス・トーバルズさんが開発を始めて、それ以来、多くの人々によって協力して開発された。 スマホのAndroidやサーバーのシステムもLinuxを基にしてる。

コマンド

sudo

sudoコマンドは、一般ユーザーが一時的に特権(root権限)を取得して特定のコマンドを実行するためのツールです。以下はその基本的な使用法です: 基本的な使用法: sudo <コマンド>の形式で使用します。

pystyle.info 特定のユーザーとして実行: sudo -u <ユーザー名> <コマンド>で特定のユーザーとしてコマンドを実行できます。

pystyle.info 特定のグループとして実行: sudo -g <グループ名> <コマンド>で特定のグループとしてコマンドを実行できます。

pystyle.info セキュリティ向上: 一般ユーザーにrootユーザーのパスワードを知らせる必要がないため、セキュリティが向上します。

engineer-ninaritai.com Ubuntuでの使用: Ubuntuでは、デフォルトでrootユーザーにログインできないため、sudoコマンドを使用してroot権限を取得します。

qiita.com

このように、sudoコマンドはLinux管理の基本的な部分となります。

sudo コマンドの設定

「sudo」コマンドが使えるように許可する設定は「/etc/sudoers」というファイルに記述されています。

この「/etc/sudoers」というファイルは「vi」コマンドなどで直接編集してはなりません。編集する場合は「visudoコマンド」を使用することになっています。「visudo」コマンドでは保存するときに設定ファイルのエラーをチェックしてくれます。

一般ユーザーの設定を個別に記述する場合は「/etc/sudoers.d」ディレクトリの下にユーザー毎のファイルを作成して設定内容を記述することをおすすめします。例えばユーザー「hoge」の設定はviコマンドを用いて「/etc/sudoers.d/hoge」ファイルに記述します。

レジストリサーバ

レジストリサーバーは、主にデータやリソースの情報を管理し、それを利用するための入り口としての役割を果たすサーバー。
例えば、コンテナ技術で使われる「Dockerレジストリ」では、アプリケーションのイメージを保存・共有する役割を果たしているのがレジストリサーバー。
他にも、ドメインネームの管理をするサーバーや、クラウドサービスの管理用レジストリなどもある。

サイバー攻撃の可能性

  1. 認証がない公開状態のレジストリは、誰でもアクセスできるため、機密情報が盗まれるリスク
  2. 攻撃者が不正コードを注入して、レジストリ内のイメージを操作することで、デプロイされるアプリケーションに影響を与える
  3. 特権昇格の脆弱性を利用されると、攻撃者が任意のコードを実行しシステム全体を不安定にする可能性がある

レジストリ

レジストリとは、ドメインのシステムを管理し、ドメイン情報を持つデータベースを運営する機関のことです。
レジストリは「.com」「.net」「.jp」など、「トップレベルドメイン(TLD)」を管理しています。

レジストラとの違い

レジストリと似た言葉で「レジストラ」があります。レジストラとは、ユーザーからのドメインの登録申請受付や販売を行う機関のことです。
レジストリはTLDごとに1つしかないため、ユーザー1人1人へ対応することはできません。レジストリとユーザーの間を取り持つのがレジストラです。
具体的には、レジストラはレジストリが管理するドメインのデータベースへアクセスし、ドメインの登録・変更・削除を行う役割を担っています。

ドメインの発行と管理

レジストリはレジストラからの申請を受け付けて、新しいドメインの発行、登録情報の管理、更新を行います。これにより、インターネット上で各ドメインが一意に識別され、ユーザーが特定のWebサイトにアクセスする際の基盤が提供されます。
ドメインの一意性を保証することは、インターネットの機能性と安全性を確保する上で非常に重要です。また、ドメインには有効期限があり、レジストリはドメインの更新や利用停止などの管理も手掛けています。

代表的なドメインのレジストリ

インターネット上で使用される代表的なドメインには、国際的に認知されているいくつかのレジストリが存在します。
image

CDNサーバー

コンテンツ配信ネットワーク(CDN)は、エンドユーザーの近くでコンテンツをキャッシュする地理的に分散したサーバー群.
CDNを使用すると、HTMLページ、JavaScriptファイル、スタイルシート、画像、動画を含むインターネットコンテンツの読み込みに必要となるアセットを素早く転送することができるようになります。
CDNサービスの人気は高まる一方で、Facebook、Netflix、Amazonなどの主要サイトからのトラフィックを含め、多数のWebトラフィックがCDNを介して提供されています。

CDNは、Webホストと同じですか?

CDNはコンテンツをホストせず、必要とされる適切なWebホスティングサービスの代わりにはなりませんが、ネットワーク Edgeでコンテンツをキャッシュするために役立ち、それがWebサイトのパフォーマンスを向上させています。
多くのWebサイトが従来のホスティングサービスでパフォーマンスのニーズを満たそうと苦労しています。これが、CDNが選ばれる理由です。
CDNを利用すると、キャッシングを活用してホスティング帯域幅を減らすこと、サービスの中断を防止すること、セキュリティを向上させることが可能なため、従来のWebホスティングに付随する大きな難問を解決するためによく選ばれています。

DDoS攻撃への対策

DDoS攻撃でやっかいなのは、対策が極めて難しい点です。たとえばWebサイトへの不正侵入を試みるサイバー攻撃であれば、通常のアクセスとは異なる異常な通信を検出したり、あるいは特定した攻撃元からのアクセスを遮断したりすることで対策することが可能です。   しかしDDoS攻撃は正常な通信で大量のデータをサーバーに送り込むため、正常な通信と見分けることができません。また攻撃元も多数存在するため、そのすべてをリストアップしてアクセスを遮断することも難しいのが実情です。
仮にサーバー側で何らかの対策を行ったとしても、インターネットに接続している回線が詰まってしまうという問題もあります。DDoS攻撃によって大量のパケットが送り込まれ、それによってインターネット接続回線の帯域が消費されてしまうと、正当なユーザーもWebサイトにアクセスすることは不可能になります。つまりサーバーにダメージを与えなくても、大量の通信によって回線を詰まらせることができればDDoS攻撃は成功になるわけです。
DDoS攻撃からWebサイトを守るため、脚光を浴びているのがCDN(Contents Delivery Network)と呼ばれるサービスです。これは世界中に配置されたキャッシュサーバーを利用してWebサイトのコンテンツを配信するというサービスであり、もともとWebサイトのレスポンス向上を目的として利用されていました。

コンテンツサーバーとキャッシュサーバー

コンテンツサーバーはウェブサイトやアプリケーションの「本体情報」を保存・配信する場所で、例えば画像やビデオ、テキストなど、コンテンツの「原本」がそこにある
キャッシュサーバーはその情報のコピーを保存して、ユーザーに素早く提供する役割を持つ
キャッシュサーバーはアクセス速度を上げたり、コンテンツサーバーの負担を減らしたりするのに活躍する

エージェントソフトとクライアントソフトの違い

エージェントソフトは「働くスタッフ」、クライアントソフトは「お客さん」

エージェントソフト

特定の作業を自動的に実行するために設計されたプログラム
サーバーやネットワーク環境で動作して情報を集めたり、タスクを実行したりする
例えば、データ監視やバックアップの作業を行うことが多い

クライアントソフト

ユーザーが直接操作して、サーバーやサービスにリクエストを送ったり、情報を受け取ったりするために使われるプログラム

⚠️ **GitHub.com Fallback** ⚠️