ゼロからわかるLinuxサーバー超入門 Ubuntu対応版
補足解説
カーネルアップデート P.124
時折,
ただし,
また,
そのため,
DNS P.17, 144, 308
- ※この内容は,
少し難しいので, 本書読了後に読んで下さい。
我々が,
レストランに向かう時, その場所の住所を頼りに店を探します。 同じように,
サーバーや, クライアントがネットワーク上のどこにいるのか? を表す住所のようなものがIPアドレスです。118. 11. XX. XXXのような数字の組みあわせであらわされます。 ですから,
Webサーバー (Webページ) にアクセスする時も, 本来ならIPアドレスでアクセスするのですが, 毎回 「118. 11. xxx…」 と入力するのは, 覚えづらいです。そこで, 人間にも分かりやすいように, アルファベットなどの文字列 (URI) でアクセスできるようにしている仕組みがDNS (Domain Name System=ドメイン ネーム システム) です。URIの 「gihyo. jp」 や 「mofukabur. com」 のような部分のことを, 「ドメイン」 と言います。IPアドレスが住所なら, ドメインは建物のニックネームのようなものです。 たとえば,
閲覧者が, 「www. mofukabur. com」 にアクセスしようとした時に, 「www. mofukabur. comのIPアドレスは, 118. 11. xxx…です」 と建物のニックネームから実際の住所を教えてくれるのがDNSなのです。 これを
「名前解決」 と言います。そして, 問い合わせを行うソフトウェアを 「リゾルバ(resolver)」と言います。 一つの名前解決を行うのに必要なDNSサーバーは,
複数です。一つのDNSサーバーが世界中のドメインを解決できるわけがないので, 情報は分散しているのです。 例えば,
閲覧者が 「www. mofukabur. com」 とブラウザなどに入力すると, まずは, 閲覧者が使っているプロバイダのDNSサーバーに問い合わせ, そこからいくつかのDNSサーバーを経由して, ルートDNSサーバーに辿り着きます。 ルートDNSサーバーは,
ドメイン名を右側から見ていって, 「jp」 のドメインなら, 「jpを担当するDNSサーバー」 に問い合わせします。jp担当DNSサーバーは, 更に次の 「DNS, 次のDNSは更に次のDNSとバケツリレーのようにたどり, 実際にその対応を知っているサーバーに問い合わせるのです。そして, 帰ってきた答えもバケツリレーで伝わります。 DNSサーバーを設定するには,
まず, 自分のサーバーにbindなどのソフトウェアをインストールし, その設定ファイルに, 「www. mofukabur. com」 といったドメイン名とIPアドレスとの関係を記述します。これを 「レコード」 と言います。 これだけでは,
他の人からの問い合わせが, このDNSサーバーに来ないので, 上位のDNSサーバーからたどられるように, 構築したDNSサーバーのIPアドレスを登録してもらうように依頼します。この依頼は, 通常, ドメインを取得した会社 (レジストラ) に申請します。最近はフォームから入力すると, 1日程度で反映してもらえます。 なお,
近頃では, 自前でDNSサーバーを立てることは少なくなっており, ドメイン事業者が運営しているDNSサーバーを使ったり, クラウドで借りたりすることが多くなっています。
※同人誌
これはあくまで初心者のためのザックリとした説明です。DNSの仕組みに興味を持ったら,
メールの仕組み P.17, 308
- ※この内容は,
少し難しいので, 本書読了後に読んで下さい。また, 先に前項のDNSの仕組みを読んで理解しておいてください。
メールの送受信はメールサーバーが担当します。正確には
「SMTP (Simple Mail Transfer Protocol )サーバー」 という名前です。メールをトランスファー (転送) するプロトコルを使ったソフトウェアです。 実際にメールを送信する場合,
どのような経路をたどるのか説明していきましょう。 仮に,
ニャゴロウが, チロ氏にメールを送るとします。ニャゴロウが, クライアントパソコンの中にあるメールソフト (MUA=Mail User Agent) で送信ボタンを押すと, ニャゴロウの契約しているメールプロバイダのメールサーバーに送られます。会社の場合は, 会社のメールサーバーのこともあります。 それらのメールサーバー(MTA=Mail Transfer Agent)は,
メールを受け取ると, いったん, キューと呼ばれる場所に貯めます。そしてキューから適時メールを取り出して, 転送処理を始めます。メールの転送処理では, 宛先の 「@以下のドメイン」 をDNSサーバから探します。具体的には 「MX (Mail Excahnge)」という設定のDNSのレコードを参照します。 ここには,
そのドメインのメール受信を担当するメールサーバーのIPアドレスの一覧が書かれており, 該当のサーバー (チロのプロバイダ) に接続して, メールを転送します。 転送されたメールは,
チロのプロバイダにて, 「@」 よりも前のユーザー名の部分 (chiro) が確認され, 存在するユーザーであれば, 「MDA (Mail Delivery Agent)」 が, そのユーザーのメールボックス (サーバー上の, そのユーザー専用のディスク領域) に保存します。 ここまでがメールの送信操作です。
受信する場合は,
ユーザーは, サーバーに接続して, このメールボックスを読み出します。メールの受信側は, なんとなく勝手に送られてくるイメージがあるかもしれませんが, そうではなく, 取りに行っています。メールが自動で届くように感じるのは, メールソフトが定期的に取りに行っているからに過ぎません。 メールボックスの読み出しには,
SMTPではなく, POP3やIMAP4などのプロトコルが使われます。POP3はダウンロードして読み出すもの, IMAP4はサーバに置いたまま操作するものです。 メールサーバの構築方法は,
SMTPサーバー (メールの転送) と, POP3サーバーやIMAP4サーバー (メールボックスの読み出し) とで異なります。 SMTPサーバーの場合は,
SendmailやPostfixなどのソフトをインストールします。インストールする際には, 担当するドメイン名 (受信するドメイン名) を設定します。構築が終わったら, そのサーバーをDNSのMXレコードに登録することで, 他から, そのドメイン名宛てのメールを受け取れるようになります。 SMTPサーバーを構築する場合は,
関係のない人に使われないようにすることが必要です。そうしておかないと, 構築したSMTPサーバーを使って, 大量のSPAMを送信されてしまう恐れがあります。こうしたことがないよう, 接続を社内のIPアドレスに絞ったり, ユーザー認証を設定して, 送信の際にユーザー名やパスワードを求めるように構成します。 なお近年は,
大量のSPAMが送信されるのを防ぐため, プロバイダによっては, SMTPサーバーがメールを転送するときに使うポート (ポート25番) が塞がれていて, SMTPサーバーを構築しても, メールを送信できないこともあります。 POP3サーバーやIMAP4サーバーの場合は,
SMTPサーバーとは別のソフトをインストールします。たとえば, Dovecotなどです。Dovecotは, POP3とIMAP4の両方に対応するメールサーバーです。受信可能なユーザー (「@」 よりも前の名前) とパスワードを設定しておくと, PCにインストールしたメールソフト (MUA) から接続してそのユーザー宛に届いたメールを受信できます。 なお,
SMTPサーバーとPOP3サーバ/IMAP4サーバーは, 使っているソフトが違うので, ユーザー認証も別物です。ユーザー名やパスワードが違うと紛らわしいので, 通常は, どちらも同じユーザー名・ パスワードでアクセスできるように構成しますが, それは, そのように構成するからであり, 自動で連動するわけではありません。
※同人誌
これはあくまで初心者のためのザックリとした説明です。DNSの仕組みに興味を持ったら,
VMWareネットワーク設定 P.69
現在,
一般ユーザーによるドキュメントルートへのアクセス P.182
ドキュメントルートのディレクトリの所有者がrootになっていると,
ディレクトリやファイルには,
ディレクトリの所有者を変えるコマンド
nyagoro@yellow:~$ sudo chown [変更先ユーザー名] [変更したいディレクトリ]
「/var/www/html」ディレクトリの所有者をnyagoro ユーザーに変える例
nyagoro@yellow:~$ sudo chown -R nyagoro /var/www/html
- ※ -R は中身全ての所有者を変更するオプション
やってみよう
lsコマンドで,
- 「ls」
コマンドで所有者を確認する
入力コマンド
nyagoro@yellow:~$ ls -al /var/
www
出力結果
total 12 drwxr-xr-x 3 root root 4096 Feb 2 08:10 . ←/var/
wwwの所有者 drwxr-xr-x 14 root root 4096 Feb 2 08:10 .. ←/var/の所有者 drwxr-xr-x 2 root root 4096 Feb 7 21:05 html ←/var/ www/ htmlの所有者 - 「chown」
コマンドでhtmlディレクトリの所有者を変更する
入力コマンド
nyagoro@yellow:~$ sudo chown -R nyagoro /var/
www/ html - 「ls」
コマンドでhtmlディレクトリの所有者がnyagoroになっていることを確認する
入力コマンド
$ ls -al /var/
www
出力結果
total 12 drwxr-xr-x 3 root root 4096 Feb 2 08:10 . ←/var/
wwwの所有者 drwxr-xr-x 14 root root 4096 Feb 2 08:10 .. ←/var/の所有者 drwxr-xr-x 2 nyagoro root 4096 Feb 7 21:05 html ←/var/ www/ htmlの所有者
nyagoroに変更されていることがわかります。念のため,htmlに対してもlsコマンドで確認してみましょう。 - 「ls」
コマンドでhtmlディレクトリ内ファイルの所有者を確認する
入力コマンド
$ ls -al /var/
www/ html
出力結果
total 32 drwxr-xr-x 2 nyagoro root 4096 Feb 7 21:05 . ←/var/
www/ htmlの所有者 drwxr-xr-x 3 root root 4096 Feb 2 08:10 .. ←/var/ wwwの所有者 -rw-r--r-- 1 nyagoro root 118 Feb 7 18:16 example. html ←html内ファイル -rw-r--r-- 1 nyagoro root 131 Feb 7 21:03 .htaccess ←html内ファイル -rw-r--r-- 1 nyagoro root 63 Feb 7 21:05 .htdigest ←html内ファイル -rw-r--r-- 1 nyagoro root 10671 Feb 2 08:10 index. html ←html内ファイル
AppArmorの解説 P.304
AppArmorは,
どのディレクトリやどのファイルに対して,
プロファイルには,
現在,
$ sudo aa-status apparmor module is loaded. 33 profiles are loaded. 33 profiles are in enforce mode. ←ここから下のリストが一覧 /snap/snapd/17883/usr/lib/snapd/snap-confine /snap/snapd/17883/usr/lib/snapd/snap-confine//mount-namespace-capture-helper /snap/snapd/17950/usr/lib/snapd/snap-confine /snap/snapd/17950/usr/lib/snapd/snap-confine//mount-namespace-capture-helper /snap/snapd/18357/usr/lib/snapd/snap-confine /snap/snapd/18357/usr/lib/snapd/snap-confine//mount-namespace-capture-helper /usr/bin/man /usr/lib/NetworkManager/nm-dhcp-client.action /usr/lib/NetworkManager/nm-dhcp-helper (中略) 0 processes are unconfined but have a profile defined. 0 processes are in mixed mode. 0 processes are in kill mode.
これら初期状態で設定されているプロファイルの多くは,
このように,
ただこれらはあくまで初期状態です。プロファイルを追加したいこともあるでしょう。
その場合は,
apparmot-profilesを追加するコマンド
$ sudo apt install apparmor-profiles
また,
apparmor-utilsを追加するコマンド
$ sudo apt install apparmor-utils
追加したプロファイルは,
nyagoro@yellow:/etc/apparmor.d$ sudo aa-status apparmor module is loaded. 50 profiles are loaded. 33 profiles are in enforce mode. (中略) 17 profiles are in complain mode. ←ここから下が追加されたもの avahi-daemon dnsmasq dnsmasq//libvirt_leaseshelper identd klogd mdnsd nmbd nscd php-fpm ping (中略) 0 processes are in mixed mode. 0 processes are in kill mode.
名前から想像できますが,
enforceモードに変更するコマンド
sudo aa-enforce [対象ファイルやディレクトリ]
complainモードに戻す変更するコマンド
sudo aa-complain [対象ファイルやディレクトリ]
対象から解除するコマンド(aa-disable)
sudo aa-disable /etc/apparmor.d/sbin.syslog-ng