FreeBSD 10.0をインストールしてはじめにやったことメモ

sshdの設定(その1)

とりあえずポートを変えてルートで入れなくする。 (秘密鍵でしか入れなくするのは終わってから)

/etc/ssh/sshd_configで、以下の行を編集、もしくはコメントアウトを外す。 ポート番号は適当な値を入れる。

Port 12345
PermitRootLogin no
PermitEmptyPasswords no

sshdを再起動。

# service ssh restart

これ以降はsshでパスワードログインしてから作業する。

sshdの設定(その2)

秘密鍵をつくって、秘密鍵でしかログインできないようにする。

ssh-keygen -t rsa -b 2048
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

~/.ssh/id_rsa秘密鍵)は何らかの手段で手元に持ってくる。

次に、/etc/ssh/sshd_configの以下の行を編集・コメントアウトを外す。

PasswordAuthentication no
ChallengeResponseAuthentication no

sshdの再起動

sudo service restart sshd

秘密鍵でログインできるかためす。

もろもろアップデート

# env ASSUME_ALWAYS_YES=YES pkg bootstrap
# pkg update
# pkg upgrade
# freebsd-update fetch install

あると便利なものをインストール

sudo

# pkg install sudo
# sudovi

sudoersの以下の行のコメントアウトを外す。

%wheel ALL=(ALL) ALL

以下の行を追記。 タイムアウトを10分に伸ばしておく。

Defaults timestamp_timeout = 10

tmux

sudo pkg install tmux

zsh

ログインシェルをzshにする。 はじめにzshを起動するといろいろ聞かれていろいろ設定がつくられる。

sudo pkg install zsh
chsh -s /usr/local/bin/zsh
zsh

pfの設定

/etc/rc.confに以下を追記

pf_enable="YES"

~/pf.conf.tmpを以下の内容で作成する。

# const
if = vtnet0
ssh = 12345
dns = 53
http = 80
https = 443
ntp = 123

# default
block in  all
block out log all

# ssh
pass in on $if inet proto tcp from any to $if port $ssh flags S/SA keep state

# dns
pass out on $if proto udp from any to any port $dns

# http, https
pass out on $if proto tcp from any to any port {$http, $https}

# ntp
pass out on $if proto udp from any port $ntp to any port $ntp
# チェック
pfctl -nf ~/pf.conf.tmp

# 問題なければこれを設定ファイルとして使い、pfを有効に
cp ~/pf.conf.tmp /etc/pf.conf
sudo service pf start

もし追記するときは以下の手順で。

cp /etc/pf.conf pf.conf.tmp
sudo vi pf.conf.tmp
pfctl -nf pf.conf.tmp
sudo cp pf.conf.tmp /etc/pf.conf
sudo service pf reload

再起動

sudo reboot