とりあえずの備忘録

主にパソコンやインターネットに関するメモ

Postfix 追加したドメインでもメールを扱えるようにする

ドメインmyserver.comで動作中のサーバーに、新ドメインmyserver2.comを割り当てたときに、そのドメインでもメールを扱えるようにしたときのメモです。

ドメインの追加方法はこちら。

Postfixの設定ファイルを編集する

続きを読む

BIND ドメインとサブドメインを設定する

BINDで「お名前.com」で取得した独自ドメインとサブドメインを設定したときのメモです。

ドメインの設定

IPアドレスが「192.168.0.23」のサーバーに、ドメイン「myserver.com」でもアクセス出来るようにする。

ネームサーバーとは?

インターネット上でのコンピュータの名前にあたるドメイン名を、住所にあたるIPアドレスと呼ばれる4つの数字の列に変換するコンピュータ。
個々のネームサーバは自分が管理するネットワークに接続されたコンピュータのドメイン名とIPアドレスの対応表を持っており、外部からの問い合わせに答える。
インターネットには無数のネームサーバが存在しており、ドメイン名に対応した階層構造になっている。最上位に位置するネームサーバは「ルートサーバ」と呼ばれ、全世界に13台が分散配置されている。
全世界のネームサーバが連携してドメイン名とIPアドレスを対応させるシステムを「DNS」(Domain Name System)と呼ぶため、ネームサーバは「DNSサーバ」とも呼ばれる。

http://e-words.jp/w/E3838DE383BCE383A0E382B5E383BCE38390.html

ネームサーバーを設定する

BINDの設定ファイル「named.conf」にマスターのネームサーバーを追加する。

#vi /etc/named.conf

↓追加す
zone "myserver.com" {
  type master;
  file "/var/named/myserver.com.db";
};

ゾーンファイルを作成する

ゾーンファイルを作成してネームサーバーの動作を記述する。

#vi /var/named/myserver.com.db

↓記述す
$TTL 14400
@ IN SOA ns1.myserver.com. root.myserver.com. (
    2008111401
    14400
    7200
    3600000
    86400 )
  IN A 192.168.0.23
  IN NS ns1.myserver.com.
  IN NS ns2.myserver.com.
  IN MX 0 mail.myserver.com.
ns1 IN A 192.168.0.23
ns2 IN A 192.168.0.23
mail IN A 192.168.0.23
www IN CNAME myserver.com.
blog IN CNAME www

ゾーンファイルの中身について

@ IN SOA ns1.myserver.com. root.myserver.com.
  • myserver.comのマスターネームサーバーは、ns1.myserver.com
  • 管理者のメールアドレスは、root@myserver.com
IN A 192.168.0.23
  • myserver.comのIPアドレスは、192.168.0.23
IN NS ns1.myserver.com.
IN NS ns2.myserver.com.
  • myserver.comのネームサーバーは、ns1.myserver.comとns2.myserver.com
  • ns2はスレーブのネームサーバーで、マスターの予備なので本当は別マシンにしたい
IN MX 0 mail.myserver.com.
  • ユーザー名@myserver.com宛メールは、mail.myserver.comへ転送
www IN CNAME myserver.com.
  • www.myserver.comは、myserver.comの別名

BINDを再起動する

BINDを再起動して設定を反映させる。

# ps -ef | grep name
# kill -HUP 1016

namedのプロセスIDを調べて、killコマンドで再起動する。

ネームサーバーを反映させる

独自ドメインを取得した「お名前.com」にネームサーバーを登録する。

ネームサーバーのホストとIPアドレスを登録する。
f:id:notei:20180714080806j:plain

myserver.comに対するIPアドレスの問い合わせを答えるネームサーバーを登録する。
f:id:notei:20180714080814j:plain

登録後しばらく時間が経過(数分~数日)すると、インターネット全体にこの情報が行き渡る。

動作確認

ブラウザで「www.myserver.com」を開くと、対応するIPアドレスを問い合わせに行く。
それを答えるネームサーバーは、「ns1.myserver.com(192.168.0.23)」だと通知する。
今回設定したネームサーバーへ問い合わせに来るので、対応するIPアドレスを答える。

サブドメインの設定

ドメインが「myserver.com」、WEBサーバーが「www.myserver.com(IPアドレス:192.168.0.1)」で動作しているマシンに、サブドメインを設定する。

DNSとは?

インターネット上のホスト名とIPアドレスを対応させるシステム。全世界のDNSサーバが協調して動作する分散型データベースである。IPアドレスをもとにホスト名を求めたり、その逆を求めたりすることができる。
インターネット上で運用されているDNSサーバのほとんどは、カリフォルニア大学バークリー校(UCB)で開発されたBINDである。

http://e-words.jp/w/DNS-2.html

ゾーンファイルの場所を調べる

BINDの設定ファイル「named.conf」を開いて確認する。

# cat /etc/named.conf

↓中
zone "myserver.com" {
  type master;
  file "/var/named/myserver.com.db";
};

「myserver.com」のゾーンファイルが「/var/named/myserver.com.db」だと分かる。

ゾーンファイルを編集する

例、別のマシン「192.168.0.2」に対して、サブドメイン「ftp.myserver.com」を設定する。

#vi /var/named/myserver.com.db

↓最後の行にAレコードを追
www IN A 192.168.0.1
ftp IN A 192.168.0.2

例、同じマシン(ホスト名www)に対して、サブドメイン「blog.myserver.com」を設定する。

#vi /var/named/myserver.com.db

↓最後の行にCNAMEレコードを追
www IN A 192.168.0.1
blog IN CNAME www

SOAレコードを編集して内容を反映させる

SOAレコードの最初の数字を部分を、前回よりも大きな数字にする。基本的に「日付+連番」の形式。

@ IN SOA ns1.myserver.com. root.myserver.com. (
  2008111402
  14400
  7200
  3600000
  86400 )

ここでは「2008111401」を「2008111402」に変更。

BINDを再起動する

BINDを再起動して設定を反映させる。

# ps -ef | grep name
# kill -HUP 1016

namedのプロセスIDを調べて、killコマンドで再起動する。

3分間DNS基礎講座

3分間DNS基礎講座

Apache バーチャルホストによりIPアドレス1個でサブドメイン毎に別のサイトを作る

IPアドレス1個しかないサーバーで、blog.myserver.comとsns.myserver.comというサブドメインを作って、それぞれ別のサイトを作ったときのメモです。

バーチャルホストとは?

1台のWebサーバで複数のドメイン名のWebサイトを運用すること。Webサーバソフトの機能の一つ。サーバに複数のIPアドレスを割り振ったり、1つのIPアドレスに複数のドメイン名を割り当てることにより、1台のWebサーバで複数のWebサイトを同時に運用することができる。小規模なサイトをいくつも運用するような場合、バーチャルホストを利用すれば何台もサーバを用意せずに済む。

バーチャルホストとは 【virtual host】 - 意味・解説 : IT用語辞典
バーチャルホストを利用するに当たって、検討しておかなければならないことがある。バーチャルホストには、「NAMEペース」「IPベース」という2種類の方式があるのだ。1つのIPアドレスで実現できるのが「NAMEベースのバーチャルホスト」、複数のIPアドレスを単一のApacheで処理するのが「IPペースのバーチャルホスト」で、それぞれメリット/デメリットがある。

バーチャルホストによる複数サイトの同時運用(1/2)
続きを読む

PHP 指定フォルダ内にあるJPG画像ファイルの数を調べる

/var/www/html/images内にあるJPG画像ファイルの数を調べる

<?php
//対象のディレクトリ
$target_dir = '/var/www/html/images';

//コマンドの実行結果を受け取る配列
$result = array();

$command = "find " . $target_dir . " -name '*.jpg' | wc -l";
exec($command, $result);

//出力
echo '画像ファイル数は、' . $result[0];
?>
続きを読む

Apache SSLを導入して暗号化通信を行う

https://www.hogehoge.comで暗号化通信をするために、SSLの設定をしたときのメモです。

SSLとは?

SSL(Secure Sockets Layer)とは、インターネット上で通信を暗号化する技術です。SSLを利用してパソコンとサーバ間の通信データを暗号化することで、第三者によるデータの盗聴や改ざんなどを防ぐことができます。

SSLのまとめ|シマンテック
続きを読む