FreeBSD 12の基本設定

 ここでは、OSの基本的な設定やOSやパッケージのアップデート方法などを行います。

OSの基本設定


まずは、OSが起動することを確認します。

rootユーザでログインできることを確認します。

ifconfig -aコマンドで、ネットワークインターフェースの設定がされていることを確認します。

bsdconfigコマンドで、キーマップの設定を行います。

「7 console」を選択します。

「3 Keymap」を選択します。

「Japanese 106」を選択します。(Jキーを押すことで、頭文字Jまでジャンプできます)
選択が終わったら、「X Exit」を選択してbsdconfigのメニューを終了します。

sshdの設定

次にsshd(セキュアシェルサーバ)の設定を行います。使いにくいコンソールから早く脱却したい!

# cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
# vi /etc/ssh/sshd_config

設定ファイルをコピーしてから、viコマンドで編集します。

直すところは、

  • PermitRootLoginのコメントを外してyesに。rootでのログインを有効にします。甘いセキュリティですが、おうちサーバなのでsshはLAN内からしかつなぎません。
  • PasswordAuthenticationのコメントを外してyesに。パスワード認証を有効にします。証明書での認証の設定は面倒なので。
  • UseDNSのコメントを外してnoに。LAN内の接続元のホスト名を調べるのは無駄なので。インターネットに公開している場合も無駄なトラフィックを出さないために、noにしておいたほうが良いと思います。

# service sshd restart

で、sshdを再起動します。

自分が普段使っているのはWindowsなので、Teratermからおうちサーバに接続します。

rootユーザ直撃で、ログインできることを確認しました。

local_unboundの設定

インストール時にlocal_unboundを有効にしました。その設定を確認しておきます。

root@cafe:~ # cat /etc/resolv.conf
search lo.zeke.ne.jp
# nameserver 2001:2c0:cd03:ca00::4
nameserver 127.0.0.1
options edns0

/etc/resolv.confの内容を確認すると、インストール時に指定した、ローカルのネームサーバがコメントアウトされていて、自分自身を参照するように変更されています。

root@cafe:~ # cat /etc/unbound/unbound.conf
# This file was generated by local-unbound-setup.
# Modifications will be overwritten.
server:
        username: unbound
        directory: /var/unbound
        chroot: /var/unbound
        pidfile: /var/run/local_unbound.pid
        auto-trust-anchor-file: /var/unbound/root.key

include: /var/unbound/forward.conf
include: /var/unbound/lan-zones.conf
include: /var/unbound/control.conf
include: /var/unbound/conf.d/*.conf

unboundの基本設定は、問題なさそうです。インクルードされているファイルも確認します。

root@cafe:~ # cat /var/unbound/forward.conf
# This file was generated by local-unbound-setup.
# Modifications will be overwritten.
forward-zone:
        name: .
        forward-addr: 2001:2c0:cd03:ca00::4

ローカルのネームサーバにフォワードしていますね。ローカルネームサーバはプライベートなIPアドレスのホスト名も定義しているので、これで問題ありません。

root@cafe:~ # cat /var/unbound/lan-zones.conf
# This file was generated by local-unbound-setup.
# Modifications will be overwritten.
server:
        # Unblock reverse lookups for LAN addresses
        unblock-lan-zones: yes
        insecure-lan-zones: yes

unblock-lan-zonesが有効なので、プライベートなLANのIPアドレスもローカルネームサーバに問い合わせを行います。ローカルネームサーバがない場合、どちらもnoにしておけばいいんじゃないかな。

root@cafe:~ # cat /var/unbound/control.conf
# This file was generated by local-unbound-setup.
# Modifications will be overwritten.
remote-control:
        control-enable: yes
        control-interface: /var/run/local_unbound.ctl
        control-use-cert: no

これは、デフォルトもままでいいんじゃないかな。

root@cafe:~ # ls /var/unbound/conf.d/*
ls: No match.
root@cafe:~ #

他にはありませんでした。

root@cafe:~ # grep unbound /etc/rc.conf
local_unbound_enable="YES"
root@cafe:~ # service local_unbound status
local_unbound is running as pid 418.
root@cafe:~ #

local_unboundが自動起動するように設定されていて、起動中であることを確認しました。

root@cafe:~ # drill @127.0.0.1 google.com
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 59681
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; google.com.  IN      A

;; ANSWER SECTION:
google.com.     300     IN      A       172.217.175.110

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 134 msec
;; SERVER: 127.0.0.1
;; WHEN: Tue Sep 15 00:07:15 2020
;; MSG SIZE  rcvd: 44
root@cafe:~ #

drilllコマンドで動作確認しました。ばっちりですね。
 

ntpd、ntpdateの設定

インストール時にntpd、ntpdateを有効にしました。その設定を確認しておきます。

root@cafe:~ # grep -v ^# /etc/ntp.conf | grep -v ^$
tos minclock 3 maxclock 6
pool 0.freebsd.pool.ntp.org iburst
restrict default limited kod nomodify notrap noquery nopeer
restrict source  limited kod nomodify notrap noquery
restrict 127.0.0.1
restrict ::1
leapfile "/var/db/ntpd.leap-seconds.list"
root@cafe:~ #

(/etc/ntp.confの内容をコメント行と空行を除いて表示してます)
ntpサーバとして、0.freebsd.pool.ntp.orgを指定していますね。ローカルなntpサーバでも良いですが、他によさそうなものを探して見ます。

ふつーであれば、nictかmfeedを使いますが、今回はあえて、pool.ntp.orgを使います。以下のように設定ファイルを変更します。

root@cafe:~ # cp -p /etc/ntp.conf /etc/ntp.conf.orig
root@cafe:~ # vi /etc/ntp.conf
root@cafe:~ # diff /etc/ntp.conf /etc/ntp.conf.orig
32c32
< #pool 0.freebsd.pool.ntp.org iburst
---
> pool 0.freebsd.pool.ntp.org iburst
40c40
< pool 0.JP.pool.ntp.org iburst
---
> # pool 0.CC.pool.ntp.org iburst
root@cafe:~ #

pool 0.freebsd.pool.ntp.orgをコメントアウトして、コメントとして定義されていたpool 0.CC.pool.ntp.orgを日本用に書き換えて有効にします。

root@cafe:~ # grep ntpdate_config /etc/defaults/rc.conf
ntpdate_config="/etc/ntp.conf"  # ntpdate(8) configuration file

ちなみに、ntpdateも/etc/ntp.confを見てるので、この変更はntpdateにも有効です。

root@cafe:~ # service ntpd status
ntpd is running as pid 613.
root@cafe:~ # service ntpd restart
Stopping ntpd.
Starting ntpd.
root@cafe:~ # service ntpd status
ntpd is running as pid 1350.
root@cafe:~ #

設定を反映させるために、ntpdを再起動します。

root@cafe:~ # ntpq -pw
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.JP.pool.ntp.org
                 .POOL.          16 p    -   64    0    0.000    0.000   0.000
-sh11.paina.net  117.102.177.135  2 u    6   64    5   21.641  -57.809   5.654
*ntp-a2.nict.go.jp
                 .NICT.           1 u    5   64    7    7.223    2.600   7.007
+time.cloudflare.com
                 10.51.8.166      3 u    4   64    7   13.620   -1.200   6.948
+x.ns.gin.ntt.net
                 249.224.99.213   2 u    2   64    7   21.630   -1.898   1.710
root@cafe:~ #

ntpqコマンドで、参照しているntpサーバの一覧を確認します。行頭に「*」がついているのが、参照中のサーバで、「+」がついているのが待機中のサーバです。

シェルの日本語化

FreeBSDではシェルとしてcshを使いますが、そのまま日本語を使えません。日本語化しておきましょう。
インターネットで書かれている日本語化をそのまま使うと、エラーメッセージやdateコマンドやlsコマンドの日付まで日本語化されてしまいます。
rootでコンソールを使うことを考えると、ファイル名やテキストファイルの内容など必要なところだけ、日本語化されて欲しい!
なので、以下のようにしています。

root@cafe:~ # cd
root@cafe:~ # vi .login_conf
root@cafe:~ # cat .login_conf
me:\
        :lang=C:\
        :setenv=LC_CTYPE=ja_JP.UTF-8:\
        :charset=ja_JP.UTF-8:\

root@cafe:~ #

ホームディレクトリの.login_confを編集して、新規にログインしてみます。

root@cafe:~ # vi テストファイル.txt
root@cafe:~ # cat テストファイル.txt
これはテストのためのファイルです。

root@cafe:~ # ls -l テストファイル.txt
-rw-r--r--  1 root  wheel  53 Oct 11 21:31 テストファイル.txt
root@cafe:~ #

このように、viコマンドやlsコマンドで日本語のファイル名や内容を取り扱えるようになりました。

以上で、基本設定は完了です。