BINDの記事一覧

BINDの起動

BINDはデーモンとして動作させる必要があるのでserviceコマンドを使用して起動させます。

serviceコマンドはデーモンの起動・再起動・停止・状態確認などの操作を行なえます。

まずはBINDの状態を確認します。状態確認は以下のコマンドで行なえます。

# service named status
rndc: connect failed: 127.0.0.1#953: connection refused
named is stopped

「stopped」と表示されたので、現在、BINDは停止中となっています。逆に「running…」と表示されれば、BINDは既に起動中であることを示します。

BINDを起動する

BINDを起動するには以下のコマンドを実行します。

# service named start
Starting named:                            [  OK  ]

named.conf、正引き用設定ファイルや逆引き用設定ファイルなどを更新した場合、その設定を反映させるためには、BINDを再起動させる必要があります。BINDの再起動は以下コマンドで行います。

# service named restart
Stopping named:                            [  OK  ]
Starting named:                            [  OK  ]

※正引き用設定ファイルや逆引き用設定ファイルを更新した場合、必ずSOAレコードのSerialの値を加算してください。加算しないと設定がうまく反映されません。加算忘れはBINDをさわったことがあるエンジニアが一度は必ずといって良いほどやってしまうミスです。

ファイアウォール設定を確認する

CentOSの初期設定では外部からの接続はssh(22)以外を拒否する設定となっており、DNSで使用する通信(TCP:53、UDP:53)はファイアウォールでドロップされてしまいます。そのため、ファイアウォールの設定を変更する必要があります。

まずはファイアウォール(iptables)の設定を確認します。iptablesはLinuxの標準的なファイアウォール・アプリケーションです。

# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:81
8    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

上記状態では、外部からの接続はssh(22)、http(80、81)、https(443)のみ許可しており、それ以外は拒否されます。DNSの接続許可の設定を追加してみましょう。

# iptables -I INPUT 8 -p tcp --dport 53 -j ACCEPT
# iptables -I INPUT 8 -p udp --dport 53 -j ACCEPT

「-I」でチェインと番号を指定すると、指定したチェインの指定した番号にルールが挿入されます。指定した番号以降のルールは、それぞれ一つ下にずれます。番号をつけない場合は、先頭(1番)にルールを挿入されます。

続いて、変更した内容を保存します。

# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

最後にもう一度iptablesの設定を確認し、上記で追加したルールが追加されていることを確認します。

# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:81
8    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53
10   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

これで、DNSでの接続が可能になりました。

/etc/resolv.confの編集

「/etc/resolv.conf」は、自身が利用するDNSサーバーの情報(IPアドレス)を記述してあるファイルのことです。今回、BINDを構築したことで自身がDNSサーバーとなったため、名前解決の際に参照するDNSサーバーを自身に設定します。

# vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 172.16.0.10

nameserverディレクティブに、参照するDNSサーバーのIPアドレスを指定します。最大3行まで定義することが可能で、上から順番に利用されます。上記例では、IPアドレス「172.16.0.10」のDNSサーバーを参照するよう設定しています。

自動起動の設定

DNSサーバーは、常時稼動させておく必要があります。そのためにOS起動と同時にBINDも起動するように設定します。

# chkconfig named on

以上で自動起動するように設定されたため、CentOSを再起動しても、OS起動とともにBIND(named)が起動されるようになります。

2016年01月05日(火)|BIND DNSサーバー構築

BINDの設定(逆引き情報設定)

前回はホスト名からIPアドレスを取得するための正引き情報設定を行ないました。今回はIPアドレスからホスト名を取得するための逆引き情報設定の方法について見ていきます。設定は逆引き用設定ファイルを編集することで行ないます。

まずは作成済みの逆引き用設定ファイルを見てみましょう。当ファイルはnamed.confのopionsステートメント「directory」で指定したディレクトリに、逆引き用zoneステートメントの「file」で指定したファイル名で作成します。

# vi webtest01.com.rev
$TTL    86400
@       IN      SOA     ns.webtest01.com. root.webtest01.com.(
                                2015123105  ; Serial
                                28800       ; Refresh
                                14400       ; Retry
                                3600000     ; Expire
                                86400 )
        IN      NS      ns.webtest01.com.
10      IN      PTR     ns.webtest01.com.
1       IN      PTR     pc01.webtest01.com.
2       IN      PTR     pc02.webtest01.com.
254     IN      PTR     router.webtest01.com.

上記を見てわかるように、$TTLディレクティブ、SOAレコードやNSレコードが表す意味は正引き用設定ファイルと同じです。今回は逆引き用のPTRレコードについて見ていきます。

PTRレコード

PTRレコードは逆引き(IPアドレスからホスト名を取得する)のための情報を記述します。1つのIPアドレスは1つの正規なホスト(ドメイン)名のみに対応させます。

10      IN      PTR     ns.webtest01.com.
1       IN      PTR     pc01.webtest01.com.
2       IN      PTR     pc02.webtest01.com.
254     IN      PTR     router.webtest01.com.

PTRレコードでこのDNSサーバーが管理しているドメインのIPアドレスとホスト名の対応を記述しています。ホスト名はFQDNで記述します。

上記レコードを追加することで、例えば、IPアドレス「172.16.0.1」に対する名前解決を要求されたときホスト名「pc01.webtest01.com.」が返されるようになります。

以上で逆引き用設定ファイルの編集は完了です。

2016年01月03日(日)|BIND DNSサーバー構築

BINDの設定(正引き情報設定)

今回は正引き用設定ファイルの編集方法について見ていきます。

前回作成したnamed.conf内で定義したゾーンごとに、正引き用設定ファイルを作成します。正引き用設定ファイルでは、ホスト名とIPアドレスの対応づけを定義します。

まずは作成済みの正引き用設定ファイルを見てみましょう。正引き用設定ファイルはnamed.confのopionsステートメント「directory」で指定したディレクトリに、正引き用zoneステートメントの「file」で指定したファイル名で作成します。

# vi /var/named/webtest01.com
$TTL      86400
@         IN       SOA     ns.webtest01.com.  root.webtest01.com.(
                                        2015123105 ; Serial
                                        28800      ; Refresh
                                        14400      ; Retry
                                        3600000    ; Expire
                                        86400 )    ; Minimum
          IN NS    ns.webtest01.com.
          IN MX 10 mail.webtest01.com.
localhost IN A     127.0.0.1
ns        IN A     172.16.0.10
pc01      IN A     172.16.0.1
pc02      IN A     172.16.0.2
router    IN A     172.16.0.254

正引き用設定ファイルに登録するエントリーには、ディレクティブと資源(リソース)レコードの2種類があります。

ディレクティブ

ディレクティブは、ネーム サーバーの制御情報、およびゾーンごとのオプションを記述します。行頭がドル記号($)で始まり、その後にディレクティブの名前が続きます。

$ORIGIN

修飾指定のないレコードに付加するドメイン名を指定します。通常、$ORIGINディレクティブは省略されます。省略した場合は、zoneステートメントで指定したドメイン名(この例では「webtest01.com.」)が、$ORIGINディレクティブ値として適用されます。また、$ORIGINディレクティブに設定した値そのものを名前として利用する場合、「@」で置き換えることができます。

$TTL

$TTLディレクティブでは、当該ゾーンの各レコードの寿命(Time To Live)の値を秒単位で指定します。ここで設定した値が資源レコードの有効期間として応答メッセージ中に含まれ、応答メッセージを受信したサーバーはTTLで定められた期間、得られた情報をキャッシュします。そのため、プライマリDNSサーバー側で何らかの変更を行なった場合、すぐには反映されず、最大$TTLディレクティブで指定した時間、他のDNSサーバーに更新が反映されない可能性があります。

資源(リソース)レコード

ホスト名とIPアドレスを対応づけるための定義を記述します。
SOA、NS、Aなどの「レコード」と呼ばれる単位で記述していきます。レコードには以下のような種類があります。

レコード 意味
SOA ドメイン自体に関する情報
NS DNSサーバーの情報
A 正引きの情報
MX メールサーバーの情報
CNAME ホストの別名
PTR 逆引きの情報

SOAレコード

SOAは「Start Of Authority」の略です。直訳のとおり、権威のあるゾーンの定義を開始することを意味します。ゾーン(ドメイン)定義を宣言するレコードと考えればわかりやすいでしょう。
SOAレコードはルートゾーン用の正引き用設定ファイル(named.ca)以外のファイルで必要であり、1つのファイル中で有効なSOAレコードは1つのみとなります。SOAレコードは、ディレクティブの直後かつ資源レコードの先頭に記述します。

@         IN       SOA     ns.webtest01.com.  root.webtest01.com.(
                                        2015123105 ; Serial
                                        28800      ; Refresh
                                        14400      ; Retry
                                        3600000    ; Expire
                                        86400 )    ; Minimum

複数行にわたっていますが上記がSOAレコードの記述になります。まずはSOAレコードから見ていきます。

項目 設定値 内容
名前 @ $ORIGINディレクティブに設定した値を示す。$ORIGINディレクティブを省略した場合は、zoneステートメントで指定したドメイン名(この例では「webtest01.com.」)となる。「@」の代わり に、ゾーン名をそのまま書くことも可能。
クラス IN インターネットであることを表す「IN」を指定。
レコードの種類 SOA 本レコードがSOAレコードであることを示す。
MNAME ns.webtest01.com. 本ゾーンのプライマリーDNSサーバーをFQDNで指定。(末尾の「.」は必須)
RNAME root.webtest01.com. 本ゾーンの管理者メールアドレスをFQDNで指定。
Serial 2015123105 ゾーン情報のシリアル番号(バージョン)を指定。ゾーン情報を更新する場合はこの値を加算する。
Refresh 28800 セカンダリDNSサーバー(スレーブ)がゾーン情報の更新の有無(「SERIAL」の増加)をチェックする周期を秒単位で示す数値を指定。
Retry 14400 Refreshでゾーン情報の更新ができなかった場合の再試行周期を秒単位で指定。Retryで指定された時間後に再度リフレッシュを試みる。
Expire 3600000 何らかの理由でゾーン情報のリフレッシュができない状態が続いた場合、セカンダリDNSサーバーが持っているデータをどれだけの時間利用してもよいかを秒単位で指定。
Minimum 14400 各資源レコードのデフォルトのTTL(Time To Live=有効期間)を秒数で指定。

「Minimum」でTTL(有効期間)を指定していますが、前述の$TTLディレクティブで指定してした設定と内容がかぶっているように見えます。ただ実際は、両者が意味する内容は異なります。

TTLは、DNS問い合わせに成功したものをキャッシュ(ポジティブキャッシュ)する時間とDNS問い合わせを受けたがドメインが存在しない等の理由で失敗した結果をキャッシュ(ネガティブキャッシュ)する時間の2つのタイプに分かれます。

ポジティブキャッシュとネガティブキャッシュそれぞれの性質を考えると、同じTTLの値を使用するのはあまり都合よくありません。

そこで、BIND 8.2以降ではSOAレコードにあるTTL(Minimum)の値をネガティブキャッシュ用とし、新たに$TTLディレクティブを設けて各資源レコードのデフォルトTTLの値を指定するようにされました。また、各資源レコード内でもTTLを定義することが可能で、$TTLディレクティブの値を上書きすることができます。これにより、例えば、変更を予定しているホストに関しては、個別にTTL値を短くするなどの対応を取ることができます。

NSレコード

NSレコードには、自身が管理しているゾーンのDNSサーバーのFQDNを記述します。DNSサーバーが複数ある場合は、その数だけNSレコードが必要になります。

          IN NS    ns.webtest01.com.

NSレコードは必ず記述する必要があります。本レコードでは行頭の「名前」を省略しています。この場合、直前のレコードに利用したものを指定したことになります。つまりここではSOAレコードで指定した「@」が指定されます。

MXレコード

MXレコードには、メールサーバーのアドレスと優先順位を記述します。

          IN MX 10 mail.webtest01.com.

優先順位は数値が低いほど高く、優先順位の高いメールサーバーが停止したときに、低いサーバーをバックアップ用として利用します。上記サンプルでは1台分のみ定義し、優先順位を10としています。

Aレコード

Aレコードには、正引き(ホスト名からIPアドレスを取得する)のための情報を記述します。

localhost IN A     127.0.0.1
ns        IN A     172.16.0.10
pc01      IN A     172.16.0.1
pc02      IN A     172.16.0.2
router    IN A     172.16.0.254

AレコードでこのDNSサーバーが管理しているドメインのホスト名とIPアドレスの対応を記述しています。ドメイン名は省略しても構いません。

これで例えば、ホスト名「pc01.webtest01.com.」に対する名前解決を要求されたときIPアドレス「172.16.0.1」が返されるようになります。

以上で正引き用設定ファイルの編集は完了です。次回は逆引き用設定ファイルの編集方法について見ていきます。

2016年01月02日(土)|BIND DNSサーバー構築

BINDの設定(named.conf)

BINDを使用してDNSサーバーを構築するためには、まず以下3つの設定ファイルを編集する必要があります。

  • BIND自体の基本設定ファイル(named.conf)
  • 正引き用設定ファイル
  • 逆引き用設定ファイル

今回はBIND自体の基本設定ファイル(named.conf)の編集方法について見ていきます。

DNSサーバー配置概要

設定方法について見ていく前に、今回構築していくDNSサーバーの配置概要図を以下に示します。
DNSサーバー構築概要図

今回は、上図の「内部DNSサーバー」を構築します。ポイントとしては、内部DNSサーバーからインターネット上のDNSサーバーに対して、DNS問い合わせは可能となるようにしますが、インターネット上から内部DNSサーバーに対して、DNSの問い合わせはできない構成となるようにします。

named.conf

named.confはDNSサーバー(BIND)全体の基本になる設定ファイルです。DNSサーバー自体の設定の他、正引き用設定ファイルや逆引き用設定ファイルのパスなどを指定します。

まず一度、設定済みのnamed.confを見てみましょう。

# cat /etc/named.conf
options {
    directory    "/var/named";
    dump-file    "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query     { 127.0.0.1;
                      172.16.0.0/24;
     };
//  allow-transfer{
//         127.0.0.1;
//  };
    forwarders{
            172.16.0.254;
    };

};

logging {
    category lame-servers { null; };
};

zone "webtest01.com" IN {
    type master;
    file "webtest01.com";
    allow-update { none; };
};
zone "0.16.172.in-addr.arpa" IN {
    type master;
    file "webtest01.com.rev";
    allow-update { none; };
};

named.confでは、3つのステートメントで構成されます。

ステートメント 概要
opions BIND全体にかかわる設定項目を定義する。optionsステートメントで設定した一部内容はzoneステートメントにも反映される。
logging DNSサーバーのログ出力に関する設定項目を定義する。
zone ゾーンを宣言し、ゾーンファイルへのパスを設定する。また、そのゾーン固有の各種オプション設定(リカーションの可否、クエリーやゾーン転送の許可など)を設定する。

zoneステートメントでは複数のゾーンを定義できますが、各ゾーンで同じ設定となる項目は、opionsステートメントでまとめて設定することができます。それにより、同じ設定項目を各ゾーンごとに記述する必要がなくなります。(ゾーンとはDNSサーバーがドメインを管理する範囲のことです。厳密には違いますが、ここでは「1ゾーン=1ドメイン」と考えてください。)

opionsステートメント

設定項目はたくさんありますが、ここでは必要最低限な項目のみ見ていきます。

options {
    directory    "/var/named";
    dump-file    "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query     { 127.0.0.1;
                      172.16.0.0/24;
     };
//  allow-transfer{
//         127.0.0.1;
//  };
    forwarders{
            172.16.0.254;
    };

};
設定項目 概要
directory zoneステートメントの中に出てくる設定ファイルのディレクトリパスやnamedデーモンのワークディレクトリを指定。
dump-file キャッシュ内容を保存するファイルのパスを指定(rndcで利用)。
statistics-file rndcを使ってステータス情報を要求した際に統計情報が追記されるファイルのパスを指定。
memstatistics-file サーバー終了時にメモリ使用統計について出力するファイルのパスを指定(rndcで利用)。
allow-query DNSクエリ(問い合わせ)を許可するホストもしくはネットワークを指定。
allow-transfer ゾーン転送を許可するホストを指定(通常はセカンダリDNSサーバーを指定)。
forwarders 自身で解決できない問い合わせを転送するフォワーダーを指定。

DNSサーバーは通常、プライマリとセカンダリの2つ以上必要となります。これは、DNSがドメインや各ホストに関する情報を管理する基本的なサービスであり、常に動作していないといけないからです。複数のDNSサーバーは同じ内容を持っていなければいけません。情報を管理し更新するDNSサーバーをプライマリDNSサーバーと呼び、プライマリDNSサーバーの内容を自動的にコピーして情報を管理するDNSサーバーをセカンダリDNSサーバーと呼びます。「allow-transfer」にはセカンダリDNSサーバーを指定しますが、今回はサンプルであり、DNSサーバーを1台しか構築しないため、コメントアウトしておきます。(行頭に「//」と記述することでその行はコメントとなります。)

また、上記サンプルではフォワーダ機能を使用し、自身のDNSで解決できない問い合わせを「forwarders」に指定したDNSサーバーに転送するようにしています。通常、ルーターやプロバイダのDNSサーバーをフォワーダとして指定します。

loggingステートメント

BINDはこれまで数々の脆弱性が発見され、その度に緊急のアップデートを繰り返しています。シェアが群を抜いて高いこともあり、ハッカーにも狙われやすく、当たり前のことですがセキュリティに関しては高い意識を持つ必要があります。

loggingステートメントでは、ロギング機能の設定を行ないます。

BINDで適切なログを収集、監視し、攻撃の意思を持つアクセスを特定できるようにしておくことは管理者として必須な作業です。

と、大げさに前振りしましたが今回構築するDNSサーバーは(アドレス変換を行なう)ルーター配下に配置するため、外部からアクセスされることはありません。そのためここではロギングに関する設定は特に行ないません。

ただし、IPアドレスからホスト名を逆引きできなかった場合に出力される「lame server resolving …」というログを出力しないように「category lame-servers」をnullで指定します。

logging {
    category lame-servers { null; };
};

zoneステートメント

zoneステートメントではゾーンの宣言を行ないます。

ホスト名からIPアドレスを取得するための正引き用のゾーン設定を以下で行なっています。

zone "webtest01.com" IN {
    type master;
    file "webtest01.com";
    allow-update { none; };
};

webtest01.comドメインのためのゾーンを設定します。

設定項目 概要
type マスター/スレーブの関係を指定。プライマリDNSサーバーの場合は「master」、セカンダリDNSサーバーの場合は「slave」を指定。
file 正引き用設定ファイルのパスを指定。
allow-update ゾーン情報の更新を許可するホストもしくはネットワークを指定。

次にIPアドレスからホスト名を取得するための逆引き用のゾーン設定を行ないます。

zone "0.16.172.in-addr.arpa" IN {    //ネットワークアドレスを逆にした数値を入力
    type master;
    file "webtest01.com.rev";
    allow-update { none; };
};

設定項目は正引き用の内容と同じです。
決まりではありませんが、逆引き用設定ファイルの名前は正引き用設定ファイルの後ろに「.rev」を付加するのが慣習となっています。

以上でBIND自体の基本設定ファイル(named.conf)の編集は完了です。ただ、完了といってもあくまで基本的な部分のみの設定のみです。named.confには他にも様々な設定項目があり、非常に奥が深いです。一度に全て覚えようとせず、まずは動くものを構築するのが大切でしょう。

次回は正引き用設定ファイルの編集方法について見ていきます。

2016年01月01日(金)|BIND DNSサーバー構築

BINDのインストール

BINDをインストールするには、ソースアーカイブをダウンロードしてビルドする方法と、バイナリパッケージを利用する方法があります。

通常はパッケージ管理ユーティリティ(yumやrpm等)を利用できるバイナリパッケージをインストールします。

ここではyumを使用して、BINDをインストールします。以前はcaching-nameserver(キャッシュネームサーバー)というパッケージがあり、それも併せてインストールする必要がありましたが、最新バージョンのBINDでは左記パッケージも含まれるようになったため、インストールは不要です。caching-nameserverは、1度問い合わせを行うと一定期間、その結果をローカルに記憶しておきます。

# yum -y install bind
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package bind.i686 32:9.8.2-0.17.rc1.el6_4.6 will be installed

~ 省略 ~

Installed:
  bind.i686 32:9.8.2-0.17.rc1.el6_4.6

Dependency Installed:
  portreserve.i686 0:0.0.4-9.el6

Dependency Updated:
  bind-libs.i686 32:9.8.2-0.17.rc1.el6_4.6
  bind-utils.i686 32:9.8.2-0.17.rc1.el6_4.6

Complete!

以上でBINDのインストールは完了です。yumを使用すると上記のようにインストールは簡単に行なえます。

次回からはBINDの設定方法について見ていきます。

2015年12月31日(木)|BIND DNSサーバー構築

サイト内検索

カテゴリー

  • Apache2.2構築
  • BIND DNSサーバー構築
  • Linux基礎知識
  • NTPサーバー構築
  • vsftpd FTPサーバー構築

サイト情報

  • 当サイトについて
  • 免責
  • お問い合わせフォーム
  1. CentOSサーバー構築入門
  2. BINDの記事一覧

CentOSサーバー構築入門

CentOSによるサーバー構築方法をわかりやすく解説しています。
  • 特定商取引法に基づく表示
  • 運営者情報
  • お問い合わせ
  • サイトマップ
  • twitter
  • facebook
  • Google +1
  • RSS
Copyright ©2025 CentOSサーバー構築入門 All Rights Reserved.

[↑]このページの先頭へ