ATOM鯖-18:mod_layoutを入れてみよう!

mod_layout….
それは、HTMLのソースの上下にヘッダーとフッターを追加する感じ?
と、思ってます。
メンテ時とか連絡用にぱっと入れられたらいいなぁ^^;
ヘッダー利用してサイト名表示とかのフッター利用して定番コメントとかの利用もくてきな感じ?
何はともあれ入れてみるとしましょ。
yumでmod_layoutは見つからないので・・・名称違ってあるかも・・・
公式サイトからDLすることに。
tangent->software()
http://tangent.org/
apache2.2系用はmod_layout5.1(2008-01-06)。
ブラウザからダウンして展開^^;
コンソールでやれって話もありますが・・・(^◇^;
展開したディレクトリmod_layout-5.1に移動。
先人の知恵から多少手直しが必要なようだ^^;
こことか
http://www.tencs.net/tech/server/mod_layout_install.html
こことか
http://www.starwars.ac/2007/06/apache22_mod_layout.html
が、そこはあえてまずは実行してみる!(実施は鯖が不安手になる可能性があるので石橋を叩いて渡るようにしましょう^^;)
mod_layout-5.1#make
mod_layout-5.1#make install
all done.とか・・・
いけたような気がしないでも無い^^;
usr/lib/httpd/modules/mod_layout.soというファイルができてるからOKかな
不安だw
とりあえずinnstal任せのconf追加された状態で他の設定はしないでrestart。
エラーログも無いし設定してみましょう☆ミ

AddOutputFilter LAYOUT html
LayoutHeader /wwwroot/public_html/header.html
LayoutFooter /wwwroot/public_html/footer.html
まずはhttpd.conf内で設定してみるパスは適当に。
設定する場所は、表示させたいディレクトリみたいです。
フレームで使っていたヘッダーとフッターをそのまま利用。
バーチャルホストに早速突っ込んでみましょう(^^)
apachectl -k restartおぉ追加されてる!
まったく問題が無い・・・ブログの意味が無い^^;
apachectl -k graceful!エラー!( ゚o゚)ハッ
ログを見るとmod_bwshareは対応して無いらしい^^;
mod_cbandもそうだけどうpろだ運用開始するとなったらhttpd.confを
いじらない方向で行かないといけないってことだね。
と、なればhttpd.conf無いで書くより.htaccessに書く方が確実ってことかな。
AddOutputFilter LAYOUT html
LayoutHeader /header.html
LayoutFooter /footer.html
パスはローカルじゃなくてWEBの方のパスで。
・・・mod_layoutはmod_uploaderには効果が無い感じ。
動作的には当たり前のような気もするけど一応メモ^^;
インラインフレームか何かで対応しましょ(^^)
・・・文字が化けるねぇ・・・
ソースの文字コードがあって無いと化けるようですf(^^;)
これといってでかいバグが無い(^◇^;
ヘッダーとフッターはタグの直後とタグの直前にそれぞれ追加されます。試してみればわかると思いますが^^;
基本動作としてはサイト内のhtmlファイルを読み込むときに追加する感じといた方がわかりやすいかも~ではでは。また何かネタを探してきます。

ATOM鯖-18:mod_bwshareってなに?^^;

前回のエマージェンシーはこのモジュールの設置ミスだったわけですが^^;
mod_bwshareについてのメモ。
・ファイルアクセス数/転送量で制限を実施する
・一般的な帯域制限とはちょっとちがう
・サーバー単位の設定である
・バーチャルホストで利用できるものの、個別の設定はできない
・良くも悪くもクライアント(IP)単位でのチェック
インストールの詳細など:
mod_bwshareによる接続数/帯域制限
http://www.atmarkit.co.jp/flinux/rensai/apache2_08/apac
he08c.html

現在の最新版:
Apache module: mod_bwshare 0.2.1
http://www.topology.org/src/bwshare/README.html
三日ほど使ってみた感じでは・・・
・無差別大量ダウン設定してるソフトには結構有効。
 エラーファイルを作ってアクセスカウントを増やして制限に引っ掛ける^^;
 差分チェックしない悪質巡回ダウンローダーはすぐにひっかかるw
・IP変更して再ダウンするような人に付き合う必要は無いかと(^^)
・逆に引っかかったらIP変更してくださいってことで。
・503になるタイミングがわかりにくいf(^^;)
・設定値に達したら制限してくれればいいのですが、あるタイミングで503に
・503トリガ調査してません^^;
・他のモジュールと組み合わせるといい感じ
・通常利用の範囲は許可してあほな無限ダウンロードに対して503を出してくれる!そんな設定を煮詰めてます。
・ログ管理されるユニーク数が増えると負荷を感じられる^^;
・画像BBSとうpロダでは扱うファイルの性質が正反対なのでこのモジュールは向いていない。(せめてバーチャルホスト単位で制御できれば・゚・(ノД`)・゚・)
・うpロダのmod_uploaderやphpの進捗表示タイプはファイルカウントがとんでもないことになりますので一度笑ってみましょうw
次のテストは何しようかなっと♪

ATOM鯖-17:[emerg]動作不能な状況(Emergencyの意)

エラーコード:[emerg] 動作不能な状況(Emergencyの意)
合いたくなかったよ君には(^◇^;
設定の仕方が悪いのはわかっていたけど、強引に動かないかなぁと^^;
一意で設定しないといけないものをバーチャルホストの複数に設定したところ
出会ってしまいました。
エラーじゃないのねん^^;
便利なものほど使い方が限られるということで。
そろそろネタも尽きてきたのでまとめようかなぁなんて思っていたら
サーバーのレンタル更新時期らしい。
15MBのために1GBのスペースを借りておくのはもったいない・・・
でも引越しは面倒・・・って感じです。

ATOM鯖-16:そろそろWebmin、そろそろiptables

Webminは置いておくとしても、iptablesを設定してなかったのかと!w
Windows組みとしてはOSを信用しないという根本的な思考回路が組み上げられてしまっていましてf(^^;)
WindowsNT3.1とWindows95とDosとSoftImageほか環境でで初めてネットを組むという作業から軽く干支が一周している訳で・・・
TCP/IPなんてずっと( ̄▽ ̄;)あとのはなし話。
まぁルーター任せだったと!(設定も他人任せ~ショップ任せ~)。
使える人材を有効利用しただけですよ!勉強のために。新人教育のために?w
突然なぜかときかれれば・・・
ちょいとバックアップ作業スクリプトでリストを作りながら負荷状況を見る。
mod_cband&mod_geoip・・・こいつら重いな^^;
CPU使用率が同じ回線速度比で大体3~5倍。
80ポートは全開なのでApacheに直撃しているわけですね・・・
ルーターで弾こうと思ったけれど、そこは市販廉価ルーター。
融通が利かないというか煩雑というか自動でやってくれないというか^^;
そんなわけで日曜鯖缶としてはそのあたりを設定しようと思います。
ネットげーの誘いを断りもくもくと難易度の高そうな壁を見つめる食後(^^)

ATOM鯖-15:国別の接続制限!GeoIPを入れてみるとしよう!

うざい国からのアクセスを全て遮断 2国目
http://pc11.2ch.net/test/read.cgi/mysv/1201798057/
なんてスレッドが立つくらい海外からのアタックは国内の比じゃありませんw
今まで個別に調べ上げたものをDenyに登録という地道な作業をしていたわけですが、刻々と変化する地域IP情報をまとめてくれるというありがたいサイト。
無料リスト更新は月一回で月始め。三日か四日くらい。
有料はもっと頻繁に更新があるらしい。
GeoIPの利用方法
http://flatray.com/geoip/
ぐーぐる先生で最初に出てきたところで設置までの情報がすべてある感じ。
利用するのは MaxMind 社が配布している GeoLite Country。
Apacheで利用するには MaxMind社から提供mod_geoipというのがあるらしい。
#yum install -y mod_geoipGeoIPとmod_geoipがインストールされる。
mod_geoip-1.2.2-1.fc8.i386.rpm
GeoIP-1.4.4-2.fc8.i386.rpm
/etc/httpd/conf.d/mod_geoip.confにmod_geoipの読み込み設定があるので一応確認。
情報ファイルは下記に格納されます。
/usr/share/GeoIP/GeoIP.dat
デフォルトだと2008/4月のファイルがインストールされました。
9月ということで上記サイトにあるスクリプトを利用させていただきます。
Fedora8でyumインストールした場合はそのまま使えます。
GeoIPupdate.shなど適当に名前をつけて保存。実行権を与えて実行。
2008/9/03のファイルに更新されました。
cronで月一実行。時差などを考えて5日以降に(^^)v
Update用シェル(“φ(・_.) メモッ!コピペ)#! /bin/sh
TMPDIR=/tmp
GEODIR=/usr/share/GeoIP
DAT=GeoIP.dat
cd $TMPDIR
/usr/bin/wget http://www.maxmind.com/download/geoip/database/$DAT.gz
if [ $? != 0 ] ; then
echo "wget failed"
exit 1
fi
/bin/gunzip $DAT.gz
if [ $? != 0 ] ; then
echo "gunzip failed"
exit 2
fi
cd $GEODIR
/bin/mv $DAT $DAT.`/bin/date "+%Y%m%d-%H%M%S"`
/bin/mv $TMPDIR/$DAT .

Apache:httpd.conf(allow,denyの設定があるところならどこでもOKっぽい)
サンプル転載# ... place more countries here
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
Order allow,deny
allow from all
deny from env=BlockCountry
GeoIP Apache API
http://www.maxmind.com/app/mod_geoip
ISO 3166 Country Codes
http://www.maxmind.com/app/iso3166ISO 3166 Country Codes
A1,"Anonymous Proxy"
A2,"Satellite Provider"
AD,"Andorra"
AE,"United Arab Emirates"
AF,"Afghanistan"
AG,"Antigua and Barbuda"
AI,"Anguilla"
AL,"Albania"
AM,"Armenia"
AN,"Netherlands Antilles"
AO,"Angola"
AP,"Asia/Pacific Region"
AQ,"Antarctica"
AR,"Argentina"
AS,"American Samoa"
AT,"Austria"
AU,"Australia"
AW,"Aruba"
AX,"Aland Islands"
AZ,"Azerbaijan"
BA,"Bosnia and Herzegovina"
BB,"Barbados"
BD,"Bangladesh"
BE,"Belgium"
BF,"Burkina Faso"
BG,"Bulgaria"
BH,"Bahrain"
BI,"Burundi"
BJ,"Benin"
BM,"Bermuda"
BN,"Brunei Darussalam"
BO,"Bolivia"
BR,"Brazil"
BS,"Bahamas"
BT,"Bhutan"
BV,"Bouvet Island"
BW,"Botswana"
BY,"Belarus"
BZ,"Belize"
CA,"Canada"
CC,"Cocos (Keeling) Islands"
CD,"Congo, The Democratic Republic of the"
CF,"Central African Republic"
CG,"Congo"
CH,"Switzerland"
CI,"Cote d'Ivoire"
CK,"Cook Islands"
CL,"Chile"
CM,"Cameroon"
CN,"China"
CO,"Colombia"
CR,"Costa Rica"
CU,"Cuba"
CV,"Cape Verde"
CX,"Christmas Island"
CY,"Cyprus"
CZ,"Czech Republic"
DE,"Germany"
DJ,"Djibouti"
DK,"Denmark"
DM,"Dominica"
DO,"Dominican Republic"
DZ,"Algeria"
EC,"Ecuador"
EE,"Estonia"
EG,"Egypt"
EH,"Western Sahara"
ER,"Eritrea"
ES,"Spain"
ET,"Ethiopia"
EU,"Europe"
FI,"Finland"
FJ,"Fiji"
FK,"Falkland Islands (Malvinas)"
FM,"Micronesia, Federated States of"
FO,"Faroe Islands"
FR,"France"
GA,"Gabon"
GB,"United Kingdom"
GD,"Grenada"
GE,"Georgia"
GF,"French Guiana"
GG,"Guernsey"
GH,"Ghana"
GI,"Gibraltar"
GL,"Greenland"
GM,"Gambia"
GN,"Guinea"
GP,"Guadeloupe"
GQ,"Equatorial Guinea"
GR,"Greece"
GS,"South Georgia and the South Sandwich Islands"
GT,"Guatemala"
GU,"Guam"
GW,"Guinea-Bissau"
GY,"Guyana"
HK,"Hong Kong"
HM,"Heard Island and McDonald Islands"
HN,"Honduras"
HR,"Croatia"
HT,"Haiti"
HU,"Hungary"
ID,"Indonesia"
IE,"Ireland"
IL,"Israel"
IM,"Isle of Man"
IN,"India"
IO,"British Indian Ocean Territory"
IQ,"Iraq"
IR,"Iran, Islamic Republic of"
IS,"Iceland"
IT,"Italy"
JE,"Jersey"
JM,"Jamaica"
JO,"Jordan"
JP,"Japan"
KE,"Kenya"
KG,"Kyrgyzstan"
KH,"Cambodia"
KI,"Kiribati"
KM,"Comoros"
KN,"Saint Kitts and Nevis"
KP,"Korea, Democratic People's Republic of"
KR,"Korea, Republic of"
KW,"Kuwait"
KY,"Cayman Islands"
KZ,"Kazakhstan"
LA,"Lao People's Democratic Republic"
LB,"Lebanon"
LC,"Saint Lucia"
LI,"Liechtenstein"
LK,"Sri Lanka"
LR,"Liberia"
LS,"Lesotho"
LT,"Lithuania"
LU,"Luxembourg"
LV,"Latvia"
LY,"Libyan Arab Jamahiriya"
MA,"Morocco"
MC,"Monaco"
MD,"Moldova, Republic of"
ME,"Montenegro"
MG,"Madagascar"
MH,"Marshall Islands"
MK,"Macedonia"
ML,"Mali"
MM,"Myanmar"
MN,"Mongolia"
MO,"Macao"
MP,"Northern Mariana Islands"
MQ,"Martinique"
MR,"Mauritania"
MS,"Montserrat"
MT,"Malta"
MU,"Mauritius"
MV,"Maldives"
MW,"Malawi"
MX,"Mexico"
MY,"Malaysia"
MZ,"Mozambique"
NA,"Namibia"
NC,"New Caledonia"
NE,"Niger"
NF,"Norfolk Island"
NG,"Nigeria"
NI,"Nicaragua"
NL,"Netherlands"
NO,"Norway"
NP,"Nepal"
NR,"Nauru"
NU,"Niue"
NZ,"New Zealand"
OM,"Oman"
PA,"Panama"
PE,"Peru"
PF,"French Polynesia"
PG,"Papua New Guinea"
PH,"Philippines"
PK,"Pakistan"
PL,"Poland"
PM,"Saint Pierre and Miquelon"
PN,"Pitcairn"
PR,"Puerto Rico"
PS,"Palestinian Territory"
PT,"Portugal"
PW,"Palau"
PY,"Paraguay"
QA,"Qatar"
RE,"Reunion"
RO,"Romania"
RS,"Serbia"
RU,"Russian Federation"
RW,"Rwanda"
SA,"Saudi Arabia"
SB,"Solomon Islands"
SC,"Seychelles"
SD,"Sudan"
SE,"Sweden"
SG,"Singapore"
SH,"Saint Helena"
SI,"Slovenia"
SJ,"Svalbard and Jan Mayen"
SK,"Slovakia"
SL,"Sierra Leone"
SM,"San Marino"
SN,"Senegal"
SO,"Somalia"
SR,"Suriname"
ST,"Sao Tome and Principe"
SV,"El Salvador"
SY,"Syrian Arab Republic"
SZ,"Swaziland"
TC,"Turks and Caicos Islands"
TD,"Chad"
TF,"French Southern Territories"
TG,"Togo"
TH,"Thailand"
TJ,"Tajikistan"
TK,"Tokelau"
TL,"Timor-Leste"
TM,"Turkmenistan"
TN,"Tunisia"
TO,"Tonga"
TR,"Turkey"
TT,"Trinidad and Tobago"
TV,"Tuvalu"
TW,"Taiwan"
TZ,"Tanzania, United Republic of"
UA,"Ukraine"
UG,"Uganda"
UM,"United States Minor Outlying Islands"
US,"United States"
UY,"Uruguay"
UZ,"Uzbekistan"
VA,"Holy See (Vatican City State)"
VC,"Saint Vincent and the Grenadines"
VE,"Venezuela"
VG,"Virgin Islands, British"
VI,"Virgin Islands, U.S."
VN,"Vietnam"
VU,"Vanuatu"
WF,"Wallis and Futuna"
WS,"Samoa"
YE,"Yemen"
YT,"Mayotte"
ZA,"South Africa"
ZM,"Zambia"
ZW,"Zimbabwe"

“ATOM鯖-15:国別の接続制限!GeoIPを入れてみるとしよう!” の続きを読む

ATOM鯖-14:続・mod_cbandで接続制限(mod_limitipconn卒業?)

前回
「ATOM鯖-13:mod_cbandで帯域&同時接続制限の設定」
http://aya3.net/blog/log/eid353.html
前回は、mod_cbandをfedora8にyumでインストール&起動。
散りあえず動きそうな簡単な設定をぐぐって羅列した感じ。
そりゃ詳細は載せたくないわよね・・・おほほほほ。
それだけじゃネタとしてツマラナイヨネ!!
実働中の鯖でテストすることにこれでも気を使っているつもりなんですが
さくさくとテストしてみましょ♪
マニアックな設定は見つかるかしら~☆ミ
今のところなんとなくわかってる範囲のできることは
・サーバー全体&バーチャルホスト単位の速度制限(CBandSpeed)
・IP単位の速度制限(CBandRemoteSpeed)
・転送量を条件にした制限(CBandLimit:某OCNプロバイダ30GB/Dayとかこれひとつかw)
・GoogleBot専用の設定
やりたいことテストしたいこと。
1、Exceededの組み合わせ
2、ディレクトリ単位
3、ファイル単位(対応して無いといわれてますが・・・)
特に2と3は見かけないというかアップローダーやってなければそれほど気にしないところなんだろうか^^;
力技で実装してみたもの・・・人前に出せませんわ。
綺麗じゃないスマートじゃない美しくない(^◇^;
ぱっとソースを眺めた感じじゃ割り込み入れれる感じじゃないですね。
護送船団で船の数や重さは管理できてもコンテナの中を管理するというものではないので・・^^;
2,3はmod_rewriteやvertualhostを使うと容易に実現できるのでそちらで回避。
頭の中で碇シンジ君が「逃げちゃダメダ!」と叫んでいる・・
当分補給して仕事するとしよう・・・orz
1のテストは夜にでも?今日は残業の予感。
とりあえずまとめ:ディレクトリ単位/ファイル単位で同時接続数を制限するだけならmod_limitipconnを利用した方が指定したファイルの種類のみ制限できます。
オーバーヘッドを無視して重くなっても大丈夫な利用状況&機器環境なら組み合わせるのも可能?(今後のテスト)


追記:1のテスト。
CBandRemoteSpeedで同時接続制限に引っかかると503エラーを返す。
CBandExceededURLはCBandLimitの制限のときに有効になる感じ。
今のところ私の力量では一定数以上同時接続があったら速度を急激に落とすというトリックは仕込めそうにない^^;
mod_limitipconnとは相性があまりよくない。
ab(アパッチベンチ)で安定した接続制限が発揮されない^^;
高速回線で小さい画像でテストしたとき。原因不明w

ATOM鯖-13:mod_cbandで帯域&同時接続制限の設定

mod_limitipconn.cでそれなりに同時接続はできているんですが、
問題になるようなアクセスとは接続数だけで済むようなかわいい相手ばかりではないので・・・w
接続数/帯域制限で無法なダウンローダを撃退
「mod_limitipconnによる接続数制限」
http://www.atmarkit.co.jp/flinux/rensai/apache2_08/apache08d.html
などを参考にさくっと設定。下手な制限よりは安全確実(^^)
で、ちょっとこったことをしようとマニアックな設定を求めると
Apache2向けにはmod_limitipconnや帯域制限などの機能を含んだmod_cbandば提供されています。
インストールは
#yum -y install mod_cband
mod_cband-0.9.7.5-1.fc7.i386 日付を見ると2006/11/26とか^^;
最新版っぽいので納得はいかないものの作業を進める(^◇^;
conf.d/mod_cband.confが作成されているので環境にあった修正を。
コメントアウトされてるものの書き方があるので一度目を通しておく。
外からアクセスすると「mod_cband status page」が表示されます。
とりあえずhttpdの再起動。人目にさらしてあるサーバーなので一応restartは避ける。
#apachectl -k gracefulでは詳細設定を。
CBandSpeed(サーバ全体の接続に対して制限)
# One Host Server
CBandSpeed 1024 10 30
#VirtualHost
# Maximal 1024kbps speed for this VirtualHost
# Maximal 10 requests per second for this VirtualHost
# Maximal 30 open connections for this VirtualHost
# ホスト:最大転送速度50Mbps,一秒間に10リクエスト,同時接続数を30に制限
<VirtualHost *:80>
CBandSpeed 50Mbps 10 30
</VirtualHost>

CBandRemoteSpeed(IP毎の接続に対して制限)
# 1IP
# 最大の転送速度が 2048kb/s、一秒間に5リクエスト、同時接続数を2に制限
<VirtualHost>
CBandRemoteSpeed 2048kb/s 5 2
</VirtualHost>
この設定で制限に引っかかるとエラーコード503を返します。
設定次第でエラーコードを返さずに設定条件で接続許可やほかのページを表示することもできる感じ?(まだ試してない)。
CBandClassRemoteSpeed(GoogleBot)
# googlebot_class
<VirtualHost>
CBandClassRemoteSpeed googlebot_class 10kb/s 2 3
</VirtualHost>

ほかにもこんな設定があります
CBandDefaultExceededURL(制限時に飛ばすデフォルトURL:Vartual外)
CBandDefaultExceededURL http://~
CBandLimit(100MByte 転送量制限)
CBandExceededURL(制限時表示サイト)
CBandScoreBoard(フルパス)
CBandPeriod(転送量の累積期間:スコアボードのクリア間隔)
CBandExceededSpeed(転送量制限後の許可速度)
<VartualHost *:80>
CBandLimit 100000
CBandExceededURL http://~
CBandScoreBoard /var/run/apache2/vhost.scoreboard
CBandPeriod 30M
CBandExceededSpeed 10 5 5
# CBandScoreFlushPeriod 1
# CBandRandomPulse On
</VartualHost>

※単位
速度
kbps, Mbps, Gbps – “ビット”毎秒
kb/s, Mb/s, Gb/s – “バイト”毎秒
指定しない場合:kbps
転送量
K, M, G – 1000/1000*1000/1000*1000*1000 バイト
Ki, Mi, Gi – 1024/1024*1024/1024*1024*1024 バイト
指定しない場合:K
期間
S, M, H, D, W – 秒/分/時間/日/週
指定しない場合:S

ATOM鯖-12:Fedora8+Apache2.2.9で同時接続制限(modlimitconn.c v0.23インスコ)

同時接続制限の定番をインストール。
いつものことなので・・・メモっときます。
環境確認
・mod_so.cとmod_status.soが有効になっていることを確認する
# apachectl -l
mod_so.cがあればOK。mod_status.soはhttpd.confに。
初期設定で入ってる感じ。(インストール環境によるかも~)
ソースをダウンロード。
mod_limitipconn.c – Apache 2.x port
http://dominia.org/djao/limitipconn2.html
ATrpmsサイトにコンパイル済みのものがある用ですが、Fedora8公開時のApache2.2.8用にコンパイルされていて現時点でのApache2.2.9用では無いので、ソースからコンパイルしましょう!(^^)
余談:Fedora10の文字が見えないこともない・・・(^◇^;
ブラウザからDownloadsの下の* source packageから
またはコンソールから
#wget http://dominia.org/djao/limit/mod_limitipconn-0.23.tar.bz2
インストールのやり方はダウンロードページのインストラクションどおりに。
(コンパイル環境はもちろんありますよね!^^;)
コンパイル(make install)する時に[apxs]コマンドが必要になります。
apxsコマンドが無いって言われた時にはApacheの開発環境がインストールされていないのでインストールしましょう。
#yum -y install httpd-devel
やっと本題w
Instructions for building as a Dynamic Shared Object (DSO):
#tar xjvf mod_limitipconn-0.23.tar.bz2
#cd mod_limitipconn-0.23
#make install
問題が無ければコンパイルした後に、mod_limitipconn.soファイルをApacheのモジュールディレクトリにコピーして実行権限までつけてくれていると思います。
インストール先 /usr/lib/httpd/modules
chmod 755 /usr/lib/httpd/modules/mod_limitipconn.so
[activating module `limitipconn’ in /etc/httpd/conf/httpd.conf]
と、出ていればOK。
httpd.confの206行付近に追加されているとおもいます。
LoadModule limitipconn_module /usr/lib/httpd/modules/mod_limitipconn.so
設定
mod_statusの機能をOnにする(httpd.confの218行付近)
ExtendedStatus On
記述や解説などはこちらを参考に
Apache2でmod_limitipconnを使う方法
http://himagine.s20.xrea.com/pc/limitipconn.html

ATOM鯖-11:Apacheで初めてのバーチャルホスト!IPスキャンにはダミーページを!

そろそろネタに困ってきているのも事実です^^;
httpd.confの最後の方に
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#

なんて感じでコメントアウトしてあるじゃないですか。
いつも気になってたんですよね。
頭では理屈は分かっていても実装となると、、、
自宅サーバーだし、IP一つだし、ドメイン一つだし・・・
そんなあなたこそ!バーチャルドメインは必要です!w
鯖リソースがありあまって24時間常駐できないわけですから、やはり気になることも多いじゃないですか。ローラーで来てほしくもない人がくるようになったりすることから防ぐ第一歩です。
IPローラースキャンしてるロボットにはダミーページを!
ってなわけで、Apacheでバーチャルホストを設定してみましょう。
通常固定じゃなくてもすべてのIPに対して何らかのスキャンが必ずやってきます。近隣諸国が多いのには閉口してしまいますが・・・
ダイナミックDNSやドメイン名でアクセスしてきた人には通常ページを。
そうでない人にはダミーページを見せてあげましょう。


#ダミーディレクトリを参照させる。

ServerAdmin root@localhost #連絡先メールアドレス
DocumentRoot /www/dummy #ダミーのディレクトリ
ServerName dummy.example.com #ダミーのドメイン
ErrorLog logs/dummy-error_log
CustomLog logs/dummy-access_log common

Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all


#ディレクトリは作成しておきましょう。空Indexを置いてもいいです。
#ドメイン名は架空なのでなんでも好きなものを(実在しないものを^^;)
#/etc/httpd/conf.d/以下の設定によってはアクセスできるディレクトリがあるので各自直しましょう^^;(MRTGとかとか)
# ※ドメインアクセスは通常ページを表示する。

ServerAdmin webmaster@example.jp
DocumentRoot /www/public_html_jp
ServerName example.jp
ErrorLog logs/jp-error_log
CustomLog logs/jp-access_log common

Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all



ServerAdmin webmaster@example.com
DocumentRoot /www/public_html_com
ServerName example.com
ErrorLog logs/com-error_log
# gif, jpg.png ほかの呼び出しのアクセス記録をログに書き込まない
# リファラには反応しませんです
SetEnvIf Request_URI “?.(gif)|(ico)|(jpg)|(png)|(css)|(php)|(html)$” com_nolog
CustomLog logs/com-access_log combined env=!com_nolog

Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all


うまく解説ができない^^;
最初に設定したバーチャルホストの内容がプライマリとなり、サーバードメインがマッチするとその後に記述した内容で動作する感じ。
最初は現在のドメインをヴァーチャルホスト内に移動して動作を確認してからダミー設定を行いましょう(^^)v
参照:ホームサーバの構成
http://eazyfox.homelinux.org/etc/serverspec.htm

ATOM鯖-10:fedora8-初めてのパーティションの分割!

「DNSサーバーがネットに浸透する間になにかしよう。」
・・・これがすべての間違いの発端。
数時間DNS鯖を止めてしまった^^;
レジストらの方がこの間に作業をしていたら申し訳ないとしか言いようが無いです(^◇^;
まず何をしたかといえば、、、
250GBのHDDを20GBのBOOT・ROOT(/)に割り当てて、SWAPに2GB(メモリと同量:64MBあれば十分みたいですけどおまじない)、残りの200GB以上をHOME(/home)に割り当ててありました。
この/homeに割り当ててあった論理ボリューム(LV)をアンマウントして各種目的に分割、そして再マウントの作業を行いました。
fedora8にはVLM2が既にインストールされていたのでそのコマンドを使って作業を行いました。
Windowsでは利用目的が変わる度によくやってた作業なんですが・・
(よくやる方がおかしいわけですが・・・^^;)
GUIでできないという事もあって悪戦苦闘。
まさにご利用は計画的にって感じで、普通の鯖管ならそんなことはほとんどしないんだろうなぁと。
/homeに割り当てた/dev/VolGroup00/LogVol02をumount。
まずは状況把握から。
#df
/dev/mapper/VolGroup00-LogVol00
20314748 2938464 16327708 16% /
/dev/sda1 194442 19010 165393 11% /boot
tmpfs 1033404 12 1033392 1% /dev/shm
# vgscan
Reading all physical volumes. This may take a while…
Found volume group “VolGroup00” using metadata type lvm2
# vgdisplay VolGroup00
— Volume group —
VG Name VolGroup00

Format lvm2

VG Size 232.69 GB
PE Size 32.00 MB
Total PE 7446
Alloc PE / Size (PE割り当て数) /(割り当て容量) GB
Free PE / Size (PE未使用数) / (未使用容量)
#fuser /dev/VolGroup00/LogVol02
現在利用ユーザーを調べます(umountしてあれば誰も使っていないはず)
現在/dev/VolGroup00/LogVol02は200GBあるので容量を変更します
#lvreduce -L 102400 /dev/VolGroup00/LogVol02
(分割(スプリット)コマンドもあるんですけど今回は複数あるので)
・lvreduce :容量縮小コマンド
・-L 102400 ::-LはMB指定-lはPEの個数で指定(現在1PE=32MB)
・/dev/VolGroup00/LogVol02 :変更する論理ボリューム
※基本的にvg~はボリュームグループ操作、lv~は論理ボリューム操作です
論理ボリューム情報を見る
#lvdisplay /dev/VolGroup00/LogVol02
— Logical volume —
LV Name /dev/VolGroup00/LogVol02
VG Name VolGroup00
LV UUID ~
LV Write Access read/write
LV Status available
# open 1
LV Size 100.00 GB
Current LE 3200
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:1
割り当てサイズは100GBになってるのでOK!
(このボリュームの物理割り当て情報を変更しただけで、論理ボリューム情報を変更していない状態です。物理サイズ100GB・論理サイズ200GBとなってます)
/homeに取り合えず戻してみた。
#mount /dev/VolGroup00/LogVol02 /home
エラーもないのでfstabを変更(次回起動時に有効)。

ここで再フォーマットをしなかった!

(それに気づいたのは数十分後の再起動した後、エラーで起動しなくて・・・)
そんなミスも気づかずに、容量が変更できたことで喜んでサクサクと次の作業に進んだのでありました^^;
空き領域を50GBずつ
# lvcreate -L 51200 -n LogVol03 VolGroup00
# lvcreate -L 51200 -n LogVol04 VolGroup00
残りを算出
#vgdisplay
ここでFREE PE/SIZEをみて344PEあるのでそのまま設定
# lvcreate -l 344 -n LogVol05 VolGroup00
(PE数で指定するので大文字の[L]ではなく小文字[l]で)
割り当てた領域をフォーマット
# mkfs -t ext3 /dev/VolGroup00/LogVol03
# mkfs -t ext3 /dev/VolGroup00/LogVol04
# mkfs -t ext3 /dev/VolGroup00/LogVol05
この時なぜLogVol02をフォーマットしなかったかといえば、、、
・リサイズなので後ろを詰めるだけで中身の情報が残ると思った!
・データはコピーしてあるけど残ったらいいな的データだった!
それを忘れて再起動してなぜLogVol02だけエラーなんだ!と悩んでしまった
マウントしてみた
/usr/_htmlを作成。
#mount -t ext3 /dev/VolGroup00/LogVol03 /usr/_html
fstabに追加。次回起動時に自動的にマウント。
/dev/VolGroup00/LogVol03 /usr/_html ext3 defaults 1 1
他の領域も同じように繰り返し作業。
そして再起動!・・・
ボリュームのエラー fschk(ex.-a -p)してください見たいなぁ~^^;
このまま続ける?root pass入れて作業?見たいなメッセージ。
レジストラにDNSサーバーの設定依頼出したあとだったので冷や汗たらたら
取り合えずルートパス入れる。修復モードでコマンドプロンプトが出た!
・ルート(/)はマウントされているので各種コマンドやファイルは生きているので一安心。
・ボリュームがマンウトできなくてエラーだしているんだからfstabをいじろう!(→ReadOnlyで書き込みできない^^;nanoもviも強制上書きできず^^;)
・fschk コマンドをかたっぱしから試す(→手動で直せとエラーが^^;)
・ばたばたと何度か再起動(mount/umountコマンドやらなにやら)
・物理容量と論理容量が違っているみたいなエラー
・経験的に一番使いたくないコマンドを打つ (→フォーマット)
# mkfs -t ext3 /dev/VolGroup00/LogVol02
問題解決してしまえば大したことは無いんだけど^^;
再起動して無事解決。