以前プロジェクト管理で紹介したWindowsPCにも構築できるオールインワンタイプのBitNami::RedmineがRedmine0.8.5に対応したようですね。
こちらからどうぞ。
日々業務で接しているLinux,PostgreSQL,SQLServer,FortiGateなどに関することの覚え書きや個人的に気になったことなどを綴っています。
もし、ここの情報があなたのお役に立てるならば幸いです。
2009年9月30日水曜日
2009年9月17日木曜日
Apache configure エラー
CentOS5.3にApacheをソースからインストールしようとしたらconfigureでエラーが発生した。
# tar zxvf httpd-2.2.13.tar.gz
# cd httpd-2.2.13
# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=all
・
・
・
checking whether to enable mod_deflate... checking dependencies
checking for zlib location... not found
checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures
mod_deflateモジュールで条件が満たされていないため構築できないと言われてしまった。ということでzlib関連の状況を確認したところ・・・
# rpm -qa | grep zlib
zlib-1.2.3-3
あっzlib-develがありませんでした。
ソースからインストールするときは開発ライブラリが必要なんですね。
# yum install zlib-devel
これで解決です。
※mod_deflate(サーバからの出力データを圧縮する)詳しくはこちらを参照してください。
# tar zxvf httpd-2.2.13.tar.gz
# cd httpd-2.2.13
# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=all
・
・
・
checking whether to enable mod_deflate... checking dependencies
checking for zlib location... not found
checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures
mod_deflateモジュールで条件が満たされていないため構築できないと言われてしまった。ということでzlib関連の状況を確認したところ・・・
# rpm -qa | grep zlib
zlib-1.2.3-3
あっzlib-develがありませんでした。
ソースからインストールするときは開発ライブラリが必要なんですね。
# yum install zlib-devel
これで解決です。
※mod_deflate(サーバからの出力データを圧縮する)詳しくはこちらを参照してください。
2009年9月8日火曜日
2009年9月4日金曜日
CentOS 5.4 いつ?
Red Hat Enterprise Linux 5.4の提供がスタート。
Hyper-V 2.0でも正式サポートされたように仮想化機能が強化されたようですね。
●発表資料より
Red Hat Enterprise Linuxの5.4ソリューションのはRed Hat Enterpriseの仮想化ポートフォリオの基盤であり、カーネルを含めると、仮想化機能を仮想マシンベースの拡大を実現監督のI / O用(KVM)の技術と、インテル®バーチャライゼーションテクノロジー(インテル® VT - d)およびPCI - SIGのSR - iovは、できるインテル® Xeon ®プロセッサー5500番台ベースのプラットフォームの直接I / Oデバイスを共有することで複数の仮想マシンです。 一方、認定済ハードウェアや顧客へのソフトウェアの広範なエコシステムを提供し続けて、リリースには、I / Oスループットおよび開発者のための追加のツールを含めることが改善しています。
※発表資料全文はこちら
CentOS5.4のリリースが待ち遠しいですね。
Hyper-V 2.0でも正式サポートされたように仮想化機能が強化されたようですね。
●発表資料より
Red Hat Enterprise Linuxの5.4ソリューションのはRed Hat Enterpriseの仮想化ポートフォリオの基盤であり、カーネルを含めると、仮想化機能を仮想マシンベースの拡大を実現監督のI / O用(KVM)の技術と、インテル®バーチャライゼーションテクノロジー(インテル® VT - d)およびPCI - SIGのSR - iovは、できるインテル® Xeon ®プロセッサー5500番台ベースのプラットフォームの直接I / Oデバイスを共有することで複数の仮想マシンです。 一方、認定済ハードウェアや顧客へのソフトウェアの広範なエコシステムを提供し続けて、リリースには、I / Oスループットおよび開発者のための追加のツールを含めることが改善しています。
※発表資料全文はこちら
CentOS5.4のリリースが待ち遠しいですね。
2009年7月28日火曜日
特定の国からのパケットを破棄
自前でCentOS+Postfixにてメールサーバを立てていて月平均で2万通を処理しています。
S25R+Greylistingである程度はスパム対策をしているつもりですが、
それをすり抜けてくるスパムが後を絶たない!
特に韓国、中国がひどく最悪です。また最近ではポーランド、ロシアも多くなっています。
そこでkrfilterというサイトを見つけて韓国、中国からのパケット自体を破棄していました。
(CIDR表記されたフィルターファイルをkrfiler様からダウンロードしてiptablesで読み込み定義する)
しかし最近そのフィルターがダウンロードできずフィルタリングできない状態です。
ということで、自分でAPNIC等からIPアドレス割当リストを取得してフィルターを作ることにしました。
とりあえず韓国と中国からのパケット(IPv4)を破棄するよう構築します。
その前に・・・
このフィルター設定で受けた不利益に対しては一切の責任を負えません。
必ず自己責任で行うようにしてください。
また、運用にはそれなりに負荷が掛かりますので非力なマシンでは注意してください。
1.アジア圏を管轄しているAPNICからIPアドレス割当リストの取得する。
2.リストからCIDR表記に変換してiptablesが読み込める形式でファイルを作成する。
3.iptablesを定義して2で作成したファイルを読み込む。
では実際に行ってみましょう。(尚、作業はrootで行います)
●準備
ファイル保存場所を作成する。
# mkdir /etc/myfilter
# cd /etc/myfilter
●IPアドレス割当リストの取得
# wget -O list_apnic ftp://ftp.apnic.net/pub/apnic/stats/apnic/delegated-apnic-latest
※wgetオプション-Oは別名でファイル保存します。
ですのでダウンロードするとlist_apnicというファイル名になります。
このリストは以下のような感じで羅列されています。
1列目:管轄先
2列目:国コード
3列目:IPv4またはIPv6の判断
4列目:IPv4なら開始IPアドレス
5列目:割当個数
apnicCNipv4203.128.32.0819220050311allocated
apnicIDipv4203.128.64.0819220000613allocated
apnicCNipv4203.128.96.0819220050314allocated
apnicKRipv4203.128.160.0819220050314allocated
●CIDR表記に変換
「うざい国からのアクセスを全て遮断」で公開されている変換スクリプトを使わせていただきます。
※公開に感謝いたします。
# wget http://www.42ch.net/~shutoff/prog/countryfilter.pl
CentOSで使うために一部修正が必要なので変更します。
91行目iptablesのpathを変更します。(事前に# which iptablesでpathを確認)
================================================
print "$CommentChar variables. change these values before run.\n";
if ($FilterType == 1) { # iptables
#print "IPTABLES=/usr/sbin/iptables\n"; ← コメント
print "IPTABLES=/sbin/iptables\n"; ← 追記
print "FILTERNAME=CKFILTER\n";
print "TARGET=CKFILTERED\n";
} elsif ($FilterType == 2) { # ipfw
================================================
countryfilter.plにオプションを渡して変換します。
# perl countryfilter.pl iptables KR,CN < ist_apnic > filter_apnic.sh
※<>は実際は半角で・・・
変換されたファイルは以下のような感じで羅列されています。
$IPTABLES -A $FILTERNAME -s 222.250.0.0/16 -j $TARGET
$IPTABLES -A $FILTERNAME -s 222.251.0.0/17 -j $TARGET
$IPTABLES -A $FILTERNAME -s 222.251.128.0/17 -j $TARGET
●iptables定義
iptablesを初期化する
# /etc/init.d/iptables restart
チェインを作成する
# iptables -N CKFILTER
# iptables -N CKFILTERED
チェインにルールを追記する(変換したファイル)
# sh filter_apnic.sh
フィルターに引っかからなかったパケットを許可するルールをCKFILTERチェインに追加する
# iptables -A CKFILTER -j ACCEPT
フィルターに引っかかったパケットを破棄するルールをCKFILTEREDチェインに追加する
さらに破棄されたパケットのログを取るようにする
# iptables -A CKFILTERED -j LOG --log-prefix "Reject-TCP "
# iptables -A CKFILTERED -j DROP
TCP接続開始パケットをINPUTからCKFILTERに飛ばすようにする
# iptables -A INPUT -p tcp -m state --state NEW -j CKFILTER
確認
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
CKFILTER tcp -- anywhere anywhere state NEW
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain CKFILTER (1 references)
target prot opt source destination
CKFILTERED all -- 58.14.0.0/15 anywhere
CKFILTERED all -- 58.16.0.0/16 anywhere
CKFILTERED all -- 58.17.0.0/17 anywhere
CKFILTERED all -- 58.17.128.0/17 anywhere
・
・
・
こんな感じでリストが出てくればOKです。
ログの確認
# cat /var/log/messages
Jul 28 15:08:41 mail01 kernel: Reject-TCP IN=eth1 OUT= MAC=Macアドレス SRC=送信元IP DST=受けIP LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=5926 DF PROTO=TCP
SPT=42975 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0
こんな感じでログが書き込まれます。
私は一連の流れをスクリプト化して1日1回実行するようcronに登録しています。
※2009/10 1週間に1回に変更した。
アジア圏以外は以下からリストを取得することができます。
AfriNIC管轄:アフリカ地域
ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest
ARIN 管轄:アメリカ北部圏
ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
LACNIC管轄:ラテンアメリカ及び西インド諸島地域
ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
RIPE NIC管轄:ヨーロッパ地域
ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest
参考にしたサイト
「うざい国からのアクセスを全て遮断」
krfilter - deny accesses from .kr
※2013/05/13 ご要望頂いたので自動化スクリプトを以下に公開しました。
S25R+Greylistingである程度はスパム対策をしているつもりですが、
それをすり抜けてくるスパムが後を絶たない!
特に韓国、中国がひどく最悪です。また最近ではポーランド、ロシアも多くなっています。
そこでkrfilterというサイトを見つけて韓国、中国からのパケット自体を破棄していました。
(CIDR表記されたフィルターファイルをkrfiler様からダウンロードしてiptablesで読み込み定義する)
しかし最近そのフィルターがダウンロードできずフィルタリングできない状態です。
ということで、自分でAPNIC等からIPアドレス割当リストを取得してフィルターを作ることにしました。
とりあえず韓国と中国からのパケット(IPv4)を破棄するよう構築します。
その前に・・・
このフィルター設定で受けた不利益に対しては一切の責任を負えません。
必ず自己責任で行うようにしてください。
また、運用にはそれなりに負荷が掛かりますので非力なマシンでは注意してください。
1.アジア圏を管轄しているAPNICからIPアドレス割当リストの取得する。
2.リストからCIDR表記に変換してiptablesが読み込める形式でファイルを作成する。
3.iptablesを定義して2で作成したファイルを読み込む。
では実際に行ってみましょう。(尚、作業はrootで行います)
●準備
ファイル保存場所を作成する。
# mkdir /etc/myfilter
# cd /etc/myfilter
●IPアドレス割当リストの取得
# wget -O list_apnic ftp://ftp.apnic.net/pub/apnic/stats/apnic/delegated-apnic-latest
※wgetオプション-Oは別名でファイル保存します。
ですのでダウンロードするとlist_apnicというファイル名になります。
このリストは以下のような感じで羅列されています。
1列目:管轄先
2列目:国コード
3列目:IPv4またはIPv6の判断
4列目:IPv4なら開始IPアドレス
5列目:割当個数
apnicCNipv4203.128.32.0819220050311allocated
apnicIDipv4203.128.64.0819220000613allocated
apnicCNipv4203.128.96.0819220050314allocated
apnicKRipv4203.128.160.0819220050314allocated
●CIDR表記に変換
「うざい国からのアクセスを全て遮断」で公開されている変換スクリプトを使わせていただきます。
※公開に感謝いたします。
# wget http://www.42ch.net/~shutoff/prog/countryfilter.pl
CentOSで使うために一部修正が必要なので変更します。
91行目iptablesのpathを変更します。(事前に# which iptablesでpathを確認)
================================================
print "$CommentChar variables. change these values before run.\n";
if ($FilterType == 1) { # iptables
#print "IPTABLES=/usr/sbin/iptables\n"; ← コメント
print "IPTABLES=/sbin/iptables\n"; ← 追記
print "FILTERNAME=CKFILTER\n";
print "TARGET=CKFILTERED\n";
} elsif ($FilterType == 2) { # ipfw
================================================
countryfilter.plにオプションを渡して変換します。
# perl countryfilter.pl iptables KR,CN < ist_apnic > filter_apnic.sh
※<>は実際は半角で・・・
変換されたファイルは以下のような感じで羅列されています。
$IPTABLES -A $FILTERNAME -s 222.250.0.0/16 -j $TARGET
$IPTABLES -A $FILTERNAME -s 222.251.0.0/17 -j $TARGET
$IPTABLES -A $FILTERNAME -s 222.251.128.0/17 -j $TARGET
●iptables定義
iptablesを初期化する
# /etc/init.d/iptables restart
チェインを作成する
# iptables -N CKFILTER
# iptables -N CKFILTERED
チェインにルールを追記する(変換したファイル)
# sh filter_apnic.sh
フィルターに引っかからなかったパケットを許可するルールをCKFILTERチェインに追加する
# iptables -A CKFILTER -j ACCEPT
フィルターに引っかかったパケットを破棄するルールをCKFILTEREDチェインに追加する
さらに破棄されたパケットのログを取るようにする
# iptables -A CKFILTERED -j LOG --log-prefix "Reject-TCP "
# iptables -A CKFILTERED -j DROP
TCP接続開始パケットをINPUTからCKFILTERに飛ばすようにする
# iptables -A INPUT -p tcp -m state --state NEW -j CKFILTER
確認
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
CKFILTER tcp -- anywhere anywhere state NEW
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain CKFILTER (1 references)
target prot opt source destination
CKFILTERED all -- 58.14.0.0/15 anywhere
CKFILTERED all -- 58.16.0.0/16 anywhere
CKFILTERED all -- 58.17.0.0/17 anywhere
CKFILTERED all -- 58.17.128.0/17 anywhere
・
・
・
こんな感じでリストが出てくればOKです。
ログの確認
# cat /var/log/messages
Jul 28 15:08:41 mail01 kernel: Reject-TCP IN=eth1 OUT= MAC=Macアドレス SRC=送信元IP DST=受けIP LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=5926 DF PROTO=TCP
SPT=42975 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0
こんな感じでログが書き込まれます。
私は一連の流れをスクリプト化して1日1回実行するようcronに登録しています。
※2009/10 1週間に1回に変更した。
アジア圏以外は以下からリストを取得することができます。
AfriNIC管轄:アフリカ地域
ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest
ARIN 管轄:アメリカ北部圏
ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
LACNIC管轄:ラテンアメリカ及び西インド諸島地域
ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
RIPE NIC管轄:ヨーロッパ地域
ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest
参考にしたサイト
「うざい国からのアクセスを全て遮断」
krfilter - deny accesses from .kr
※2013/05/13 ご要望頂いたので自動化スクリプトを以下に公開しました。
2009年7月27日月曜日
2009年7月8日水曜日
PostgreSQL 8.4
今まで日付時刻に64bit整数型を使うためconfigureに--enable-integer-datetimes が必要でしたが、8.4よりデフォルトで64bit整数型になるそうです。
使わない場合は、--disable-integer-datetimes オプションを指定してconfigureを実行する必要があります。
こちらに8.4に関する技術情報が詳しく掲載されています。
使わない場合は、--disable-integer-datetimes オプションを指定してconfigureを実行する必要があります。
こちらに8.4に関する技術情報が詳しく掲載されています。
登録:
投稿 (Atom)