📄

伊予鉗家インフラ覚え書き - 物理マシン、DNSサーバ編 -

2023/10/17に公開

「伊予鉗家」のインフラ担当であるロイスがサーバ環境を忘れないようにするための覚え書きです。

記憶を頼りに書いてあるのと、順番こうすればスムーズだったなと思いながら手順を入れ変えている所があるので、もしかしたらこの通りにやっても動かないかもしれません。

物理マシンでも Ansible とか使えば IaC できそうだけど、OS ごと潰す羽目になった時は色々終わってる時だと思うのであまり気にせず、代りにアプリ類を Docker 上に構築し物理マシンの設定を最小限に心掛けるようにする。

OS設定

前提

  • マシンは Intel Corei5 が積んである適当なノートパソコン
  • DHCP 機能を持っているルーターが LAN 内に存在する

Ubuntu インストール

部屋の片隅に転がっていたパソコンに Ubuntu を入れた。
ディストリビューションは何でも良かったけどあたりさわりの無さそうなのが Ubuntu だった。
初期設定は GUI なので促されるままに設定をする。

とりあえず sudo apt-get update, sudo apt-get upgrade だけはかけておく。

ルータ設定

サーバ上で IPv4 アドレスを確認し ( ip a からそれっぽいのをみつける ) DHCP リースの記憶が残っているうちに手動割り当てに変更しておく。

接続周り

SSH 設定

手元の端末は Win10 だけど、 WSL(Ubuntu) でアクセスするから特別な弊害は無い。
どうせ外部公開はしないものなので SSH ポートの変更とかはしない。

  • 接続したいパソコンでキーペアを作成する
    • ssh-keygen で適当に作成する。パスフレーズなんてつけない
  • サーバにパスワードでログインする
  • ~/.ssh を 700 で作成する
  • ~/.ssh/authorized_keys を作成し、 vim からコンソール経由で貼り付ける。横着。
  • authorized_keys のパーミッションを 600 にしておく
  • GUI でも使うユーザーなのでパスワードログインを弾くとかの設定はしない

DNS 設定

DNSだけは物理サーバ側に立てないとブートストラップ問題がおこりそうなので物理サーバに立てる。

サーバ側

/etc/systemd/resolved.conf に以下の設定を入れこむ

DNS=127.0.0.1 8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:

sudo systemctl restart systemd-resolved.service でリゾルバを再起動する

apt-get install dnsmasq で dnsmasq を入れる

各種設定ファイルを変更する

/etc/dnsmasq.conf
# デフォルトの /etc/hosts を参照しない
no-hosts
# hosts として参照したいファイル
addn-hosts=/etc/hosts_dnsmasq
# ログを出力する
log-queries
# ログの出力場所
log-facility=/var/log/dnsmasq/dnsmasq.log
# dns が listen するポート
port=53
# プライベートIPを逆引きしない
bogus-priv
# 上位DNSファイル
resolv-file=/etc/dnsmasq_resolv.conf
# 名前解決の優先順位を上からにする
strict-order
# ドメイン名のないクエリに自動的にドメインを付与する
expand-hosts
# ドメイン名
domain=lan
local=/lan/
# ドメインの無いホストは転送しない
domain-needed
# キャッシュサイズ
cache-size=0
# DHCP機能は使わない
no-dhcp-interface=eth0
/etc/dnsmasq_resolv.conf
nameserver 8.8.8.8
/etc/hosts_dnsmasq
192.168.11.18 iyokan.lan
192.168.11.18 gitbucket.iyokan.lan
192.168.11.18 iyotools.iyokan.lan

sudo systemctl restart dnsmasq.service で dnsmasq の再起動を行ったら dig @localhost iyokan.lan で設定が反映されているかどうかを調べる

Discussion