[FreeBSD] denyhostsを導入

今年最後のエントリは今更感のあるsshのセキュリティについて.

最近になって,とあるIPから頻繁にsshへユーザ名を変えながらのアクセスがあるようになり,連日auth.logがそのログで埋まってしまうようになりました.
このまま放置しておくとログ確認するのも面倒だし,何より不安なので,今更ながらsshのセキュリティ強化をすることにしました.
続きを読む

[FreeBSD][nginx] http-auth-digestモジュールパッチ

nginxは標準ではDigest認証に対応していません.
そのため,Digest認証をするために,samizdatco氏の作ったnginx-http-auth-digestというサードパーティモジュールを利用します.

FreeBSDのportsで,HTTP_AUTH_DIGESTオプションをオンにすると導入されるモジュールも同じです.

このモジュールですが,とあるバグを抱えています.(2012/10/20現在)
URIによっては認証が正常に行われず,401←→認証の無限ループが発生するというものです.

例えば,以下のようなURLにアクセスした際に問題が発生します.

http://example.com/hoge.php?param=foo

このバグを修正するためのパッチを作成してみました.

続きを読む

[FreeBSD] [BIND] jail環境にネームサーバーを構築(1)

FreeBSD には, jail という文字通り,プロセスを”監獄”に閉じ込める仕組みがある.

閉じ込めてしまうことで,もし仮にそのプロセスが乗っ取られてしまっても,被害がサーバー全体に及ぶのを防ぐことが出来る.

今回は,それを使って,ネームサーバーを立ててみる.

続きを読む

[FreeBSD] 作業効率向上のための設定いろいろ

デフォルトのままではいろいろと作業がやりにくいので、portsで追加のソフトをインストールしたり、設定をしたりする。

vim

デフォルトで入っているviは削除した文字が画面上では消えずに残ってたり、カラー表示が出来なかったりするので、portsからvimをインストールして使うようにする。

# cd /usr/ports/editors/vim
# make install clean NO_GUI=yes

このとき、NO_GUIを指定しておかないと、X関係のパッケージを勝手に大量にインストールし始めるので注意。

インストールが完了したら、ホームディレクトリに.vimrcファイルを作成して設定する。
いろいろ設定しておきたいところだけど、とりあえずこれだけ。という設定。

set fileencoding=utf-8
set number
syntax on
set smartindent
set tabstop=4

たったこれだけの設定でも結構違う。
あとはaliasを書き加えておく。

export EDITOR=/usr/local/bin/vim
alias vi='/usr/local/bin/vim'

lsをカラー表示

Linuxでは大体、デフォルトでlsしたときフォルダや実行ファイルがカラーで表示されるけれど、FreeBSDはデフォルトでは全部白文字。しかも何の記号もついていないので全く区別がつかない。
デフォルトのlsでも-Aオプションを付ければ記号がつくので一応判別できるようになるけど、カラーの方が見やすいのでカラー化する。

色を付けるには、いろいろ方法があるみたいだけど、今回はgnulsを使用する方法をとった。
まずは、portsからインストールする。

# cd /usr/ports/misc/gnuls
# make install clean

あとは、シェルの設定ファイルにaliasを追加するだけ。

alias ls='/usr/local/bin/gnuls --color=auto'

[FreeBSD] シェルのインストールとカスタマイズ

FreeBSDは、シェルは初めはsh,csh,tcshしかはいっていない。
自分はbashに慣れているので、portsでインストールして使いやすいようにカスタマイズした。

インストール

portsで行う。

# cd /usr/ports/shells/bash
# make install clean
# cd ../bash-completion
# make install clean

設定

まず、ログインシェルを変更する。
chpassでログインシェルを/usr/local/bin/bashに変更する。
※以前の環境で組んだシェルスクリプトを使用する際などに面倒にならないように、

# ln -s /usr/local/bin/bash /bin/bash

した場合でも、/usr/local/bin/bashを指定する。もしくは、/etc/shells を書き換える。でないとエラーが出る。

次に、ホームディレクトリへ設定ファイルを配置する。
まず始めに書くのは、.bash_profile。
これには、とりあえず次に書く.bashrcの内容を読み込むだけの記述をしておく。

source .bashrc

.bashrcの中身はこんな感じにした。

set -o vi
ulimit -c 0

if [ -f /usr/local/etc/bash_completion ]; then
    . /usr/local/etc/bash_completion
fi

export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8

alias ..='cd ..'
alias ll='ls -lh'
alias mv='mv -i'
alias cp='cp -i'
alias rm='rm -i'
alias ports='cd /usr/ports'

あとは色を付けたら大分見やすくなりそう。

FreeBSD 8.0-RELEASE への移行

部屋の模様替えをきっかけに、サーバーのOSをUbuntuからFreeBSDへ変更することにした。

構築中はWikiに書き込んだり出来ないので、メンテナンス中に使用しているXREAサーバーにWordPressをインストールして臨時の鯖構築日記にすることにした。
LinuxからBSD系へ初めての移行なので、分からないことがあったりしたらどんどん書いていくつもり。