ここに題名を入れる
| トップ | ブレボ | 製作者 | 技術ブログ |
さて,OSのインストールも完了したところで,ようやくこのマシンをサーバとして運用する準備に入ります.
まず最初に入れておきたいのが,sudoとssh.
DragonFly BSDのパッケージ管理はpkgコマンド.ここはFreeBSDと同じ感覚で使えます.
まずはターミナルで以下を実行
pkg install sudo
この時点ではまだ使えません.sudoは「誰でも彼でも使っていいよ〜」というものではないですからね.
というわけで,自分のユーザーをwheelグループに加えてあげます.コマンドは以下のとおり
pw usermod 自分のユーザー名 -G wheel実行したら今度はvisudoと打って,sudoersの設定を確認・編集を行います.
↓この行がコメントアウトされているはずなので,先頭の # を削除します.
%wheel ALL=(ALL) ALL
これで,wheelグループに属するユーザーはsudoが使えるようになります🎉やったぜ!
ここまで設定が済んだら,いったんログアウトして,自分のユーザーで再ログインしましょう.
そして試しにこう打ってみます
sudo whoami
rootと返ってきたら成功!
さて,sshの設定ですが……DragonFly BSDでは最初からインストールされていました.
そのため,やることはただひとつ
sudo service sshd start
これだけでSSHサーバが起動し,外部からの接続が可能になります.めちゃくちゃシンプル.
しかも設定ファイルは /etc/ssh/sshd_config にあるので,ポート変更や鍵認証オンリー設定もすぐに施せます.
インストール直後のDragonFly BSDでは,シェルとしてtcshが設定されています.
ただ,私は圧倒的にbash派なので,さっそくデフォルトシェルをbashに変更していきます.
sudo pkg install bash
これだけでbashが/usr/local/bin/bashにインストールされます.ちなみにLinuxのように/bin/bashではない点はちょっと注意が必要ですね.シバンの時とか.
DragonFly BSDでは,有効なログインシェルとして使うには,シェルのパスが/etc/shellsに登録されている必要があります.私はインストールした時点で登録されていましたが,,
sudo echo /usr/local/bin/bash >> /etc/shells
準備が整ったら,ついにbashをデフォルトシェルに!
chsh -s /usr/local/bin/bash
「chsh」は“change shell”の略で,その名の通りログインシェルを切り替えるコマンドです.これで以後,ログイン時にbashが自動で起動されるようになります.
設定はすぐに反映されますが,一度ログアウトして再ログインすれば,bashの歓迎が確認できます
echo $SHELL
出力が /usr/local/bin/bash になっていれば成功です🎉やったぜ!
このミニPCをせっかく手に入れたので,ただの自宅サーバで終わらせるのももったいない。
どうせなら時間をも制御してしまおうじゃないかということで,このマシンを NTPサーバとして使ってみることにしました。
インストール直後に気づいたのですが,システムの時刻がズレている..
原因はたぶん以下のコンボ
……結果、ログを見るたびに「これは未来予知ログか?」みたいな状態に。
ということで、まずはちゃんとしたNTPクライアントを入れて、正しい時刻を取り戻すところからスタートです。
まずは既に ntpd がいるかどうかチェック
which ntpd
……結果:いない!
どうやらDragonFly BSDには標準でNTPデーモンが入っていないようなので、代わりにopenntpdを導入します。
さくっとインストール
sudo pkg install openntpd例によって /etc/rc.conf に以下を追記して、起動時に自動スタートするようにします
openntpd_enable="YES"
そして手動起動
sudo service openntpd start
これだけで NTPクライアントとしての機能はOK です。超簡単。
しかしこれだけでは正確な時刻は取得できていません.
NTPサーバとして利用するには,正確な時刻を取得することが必須です.
設定ファイル /usr/local/etc/ntpd.conf を編集します.内容は超シンプル
# 利用する上位NTPサーバ(好きなだけ追加可能)
server ntp.nict.jp
server ntp.jst.mfeed.ad.jp
これだけで、このマシンが「信頼できる時刻をもらってくる」ようになります。
openntpd では ntpctl というコマンドが利用できます。
ntpctl -s all # すべて表示
ntpctl -s peers # 上位NTPサーバの情報
ntpctl -s sensors # ハードウェアクロックやセンサ情報(ない場合もある)
ntpctl -s status # 状態のざっくり確認
all か statusを使用した結果内に
・・・ constraint offset 0s, clock synced, ・・・
といった表示があれば,同期されています🎉
以下のようにLAN内の他のマシンに /etc/ntp.conf 等で指定しておけばOKです
server 192.168.xxx.xxx # マシンのローカルIPアドレス