サイトのURLが変わりました

突然ですが、サイトのURLを変えました。
5月だし。

http://d.longkey1.net/

http://blog.longkey1.net/

始めた当初は良かったんですが、段々恥ずかしくなってきたので。


あと、サイト名も変えました。

diary@longkey1.net

blog@longkey1.net

まあ、ついでというかなんというか。


RSSのアドレスも変わりました。

http://feeds.feedburner.com/diarylongkey1net

http://feeds2.feedburner.com/bloglongkey1net

feedburnerのURL変わってるし・・・。


とりあえず、新旧どちらのアドレスでもアクセス出来るようにはしてありますので、暇な時にでも新しい方に変更してもらえたらと思います。
特にRSSはいつfeedburnerがリダイレクトを辞めちゃうかわから無いので。

ではではー。

avengers in sci-fi - avenger strikes back

avenger strikes back

先日レンタルした「avengers in sci-fi」が自分の中でヒットだったことと、CD返しにいったらまだ5枚で1000円だったので、借りてみた。

んー一気に洗練された。
前作中途半端だったボーカルの扱いが非常に明確になり、作りこまれてる。
やっぱ、前作は甘かったよね、うむうむ。

相変わらず、新しい音だ。
日本人で、こういう音を出すバンドって中々居ないよなあ。

基本的にはポストロックなのか、そういう雰囲気のマイナー調の曲が大目。
僕はその方が好きなので気にならないけど、後半ちょっとダレルかもしれないなあ。

MySpaceとかで聴ける音は、もっと幅が広くなっていそうなんで、これまた期待。
変にデジタルに走らないことを切に願う。
ライブみたい。


avengers in sci-fi - MySpace

Adobeのダウンロードの更新情報のRSSフィードを修正しました

以前、作成したAdobeのダウンロード更新情報の野良RSSフィードがエラーを起こしてました。
調べてみるとAdobeのページHTMLの文法が間違っていたのが原因っぽい。
そのうち治るだろうとほっといたんですが、なかなか直す気配も無いのでこっちで対応しました。

feedburnerのURLも変わっていて、RSS自体のURLも変更に。
アドビ - 製品のアップデート - powered by FeedBurner
※古いRSSでも今のところみれるみたいです。

Adobeともあろう企業がRSS配信して無いわHTML間違っているわとか、どんだけ!

海外のVPSサービスLinode借りました

最近サーバに関する知識の無さを痛烈に感じてたんだけど、やっぱ自分で管理してみないと駄目だよねってことで、借りてみた。

■linodeを選んだ理由
・Xen
・安い($20~)
・海外VPS初心者にはトラブルも少なくてオススメらしい

□やっぱりXenを使ってみたい
国内のVPSでXenで動いているものがまず少ない。
Virtuozzo/OpenVZで動いているものを一度試したことがあるけど、痛い目にあっているので。

□安い($20~)
自宅サーバも考えたけど、名古屋暑いし、もうすぐ引っ越すかもだし、電気代や固定IP費用とか考えちゃうとVPSの方が今の自分にはあっている気がする。
さくらの専用サーバも考えたけど、正直高い。
あと、OSの再インストールとかお金取られるのも辛い。
その点、OSの再インストールはコントロールパネルから簡単にできちゃうし、まあインストールできるOSは値段は$20~で普通に考えるとちと高いけど、提供してもらえるサービスと安定性を考えると妥当なところなのかなと思う。

□トラブルが少ない
2chでの情報がメインなので、信憑性に欠けるかもだけど。
安定性メインで考えるなら、slicehostの方がいいかもしれない、親会社が大きいみたいだし。

■契約してみた感想
契約がすごい簡単。
契約の入力フォームも超オーソドックスな感じで、英語わからなくてもいける。(ちなみに僕は英検3級という中学生レベル)
30分もしないうちに、契約~サーバ使えるようになった。

ちょっと心配していたのが速度。
これが結構速い。
日本に一番近いカリフォルニアのデータセンターを借りたからかもしれないけど、SSHでコマンド叩いている印象としては、あんまりアメリカのサービスを使っている感じがしないぐらい。

まずはこのサイトやBuritterを移行しないと。

とりあえず、自分でいろいろ設定して、エラーメッセージとかログとか、そういうのにいちいち対応しながら経験積めたら良いなと思う。
サーバ管理ってとにかく経験だと思うので。

Coreserverはまだ契約が半年ぐらい残っているので、引き続き使う予定。
うごー。

Linodeで借りてまずやったことのメモ

VMware使っていたからか、はたまたLinodeのコントロールパネルが、OSのインストール&起動までは余裕でした。

んで、試しにいきなりsshクライアントでアクセスしてみたら、rootで出来たよ・・・。
これは嫌だなあと思って、以下の設定してみた。

参考サイト
CentOS5初期設定 - CentOSで自宅サーバー構築

(1)一般ユーザの追加
(2)rootになれるユーザを限定
(3)yumの設定
(4)root宛メールの転送設定
(5)sshサーバの設定


(1)一般ユーザの追加
useradd hogehoge
passwd hogehoge


(2)rootになれるユーザを限定
usermod -G wheel hogehoge
vi /etc/pam.d/su
-#auth       required     pam_wheel.so use_uid
+auth       required     pam_wheel.so use_uid 

usermodコマンド
【 usermod 】 ユーザーのアカウント情報を変更する:ITpro

(3)yumの設定
yum-updatesdを停止して、yum-cronにて更新する方が良いらしい。
※以下に示す理由によりyum-updatesdを停止しておく
・デフォルトで1時間ごとにアップデートチェックを行うようになっており、手動によるパッケージインストールと競合すると
インストールが失敗する
・大量にメモリを消費する(約10MB以上使用)

<
etc/rc.d/init.d/yum-updatesd stop   # yum-updatesd停止
yum -y remove yum-updatesd           # yum-updatesd削除
yum -y install yum-fastestmirror     # fastestmirrorプラグインインストール
yum -y update                        # インストール済パッケージの一括アップデート
yum -y install yum-cron              # yum-cronインストール</code></pre>
はい、ここでエラー発生。
<pre><code>yum -y install yum-cron
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.cogentcloud.com
 * updates: linux.mirrors.es.net
 * addons: centos.mirrors.redwire.net
 * extras: mirror.hmc.edu
Setting up Install Process
Parsing package install arguments
No package yum-cron available.
Nothing to do</pre>
パッケージが無いみたい。
Centos5.3になって、まだ間もないからか、パッケージ自体が古いからか?
いろいろ検索した結果、こうやりました。
<
d /tmp
wget http://mirror.centos.org/centos/5.2/os/i386/CentOS/yum-cron-0.6-1.el5.centos.noarch.rpm
yum -y install yum-downloadonly
rpm -ivh yum-cron-0.6-1.el5.centos.noarch.rpm</pre>
無事インストールできたみたいなので、続き。
<
etc/rc.d/init.d/yum-cron start   # yum-updatesd停止
chkconfig yum-cron on             # パッケージ自動更新自動起動設定</pre>
(4)root宛メールの転送設定
<
ed -i '/^root:/d' /etc/aliases             # 旧root宛メール転送設定削除
echo "root: hoge@gmail.com" >> /etc/aliases # root宛メールを普段使用しているメールアドレス
                                            # (例:hoge@gmail.com)宛に転送する
newaliases                                  # 転送設定反映
echo test|mail root                         # テストメールをroot宛に送信する</pre>
sedコマンド
【 sed 】 文字列の置換,行の削除を行う:ITpro
newaliasesコマンド
Manpage of NEWALIASES

テストメールが転送先メールアドレス宛に届いていることを確認した!

(5)sshサーバの設定
WindowsからSSHサーバーへリモート接続(Poderosa鍵方式ログイン編) - CentOSで自宅サーバー構築
を参考に公開鍵と秘密鍵を作成。
ちなみにビット数はいくつでもよさげ(SSHサーバで設定されていれば、それに従うべし)
<
kdir -p ~/.ssh                  # 公開鍵格納ディレクトリ作成
chmod 700 ~/.ssh                 # 公開鍵格納ディレクトリのパーミッションを変更
vi ~/.ssh/authorized_keys        # 公開鍵をauthorized_keysに保存
<クライアント側で作成した公開鍵の中身を全てコピーして貼り付ける>
chmod 600 ~/.ssh/authorized_keys # authorized_keysのパーミッションを変更</code></pre>
ここで一旦接続してみて確認してみる。
引き続きサーバ側の設定。
<pre><code>vi /etc/ssh/sshdconfig

-PasswordAuthentication yes
+PasswordAuthentication no

+PermitRootLogin no</pre>

起動しているデーモンもそれほど余分なもの無さそうだし、とりあえずこんなところで。
次はiptabelsか。
TripWireも入れたほうが良いのかしら。

iptables設定シェルスクリプト@CentOS5の解析メモ #1

iptablesの設定にはシェルを作成して、自動化するのがナウいらしい。

多分、フィルタリングしたいIPアドレスの指定が固定でないからだと思われる。(なんだか変更があったらアップデートするとかっていう記述があった)
まあ、シェルで自動化した方が何かと便利なのは僕も分かる。

ということで、いつも参考にしているサイトを見てちょろっとiptablesを設定しやろうと思ったら、シェルだけ書かれていて「これ動かしたら設定完了」的な感じなので、何がなんだかわからんし、わからんまま通り過ぎることも出来るんだけど、そこすっ飛ばしたらサーバ借りた意味が無いので、ざーっと解析して見ることにする。

参考教材ページ
ファイアウォール構築(iptables) - CentOSで自宅サーバー構築


#!/bin/bash

#---------------------------------------#
# 設定開始                              #
#---------------------------------------#

# インタフェース名定義
LAN=eth0

#---------------------------------------#
# 設定終了                              #
#---------------------------------------#

# 内部ネットワークのネットマスク取得
LOCALNET_MASK=`ifconfig $LAN|sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d`

# 内部ネットワークアドレス取得
LOCALNET_ADDR=`netstat -rn|grep $LAN|grep $LOCALNET_MASK|cut -f1 -d' '`
LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK

コメントを見れば何をしたいかわかるんだけど、一応勉強がてら検証。

■sed
文字列置換とか出来るコマンド。
置換のルールとかは、正規表現かな、ちょっと独自のものもあるかも。
あと、-eが2個あるのはパイプで繋げなくても連続でかけちゃうっぽい。
【 sed 】 文字列の置換,行の削除を行う:ITpro
【 文字列を置換する「sed」 】:ITpro

■netstat
ネットワークの状態を表示するコマンド。
-rでルーチンテーブルを表示してくれるとは知らなかった。
-nはいるのかなあ・・・僕の環境では有っても無くても変わらなかったけど。
netstat - ホストのネットワーク統計や状態を確認する

■cut
文字列を切り出して表示するコマンド。
バイト数とか、フィールド毎に切り出したりも出来る優れもの。
Linuxコマンド一覧 [cut]



# ファイアウォール停止(すべてのルールをクリア)
/etc/rc.d/init.d/iptables stop

# デフォルトルール(以降のルールにマッチしなかった場合に適用するルール)設定
iptables -P INPUT   DROP   # 受信はすべて破棄
iptables -P OUTPUT  ACCEPT # 送信はすべて許可
iptables -P FORWARD DROP   # 通過はすべて破棄

サービスの停止はわかる。
停止した時点で、ルールがクリアされる模様。

-Pコマンドは、デフォルトのルールを設定。
後はコメント分そのまんま。
受信は全て破棄ってのは結構びびるね、初心者にとっては。
間違えなきゃ良いけど。



# 自ホストからのアクセスをすべて許可
iptables -A INPUT -i lo -j ACCEPT

# 内部からのアクセスをすべて許可
iptables -A INPUT -s $LOCALNET -j ACCEPT

# 内部から行ったアクセスに対する外部からの返答アクセスを許可
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-AコマンドはAppendで追加。Addじゃないのかー。

-iはIn Interface。loでLocalLoopbackからの入力って意味。ループバックってのは自分自身に送信することらしい。ふーん。
ループバックとは 【loopback】 - 意味・解説 : IT用語辞典

-jはJumpで、ジャンプするターゲットの指定。ACCEPTだとそのまま受け取るんだろうね。ACCEPT、DROP、REJECT、LOG、RETURNとある模様。
REJECTの場合にはパケットが破棄されたという事実を送信者に返答するらしい、なる。

-sはSourceで送信元。IP アドレスやネットワークアドレス(192.168.0.0/24、192.168.0.0/255.255.255.0)での設定が可能。
こういう書式で書くのね。

-mは「TCP拡張、UDP拡張、ICMP拡張以外の拡張を使う時に指定」だそうだ。
今回は「state拡張」で「パケットの接続状態を指定する拡張」らしい。
NEW(新規)、ESTABLISHED(継続)、RELATED(関連)、INVALID(その他)から選べる。
ふむ、新規じゃなく継続と関連だけを許可するから「 内部から行ったアクセスに対する外部からの返答」という意味になるのか。
深いな。


んー、結構深いかもしれん。

続き。
iptables設定シェルスクリプト@CentOS5の解析メモ #2 - blog@longkey1.net

iptables設定シェルスクリプト@CentOS5の解析メモ #2

iptables設定シェルスクリプト@CentOS5の解析メモ #1 - blog@longkey1.net
の続き。

参考教材
ファイアウォール構築(iptables) - CentOSで自宅サーバー構築


# SYN Cookiesを有効にする
# ※TCP SYN Flood攻撃対策
sysctl -w net.ipv4.tcp_syncookies=1 > /dev/null
sed -i '/net.ipv4.tcp_syncookies/d' /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf

# ブロードキャストアドレス宛pingには応答しない
# ※Smurf攻撃対策
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 > /dev/null
sed -i '/net.ipv4.icmp_echo_ignore_broadcasts/d' /etc/sysctl.conf
echo "net.ipv4.icmp_echo_ignore_broadcasts=1" >> /etc/sysctl.conf

■SYN Cookies
TCP SYN flood攻撃を防ぐために開発された手法のひとつ。
SYN cookies - Wikipedia

■SYN flood
インターネットにおけるDoS攻撃(サービス拒否攻撃)のひとつ。
SYN flood

■Smurf攻撃
pingによる攻撃
Smurf攻撃とは 【Smurf attack】 - 意味・解説 : IT用語辞典

■sysctl
カーネルパラメータを操作するコマンド。
-wで変更。
[ThinkIT] 第5回:カーネルをチューニングする (1/4)

sysctlでその場で設定。
/etc/sysctl.confに書きこんでいるのは、次回再起動時に読み込まれる為。

sed -iで、その場で編集かな?
/dとあるので、ヒットした行を削除して、echoで追加って感じなのかな?
んー、なる。
カーネルレベルでの対応なのかー。

pingによる攻撃とかしてくんなよと思うけど、それで有名サイトが落ちたら落ちたで落ちてんなよとは思うな、確かに。



# ICMP Redirectパケットは拒否
sed -i '/net.ipv4.conf.*.accept_redirects/d' /etc/sysctl.conf
for dev in `ls /proc/sys/net/ipv4/conf/`
do
    sysctl -w net.ipv4.conf.$dev.accept_redirects=0 > /dev/null
    echo "net.ipv4.conf.$dev.accept_redirects=0" >> /etc/sysctl.conf
done

# Source Routedパケットは拒否
sed -i '/net.ipv4.conf.*.accept_source_route/d' /etc/sysctl.conf
for dev in `ls /proc/sys/net/ipv4/conf/`
do
    sysctl -w net.ipv4.conf.$dev.accept_source_route=0 > /dev/null
    echo "net.ipv4.conf.$dev.accept_source_route=0" >> /etc/sysctl.conf
done

■ICMP
ICMPとは 【Internet Control Message Protocol】 - 意味・解説 : IT用語辞典
@IT:連載 基礎から学ぶWindowsネットワーク 第12回 TCP/IPプロトコルを支えるICMPメッセージ 2.ICMPメッセージ(1)

■ソース・ルーティング
ソース・ルーティング攻撃(-コウゲキ。Source Routing Attack):RBB TODAY (ブロードバンド辞典)

sed -i で削除しているのは、前と同じ。
上記セキュリティ攻撃に対する、対応をそれぞれしている感じ。

下記のサイトの「13.2.2. デバイスごとの設定」でそれぞれの設定項目の説明が簡単に載っている。
/proc/sys/net/ipv4/conf/

かなり難しくなってきた。
みんな理解して設定してんのかなー?



う~難しいなあ。
全然進んで無いけど、長くなってきたのでこれまで。

続き。
iptables設定シェルスクリプト@CentOS5の解析メモ #3 - blog@longkey1.net

Logwatchからsshへの攻撃くさい報告

サーバ管理を勉強しているので、ログも過敏に反応してさらしていけたらと思います。

 --------------------- SSHD Begin ------------------------

 Received disconnect:
   11: Bye Bye : 3393 Time(s)

 ---------------------- SSHD End -------------------------


で、これって攻撃されまくりってことだよね?多分。
3000回とかどんだけ・・・。
1分に1回のペースってことか。

パスワードによる認証を認めていたら、どうなっていただろう。
というか、iptables頑張って早く設定せんと怖いわ!

設定してもログには残るのか分からないけど・・・。
まだ何も公開していないのに、・・・凄い。

iptables設定シェルスクリプト@CentOS5の解析メモ #3

iptables設定シェルスクリプト@CentOS5の解析メモ #2 - blog@longkey1.net
の続き。

参考教材
ファイアウォール構築(iptables) - CentOSで自宅サーバー構築


# フラグメント化されたパケットはログを記録して破棄
iptables -A INPUT -f -j LOG --log-prefix '[IPTABLES FRAGMENT] : '
iptables -A INPUT -f -j DROP

■フラグメント化
パケットの分割のことらしい。

-fはフラグメント化されたパケットにフィルタを適用させたい場合に使用する。
--log-prefixで指定したプレフィックスをログの前に付ける。
フラグメント化されたパケットによるDoS攻撃が可能らしいので、こういう設定にしている模様。
正直えらいと思う。



# 外部とのNetBIOS関連のアクセスはログを記録せずに破棄
# ※不要ログ記録防止
iptables -A INPUT -s ! $LOCALNET -p tcp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A INPUT -s ! $LOCALNET -p udp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A OUTPUT -d ! $LOCALNET -p tcp -m multiport --sports 135,137,138,139,445 -j DROP
iptables -A OUTPUT -d ! $LOCALNET -p udp -m multiport --sports 135,137,138,139,445 -j DROP

■NetBIOS
名前の通りNetwork越しにBIOSが使えるインターフェイスっぽい(よくわからん)
LAN内なら問題ないらしいので、この設定か。
NetBIOS over TCP/IPを無効にする



# 1秒間に4回を超えるpingはログを記録して破棄
# ※Ping of Death攻撃対策
iptables -N LOG_PINGDEATH
iptables -A LOG_PINGDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT
iptables -A LOG_PINGDEATH -j LOG --log-prefix '[IPTABLES PINGDEATH] : '
iptables -A LOG_PINGDEATH -j DROP
iptables -A INPUT -p icmp --icmp-type echo-request -j LOG_PINGDEATH

■Ping of Death
これまたpingをつかった攻撃。
Ping of Deathとは 【PoD】 - 意味・解説 : IT用語辞典

-NはNew Chainで、新たにユーザー定義チェインを作成するらしい。

■チェイン
ルールをグループ化したものらしい。

-m limitでリミット拡張。
--limitで、単位時間あたりに許されるマッチ回数を指定。
--limit-burstで上記 --limit が作動し始める最大バースト値(回数)
良くわからないけどまとめてみると、「1秒間に4回まではOK、それを超えると1秒間に1回ログに出力する」ってことかな。

-p icmpで、プロトコルはicmp。
--icmp-typeでicmpのタイプを指定出来る模様、ここではecho-requestを指定。
なんだかDoS攻撃で結構来るらしい。

うーむ。
この辺は運用した経験が反映されているくさいなー。



# 全ホスト(ブロードキャストアドレス、マルチキャストアドレス)宛パケットはログを記録せずに破棄
# ※不要ログ記録防止
iptables -A INPUT -d 255.255.255.255 -j DROP
iptables -A INPUT -d 224.0.0.1 -j DROP

-dはDestinationで宛て先らしい。
これもピンとこないんだけど、一杯来るのかしら。



# 113番ポート(IDENT)へのアクセスには拒否応答
# ※メールサーバ等のレスポンス低下防止
iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset

■IDENT
113版ポートは認証用に使われている模様。
何も返さないとレスポンス低下を招くらしい。
TCP/113 AUTH/IDENT に関して



んーなんだかServer管理の大変さを身にしみて感じ始めております。
いろんなポート、いろんな攻撃、いろんな対策があるもんだなー。

やっと半分程度。
いろんなノウハウが凝縮されていてビビる。

続き。
iptables設定シェルスクリプト@CentOS5の解析メモ #4(ラスト) - blog@longkey1.net

iptables設定シェルスクリプト@CentOS5の解析メモ #4(ラスト)

iptables設定シェルスクリプト@CentOS5の解析メモ #3 - blog@longkey1.net
の続き。

参考教材
ファイアウォール構築(iptables) - CentOSで自宅サーバー構築

もう少しでアプリ毎の設定にたどり着ける!!
がんばるぞー!!


# ACCEPT_COUNTRY_MAKE関数定義
# 指定された国のIPアドレスからのアクセスを許可するユーザ定義チェイン作成
ACCEPT_COUNTRY_MAKE(){
    for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
    do
        iptables -A ACCEPT_COUNTRY -s $addr -j ACCEPT
    done
}

前提として、/tmp/cidr.txtに国別IPアドレスのリストがあるとする。

■awk
フィルタリングによく使用されるコマンド
{print $2}で2つめのフィールドを出力って感じ。
関数?みたいなもので、後々呼び出して国名の引数渡して使うくさい。
AWK リファレンス - UNIX & Linux コマンド・シェルスクリプト リファレンス

ACCEPT_COUNTRYってのも、のちのち定義されるチェイン。


# DROP_COUNTRY_MAKE関数定義
# 指定された国のIPアドレスからのアクセスを破棄するユーザ定義チェイン作成
DROP_COUNTRY_MAKE(){
  for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
  do
    iptables -A DROP_COUNTRY -s $addr -m limit --limit 1/s
                             -j LOG --log-prefix '[IPTABLES DENY_COUNTRY] : '
    iptables -A DROP_COUNTRY -s $addr -j DROP
  done
}

--limitは前と一緒で1秒間に1回。
--limit-burstが無いけど、デフォルトだと5だから、1秒間に5回以上アクセス来たらログに残すかな。
んで破棄。

DROP_COUNTRYとかは前のACCEPT_COUNTRYと一緒。
ここまで来ると大体意味がわかってきた。


# IPアドレスリスト取得
. /root/iptables_functions
IPLISTGET

# 日本からのアクセスを許可するユーザ定義チェインACCEPT_COUNTRY作成
iptables -N ACCEPT_COUNTRY
ACCEPT_COUNTRY_MAKE JP
# 以降,日本からのみアクセスを許可したい場合はACCEPTのかわりにACCEPT_COUNTRYを指定する

# 中国・韓国・台湾※からのアクセスをログを記録して破棄
# ※全国警察施設への攻撃元上位3カ国(日本・アメリカを除く)
# http://www.cyberpolice.go.jp/detect/observation.htmlより
iptables -N DROP_COUNTRY
DROP_COUNTRY_MAKE CN
DROP_COUNTRY_MAKE KR
DROP_COUNTRY_MAKE TW
iptables -A INPUT -j DROP_COUNTRY

最初に呼び出す関数設定して、ここは実際の実行部分って感じか。
中国、韓国、台湾多いのかー。
日本はどんぐらいなんだろうな。



#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここから)               #
#----------------------------------------------------------#
<各自設定>
#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここまで)               #
#----------------------------------------------------------#

ポートを気をつければ良いだけなので、解析しない!



# 拒否IPアドレスからのアクセスはログを記録せずに破棄
# ※拒否IPアドレスは/root/deny_ipに1行ごとに記述しておくこと
# (/root/deny_ipがなければなにもしない)
if [ -s /root/deny_ip ]; then
    for ip in `cat /root/deny_ip`
    do
        iptables -I INPUT -s $ip -j DROP
    done
fi

これはまんま。
/root/deny_ipか、これ解析していなかったら飛ばしてたなー。



# 上記のルールにマッチしなかったアクセスはログを記録して破棄
iptables -A INPUT -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES INPUT] : '
iptables -A INPUT -j DROP
iptables -A FORWARD -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES FORWARD] : '
iptables -A FORWARD -j DROP

上記以外のルールってことは、ここまでどこにも引っかからなかった場合っつうことか。
基本拒否だから、これで良いのか。



# サーバー再起動時にも上記設定が有効となるようにルールを保存
/etc/rc.d/init.d/iptables save

# ファイアウォール起動
/etc/rc.d/init.d/iptables start

ふむ、ここまでシェルに記述するのね。



# chmod 700 iptables.sh ← ファイアウォール設定スクリプトへ実行権限付加

ほう、感慨深いぜ。



# vi iptables_functions ← ファイアウォール設定スクリプト外部関数作成

# IPアドレスリスト取得関数定義
IPLISTGET(){
    # http://nami.jp/ipv4bycc/から最新版IPアドレスリストを取得する
    wget -q http://nami.jp/ipv4bycc/cidr.txt
    # 最新版IPアドレスリストが取得できなかった場合
    if [ ! -f cidr.txt ]; then
        if [ -f /tmp/cidr.txt ]; then
            # バックアップがある場合はその旨をroot宛にメール通知して処理を打ち切る
            echo cidr.txt was read from the backup! | mail -s $0 root
            exit 1
        else
            # バックアップがない場合はその旨をroot宛にメール通知して処理を打ち切る
            echo cidr.txt not found!|mail -s $0 root
            exit 1
        fi
    fi
    # 最新版IPアドレスリストを /tmpへバックアップする
    /bin/mv cidr.txt /tmp/cidr.txt
}

■wget -q
-qでログにメッセージを書き出さないとな。
別にどっちでも良いと思うんだけど。
省エネ?

■mail -s
-sで件名



っつうことで、これで残すはアプリ毎の設定のみ。
一日かかったな、ここまで。
けど、かなり勉強になった!!

動かすアプリだけ設定すれば、これで完了。
ふぅ~。

後はログを見ながら運用していくだけだな。
けど、思ったよりよく出来たシェルだと思うなー。
業務で使っても問題なさそうな気がするけど、まずは運用してみるだな。

CentOS5@Linodeでiptablesの設定シェルを実行したらエラーになってもた

ファイアウォール構築(iptables) - CentOSで自宅サーバー構築で紹介されているiptables.shの「各種サービスを公開する場合の設定」部分のみを変更したシェルを実行した。

#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここから)               #
#----------------------------------------------------------#

# 外部からのTCP22番ポート(SSH)へのアクセスを日本からのみ許可
# ※SSHサーバーを公開する場合のみ
iptables -A INPUT -p tcp --dport 22 -j ACCEPT_COUNTRY

# 外部からのTCP80番ポート(HTTP)へのアクセスを許可
# ※Webサーバーを公開する場合のみ
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 外部からのTCP21番ポート(FTP)へのアクセスを日本からのみ許可
# ※FTPサーバーを公開する場合のみ
iptables -A INPUT -p tcp --dport 21 -j ACCEPT_COUNTRY

# 外部からのPASV用ポート(FTP-DATA)へのアクセスを日本からのみ許可
# ※FTPサーバーを公開する場合のみ
# ※PASV用ポート60000:60030は当サイトの設定例
iptables -A INPUT -p tcp --dport 60000:60030 -j ACCEPT_COUNTRY

#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここまで)               #
#----------------------------------------------------------#


んでiptables_functionsも作成して
# ./iptables.sh

Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: raw nat mangle filter     [  OK  ]
Unloading iptables modules:                                [  OK  ]
Saving firewall rules to /etc/sysconfig/iptables:          [  OK  ]
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: raw nat mangle filter     [  OK  ]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]
Loading additional iptables modules: ip_conntrack_netbios_n[FAILED]

はい、出ました、エラー。

いろいろ探したところ、こんな記述が。
Linode.com Forum :: CentOS 5.2 iptables module problem ("ip_conntrack_netbi

まあ、XenのLinodeで発生している模様。
原因は
「カーネルモジュールが無いから、ロードしようとしたらエラー」
っつうことなんかな。
ファイル共有(SambaやCIFS shares)を使わないなら、必要なくない?みたいなことも書いてある。
どうしてもやりたいなら、ソースからコンパイルしてってこと。

んで共有して使う気はさらさら無いので、あっさりロードするのをやめます。

# vi /etc/sysconfig/iptables-config

- IPTABLES_MODULES="ip_conntrack_netbios_ns" 
+ IPTABLES_MODULES=""


これで再度実行。
# ./iptables.sh

Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: raw nat mangle filter     [  OK  ]
Unloading iptables modules:                                [  OK  ]
Saving firewall rules to /etc/sysconfig/iptables:          [  OK  ]
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: raw nat mangle filter     [  OK  ]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]


とりあえずOKくさい。

これで少しはsshサービスへの不正アクセスも減るだろうけど、多いようならhaltさんから教えてもらったFail2banを試してみたいな。
これ、かなり良さそうだし。

とりあえず今日はここまで。

「2ちゃんねるはなぜ潰れないのか?」読みました

2ちゃんねるはなぜ潰れないのか? (扶桑社新書)

なんで潰れないのかっていうのは、冒頭でちょろっと説明されていて、特別驚く内容でもなかった。
訴訟とか起こされているのに大丈夫なのか?と思っていたんだけど、案外平気なもんらしい。
サーバを海外に置くっていうのは、今のところいろんな問題を解決してくれるんだなあと思った。

で、本書の大半の部分はタイトルとは関係ない、現在のインターネットの状態をだらだら語ったり、誰かを連れてきて対談させてみたりといった内容。

「身も蓋もなさすぎてついていけない」とひろゆきのことを佐々木俊尚氏が語っていたけど、確かにそうだなと。
基本的にすべてのことに対して悲観的で、「たいしたことが無い」「別に希望も無い」といったスタンスのひろゆきが、2ちゃんねるといったサービスを運営しているってのもなんだか面白い。

ホリエモンといいひろゆきといいやっぱり頭の回転が違うなあ。
Googleがやっていることがローテクだとか、なんか全然次元が違うんだなーと思った。
既にここであちら側とこちら側で住む世界が違う。

あと、ニコニコ動画が月1000万以上のサーバ費がかかっていることにびっくりした。
こんだけランニングコストがかかってくると、運営を続けていけるってだけで凄いね。
2ちゃんねるも結構かかってそうだなー。

もう働かなくても生きていけるらしいので、そういう人が考えていることに触れるってのは、単純に面白いなと思った。
そしてそういう人たちが、時代を引っ張っていくのかな。
自分が凡人だということが、身に染みた一冊だった。

RPMforgeリポジトリ導入@CentOS5のメモ

Tripwireの設定にさっさと入りたいんだけど、かなり難しそう。
まあ、コピペでさくっとインストールすることは出来るみたいなんだけど、どうせならじっくり勉強したいので。

で、いつものサイトを参考にchkrootkitの設定っていうのを先にやってみようと思ったらパッケージが無いと起こられた。
# yum -y install chkrootkit

Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
 * base: repos.lax-noc.com
 * updates: mirrors.kernel.org
 * addons: centos.mirrors.redwire.net
 * extras: linux.mirrors.es.net
base              | 1.1 kB     00:00     
updates           |  951 B     00:00     
addons            |  951 B     00:00     
extras            | 1.1 kB     00:00     
primary.xml.gz    |  90 kB     00:00     
extras            298/298
Setting up Install Process
Parsing package install arguments
No package chkrootkit available.
Nothing to do

んー、どうやらRPMforgeリポジトリっていうのを、導入しなければいけないらしかった。
RPMforgeリポジトリ導入(RPMforge) - CentOSで自宅サーバー構築

RPMForgeとはなんぞやという話はこちらを参考になった。
RPMForgeの設定 - Tip in bobbin

要は標準のリポジトリには無いパッケージなのね、chkrootkit。
その都度リポジトリを指定しながらのインストールも可能みたいだけど、その場合cronで回している自動アップデートとかやってくれない気がするので、リポジトリ自体を追加ってことの方が良いのかな。

では順に解析。
# yum -y install yum-priorities

yum-prioritiesとは各リポジトリの優先度を設定できるようにするプラグインらしい。
多分、次の工程のpriorityを設定する為には必要だと思われる。



# vi /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
+priority=1

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
+priority=1

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
+priority=1

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
+priority=1

priorityは1~99まで設定できるらしい。
標準のリポジトリにあるパッケージは、ほかのリポジトリにアップデート出来るパッケージがあったとしても、適用させないように優先度を1(最優先)に指定しているってことだと思う。



# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
# rpm -ivh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
Retrieving http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
Preparing...                ########################################### [100%]
   1:rpmforge-release       ########################################### [100%]

1行目がGPGキーのインストールらしいんだけど、GPGキーとかってなに?なんの為にやってんの?ってことについては、以下のサイトが参考になった。
GPGキーインポートについて
パッケージインストールのためダウンロードしたファイルは改ざん対策として暗号化されています。
そのファイルを使うには、暗号部分を復号(解読)して、ファイルが改ざんされていないことを確認します。
その復号するのに使う鍵をコンピュータにあらかじめ取り込んでおく必要があります。
その作業がGPGキーのインポートです。

正直そういう仕組みを知ると、自分がどんだけずさんなんだとか思えてくるなー。
とにかくしっかりしているねえ。
というか、人間を信頼していないシステムなんだよね、こういうの全部。

rpm -ivhで詳細な情報を表示しながらのインストール。
RPM コマンドの使い方
リポジトリ自体もrpmパッケージになっているのか。
意味わかんねー。

で、この手順は公式サイトのwikiにも載っている手順くさい。
AdditionalResources/Repositories/RPMForge - CentOS Wiki

それによると
This will add a yum repository config file and import the appropriate GPG keys. At this point, you can set the priority of the RPMForge repository, and also of the CentOS repositories if you have not done so yet.

リポジトリの設定ファイルと適切なGPGキーのインストールをしちゃうよ!
そんでもって、RPMForgeリポジトリや標準リポジトリとかの優先度も設定できちゃうよ!

多分、こんな感じだ。
英語に負けるな!



っつうことで、これにて無事RPMforgeリポジトリ導入を納得して出来ました。

chkrootkit導入@CentOS5のメモ

前回(RPMforgeリポジトリ導入@CentOS5のメモ - blog@longkey1.net)に引き続きchkrootkitを導入してみた。

で、いつものサイトを参考にchkrootkitの設定をしてみる。
rootkit検知ツール導入(chkrootkit) - CentOSで自宅サーバー構築

rootkitという存在をはじめて知った。
ルートキット - Wikipedia
名前はなんだか便利そうだが、それはクラッカーにとってはだな。

なお、chkrootkitが検知できるのは既知のrootkitのみであり、新たなrootkitの検知はできない。
また、rootkitが設置されていないにもかかわらず、chkrootkitが誤ってrootkitを検知したとアラームをあげる場合もあるので、chkrootkitによるrootkitの検知結果は参考程度としておく。

ってことは、んー無いよりあった方が良いけど・・・って程度なのかな。
常駐するタイプでも無さそうなので、導入してみても良いかなという判断。
まあ、仮にrootkitを入れられたらどうやら終わりらしいので。



yum -y install chkrootkit

今度は無事インストール完了。

早速chkrootkitコマンドを使ってチェックしてみる。
chkrootkit | grep INFECTED

特に何も表示されなければ、問題ないらしい。
ちなみにgrepをかませないと、こんな感じになる。
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `crontab'... not infected
Checking `date'... not infected
Checking `du'... not infected
Checking `dirname'... not infected
Checking `echo'... not infected
Checking `egrep'... not infected
Checking `env'... not infected
Checking `find'... not infected
Checking `fingerd'... not found
Checking `gpm'... not infected
Checking `grep'... not infected
Checking `hdparm'... not infected
Checking `su'... not infected
Checking `ifconfig'... not infected
Checking `inetd'... not found
Checking `inetdconf'... not found
Checking `identd'... not found
Checking `init'... not infected
Checking `killall'... not infected
Checking `ldsopreload'... not infected
Checking `login'... not infected
Checking `ls'... not infected
Checking `lsof'... not infected
Checking `mail'... not infected
Checking `mingetty'... not infected
Checking `netstat'... not infected
Checking `named'... not found
Checking `passwd'... not infected
Checking `pidof'... not infected
Checking `pop2'... not found
Checking `pop3'... not found
Checking `ps'... not infected
Checking `pstree'... not infected
Checking `rpcinfo'... not infected
Checking `rlogind'... not found
Checking `rshd'... not found
Checking `slogin'... not infected
Checking `sendmail'... not infected
Checking `sshd'... not infected
Checking `syslogd'... not infected
Checking `tar'... not infected
Checking `tcpd'... not infected
Checking `tcpdump'... not infected
Checking `top'... not infected
Checking `telnetd'... not found
Checking `timed'... not found
Checking `traceroute'... not infected
Checking `vdir'... not infected
Checking `w'... not infected
Checking `write'... not infected
Checking `aliens'... no suspect files
Searching for sniffer's logs, it may take a while... nothing found
Searching for HiDrootkit's default dir... nothing found
Searching for t0rn's default files and dirs... nothing found
Searching for t0rn's v8 defaults... nothing found
Searching for Lion Worm default files and dirs... nothing found
Searching for RSHA's default files and dir... nothing found
Searching for RH-Sharpe's default files... nothing found
Searching for Ambient's rootkit (ark) default files and dirs... nothing found
Searching for suspicious files and dirs, it may take a while... 
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/.packlist
/usr/lib/gtk-2.0/immodules/.relocation-tag
/lib/.libcrypto.so.0.9.8e.hmac /lib/.libcrypto.so.6.hmac
Searching for LPD Worm files and dirs... nothing found
Searching for Ramen Worm files and dirs... nothing found
Searching for Maniac files and dirs... nothing found
Searching for RK17 files and dirs... nothing found
Searching for Ducoci rootkit... nothing found
Searching for Adore Worm... nothing found
Searching for ShitC Worm... nothing found
Searching for Omega Worm... nothing found
Searching for Sadmind/IIS Worm... nothing found
Searching for MonKit... nothing found
Searching for Showtee... nothing found
Searching for OpticKit... nothing found
Searching for T.R.K... nothing found
Searching for Mithra... nothing found
Searching for OBSD rk v1... nothing found
Searching for LOC rootkit... nothing found
Searching for Romanian rootkit... nothing found
Searching for HKRK rootkit... nothing found
Searching for Suckit rootkit... nothing found
Searching for Volc rootkit... nothing found
Searching for Gold2 rootkit... nothing found
Searching for TC2 Worm default files and dirs... nothing found
Searching for Anonoying rootkit default files and dirs... nothing found
Searching for ZK rootkit default files and dirs... nothing found
Searching for ShKit rootkit default files and dirs... nothing found
Searching for AjaKit rootkit default files and dirs... nothing found
Searching for zaRwT rootkit default files and dirs... nothing found
Searching for Madalin rootkit default files... nothing found
Searching for Fu rootkit default files... nothing found
Searching for ESRK rootkit default files... nothing found
Searching for rootedoor... nothing found
Searching for ENYELKM rootkit default files... nothing found
Searching for anomalies in shell history files... nothing found
Checking `asp'... not infected
Checking `bindshell'... not infected
Checking `lkm'... chkproc: nothing detected
Checking `rexedcs'... not found
Checking `sniffer'... eth0: PF_PACKET(/sbin/dhclient)
Checking `w55808'... not infected
Checking `wted'... chkwtmp: nothing deleted
Checking `scalper'... not infected
Checking `slapper'... not infected
Checking `z2'... chklastlog: nothing deleted
Checking `chkutmp'... chkutmp: nothing deleted

これは長い。
なるー。



で、このchkrootkitコマンドを定期的に実行して、なんか問題あればメールで送信ってことをやる。
んー、至れり尽くせりでございます。
#vi chkrootkit

#!/bin/bash

PATH=/usr/bin:/bin

TMPLOG=`mktemp`

# chkrootkit実行
chkrootkit > $TMPLOG

# ログ出力
cat $TMPLOG | logger -t chkrootkit

# SMTPSのbindshell誤検知対応
if [ ! -z "$(grep 465 $TMPLOG)" ] && \
   [ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
        sed -i '/465/d' $TMPLOG
fi

# rootkit検知時のみroot宛メール送信
[ ! -z "$(grep INFECTED $TMPLOG)" ] && \
grep INFECTED $TMPLOG | mail -s "chkrootkit report in `hostname`" root

rm -f $TMPLOG

■logger
システムログに書き込むコマンドかな。
-tはTagで、今回の場合は「chkrootkit」って文字列も一緒に記録してくれるらしい。
いやー、これをうまく使えば自分で作ったシェルでどんどんログに書き込めちゃうのか。
なるほどなー、ちょっと楽しいかも、これ。

■SMTPSのbindshell誤検知対応
postfix絡みでSMTPSで誤検知してしまうことがあるらしい。
んで、ポート番号(465)でgrepしてるのなー。

あとは、grepで'INFECTED'を検索して、メールしてるだけね。



# chmod 700 chkrootkit
# mv chkrootkit /etc/cron.daily/

実行権限つけて、cronに登録。



# mkdir chkrootkitcmd
# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` chkrootkitcmd/
# chkrootkit -p /root/chkrootkitcmd|grep INFECTED
# zip -r chkrootkitcmd.zip chkrootkitcmd/
  adding: chkrootkitcmd/ (stored 0%)
  adding: chkrootkitcmd/head (deflated 53%)
  adding: chkrootkitcmd/netstat (deflated 58%)
  adding: chkrootkitcmd/find (deflated 50%)
  adding: chkrootkitcmd/sed (deflated 54%)
  adding: chkrootkitcmd/strings (deflated 53%)
  adding: chkrootkitcmd/ps (deflated 59%)
  adding: chkrootkitcmd/cut (deflated 53%)
  adding: chkrootkitcmd/uname (deflated 54%)
  adding: chkrootkitcmd/ls (deflated 53%)
  adding: chkrootkitcmd/echo (deflated 56%)
  adding: chkrootkitcmd/id (deflated 55%)
  adding: chkrootkitcmd/egrep (deflated 50%)
  adding: chkrootkitcmd/awk (deflated 52%)
# rm -rf chkrootkitcmd

rootkitをいれられちゃった場合、コマンド自体が書き換えられたりするらしいので、正常なコマンド達のバックアップを取っておこうって話だな。
厳重ね。
実際のところ、サーバ再構築した方が良いかなと思うけど、再構築するは良いけど進入方法調べるの大変そう・・・。

■which
コマンドの場所を調べる為のコマンド。
こんなのあるのかー。
--skip-aliasはそのまんまだろうね。
コマンドの場所を調べるには
cpコマンドみたいなものはパイプで渡すというより、こういう使い方なんだろうねえ。

■chkrootkit -p
ディレクトリを指定する場合くさい。
@IT:chkrootkitで指定できるオプション

■zip -r
-rは再帰的に圧縮ってオプション。
linuxのサンプルサイトでzipが出てくるのは新鮮だ。
zipコマンドのオプション一覧(linux) - Knowledge Database IT



# yum -y install sharutils

コメントでは
mailコマンドでzipファイル添付メールを送信するのに必要なuuencodeコマンドインストール

sharutilsとはなんじゃならほいと検索したら、こんなの出てきた。
技術/sharutilsのuuencode,uudecodeによるBASE64エンコード,デコード - Glamenv-Septzen.net
メールの添付ファイルの形式として、UNIX世界では昔から Unix to Unix encode というエンコードツールが使われて来ました。現在も多くのディストリビューションで "sharutils" というパッケージ名で提供されています。

なるほどー。
ちなみにsharutilsと検索するとやたらセキュリティホールとか出てくるんだけど、大丈夫だろうか?



# uuencode chkrootkitcmd.zip chkrootkitcmd.zip|mail root
# rm -f chkrootkitcmd.zip

zipファイルをエンコードして、解凍時にはchkrootkitcmd.zipというファイル名で解凍したくて、それをrootへメールを送っている。
んで、作業ファイルであるzipファイルを削除。
これをgmailで受け取ると添付ファイルと認識されない。
どうやらメールソフト側がuudecodeに対応して無いくさい。
んー、デコード出来るんなら別に良いんだけど、どうなんだろ。
試してみないといけないな。



とりあえず疲れたのでchkrootkitのインストール関連はこれにて終了。
3時間以上書くのに費やしているけど、意外にこうやって細かくブログに書くのは良いかもしれない。
やっぱブログに書こうとすると調べなくちゃいけないし。
まあ、みんなに有意義な情報とはいかないけど、自分の勉強にはなるな。

続けるべし。

「センゴク」読み始めました

センゴク 1 (1) (ヤングマガジンコミックス)

なかなか面白い。
まだ3巻までしか読んでないけど、やっぱ戦国モノはおもろいなあ。
センゴクは架空の武将なのかな。

信長とか秀吉とかが実際よりも良い人にえ描かれている気がするけど、漫画だからしゃーないわな。
イメージが違ったのは浅井長政の顔だなあ、もっと勇敢でカッコいいイメージだったけど。

「ソラニン」読みました

ソラニン 1 (1) (ヤングサンデーコミックス)

ビレバンで映画化されると一押しされていたので読んでみた。
浅野いにおは「素晴らしい世界」以来だが、相変わらずシリアスに描きたがる作風が若いなあと感じた。

読み終わった後、なんだか映画みたいだなあと思った。
だから、映画化されるってのは納得、というかむしろつまらない位。
主演が宮崎あおいってのも、はまり過ぎていてつまらない感じ。

20代前半に読んでいれば、浅野いにお信者になっていたような気がする。
共感するには少し年を取り過ぎたかなあ。
けど、良い作品だと思う。
なんか、こういうモラトリアルな雰囲気って忘れたくないものね、しんどいけどさ。

「Camera Peopleみんなのまち」読みました

Camera Peopleみんなのまち

構えた被写体に構えたカメラマンだったり、わざとらしい写真だったりするよりも、僕にでも取れそうなちょっと隙のある雑な写真が好き。
そんな素人が撮った写真がたくさん収められている、それも僕にでもいけるような日本全国で撮られた写真の数々。
定期的にこういう本を買いたくなるんだよなあ。
年に1回見直すかどうかって類のものなんだけど、心の栄養に側に置いておきたくなる。

僕も写真撮ろ。

iptablesでsshへのアタック減ったけど、新たなエラーメッセージが

先日iptablesの設定したら、sshへのアタックに関するLogWatchの報告が減った。
iptables設定シェルスクリプト@CentOS5の解析メモ #4 - blog@longkey1.net

 --------------------- SSHD Begin ------------------------

 Users logging in through sshd:
   xxxxxx:
      xxx.xxx.xxx.xxx (プロバイダのホスト名): 2 times
 Received disconnect:
   11: Bye Bye : 38 Time(s)

 **Unmatched Entries**
 fatal: buffer_consume_end: trying to get more bytes than in buffer : 2 time(s)

 ---------------------- SSHD End -------------------------


そんでも38回あるけど許容範囲なんだろうか。
あと、下のエラーメッセージも気になるけど、バッファエラーってことか?

検索してみたら、キーファイルが壊れてるんじゃ?とかってあるんだけど、アクセス出来てるしなー。
buffer_get: trying to get more bytes 21 than in buffer 5 when trying to connect with ssh
Brandon Checketts » Blog Archive » SSH Error: trying to get more bytes 4 than in buffer 0

一度見てみよう。
最後の改行コードとかの問題かも知れないし。

英語のページでしか情報が無いので英語を頑張って読んでいるんだけど、結構文法が適当だったりするなあ。
そんなもんか。
日本語でもかなり崩れているもんな。

FLOSS桜山第25回に行ってきましたよ

勉強会/第25回勉強会 - PukiWiki

なにげに連続出席中。
もう3回ぐらい連続かなあ。
そして何げに名古屋で一番盛り上がっている勉強会の一つな気がする。
人数多かったし。

ということで、ざっくり感想を。


■「Ruby、町おこし(FLOSS庵ひろ)」大橋さん
30分ぐらい遅刻したので、ちゃんと聞けてません。
円頓寺にあるコミュニケーションスペース「庵ひろ」での企画の話。
ちょっと大橋さんの立ち位置が良くわかりませんでした。
多分遅刻したせいだと思いますが、なかなか人を集めるのって難しいのかなと正直思ってしまいました。
けど、ワンデイシェフとかって凄いですね。
日替わりでお店が変わる(月曜日は中華、火曜日はイタリアン)とかだと、面白いかなと思いましたが、なんだか無駄な気もしますね。
やっぱり企画って難しいですねえ。

■「concrete5 日本語版」Katzさん
話題のCMS「concrete5」の日本語訳に携わっているKatzさんの発表。
concrete5恐るべし。
ウェブ制作会社の仕事がなくなるんじゃないと思う程の完成度。
まさかバージョン管理や差分までみれるとは恐れ入りました。
徹夜明けということで眠そうで呂律が回っていないところもありましたが、映像関係出身の方らしく、プレゼン資料がカッコ良かったです。
あと、あーゆうゆるめのプレゼンって良いなあと思いました。

■「iText and JasperReports on Google App Engine for Java」こういちさん
Javaが使えるようになったGoogle App Engineのお話。
Java使える人カッコ良いなあ。
僕は全然使えないので、憧れました。
Google App Engineは、結構アクセス負荷に対する制限が厳しかったイメージがあるので、サービスとかを不特定多数に提供するのには厳しいかもです。
けど、Python使える人もかっこよく見えるので、僕もやってみたいです。
まずはRubyですが。

■懇親会
始めての懇親会。
凄い人数でした。
セカンドライフで音楽のイベントが盛り上がっているとか、Railsの3.0の話とかいろいろ聴けました。
buritterを大声で連呼されて恥ずかしかったですが、ちょっと嬉しかったです。
何かを作って発表するってことは、意味のあることなんだなとちょっと感じました。
大げさですが。


また参加したいです。
お寿司美味しかったー。

RADWIMPS - RADWIMPS3 -無人島に持っていき忘れた一枚-

RADWIMPS3~無人島に持っていき忘れた一枚~

彼らの音を聴くと、僕らとは違う感性で作られたんだなあとしみじみと感じる。
非常に今っぽい。
なんで、こんなにオシャレというかスマートなんだろう。

今の時点で名古屋のZeppで2daysとかやるぐらいだから、人気があるんだと思う。
音を聴けば納得。
特に「セプテンバーさん」は名曲だな。
どれだけプロが作曲やアレンジに関わっているかわからないけど、自分達で大方作っているなら凄いなあと思う。


radwimps.jp

WEBサーバ構築@Centos5のメモ

WEBサーバ構築@Centos5とタイムゾーン変更のメモ

さて、やっとこさWEBサーバの構築ですわ。
またまたこちらのサイトを参考にやっていきます。
Webサーバー構築(Apache) - CentOSで自宅サーバー構築

とりあえずApacheのインストール。PHPもついでに入れときます。
# yum -y install httpd
# yum -y install php php-mbstring


次に設定ファイルの編集。
これは参考サイト通りにやりましたが、いくつか調べた点。
ServerTokens Prod

Httpヘッダーに含まれるサーバ情報を制御する項目。
Prodが一番少ない情報とのこと。
その他にも、Full、OS、Min、Minor、Majorとかあるみたい。
まあ、Prodで良いだろうねえ。



ServerName longkey1.net :80

サーガ自身のサーバ名とポート番号の設定。
これはBINDがちゃんと動いていれば設定しなくてもいいらしいけど、設定する気が無いので念のため設定。
そりゃそうか。



-Options Indexes FollowSymLinks
+Options Includes ExecCGI FollowSymLinks 

これは最初の設定だと、Indexesでファイルが無い場合はディレクトリ一覧を表示しちゃう設定になっている。
それを削除して、InclidesでSSI、ExecCGIでmod_cgiによるCGIの許可ってこと。
なるー。



SetEnvIf Request_URI "default\.ida" no_log
SetEnvIf Request_URI "cmd\.exe" no_log
SetEnvIf Request_URI "root\.exe" no_log
SetEnvIf Request_URI "Admin\.dll" no_log
SetEnvIf Request_URI "NULL\.IDA" no_log
#SetEnvIf Remote_Addr 192.168.1 no_log
SetEnvIf Remote_Addr 127.0.0.1 no_log
CustomLog logs/access_log combined env=!no_log

ワームからのログを記録しない方法らしい。
上記のほかにも
SetEnvIf Request_URI "^/_mem_bin/" no_log
SetEnvIf Request_URI "^/_vti_bin/" no_log
SetEnvIf Request_URI "^/c/" no_log
SetEnvIf Request_URI "^/d/" no_log
SetEnvIf Request_URI "^/msadc/" no_log
SetEnvIf Request_URI "^/MSADC/" no_log
SetEnvIf Request_URI "^/scripts/" no_log

みたいなのもあるみたいだけど、その辺は運用しながら決めていけば良い気がするな。
あと、ローカルからのアクセスとか無いからコメントに。
自宅サーバとかならではかな。



-ServerSignature On
+ServerSignature Off

エラーメッセージなどのフッターラインにバージョンとか表示する機能。
そら要らんわ。
Offとかの他にEMailとかも設定できるみたい、すげー。



-#AddHandler cgi-script .cgi
+AddHandler cgi-script .cgi .pl .rb

AddHandlerとは「ファイル名の拡張子を指定されたハンドラにマップする」だそうなので、Rubyも追加しといた。



<Directory "/var/www/icons">
-Options Indexes MultiViews
+Options MultiViews
+AllowOverride None
+Order allow,deny
+Allow from all
</Directory>

そもそも「/var/www/icons」は「Apacheがディレクトリ一覧を表示する際にファイル名の隣に表示するアイコンが入っている」とのことなので、設定いらない気がする。
けど、一応やっておくか、なんかの理由で使うことになるかもだから。

Options MultiViewsで拡張子を自動判別してページを表示してくれる。
それも親切すぎる気もするけどねえ。
あと、特に拒否もしてないのか、まあ画像だけだしねえ。
なんとも微妙な項目。



ここまでで編集終わり。



次はなぜか突然perlのpathの指定。
ln -s /usr/bin/perl /usr/local/bin/perl
whereis perl

親切だなあ。
何気に借りた専用サーバでも最初からリンク張られていたわ。
whereisはコマンドのパスを調べるコマンド。
それにて確認。



chown centos. /var/www/html/

まあ、何かと好都合なので。



/etc/rc.d/init.d/httpd start
chkconfig httpd on

これで、適当にテストページあげてみて確認。
意外とシンプルな設定。
PHPとか全然触ってないけど、良いんだろうか。
ちょっと確認しないとな、あとから。



とりあえずこれでWEBサーバの構築はこれまで。
意外とシンプルなのかもApacheってば。

「ウッドストック」読み始めてます

ウッドストック 1 (1) (BUNCH COMICS)

正直サクッと終りそうなんだけど、読んでる。
バンド漫画はやっぱ楽しいなあ。
BECKのが今のところ面白かったかな。
っつうか、あれは大ヒット作か。

「土竜の唄」読み始めてます

土竜の唄 1 (1) (ヤングサンデーコミックス)

極道系やヤンキー系、風俗系はかなり非日常なので読んでしまう。
これは一応警察の潜入捜査の話なんだけど、まあ、すっかり極道に染まっている主人公が良い。

典型的な成り上がりの話なんだけど、ギャグっぽさもあって気楽に楽しく読める。
今の時代の極道もこんな感じなんだろうか。

「GIANT KILLING」読み始めてます

GIANT KILLING 1 (1) (モーニングKC)

この漫画は良い。
絵もカッコ良いし、内容もなかなか面白い!

結構監督目線の漫画なので、そういうのもサッカー漫画では新しいのかもしれない。
主人公は結局誰なんだろうか・・・。

この本を棚に並べてみると、なんだかオシャレな気がするなー。
絵が上手い。
早く続きが読みたい!

「GANTZ」読み始めてます

GANTZ 1 (1) (ヤングジャンプコミックス)

女の子が巨乳だったりしてウハウハな感じに見えるけど、実は結構暗い話。
正直なんでもアリな状態が最初っから続いているので、どうしたくてどうなっていくのかが全く読めない感じ。
こういうのって楽しそうだな、書いている人。

最終的にはハッピーエンドじゃないと終れない気がするので、頑張って欲しいな。

「嬢王」読み始めてます

嬢王 vol.1 (1) (ヤングジャンプコミックス)

キャバクラの話。
んー、途中までは王道な感じ「家庭の事情で風俗で働く→素直な子なのでモテモテ」ぐらいで良かったんだけど、最近はグダグダで盛り上げる為に何でもありな感じになってきて、ようわからん。
なんだか伏線もいまいち有効なのがなさそうだし、どうかなー。

ハッピーエンドでもなんだかなーと思ってしまうし、バッドエンドでもなんだかなーと思ってしまうし、意外と夢落ちで良いかも知れないと思うんだけど、それってどうなんだろなあ。

「彼女を守る51の方法」読み終えてました

彼女を守る51の方法 1 (1) (BUNCH COMICS)

兎丸さんが書く女の子が可愛いので好きなのですが、この漫画は社会派な内容が結構面白かった。
こんなに早く終って残念だったなー、書くのが大変だったらしいけど。

ちょっとドラゴンヘッドみたいな感じになってきていたので、この淡白な終わり方は良かったのかもしれない。

「クロスゲーム」読み始めてます

クロスゲーム (1) (少年サンデーコミックス)

ここ最近漫画のエントリーが多いのは、ただ単純に思い出したからです。
そんなに一気に読んでません。

で、クロスゲームですが僕が大好きなあだち充先生ということで、そりゃ読みますとも。
アニメ化もされて、アニメも見てます。

内容はタッチの逆バージョンちっくな感じだけど、そのベタな展開で良いのです。
それで良いのです。

アニメもなかなか良い出来です。
早く新しいの出ないかなー。

「儲けの「しくみ」を原価の「カラクリ」でよむ経済学入門」読みました

なぜ、スーパーの「1万円の売上げ」は「80円の利益」にしかならないのか? 儲けの「しくみ」を原価の「カラクリ」でよむ経済学入門

長いのでタイトル削った。
本当のタイトルは、
なぜ、スーパーの「1万円の売上げ」は「80円の利益」にしかならないのか? 儲けの「しくみ」を原価の「カラクリ」でよむ経済学入門
なげー。

内容はというといろいろ勉強になった。
製造業とかはなかなか儲からないとか、サービス業は人件費が凄いとか、いろんなものの物価が透けて見えるようになる本。
兎に角外れてても良いから、どんどん商品の費用の内訳を計算して行く。
任天堂は凄いとか、ユニクロは凄いとかいろいろわかる。

案外公開されている情報で、いろんなことが推測出来るもんなんだなと関心。

トヨタが思ったより利益率が低いのにはビックリした。
まあ、車業界では高い方なんだろうけどさ。
300万ぐらいの車を売って、9%程度の利益。
一台売ったら、社員1人分ぐらいの給料が出る感じかあ。

逆にヤフーとかは利益率が高かった。
確か40%ぐらいだった気がする。
仕入れるものが無いとこうなるのかもな。

中学校ぐらいまでの数学が分かっていれば、四季報や決算を見ればいろんなことがわかる。
大雑把だとしても、そういう癖を付けておけば、いろいろモノの見方が変わるだろうな。

とにもかくにも、日本は外国に依存しているなあ。
資産が無いと不安だ。
昨日もカンブリア宮殿で出光の社長が出ていたけど、何かしらエネルギー対策考えないと戦争起きるだろうねえ。
水資源とかもっと大事にした方が良いと思うんだけどね、日本。

こうやって豊かに生活できるのは、本当に奇跡的なことだ。
出来るだけ続いて欲しいもんだ。

誠実に質素に生きよう。

NTPサーバ構築@centos5とタイムゾーン変更のメモ

NTPサーバの構築。
例のごとく参考サイトはこちら。
NTPサーバー構築(ntpd) - CentOSで自宅サーバー構築

あんまり最初からズレてなかったけど、Xenの方でやってくれてるのかしら。

結構そのまんま。
ローカルアドレスからの同期は許可しないことに。
自宅サーバならあるかもだけど、今回VPSだしねぇ。
# yum -y install ntp
# vi /etc/ntp.conf

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
-server 0.rhel.pool.ntp.org
-server 1.rhel.pool.ntp.org
-server 2.rhel.pool.ntp.org

+server -4 ntp.nict.jp
+server -4 ntp.jst.mfeed.ad.jp


起動しまーす。
# ntpdate ntp.nict.jp
# /etc/rc.d/init.d/ntpd start
# chkconfig ntpd on
# chkconfig --list ntpd
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off


で、NTPサーバは立ち上がったのですが、タイムゾーンがちがっとるので変更。
Linodeはアメリカのサービスだからしゃーないね。
【メモ】【CentOS】サーバマシンのタイムゾーン変更 - nullpopopo
# rm -f /etc/localtime
# cp -p /usr/share/zoneinfo/Japan /etc/localtime


これでスッキリ爽快。

Linodeに切り替えてみた

かなりの時間を費やしてcoreserverからlinodeへ切り替えてみた。

いろいろ躓いた。

ruby関係のライブラリの更新っぷりにビックリした。
rubygems複数バージョン混在出来るようになっててビックリした。
いや、前からなっていたかもだけど、あんな風になるのかと。

体感速度は少し遅くなったかも。
けど、そんなに感じないので、満足してる。
このエントリーが見えてるってことは、linode上のサイトが見えてるってことです。
(※2009/5/13現在)

愛するブリッターちゃんも引っ越しました。
http://brtr.longkey1.net/
ブリッターのbotも更新頻度を上げました。
※あ~vpsって素晴らしい!!

mysqlのユーザー権限とか、いろいろ考えさせられました。
ということで、また徐々に書いていきたいと思います。

the pillows - GOOD DREAMS

GOOD DREAMS

最近の会社帰りのBGMはpillowsです。
ツタヤで邦楽を借りてきても、なかなかヒットが無い中、大ヒットじゃないけどスマッシュヒットな感じなのが彼ら。
なんとも洗練されていない感じ、そしてどこかだらけている感じがなんだか良い。
いつかYoutubeでライブ映像を見たけど、ダサくて熱い感じがこれまた良かった。

彼らは商業的には大成功しない感じだけど、こういう音はあって欲しいと思うなー。
ライブに行ってみたい。
以外に会社帰りのサラリーマンが多い気がする。

the pillows - MySpace

FTPサーバ構築@Centos5のメモ

本当はPHPの設定をさっさとやった方が良いと思うんだけど、FTPサーバ構築を。

またまた参考サイトはこちら。
FTPサーバー構築(vsftpd) - CentOSで自宅サーバー構築

ProFTPDの方が新しいとのことだけど、参考サイトがこれ使っているのと、自分が持っている本もvsftpdだし、そんなに多くも求めないので。

とりあえずインストール。
もう、基本yumだなあ。
サーバ管理にリソースを費やせるなら良いけど、プライベートでも仕事でもあまり費やせそうに無いので、困った時以外はyumで管理の方が良い気がする。
# yum -y install vsftpd



次は設定ファイル編集。
# vi /etc/vsftpd/vsftpd.conf




細かいところをみていく。
anonymous_enable=NO

まあ、これはデフォだろうねえ。
不特定多数の人に公開なんてすること無いだろうし。



xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO

これは、多分全てのログをvsftpdスタイルで統一して、/var/log/vsftpd.logに書きこみたいが為の設定だと思われる。
まあ、確かにその方がすっきりすると思うので、良いのかな。
ちょっとややこしい。
以下のサイトで表があるので、参考になるかも。
vsftpdの設定(vsftpd.conf)
結局はこちらのサイトを噛み砕いて理解したんだけど。
CentOSLinux ペンギン講座 CentOSのvsftpd設定パラメータ一覧



ascii_upload_enable=YES
ascii_download_enable=YES 

アスキーモードを使う場合は明示的に指定しないといけないとは。



ftpd_banner=Welcome to blah FTP service.

ログイン時に表示されるメッセージの設定。
そんなのいるんか・・・。
設定しないとソフト名とバージョンが表示されるらしい。



chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

どこでも移動されても困るので。
基本自分ひとりしか使わなくても、進入された時のことを考えて。



ls_recurse_enable=YES

-Rオプションを許可するだとか。



use_localtime=YES

無効にしてしまうとGMT時刻で表示されるらしい。



pasv_addr_resolve=YES
pasv_address=longkey1
pasv_min_port=60000
pasv_max_port=60030

パッシブモードの時だけ、このポートだけを使うって事では無いらしい。
必死にFTPクライアントにポート番号を指定してたけど、違うらしい。
これはソフト間で宜しくやってくれるデータ転送用のポート番号ということらしい。
指定することで、iptablesとかの制限も出来るので良いと言うことらしい。
30で足りるのだろうか。



ssl_enable=YES
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem

SSL証明書いるのかー、購入しなくちゃいけないのか?と思ったけど、後から生成する。
えかった。



force_local_logins_ssl=NO
force_local_data_ssl=NO

強制はしない。
というか、出来ない・・・。
FilezillaとSSL絡みでの通信が上手くいってないので。



次にchroot_listの作成。
自分のホームディレクトリ以上への移動できるユーザーのリスト。
echo hoge >> /etc/vsftpd/chroot_list

ここにとりあえず自分のユーザーいれとく。



# cd /etc/pki/tls/certs/
# make vsftpd.pem

証明書を作るんだけど、住所聴かれたりするので質問に答えればOK。
このディレクトリで実行しないと作成できない。
makeコマンドってこういう使い方もあるのね。
汎用コンパイラってことかな。



ここでひとまず終了。
起動とか、登録とかやっとく。
# /etc/rc.d/init.d/vsftpd start

# chkconfig vsftpd on
# chkconfig --list vsftpd




これにて終了。
あー、どこかでSSL絡みのところテストしてみたいなー。
他のクライアントで試してみようかな。

2009 J1リーグ 第12節 名古屋1-1大宮@豊田スタ

09大宮戦@豊田スタジアム1

ここ最近のグランパスの試合は、非常マンネリ化していて
・基本的に運動量少なめでグダグダ
・終盤帳尻合わせの様に得点

こんな感じが続いている。
今回もそうだった。
マギヌンや玉田がいないからってのもわかるんだけど。

■ハユマと杉本
ずーっとハユマが良くないんじゃね?と思ってて、竹内に変えたらどうだろうと思っていたんだけど、それはマギヌンが居ないからという意見に非常に納得した。
それは「キープ出来る人がいないから」って理由の他に「杉本がハユマが上がるスペースを消してしまっている」ということもあるんだと。
これは本当にそうだなと思う。
スタジアムで見ると余計分かるけど、杉本の動きは直線的だし、基本的に再度で張っているし。
スタメンからSHで使うのには厳しいね。

■小川
僕は小川をあまり評価していない。
なぜなら、守備が軽過ぎるから。
チームとして、そういう仕事を軽減されている節があるけども、マギヌンに毛がは得た程度の守備ではどうなんだろうか。
攻撃時のフリーランニングは素晴らしいから、もう少し実効的な守備が出来ると良いのになと思う。
彼が試合で良く消えている理由はまさにそこなんだと思うんだけど。


今日は生まれて始めてカテゴリー1で見た。
凄い値段が高かったけど(\6500)、肌寒く椅子が暖かくなったのは助かったなー。
けど、次は安いところで良いです。

豊スタは楽しいね。
またまたまた行きたい。

RADWIMPS - RADWIMPS4-おかずのごはん-

RADWIMPS4~おかずのごはん~

前作同様スマートな彼ら。
ラップも出来るし、シャウト(軽め)も出来るボーカルは本当に器用。
ラップとロックの融合といえば、「Rage Against the Machine」を連想してしまう自分にジェネレーションギャップを感じてしまう。
もう、全然違うもんなー。

まあ、彼らがロックかと問われれば、なかなか難しいところではあると思うけども、等身大の言葉をメロディにのせて上手に形にしているのも確か。
あまりの完成度に革新性は皆無だけど、時代性は感じるからこれはこれで貴重な存在だと思う。

10歳近く離れているとそりゃあね・・・。
意外と聞いてしまうんよね、日々の営みの中にすっと入ってくる。
なかなか凄いです。

radwimps.jp

PHPの設定@Centos5のメモ

実際ゆっくりと眺めていると、いろんなパラメータがあるものだ。
いつかちゃんと一つずつ検証する必要があるんだろうな。

とりあえず目に付いたところのみ設定。


-expose_php = On
+expose_php = Off

PHPのバージョンとかをheaderに書きこむかどうか。
意外と設定しなかったりする。
意識していなかったけど。
というか、デフォルトがOnって辞めて欲しい。


-log_errors_max_len = 1024
+log_errors_max_len = 4096

これは一応増やしておいたけど。
長くなりすぎると何か問題があるんだろうか。
確固たる根拠の無い数字。


-;error_log = syslog
+error_log = syslog

syslogに集中するのもどう何かなと思うんだけど、ログ監視ソフトもいれているし、妥当なのかもしれん。


default_mimetype = "text/html"
+;default_mimetype = "text/plain"

んー、この辺あいまい。
"test/plain"の方が多少セキュアなんだろうけど、IEにはあまり意味が無いみたいだし。
一回設定したけど、コメントしてしまった。


-; session.use_only_cookies = 1
+ session.use_only_cookies = 1

今のところ。
URLにセッションIDが含まれると何かと厄介だからなあ。
携帯サイトはしょうがないんだろうけど。



-session.hash_function = 0
+session.hash_function = 1

セッションIDを何で作るかという話。
md5使うぐらいならsha1かって話で、正直どうなんだろ。
シビアな環境なら違うんだろうか。


結局あんまり触らなかったな。
どういった状況下によって、設定とは全く違ったものになって来るんだろうなあ。

「ヒストリエ」読み始めました

ヒストリエ vol.1 (アフタヌーンKC)

寄生獣の人の新作。
とっつき難い漫画だなーと思って、読み続けていくといつの間にかその世界にどっぷりつかってしまっている。
あー、寄生獣の時もこんな感じだったのかなと振り返った。

如何せん新刊が出るのが遅すぎるなー。
こら、一巻出るごとに読み返さないといけないな。

歴史的に実在する人の話かもしれないけど、日本史選考していた僕にはよくわからない。
けど、引きの強い面白い漫画。

飛騨・高山方面にブラブラいってきました。

奥飛騨に良い宿があるということで、遊びに行ってきた。

まずは道中。

ひるがの高原SAで休憩。
R0011372
SAのくせに良い景色。

最初は上高地まで行きたかったんだけど、なんだかんだ遅くなったので高山でだらだら過ごすことに。
高山だとファミマもこんな色。
R0011375
茶色い。

産婦人科の看板もシャレとる。
R0011380
何かと古い町並みの雰囲気を壊さないように工夫されている。

入り口が狭い喫茶店。
R0011401
こういうのが良い。

オススメの宿のご飯。
R0011416
でら豪勢。
部屋で食べれたのが嬉しかった。

宿の写真は全然撮ってない。
なんか撮りづらいし、そこまで撮りたいと思わなかったので。

公式サイトで雰囲気分かると思うけど、良い宿だった。
奥飛騨温泉郷 新平湯温泉 宿 花ごころ万喜 公式HP 蔵の貸切露天風呂
貸しきり露天風呂がムーディーだったので、今夜は決めちゃいたいとかって人、オススメ。

次の日、曇りだったので上高地や新穂高ロープウェイは諦めて、近くの平湯大滝へ。
R0011426
寒い。
10度ぐらいだったんじゃないだろうか。
半袖失敗。

そば打ち体験もした。
R0011430
そばはうどんと違い繊細だねえ。
先生が職人でちょっと怖かったけど、ぶっきらぼうなだけで優しそうな人だった。

自分達が打ったそばがお昼ご飯。
R0011442
正直そんなに美味しく無かったかもだけど、達成感が違うのです。

結構時間がかかって4時間ぐらいかかったかなー。
ETC割引のおかげか、車が多かった。


今度は上高地へ行きたい!!

MySQL@Centos5の設定メモ

MySQLのインストールメモ。
さてさてMySQLはOracle傘下に入ってどうなるんでしょうかね。

参考サイト
データベースサーバー構築(MySQL) - CentOSで自宅サーバー構築

とりあえずインストール。
# yum -y install mysql-server



次に設定ファイルの編集。
# vi /etc/my.cnf

default-character-set = utf8

[mysql]
default-character-set = utf8

[mysql]とはなんぞやと思って調べてみたら、公式サイトで。
MySQL :: MySQL 5.1 リファレンスマニュアル :: 3.3.2 オプションファイルの使用
[mysqld]および[mysql]グループは、mysqldサーバおよびmysqlクライアントプログラムにそれぞれ当てはまります。
[client]オプショングループは、すべてのクライアントプログラム(mysqldは除く)によって解読されます。これによって全てのクライアントに当てはまるオプションを指定することが可能になります。

らしい。
これを読む限り[cliant]でも良さそうだけどね。
ちゃんと知りたかったら、一冊本でも読まないかんなこれ。


んで、起動&自動起動の設定も。
# /etc/rc.d/init.d/mysqld start
# chkconfig mysqld on



インストール完了。
次にMySQLの設定にはいる。
# mysql -u root

mysql> select user,host,password from mysql.user;

mysql> set password for root@localhost=password('パスワード');
mysql> set password for root@'longkey1.net'=password('パスワード');
mysql> set password for root@127.0.0.1=password('パスワード');

mysql> select user,host,password from mysql.user;

mysql> show databases;
mysql> drop database test;

mysql> grant all privileges on データベース名.* to ユーザー名@localhost identified by 'パスワード';
mysql> select user from mysql.user where user='ユーザー名';
mysql> flush privileges
mysql> exit

# mysql -uユーザー名 -pパスワード

mysql> create database データベース名
mysql> show databases;
mysql> use データベース名
Database changed

ざーっと書いたけど、大したことはしていない。

1.rootの皆さんのパスワードを設定
2.最初からあるデータベースtestを削除
3.新しく権限を持ったユーザーを作成
4.そのユーザーでデータベースを作成

データベースまでは作って、テーブルとかはphpMyAdminとかで作って良いと思う。

ちゃんとやろうと思ったら、管理者用のユーザーと一般用のユーザーとか作ったりして、使えるコマンドを制限して利用した方が良いと思う。
なにかセキュリティホールがあっても、それである程度防げると思うし。
まあ、ある程度の規模じゃなければやらないかもなあ。
データベース.テーブル名をコンマ区切りで複数指定出来るみたい。
この辺は細かくやろうと思えば、いくらでも出来るな、うむ。
カラムレベルまで出来るとなると、うむむ。
そこまでかっちりやるシステム作ることないだろうけどなー。

ということで、ざっくりこんなもんでどうでしょうかね。

rubyのインストール@Centos5のメモ

よくあるコマンドを叩く。
# yum install ruby ruby-devel rdoc irb


次にgemsをインストール。
# wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
tar xzf rubygems-1.3.1.tgz
cd rubygems-1.3.1
ruby setup.rb
gem -v
gem source add http://gems.github.com


ここまでは順調。
twitterとかsinatraとかのパッケージをインストールして行く。
で、次ではまった。
# gem install mysql
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
        ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***

で、いろんなオプションをつけて実行してみたけど、全部駄目。
gem install mysql -- --with-mysql-config=/usr/bin/mysql_config

とかさ。
エラーメッセージ読んでも全然分からんし。
んで、gccをインストールしなくちゃいけないというのをネットでやっと見つける。
ホント1日がかりだったわ。
# yum install gcc

というか、なぜかインストールされてなかったのね。
入っているもんだと思っていたけども。

gem install mysql -- --with-mysql-config=/usr/bin/mysql_config

これでOKくさい。
デフォルトの設定で全部インストールしているんだから、さくっとここは通って欲しいものなんだけどねえ。


なんだかなー。

花鳥園に行ってきました

ちょこっと前に掛川にある花鳥園にいってきた。
掛川と言えば「シュート!」を思い出す。
久保さんカッコ良かったなあ。

花鳥園なので、花と鳥がたくさんいる。
けど、メインは鳥だと思う。
かなり自由に園内を飛んでいる。

DSC03641
ポポちゃん。
かなりの人気者らしい、テレビにも良く出ている。

DSC03606
ペンギンとかもたくさんいて放し飼い。
僕は昔からペンギンが好きなんだけど、こんなけ自由にされるとありがたみが薄くなった。

DSC03632
まさに鳥って感じ。
こんなくちばしを持っていても放し飼い。
園内を歩いていると、よく鳥に当たられる。


鳥好きの人にはたまらないだろうなあ。
やたら触れ合えるし。
けど、案外見るところが少なく2時間ぐらい居れば一通り見えちゃう感じ。
見終わった後は特に周りに何も無いので、なかなか行き辛いかも。

あ、エコパが近かったから、エスパルス戦に行きがてらとかだと良いなあ。

アーカイブ

2010

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12

2009

2008

2007

コンタクト

longkey1[at]gmail[dot]com