トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

BsdSetup

/etc/make.conf

CPUTYPEのようなコンパイラフラグだけでなく、アップデートとかの設定が詳細に設定できる。/usr/share/examples/etc/make.conf に雛形がある。

ソースツリーのUPDATE
CVSupに頼らなくても、/etc/make.conf に

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

と戻して完了。