BsdSetup
/etc/make.conf
CPUTYPEのようなコンパイラフラグだけでなく、アップデートとかの設定が詳細に設定できる。/usr/share/examples/etc/make.conf に雛形がある。
- ソースツリーのUPDATE
SUP_UPDATE= yes SUP= /usr/bin/csup SUPFLAGS= -g -L 2 SUPHOST= cvsup.jp.FreeBSD.org SUPFILE= /usr/share/examples/cvsup/stable-supfile DOCSUPFILE= /usr/share/examples/cvsup/doc-supfile
としてやれば、/usr/src にて make update で更新できる。
- Portsツリーの更新
同じく/etc/make.conf に
PORTSNAP_UPDATE= yes
とすれば、/usr/ports にて make update で更新できる。
- OpenOffice.org コンパイル
日本語lacaleでビルドするには
.if ${.CURDIR:M/usr/ports/editors/openoffice.org*} !="" LOCALIZED_LANG= ja WITH_SYSTEM_FREETYPE= yes .endif
としておく
BruteForceBlocker
FreeBSD-5以降はPFを用いたBruteForceアタック対策が可能/usr/ports/security/bruteforceblockerでbruteforceblockerをインストールする。
- 5-STABLEでは/usr/local/bruteforceblocker (Perlスクリプト)の中の
if (/.*Failed password.*from ($work->{ipv4}|$work->{ipv6}|$work->{fqdn}) port.*/i || /.*Invalid user.*from ($work->{ipv4}|$work->{ipv6}|$work->{fqdn})$/i ||
を
if (/.*Failed unknown for illegal user.*from ($work->{ipv4}|$work->{ipv6}|$work->{fqdn}) port.*/i || /.*Illegal user.*from ($work->{ipv4}|$work->{ipv6}|$work->{fqdn})$/i ||
と変更する必要があるようだ。 参照
PFを用いるので、/etc/pf.conf の中で
table <bruteforce> persist file "/var/db/ssh-bruteforce" block in log quick proto tcp from <bruteforce> to any port ssh
をセットする。また、syslogdと連動させるために、/etc/syslog.conf に
auth.info;authpriv.info | exec /usr/local/sbin/bruteforceblocker
を追加しておく。また、当然 /etc/rc.conf で
pf_enable="YES" pflog_enable="YES"
しておく。
(追記)
/var/db/ssh-bruteforce のサイズが大きくなると、再起動時にpfが設定ファイルを読み込めなくなりデーモンが立ち上がらなくなる。
一旦、/var/db/ssh-bruteforce を消去して、bruteforceblockerを少し動かして新しい/var/db/ssh-bruteforceを作成しなおすのに加え、
# sysctl net.pf.request_maxcount=400000
のように、net.pf.request_maxcountを適宜大きく設定する、もしくは/etc/sysctl.conf に書き入れて起動時設定する。
sshguard
BruteForceBlockerがportsからなくなったので、sshguardに移行。これもpfと連携できる。security/sshguard をインストールし、/etc/rc.conf に
sshguard_enable="YES"
を追加。/usr/local/etc/sshguard.conf を編集し、pfと連動するには
BACKEND="/usr/local/libexec/sshg-fw-pf" PID_FILE=/var/run/sshguard.pid
をコメントアウトする。/etc/pf.conf には
table <sshguard> persist block in proto tcp from <sshguard>
を加えておく。再起動すると有効になる。ログについては何もしなくても /var/log/auth.log や /var/log/messages に残る。
マシン更新にともなうユーザアカウントの移行
まずは、旧マシンの /etc/master.passwd を新マシンにコピーする。OSが新しくなると予約されているアカウントが変わるため、必要な行だけコピーする方が良い。
# pwd_mkdb -p /etc/master.passwd
とすれば、旧マシンのユーザのパスワードが新マシンで有効になる。エラーがでなければ、/etc/group も同様に必要な行をコピーする。
/usr/home と /var/mail を rsync を使って同期するが、その前に新マシンのsshdを一時的にルートログイン可能にしておく。
/etc/ssh/sshd_config を編集し、
PermitRootLogin yes
としてやる。そして、旧マシン側から、
# rsync -av -e ssh /usr/home/ root@新マシンIP:/usr/home # rsync -av -e ssh /var/mail/ root@新マシンIP:/var/mail
IPはホスト名でもよいが、コピー元のディレクトリ名の後に「/」はつける必要があるので注意する。コピー先は「/」をつけてもつけなくても同じ。
無事コピーが終わったら、ユーザディレクトリやメールスプールの所有権を確認し、最後に/etc/ssh/sshd_config を
PermitRootLogin no
と戻して完了。