2011年2月6日日曜日

Debian squeezeリリースとFreeBSD

今日、Debianの最新版、squeeze(6.0)がリリースされた。
DebianといえばカーネルはLinuxだったが、今回からはFreeBSDのカーネルを用いたバージョンである、Debian/kFreeBSDも正式サポートされる模様。
DebianということはAPTで全部楽々管理、FreeBSDカーネルということはZFSやJail、PFなどを利用できるようになるかもしれない!…ということで、個人的にはものすごく期待していた。

まだtestingだった時代(といってもここ1〜2週間)に試したところ、ZFSは利用可能、PFは一部のみ、Jailはまだといった感じだった。ZFSに関しては、Debian-Installer側でZFSをルートとしてシステム構築することも容易にできた。
まだまだ機能が不足している感じがしなくもない…が、まぁそこはとりあえず気にせず使ってみようと思う。


・Debian を入手するには
http://www.debian.org/distrib/


マイコミジャーナルの記事で、「Jailも使用できる」と書いてあるのだが、気のせいだろうか…
それとも、私がなにか見逃しているのだろうか…?

2011年1月31日月曜日

新年、そして情報セキュリティスペシャリスト試験に行ってきた…結果

既に1月31日も終わろうとしている訳だが、一応。

昨年の10月に受験した情報セキュリティスペシャリスト試験の結果…


まさかの合格。



午前I 61.20点、午前II 84.00点、午後I 68点、午後II 62点という午前II以外スレスレで合格という、なんとも絶妙なラインだが、合格にはかわりない。
平成21年度春の初級シスアド合格から始まり、21年度秋の基本情報合格、22年度春の応用情報不合格を挽回して22年度秋のセキュスペ合格と、2年間で最上位であるレベル4の試験に合格できたことになる。大学4年の間にレベル4の資格のいずれかを取得するというてきとうな目標だったが、達成することができてしまった。
一番最初にシスアド受験した時は、シスアドですら難しいと思っていたものだが…

ここ2年間、大学で勉強していたのも勿論だが、hachune.net、hachune.orgとしていろいろやってきていたのが非常に大きい気がする。はちゅねさんのセキュリティはまかせろー。

まぁ、これはあくまで通過点。次の目標は…どうしようか。

2010年12月31日金曜日

2010年最後なので

今年のまとめを画像一枚で現してみた。

はちゅねさんに支えられた一年でした。

hachune.net本格運用開始、みくった〜♪界隈のお手伝いなどなど、
一年中はちゅねさんまみれだった気がしなくもない。

その中で、いろんな人にいろいろお世話になりました。
本当にありがとうございました。そして、来年もよろしくお願いします。

それでは、また来年。

2010年12月12日日曜日

短縮URLを展開するRubyスクリプトを作ってみた

なにやら短縮URLを使い、不正なサイトにアクセスさせウィルスに感染させる行為が流行っているらしい(まぁ想定の範囲内だが)。そこで、短縮URLを展開できるrubyスクリプトをちょちょっと作ってみた。


#!/usr/bin/env ruby
#-*- coding: utf-8 -*-

require 'uri'
require 'socket'

uri = URI.parse(ARGV[0])
sock = TCPSocket.open(uri.host, uri.port)
sock.printf("GET %s HTTP/1.1\r\n", uri.path)
sock.printf("Host: %s\r\n\r\n", uri.host)
str = String.new
rsize = 512
while dat = sock.recv(rsize)
str << dat
break if dat.size < rsize
end
sock.close

str.each_line{|line|
puts $1 if line =~ /^Location:\s*(.*)$/
}


HTTPを直打ちしてLocationヘッダの内容を取得してるだけなので、ものすごく単純な上にウィルス感染の心配も無し。
bit.lyやamzn.to、t.co、htn.to、t.hachune.netなど、主要(?)な短縮URLサービスで使えることを確認済み。

以下からダウンロードも可能。
http://file.hachune.net/ex_surl.rb.gz


# これを作った後Google Newsを見ていたら、短縮URL展開サービスみたいのがニュースになっていた件

2010年11月25日木曜日

RubyでPIAPROからファイルを取得するライブラリを作ってみた

余裕がないとは言え、さすがに1ヶ月以上放置するのはいかがなものか、ということで、この間みくった〜♪に取り込まれた(らしい)、RubyでPIAPROからファイルを取得するライブラリを公開してみる。


中身について簡単に説明すると、

・ruby/httpsで認証用クッキー貰ってくる
・HTMLからダウンロードURL抽出
・そのURLとクッキーを利用し、open-uriでファイルをダウンロード

こんな感じ。

実際のコードは、こんな感じになる。
piapro = PIAPRO::Download.new(:user=>"miku", :passwd=>"Mi93kU3KumIKu")
piapro.download_url("http://piapro.jp/download/?view=content_image&id=mikumikumikumiku")



中身を見ると、ハードコードが多くて気持ち悪いとか、いろいろ感じるところはあるが…


ダウンロードはこちらから。
http://file.hachune.net/piapro.rb.gz

2010年10月18日月曜日

情報セキュリティスペシャリスト試験に行ってきた

10月17日に、平成22年度秋期の情報処理技術者試験があったので、またもや受けてきた。
朝4時に起きて山形会場まで車を走らせ、そこから夕方までずっと試験という、毎度のことながら結構ツラい日程。



前回(22年度春期)に受けた応用情報技術者試験(レベル3)が、午前76.25点、午後58.00点で午後2点足らずという絶妙な具合に不合格だったので、今回は思い切ってそれの上位である高度(レベル4)試験を受験することに。

秋に受験できる高度試験は、ITストラテジスト、システムアーキテクト、ネットワークスペシャリスト、情報セキュリティスペシャリスト、ITサービスマネージャの5つ。
ITストラテジスト、システムアーキテクト、ITサービスマネージャは実務が物凄く絡んでくる上に、午後II試験が論述式でかなり難しいので無理、ネットワークスペシャリストはイマイチ低層の部分が理解出来ていないので避け、一番身近で必要でそれなりに理解できている、情報セキュリティスペシャリストを受験することにした。

上に書いたこと以外にも、はちゅねどっとねっとの運用はほとんど自宅サーバで行なっているので、そのセキュリティ面は全て自分自身が管理しなければならず、その為に一定レベルの知識を揃えておくいい機会になる、というのもあった。



高度試験は、多岐選択式(四肢択一)の午前I(高度共通)、午前II(専門)、記述式の午後I、午後IIとあり、応用情報を取得しているか、一度高度試験を受験し、午前Iを通過していれば、2年間は午前Iが免除になる。
私の場合、春の応用情報で見事に落ちたので、午前Iから全ての試験を受験しなければならなかった。

自己採点結果は、
午前I … 30問中18問正解でギリギリ60点…?
午前II … 25問中21問正解で余裕

午後の手応えとしては、
午後I … G攻撃ワロタ
午後II … ('A`)

ということで、午前Iと午後II次第な感じだろうか…
午後IのG攻撃はどう見てもGumblarさんの問題で、ニヤニヤしながら問題を解いていた。
また、前日に何故か午後対策として初めて触ったperlの問題が全く出ず、思いっきりヤマが外れて泣くハメに。



大学3年の春に初級システムアドミニストレータ、秋に基本情報技術者、4年の春に応用情報技術者、秋に情報セキュリティスペシャリストと、順に情報処理技術者試験を受験してきた訳だが、「よくここまでこれたなぁ…」と思う。
大学自体、情報系でもなく普通の文系大学で、コンピュータ専門に勉強しようとか考えて入った訳でもない。大学2年になるまでプログラミングもしたことは無かったし、ルータの設定すら分からない状態だった。
そんな状態から2年半ぐらいでここまでこれたのだから、やる気出せば結構できるもんなんだなぁと思える。


まぁこれが終着点ってワケでは全く無いので、これからもずーっと続く。
はちゅねさん達と共に。

情報処理推進機構: 情報処理技術者試験
http://www.jitec.jp/

2010年9月30日木曜日

SQLite3-RubyでのSQL文のexecuteについて

よく考えずに適当にSQL文をexecuteするだけでそれなりのものは作れてしまうので、私の場合、ロクに考えずに作ってしまいがちになる。しかし、それなりに大きなもの、重要なものを作ろうとするとそういう訳にはいかないので、executeの基本的な使い方を纏めてみる。


今回サンプルとして利用するテーブルは以下の通り。

db = SQLite3::Database.new("test.db")
db.execute(<<EOS
CREATE TABLE IF NOT EXISTS Vocaloid
(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
Name CHAR UNIQUE NOT NULL,
Ver INTEGER NOT NULL
);
EOS
)



普通にexecuteする


毎度SQL文を組み立て、executeする。
SQLインジェクション対策を全て手動で行わなければならない為、非効率。

db.execute(<<EOS
INSERT INTO Vocaloid
(Name, Ver)
VALUES ('miku', 2 )

)



引数を渡し、executeする


引数に?に対応する値を順番に渡す。
quote等も自動的に処理してくれる模様。

sql = <<EOS
INSERT INTO Vocaloid
(Name, Ver )
VALUES (?, ?)
EOS
db.execute(sql, "miku", 2)



ハッシュ引数を渡し、executeする



sql = <<EOS
INSERT INTO Vocaloid
(Name, Ver )
VALUES (:Name, :Ver)
EOS
db.execute(sql, :Name => "miku", :Ver => 2)



prepareを利用する


SQL文をテンプレートとして用意しておいて、execute時に変数として渡す。

pre = db.prepare(<<EOS
INSERT INTO Vocaloid
(Name, Ver)
VALUES (?, ? )

)

pre.execute("miku", 2)
pre.execute("rin", 2)
pre.execute("meiko", 1)



prepareでハッシュ引数を使う



pre = db.prepare(<<EOS
INSERT INTO Vocaloid
(Name, Ver)
VALUES (:Name, :Ver)
EOS
)

pre.execute(:Name=>"miku", :Ver=>2)
pre.execute(:Name=>"rin", :Ver=>2)
pre.execute(:Name=>"meiko", :Ver=>1)



・参考

http://sqlite-ruby.rubyforge.org/sqlite3/faq.html


http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html