FreeBSDの基本設定

AWS EC2 に FreeBSD のインスタンスができたので、基本的な設定を入れてい く。

IP の固定とホスト名

EC2 の使用上、単にインストールしただけだと reboot 毎に異なるグローバル IP に紐付けられてしまうので、Elastic_IP を使って固定する。

固定したら逆引きを AWS 側へ依頼 する。 この時、依頼する前に正引きを設定しておく必要があるとのこと。

翌日にメールが来て、無事に逆引きを設定してもらえた。

ノード内部でのホスト名指定は /etc/rc.conf[.local] に hostname=”hogehoge” とすれば良い。

/usr/ports の展開

ずっと pkg で生きていくなら、/usr/ports 展開は必ずしも必要ではないが、 pkg のバイナリパッケージとは異なるオプションでコンパイルしたい場合など に必要になる。

ディスク容量が足りない場合は、別マシンに自前のバイナリパッケージサーバ を作っておけばいい (ports-mgmt/poudriereとか) のだが、これはまた別の話。

初回は fetch して extract、以後は fetch して update。

1
2
# portsnap fetch
# portsnap extract
1
2
# portsnap fetch
# portsnap update

これで /usr/ports 以下に ports のツリーが出来た。

pkg の更新

すでに cperva さんの ec2_* などが pkg からインストールされているので、 それを最新版にしておく。

1
2
# pkg update
# pkg upgrade

基本的なユーティリティのインストール

とりあえず必要なユーティリティをインストールしておく。 そのために

  • bash
  • lv
  • nkf
  • vim-lite
  • lftp
  • sudo

不都合がでるまではバイナリで行くことにして、こんな感じでインストールし た。

1
2
3
# pkg search bash
# pkg info bash
# pkg install bash

設定も入れておく。

  • /etc/profile に追記

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    alias cp='cp -i'
    alias dig='drill'
    alias ftp='lftp'
    alias jless='lv'
    alias less='lv'
    alias ls='ls -F'
    alias more='lv'
    alias mv='mv -i'
    alias rm='rm -i'
    alias ssh='ssh -A'
    alias vi='vim'
    alias view='vim -R'
    
    MANPATH=${HOME}/local/man:/usr/local/man:/usr/share/man; export MANPATH
    PATH=${HOME}/local/sbin:${HOME}/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sb
    in:/usr/bin:/sbin:/bin; export PATH
    PS1="${USER}@\h \W\\$ "; export PS1
    TMOUT=1800; export TMOUT
    

    これで、ssh でログインした時は大丈夫なのだが、さらに bash コマンドを 叩いた時には alias や環境変数の設定が有効にならないので、~/.bashrc から /etc/profile を呼んでおく。

  • /root/.bashrc や ~ec2_user/.bashrc に追記。

    1
    [ -r /etc/profile ] && . /etc/profile
    

    pw user add なんかでユーザを作成するときの -k (skelton) オプションで この設定を入れるには、/etc/skel にこの .bashrc をコピーしておくこと。

  • ec2-user のログインシェルを bash にする。

    1
    $ chsh -s /usr/local/bin/bash
    
  • 自アカウントがsudoを使えるようにする

    1
    2
    # visudo
    %wheel ALL=(ALL) ALL  ← この行を有効にする
    

    wheel グループに対して sudo を許可するようにしておいて、必要な一般ユー ザを wheel グループに参加させておくのが色々好都合か。

  • ユーザ作成するなら root@amatsubame ec2-user# pw group add kawasaki

root@amatsubame ec2-user# pw user add moto -g kawasaki -G wheel -h /home/moto -m -k /etc/skel -s /usr/local/bin/bash password for user moto:

このあと何する?

  • sshd の設定変更。port, rootログイン禁止 パスワードログイン禁止など
  • unbound on 127.0.0.1
  • dhclient.conf で /etc/resolv.conf を 127.0.0.1 に向ける。
  • /etc/aliases で root 宛メールが自分へ来るように。
  • rkhunter
  • ossec-hids local
  • ipfw
  • kernel 最適化

備考

執筆時期: 2015/Jul/16