カテゴリ:13.実際にやってみる > 13.3 Linux

■Kali linux ダウンロード
https://www.kali.org/downloads/

■VMへインストール
・VM workstation plyaerをダウンロード
・あとでOSをインストールする
インストールする際、Linuxでバージョンは「Debian」系である。version は不明
・HD 30G、メモリ1Gで設定
・VMwareツールをインストール
★CTL+ALTで仮想と実環境の切り替え
デフォルトのパスワードはtoor

■起動後
イメージを更新するには
apt-get update
apt-get dist-upgrade

■SMTPで単純なメールサーバを設定してみる。

メールアカウントは以下とする。
user1@example.com

(1)postfixの設定
①インストール
#yum install -y postfix

②main.cfの設定
# vi /etc/postfix/main.cf

myhostname = mx.example.com ※myhostnameやmydomainを指定しなくても可能ではあるが、あちこちでここで設定した値を$myhostnameなどと使っている。なので、設定しておこう 
mydomain = example.com
inet_interfeces=all
mydestination = $myhostname localhost.$mydomain $mydomain ※  $mydomainが含まれているものにしておこう。
mynetworks = 192.168.0.0/24 ←自分のグローバルIPアドレスを含むNWに変更
home_mailbox = Maildir/

sed(stream editor)で置換した方が早そうだ。
sedで流し込む場合は以下

sed -i /etc/postfix/main.cf \
-e "/#myhostname = host.domain.tld/a myhostname = mx.example.com" \
-e "/#mydomain = domain.tld/a mydomain = example.com" \
-e "/#inet_interfaces = all/ s/^#//" \
-e "/^inet_interfaces = localhost/ s/^/#/" \
-e "/^mydestination/ s/^/#/" \
-e "/#mydestination = \$myhostname, localhost.\$mydomain, localhost, \$mydomain\$/ s/^#//" \
-e "/#mynetworks = hash:\/etc\/postfix\/network_table/a mynetworks = 192.168.0.0\/24" \
-e "/#home_mailbox = Maildir/ s/^#//"

【補足】
・-i 上書き保存する。
・-eで複数の変換ができる。
・aをつけると、指定した行の後ろに追加(add)できる。
・sed -e 's/^#//g' でコメントアウトを外す
・^は行の先頭という意味
・行末に\$を入れているのは、上の^と逆で、行末を指定している。
・\/としたのは、文字列に/が入っているから。\で打ち消している。
・-e "/^mydestination/ s/^/#/" \ のところは、先頭に#を入れるだけなので、全部書く必要はないので、先頭のmydestinationだけにした。というか、全部書くと$が特殊文字なので、うまくいかなかった。\でエスケープすればいいだろうが…

(2)Dovecotの設定
Dovecotがインストールされているかの確認
yum list dovecot
入っていなかったらインストール
yum install -y dovecot

・設定ファイルの編集
vi /etc/dovecot/dovecot.conf

実は、設定変更は不要
protocolsで、imap pop3 などプロトコルを設定できるが、デフォルトのままとする。

vi /etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:~/Maildir
→アンコメント + メールフォルダの場所を指定

vi /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no
→アンコメントし、noに変更: プレーンテキストでのID PASSやり取りを許可

vi /etc/dovecot/conf.d/10-ssl.conf
ssl = no
→ssl を noに変更 SSL必須を解除

systemctl start dovecot
systemctl enable dovecot

■ユーザの作成
useradd -s /sbin/nologin user1
passwd user1

以上である。

これで、クライアントソフトでメールを送受信できるはず。

----------以下はAWSでやろうと思ったが、セキュリティ対策をしないシンプルなSTMPだと送受信ができないようだった。なので、最後まで行けていない。ローカルに立てるように変更してしまった。単なるメモである。

◆DNSサーバ
DNSサーバの設定が必要。AWSでは、DNSの名前解決をさせるために、セキュリティグループでDNSのポートを空ける必要があるよね?

DNS(UDP)とDNS(TCP)を、全てのポート、全てのソース(0.0.0.0/0)で空ける。

■メールサーバ
EC2でやりたいので、以下の手順でやってみるか
https://qiita.com/ghogho-seki/items/e79cc3d3a98fba900dfc

※EC2だと、迷惑メール防止のためにいろいろと制限があり、結構難しいかも。
※apacheなどは、起動さえすれば、デフォルトページが見える。だが、Postfixの場合は、そもそもlocalhostからしか受け付けない設定なので、main.cfを変えないとそもそも動かない。

(1)環境の確認
sub.momiji.pwドメインのメールサーバを構築する。
google.co.jpのようなものとイメージしてもらいたい。

メールアドレスは、user1@sub.momiji.pw
このメールアドレスに、自分のPCやWebメールと送受信してみよう。

今回もAWSでやってみる。
なので、AWSでセキュリティポリシーを空けておく。インバウンドとアウトバウンドの両方かな?

(2)Postfixの設定
①インストール
・Postfixが入っているかを確認・・・すでに入ってる

#yum list postfix
・・
postfix.x86_64  2:2.10.1-6.amzn2.0.3   installed

・自動起動もONになっている
# systemctl is-enabled postfix
enabled

②設定ファイルの設定
設定ファイルは/etc/postfix/main.cf
では、このファイルを設定していこう。設定するところは結構ある。全部設定しないと動かないのかは不明

今回設定したのは、以下だけ。このあと、解説を入れる。
# vi /etc/postfix/main.cf

myhostname = mx.sub.momiji.pw 
mydomain = sub.momiji.pw
inet_interfeces=all
mydestination = $myhostname localhost.$mydomain $mydomain
mynetworks = 153.176.49.0/24 ←自分のグローバルIPアドレスを含むNWに変更
home_mailbox = Maildir/

 
# vi /etc/postfix/main.cf

変更するところだけを記載する。
・ myhostname = mx.sub.momiji.pw  ←メールサーバのFQDN …これが、この設定ファイルで記載される $myhostname の値になる。#でコメントアウトされているので変更
・ mydomain = sub.momiji.pw ←メールのドメイン・・・同様に、これが、この設定ファイルで記載される$mydomain の値になる。
・ inet_interfeces=all ←インターフェースを変更
※設定としては、113行目のコメントを外し、116をコメントアウトする。つまり、inet_interfeces をlocalhostからallに変更する。

・mydestination = $myhostname localhost.$mydomain $mydomain  $mydomainも加えた方がいいので、コメントアウトをうまく活用して、自分のドメインを許可する。

・mynetworksで、信頼するネットワークを指定する。ここで書いたhost やネットワークからのメールを処理する。なので、踏み台にされないためにも、限定すべきである。
 普通は、192.168.1.0/24などとサブネットを書く。AWSで試験的にテストするのであれば、自分のグローバルIPアドレスを書けばいいだろう。
 mynetworks=203.0.113.24/32
153.176.49.55
・home_mailbox = Maildir/
※コメントを外す。メールボックスでのメールの保存形式には、mbox形式とMaildir形式がある。mbox方式は古くからある方式で。一つのファイルで管理する。Maildirは一つずつのファイルとして管理
https://go-journey.club/archives/9377

--------これ以降はオプション。必須ではない。

#relay_domains = $mydestination
→中継処理、たとえば、外部メールサーバから内部メールサーバに転送するような場合の設定(オプション)。デフォルトではコメントアウトされている。

・myorigin = $mydomain
→@より左側、たとえばuser1でメールを送った場合に、myoriginで記載した内容を補足し、user1@sub.momiji.pwとしてくれる。必要ならば ※コメントアウトをはずす
・smptd_banner = $myhostname ESMTP unknown
→使っているSMTPソフトの隠蔽。もちろん、myhostnameを、smptd_banner =の前に適切に設定しておかなければいけない。

・以下を3行追加
smtpd_recipient_restrictions =
permit_mynetworks
reject_unauth_destination # 追加

→メール送信リクエストを受けた際に、拒否するルールを記載。permit_mynetworksは別途定義するmynetworks以外のネットワークからのリクエストを拒否。reject_unauth_desctinationは宛先が不正(存在しないユーザへの配送リクエスト等)を受け付けない

・smtpd_sender_restrictions =
 reject_unknown_sender_domainなどで送信者チェックが行える。メールアドレスのFrom部分のチェックである。(詐称されたらチェックできないが)。

・message_size_limit = 10485760 # 追加 数値は任意
→メールボックスのマックスサイズ

◆Submissionポート有効化
→多くのプロバイダでは、OP25Bにより、25番で送れないことがほとんど。なので、設定しないと実行上は難しいだろう。

vi /etc/postfix/master.cf
submission inet n - n - - smtpd
→コメントアウト解除 サブミッションポートでの配送を許可

-o smtpd_sasl_auth_enable=yes
→アンコメント: SMTP認証を有効化
 
※SASL(Simple Authentication and Security Layer)

yum -y install cyrus-sasl
→SMTP認証セットアップ
systemctl start saslauthd
→起動

postfix の再起動が必要

③書式チェックは以下。これでエラーが出なければチェックOK
#postfix check

設定が終わったら、postfixの再起動

④ユーザの作成

※/etc/skelにて、個別ではなく雛形を作ることが一般的のようだが、どうやら、この手順は不要のようだ。自然にフォルダも作成される。
mkdir -p /etc/skel/Maildir/{new,cur,tmp}
chmod -R 700 /etc/skel/Maildir/

useradd -s /sbin/nologin user1
→user作成(sshログインはできないユーザとして作成)
passwd user1
→パスワード設定

(2)Dovecotの設定
以下がシンプル
https://dev.classmethod.jp/cloud/aws/mail_server_with_postfix_and_dovecot/

Dovecotがインストールされているかの確認
yum list dovecot
入っていなかったらインストール
yum install -y dovecot

・設定ファイルの編集
vi /etc/dovecot/dovecot.conf

実は、設定変更は不要
protocolsで、imap pop3 などプロトコルを設定できるが、デフォルトのままとする。

vi /etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:~/Maildir
→アンコメント + メールフォルダの場所を指定

vi /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no
→アンコメントし、noに変更: プレーンテキストでのID PASSやり取りを許可

vi /etc/dovecot/conf.d/10-ssl.conf
ssl = no
→ssl を noに変更 SSL必須を解除

systemctl start dovecot
systemctl enable dovecot

■ユーザの作成
useradd -s /sbin/nologin user1
passwd user1

AWSにて、110, 143ポートで外部から接続できるようにする。

■1.インストール
 yum -y install httpd
ただ、Linuxをインストールすると、デオフォルトでWebサーバが起動していることが多いだろう。入れ方にもよるが。(AWSは入っていないので、入れる必要がある)

・サービスを開始する
systemctl start httpd

・サービスの状態確認 (CentOS7)
systemctl status httpd
→緑色で、active (running) になっていれば起動している。

・(おまけ)プロセスを、以下で見てみよう。
# ps -auwx | grep httpd
するとapacheユーザでたくさんのプロセスが起動している。これは、Webサーバに複数のアクセスがるので、それに対応するだめである。他のサービスではこれほどでない

・Webサーバが起動しているか、となりのPCから見てみよう。
http://WebサーバのIPアドレス

→赤っぽい色のバーがついたApacheのTest Pageが見えれば動作している。

もしかすると、見えないかもしれない。
原因は、SELinuxが有効になっているのと、サーバのFirewallなどの設定などが入っているからだろう。($system-config-firewallで設定を解除すればいいだろう)

Firewallを開けるには、以下。
・httpを許可する
firewall-cmd --add-service=http --zone=public --permanent      
 ※--permanent によって、永続的にHTTPを開ける
・再起動
firewall-cmd --reload  
・確認
iptables -L -n | grep 80

※AWSの場合、インバウンドルールにhttp(80)を追加する。

■2.コンテンツ
コンテンツは/var/www/htmlに入れる

・デフォルトのTest Page
htmlコンテンツのありかは、/var/www/html である。
ただ、デフォルトのTest Pageだけは特別。
以下のconfファイルに設定が記載されている。
/etc/httpd/conf.d/welcome.conf
実際のコンテンツはこれ
/usr/share/httpd/noindex/index.html

■3.設定ファイル  httpd.conf
基本的には何も設定変更をしなくても動作する。なので、触る必要はない。

何点かコメント
・ServerRoot "/etc/httpd"  ←デフォルトのフォルダ。相対パスで記載されるの場合はこちらの配下
・Listen 80  ←接続を待ち受けるポート番号
・DocumentRoot "/var/www/html"  ←コンテンツを配置するフォルダ。なので、たとえば、http://www.example.com/の直下がこのフォルダになる。
・ファイルじゃなくてディレクトリが指定された場合には、以下のディレクティブのDirectoryIndexで指定されたページを開く。列挙することで、複数指定できる→このあとにも記載
 <IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
※mod_dirというモジュールが、ここに書かれたファイルへリダイレクトする。なので、IfModule dir_moduleというディレクティブに記載がある。
https://httpd.apache.org/docs/2.2/ja/mod/mod_dir.html
・Directoryのディレクティブ
 いくつものDirectoryのディレクティブがある。Directoryで指定されたフォルダに関して(サブフォルダを含む)オプションの設定ができる。たとえば、一覧表示をするindexesを指定すると、一覧表示がされる。FollowSymLinksはシンボリックリンクを設定すると、そのフォルダにリンクされる。どちらも、セキュリティ的にあまりいいオプションとはいえない。
<Directory "/var/www/html">
   #  Possible values for the Options directive are "None", "All",
 ・・・
     Options Indexes FollowSymLinks
    
</Directory>
<Directory "/var/www/cgi-bin">
     AllowOverride None
     Options None
     Require all granted
</Directory>

■httpsにする場合
設定ファイルは以下
/etc/httpd/conf.d/ssl.conf  

■Webサーバのログ
(1)アクセスログ
/var/log/httpd/access_logに保存されている。
ログとしてはこんな感じ。
192.168.1.3 - - [08/Sep/2018:23:36:16 +0900] "GET /  HTTP/1.1" 403 4961 "-" "Mozilla/5.0 (Windows NT 6.3;・・・
先頭がアクセス元のIPアドレス
 
(2)エラーログ
同じフォルダのerror_log
※また、このフォルダはシンボリックリンクで/etc/httpd/logs/access_logからも見ることができる

■その他
(1)バージョンの確認
httpd -version
または、
rpm -qa | grep httpd でもいいだろう。

(2)ファイルの一覧表示
/etc/httpd/conf/httpd.confの
Options Indexes FollowSymLinks で設定する
上記の場合は該当ディレクトリのファイル一覧が表示される

一覧表示されないようにする方法は、
①Indexesを消す
Options FollowSymLinks

②「-」を付ける
Options -Indexes FollowSymLinks 

※設定変更する場合は、もとの設定は#によるコメントアウトで残しておきましょう。

2004年に登場したnginxですが、今ではApacheのシェアを超えたともいわれています。
読み方は「エンジンエックス」
Apacheと同じくWebサーバのソフトであるが、
高速で軽量な点が特徴。利用されるケースが増えている。
LBとしても使える。・・・これがnginxの大きな意義の一つである。

LBの設定は以下が参考になる。とても簡単
https://www.nedia.ne.jp/blog/tech/2016/08/04/7938

・yumでインストールしてみよう
# yum install nginx
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile

 →しかし、デフォルトでやレポジトリが無いと怒られる。
 
・レポジトリの作成
sudo vi /etc/yum.repos.d/nginx.repo

https://qiita.com/tomy0610/items/0884c77f1ac52957fa96

・改めてインストール
#yum install nginx -y

今度は成功する。

・バージョンの確認
#nginx -v
nginx version: nginx/1.17.7

・自動起動の設定
# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

・サービスの起動
#systemctl start nginx

・ブラウザを立ち上げ、http://IPアドレス を指定
「Welcome to nginx!」と出て、Webサーバが起動していることが確認できる。

・設定ファイルは以下。ここで、LBの設定などもできる。
/etc/nginx/nginx.conf

/etc/nginx/conf.d/default.conf

・コンテンツファイルの置き場所
 /usr/share/nginx/html

ここにたとえば、a.htmlというファイルを設置し、中身に「hello」と書けば、ブラウザでアクセスすると「Hello」と表示される。

MTAとしてはPostfixMUAとしてはdovecotなのは、長年変わらない。(※dovecotがメールボックスを持っているわけではなく、dovecotはユーザからのメール取得要求を受け付けるサービス)

どんな本でもいいので、一冊購入するといいですよ。
私は 秀和システム「はじめてのFedoraCore5」を買いました。
以下の内容は上記の本を参照してます。

1.sendmailの停止
service sendmail stop

2.Postfixのインストール
rpmpostfixをインストール

3.Postfix環境へスイッチ
alternatives --config mta
ここで、postfixを選択する。

4.main.cfの設定
vi /etc/postfix/main.cf
myhostname = ns1.network-exam.com 
mydomain = network-exam.com
inet_interfaces = all   ←利用するNIC
mydestination = $myhostname, localhost.$mydomain, $mydomain ←受信するドメインとホスト
mynetworks = 192.168.1.0/24, 127.0.0.0/8

postfixの設定で、メールボックスはMaildir方式が最近の主流で、メールが1通1ファイルになっている
home_mailbox = Maildir/ 

POP3サーバの設定
dovecotを利用します。

■BIND
(1)インストールやら
・BINDのインストール
# yum install -y bind
・起動
# systemctl start named
・確認
# systemctl status named

・プロセスを確認しよう
# ps -aux | grep named
named      373  0.0  6.0 169256 60952 ?        Ssl  02:46   0:00 /usr/sbin/name  -u named -c /etc/named.conf

※脱線するがセキュリティ面で重要な話。先頭がnamedになっている。つまり、このサービスはrootではなくnamedが起動している。BINDに脆弱性があった場合に、root権限を乗っ取られたりしないようにこうしている。apacheなども同様。

CentOSでバージョンを見てみよう。
# named -version
BIND 9.11.4-P2-RedHat-9.1・・・
※日常的に使われるバージョンは9

※ rndc-confgenを使うと、鍵の生成などができる。デフォルトのままでいいと思う。

(2)設定してみよう
①デフォルトの/etc/named.conf をみる
デフォルトは以下である。hintのzoneしかないので、管理するドメインを追加していく必要がある。

options {
        listen-on port 53 { 127.0.0.1; }; ←ポートは53。この行を残すのであれば、自分の(つまりDNSサーバ)のIPアドレスを入れる。またはany
     ・・・
        directory       "/var/named";  ←デフォルトのディレクトリ。
     ・・・
        allow-query     { localhost; }; ←DNSクエリを受け付ける範囲。適切に設定する。anyか、この行そのものをコメントアウトでもいいだろう
      ・・・
       recursion yes; ←再帰問い合わせを受ける。キャッシュDNSサーバとして動作する。コンテンツDNSサーバの場合はnoにする。

zone "." IN {
        type hint;     ←typeがhintなので、ルートDNSサーバのこと
        file "named.ca";
};


②ルートヒントファイルをみてみよう
以下のファイルがそう
/var/named/named.ca

たとえば、以下などが入っている

l.root-servers.net.     518400  IN      A       199.7.83.42
m.root-servers.net.     518400  IN      A       202.12.27.33

※テストとして、自分で設定してもいい。ようは、本当のサーバじゃなくて自分が設定したサーバを指定するのだ

③実際に作ってみよう
momiji.pwドメインのDNSサーバはレジストラで管理してもらっている。そのDNSサーバはレジストラだ。私は、このドメインを管理できるので、サブドメインに関しては、自分が構築したDNSサーバに委任しよう

sub1.momiji.pw →ns1.sub1.momiji.pwというDNSサーバに委任

たとえてみよう。example.co.jpドメインの管理者は、co.jpからexample.co.jpドメインの管理を委任されている。
仮にexample.co.jpのNSがns1.example.co.jpとしよう。
私がmomiji.pwのDNSの管理者であり、sub1.momiji.pwのドメインの管理を委任する。そのとき、sub1.momiji.pwのNSがns1.sub1.momiji.pwという位置づけである。→このあたりに関しては後半に詳細を記載。

(3)では、設定ファイルを作成する。

①named.conf
・まず、named.confのバックアップを取る
# cp named.conf named.conf.org

lsでみると、グループがrootになってしまっているので、変えよう
# ls -la | grep named
# chgrp named named.conf.org

・では、named.confファイルを編集する。
もともとある zone "." をコピーして作ろう
zone "sub.momiji.pw" IN {
        type master;
        file "sub.momiji.zone";
};
listen-on port 53 の行は、自分のIPアドレスを入れる。プライベートでいい?
いったん、コメントアウトで消しておこう。
また、キャッシュDNSサーバではないので、以下の再帰問い合わせはno
      recursion no
そして、外部に公開するわけなので、localhostに限定しているQueryの許可を、コメントアウトで外す。
 allow-query     { localhost; };
 
・構文のチェック
# named-checkconf /etc/named.conf

named-checkconf で構文のチェック。コマンドを実行して何もエラーがなかったらOK

②zoneファイルの作成
/var/named/named.localhostがサンプルになるだろう
これをもとに作成していく。
cp でファイルをコピーすればいいが、rootで実行するとグループがrootのままであるだろう。なので、chgrpでnamedのグループにする
#chgrp named sub.momiji.zone

zoneファイルの内容は、このあとにしっかりと記載した。

構文をチェックしましょう。
#named-checkzone sub.momiji.pw /var/named/sub.momiji.zone
 
③DNSが動作したかチェックしてみよう
もう少し仕上げをします。
AWSの場合、UDP53を許可しましょう。

・nslookup で確かめてみよう
>nslookup

>server x.x.x.x ←構築したDNSサーバに問い合わせ先を変更

> www.sub.momiji.pw
サーバー: ・・・
Address:  ・・・

名前:    www.sub.momiji.pw
Addresses:  ::1
          3.113.x.x   ←このようにIPアドレスを引くことができた。

レジストラのDNSの設定のTTLが反映されると、DNSサーバを指定しなくても、普通にこのドメインを引くことができるだろう。ブラウザでURLにwww.sub.momiji.pwを指定して閲覧することも可能だ。

さて、ここまでの設定でも無事に動いたと思う。理解する目的だけであればそれで十分だが、実際には以下の設定も必要

④逆引きファイルの作成
同様に実施。正引きのファイルをコピーするといいだろう

以下は実際にやってみた様子
以下を追加
zone "113.0.203.in-addr.arpa" IN {
        type master;
        file "reverse.zone";
};
サブネットマスクは24ビットではないかもしれないが、気にせず24ビットと思ってIPアドレスを逆から並べる。
reverse.zoneは正引きファイルをコピーする。
そして、NS以外のAレコードを消して、PTRにする。
こんな感じ
        IN NS   ns1.sub.momiji.pw.
53     IN PTR  ns1.sub.momiji.pw.
53     IN PTR  www.sub.momiji.pw.
サービスを再起動し、チェックをする
以下のエラーがでる。が、いちおう、逆引きはできているような感じだ。
named-checkzone sub.momiji.pw /var/named/reverse.zone
zone sub.momiji.pw/IN: NS 'ns1.sub.momiji.pw' has no address records (A or AAAA)
zone sub.momiji.pw/IN: not loaded due to errors.

⑤ループバックの設定
特に設定は不要です。ループバックのような、インターネットに出るまでもない情報を保持しておきます。
ループバック設定などは以下がincludeされているので、追記する必要はない(、と思う)
include "/etc/named.rfc1912.zones";

(5)その他の設定
①キャッシュDNSサーバを作るとき
named.confの設定で、recursion yesにすると再帰問い合わせをする。
※再帰とキャッシュするかは別のような気がするが、基本的には同時進行と考えてほしい。

(女性)キャッシュDNSサーバはどれだけの時間、キャッシュを持つのですか?

反復問い合わせをしたコンテンツDNSサーバのTTLに依存する。どれだけキャッシュするかはキャッシュDNSが決めるのではなく、コンテンツDNSサーバが決めている。
また、caching-nameserverのモジュールを入れてもいいようだが、もう少し調査が必要だ。

(6)Linuxでのnslookup
digまたはhostコマンドを使う。 hostコマンドは情報がシンプルなので、見やすいと思う。一応、nslookupも使えるが、今後の開発はないので使わない。
dig @192.168.1.53 www.example.com
     ↑@でDNSサーバを指定  ↑引きたいホスト
 最後に+norecurse を付けると、再帰ではなく反復問い合わせをする。なので、キャッシュしないDNSの名前解決をしてくれる。

host  www.example.com 192.168.1.53
    ↑引きたいホスト   ↑DNSサーバを指定  
 host -r ・・・ として、rオプションを付けると、反復問い合わせをする

・余談であるが、Windowsおのnslookupの場合、debugオプションをつけると、TTLなども確認できる。

(7)セカンダリDNSサーバ
・ゾーンファイルの設定
 type slaveに設定、masters プライマリマスタサーバのIPアドレスを指定
 fileに、転送された情報を保持するファイルを記載。ファイルを作る必要はない。ただし、フォルダのアクセス権で、namedユーザが書き込めるようにしておく
 ※補足すると、デフォルトのnamed.confの設定を使う場合は、listen-on portのIPアドレスを変更(またはこの行をコメントアウト)、recursion noとして再帰問い合わせを禁止する、allow-queryをコメントアウトするなどして、他のホストから問い合わせできるようにする。
・上位ゾーンのサーバに、NSレコードを追加する
 

(8)DNSの委任
たとえば、example.comの場合、.comのDNSサーバは、example.comドメインのDNSサーバにドメイン管理を移譲する。そのことを書くために、自分のDNSサーバにexample.comのNS情報を書く
また、example.comドメインのDNSサーバにも、NSレコードでDNSサーバの情報を書く。
つまり、.comのサーバとexample.comのサーバに同じことを書いている
→なので、example.comのサーバにはNSレコードはなくてもいいのではないかとも思う。いくつかトラブルがあるかもしれないが…。

以下がとても参考になる。
https://www.atmarkit.co.jp/ait/articles/1501/15/news008.html

なので、今回は以下である。
①momiji.pw を管理しているレジストラでの設定
sub.momiji.pw. IN NS ns1.sub.momiji.pw.
ns1.sub.momiji.pw. IN A 203.0.113.53

→Value Domainを使っているので、構文がちょっと違う(もちろん覚える必要はない。単なるメモ)
ns sub ns1.sub.momiji.pw.
a ns1.sub 203.0.113.53

②権限移譲されたDNSサーバでの設定(sub.momiji.pwのゾーンファイル)
上記の①と全く同じことを書くのであるが、一般的には
以下のような省略形になる。
   IN NS ns1.sub.momiji.pw.
ns1    IN A 203.0.113.53

最終系はこんな感じ
$TTL 1D
@       IN SOA  ns1.sub.momiji.pw. mail.sub.momiji.pw. (
                                        2020010104      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN NS   ns1.sub.momiji.pw.
ns1     IN A    203.0.113.53
www     IN A    203.0.113.53

サーバ構築などが非常に簡単。たとえば、以下
https://knowledge.sakura.ad.jp/13265/

ここにあるように、1行でWebサーバが構築できてしまう。

docker run --name some-nginx -d -p 8080:80 nginx

もちろん、その前にDockerをインストールしてサービスを起動する必要がある。それにしても楽だ。

・コンテナと呼ばれる仮想化技術
・説明は、いろいろな本やサイトを読んで
もらえばいい。特徴は、ファイルで管理できる。→軽量
・複数人で同じ環境でシステムを構築できる。
・イメージファイルそのものは、Docker HUBなどに置かれている。なので、テキストファイルで指定するだけで、
イメージファイルを共有する必要が無い。
・Docker Composeが便利だと思う。
複数のアプリケーションをDockerfileで定義
docker-compose.ymlファイルで定義し、
docker-compose upで一斉に環境を起動できる。
http://docs.docker.jp/compose/overview.html

■インストールなど
■準備
①gitを入れる
# yum -y install git

②Dockerを入れる
・インストール
# sudo yum -y install docker

・参考までにversionを確認しておこう(うまくインストールできたかの確認も込めて
# docker --version

・dockerの起動
# systemctl start docker
※以下サイトにあるユーザ追加もしたが、必須かは不明 →不要だった。
https://qiita.com/uhooi/items/f8c67a9e716a226e28cd

③Docker Composeをインストール
以下サイトの「Linux」のタブを開く
https://docs.docker.com/compose/install/
curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

↑このページのトップヘ