FreeBSD 11.1の初期設定

2016年9月24日

FreeBSDをサーバー利用するための設定内容をまとめます。具体的にはFEMPでWebサーバーを立てるための設定方法です。

レンタルサーバー・自宅サーバー設定・構築のヒントというサイトの最初にやっておきたいこと(FreeBSD編)を参考にセットアップしました。

OSのインストール

さくらのVPSであればカスタムOSをデフォルト設定でインストール、Vultrなら用意されているOSのインスタンスを作成します。デスクトップ利用ではないのでGUIなどは不要です。



いずれも初期のOSはパッチレベル0なので、freebsd-updateでセキュリティパッチを適用します。

$ freebsd-update fetch
$ freebsd-update install

fetchでパッチをダウンロードしてinstallで適用すると、現時点での最新のパッチレベルになります。が、今後もセキュリティアップデートを追いかける必要があるので、cronで毎朝3時に確認することにしましょう。/etc/crontabに次のように記載します。

0     3     *     *     *     root     /usr/sbin/freebsd-update cron

cronオプションの振る舞いはfetchそのものです。実際にインストールはされません。fetchとの違いはエラーが出たりパッチがダウンロードされたときに、メール通知があるという点です。/etc/freebsd-update.confに送信先をMailToで指定することで任意のアドレスで受信できます。指定なしの場合はcrontabの指定ユーザー宛に通知が届きます。

MailTo mail@address

ファイアウォールの設定

必要なポートだけを開けるよう/usr/local/etc/ipfw.rulesにて設定しました。参考サイトのFreeBSDでファイアウォール(ipfw)の設定を丸パクリです。開いたポートは以下のとおり。

  • ssh(20022)
  • mail(25)
  • http(80)
  • dns(53)
  • ntp(123)
  • https(443)

/etc/rc.confにてファイアウォールを有効にしたら再起動します。最低限SSHのポート開き忘れのないことを確認してからファイアウォールを動作させましょう。

firewall_enable="YES"
firewall_script="/usr/local/etc/ipfw.rules"
firewall_logging="YES"

この辺のファイル編集はviでもいいっちゃいいんですが、vとかgとか使えないのでvimが欲しいところ。pkg installでvim(またはneovim)をインストールしておきましょう。

SSHの設定

さくらのVPSにしろVultrにしろWebブラウザによるコンソール接続が可能ですが、ターミナルからの接続もできるようにします。ただしrootでのssh接続は危ないのでssh接続用ユーザーと認証鍵を作ります

続いて/etc/ssh/sshd_configにて設定を。

Port 20022                  # 接続ポートを標準外にすることで攻撃されにくくします
Protocol 2                  # SSH2接続のみ許可します
PermitRootLogin no          # rootでのログインを拒否します
PasswordAuthentication yes  # パスワード認証を許可します
PermitEmptyPasswords no     # パスワードなしの接続を拒否します
AllowUsers general_user     # ログインユーザーを限定します

これらコメントアウトされているオプションを有効化し、適宜値を書き換えてSSHサーバーを再起動します。

$ /etc/rc.d/sshd restart

ちなみに接続ポートが標準外になると次のようにポート指定をしてssh接続する必要があります

$ ssh general_user@xxx.vs.sakura.ne.jp -p 20022

不要プロセスの停止

ps auxでプロセス表示すると、仮想コンソールプロセスが動作してしまっているので/etc/ttysにてttyv1からttyv7までをoffに設定変更後、仮想コンソールを再起動します。

$ kill -HUP 1

ここまで準備しておけば、リモートでいろいろ環境構築できるようになります。

ここにApacheなりNginxなりをインストールすればWebサーバーとして使えるようになりますよ。