Transact‐SQLでFizzBuzz問題を解いてみた

この記事の所要時間: 046

haruiruka氏
プログラマでFizzBuzz問題を自分で実装した人の割合は高いのだろうか?自分は試したことがない。楽しそうだしやってみようかな。
とつぶやいていたので、気分転換にTransact-SQLで書いてみました。

Read the rest of this entry »

ありがとう ジョブズ

この記事の所要時間: 10

Steve Jobs is Hero.

Apple社は、同社の創業者であり前CEOのスティーブ・ジョブズ氏が10月5日早朝に亡くなったことを発表しました。

Appleは先見と創造性に満ちた天才を失いました。世界は一人の素晴らしい人物を失いました。
スティーブを知り、共に仕事をすることができた幸運な私たちは、大冊な友人と、常にインスピレーションを与えてくれる師を失いました。
スティーブは彼にしか作れなかった会社を残しました。
スティーブの精神は永遠にAppleの基礎であり続けます。

思いや思い出、お悔やみの言葉はこちらへEメールでお送り下さい。 rememberingsteve@apple.com

ありがとう ジョブス

Stay Hungry. Stay Foolish.

Whole Earch Catalog



すっぴんでもかわいいアッキーナはカートレースも凄かった

この記事の所要時間: 027

カートレースの南明奈

今回で放送開始から20年、41回目のTBSの『オールスター感謝祭』のカートレースでアッキーナこと南明奈が完璧なレースで凄すぎると話題になっているそうだ。
Read the rest of this entry »

MacOSXでWebサイト開発しやすいようにDNSサーバを動かしてみた

この記事の所要時間: 415

ローカル環境でサイトの開発をする際にVirtualHostでサイトを立ち上げ、ホスト名をhogehoge.localhostとつけることが多いですが、サイトにアクセスするためには、
・/etc/hostsにURLを記述する
・DNSサーバを用意し、個々のサイトを登録する
・サイトごとに異なるポート番号を振る
などあるかと思います。

以前は、ローカルネットワーク向けにWindows Server 2008 R2でDNSサーバを設置していました(前編後編)が、そのネットワーク外に移動した場合、ネットワークから外れる場合は、/etc/hostsに都度記述していましたが、いちいち登録するのが面倒なので、ローカルマシン内にDNSサーバを立てることにしました。あと、ローカルにキャッシュされるので少なからず名前解決のレスポンスは通常よりは速くなるかと思ったのでw

Read the rest of this entry »

【さくらのVPS】あまりにブルートフォース攻撃がひどいのでDenyHostsを利用して防いでみた

この記事の所要時間: 289

さくらのVPSのサーバにiptablesを利用してファイアーウォールを構築しましたが、SSHへのアクセス(適当なユーザ名・パスワードを使って侵入を試みるブルートフォース攻撃)が多いため、ほぼ毎日レポートに以下のような記録があります。

--------------------- pam_unix Begin ------------------------ 

sshd:
   Authentication Failures:
      root (www2161ub.sakura.ne.jp): 1189 Time(s)
      root (www2340ub.sakura.ne.jp): 160 Time(s)
      unknown (www2340ub.sakura.ne.jp): 100 Time(s)
   Invalid Users:
      Unknown Account: 100 Time(s)


---------------------- pam_unix End ------------------------- 


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


Failed logins from:
   49.212.28.199 (www2161ub.sakura.ne.jp): 1189 times
   49.212.29.134 (www2340ub.sakura.ne.jp): 160 times

Illegal users from:
   49.212.29.134 (www2340ub.sakura.ne.jp): 100 times


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

**Unmatched Entries**
pam_succeed_if(sshd:auth): error retrieving information about user ryan : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user stephanie : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user mike : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user johnson : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user music : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user adam : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user ina : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user alex : 4 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user test : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user webmaster : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user oracle : 9 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user angie : 2 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user nagios : 12 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user visitor : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user ice : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user shoutcast : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user demo : 3 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user media : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user michael : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user bill : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user user1 : 3 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user jacob : 3 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user web : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user lala : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user mythtv : 2 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user build : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user testftp : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user svn : 2 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user fax : 2 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user corrine : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user tv : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user ftp1 : 5 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user ttt : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user zabbix : 2 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user mysql : 2 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user max : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user user : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user jim : 2 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user weblogic : 2 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user contact : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user public : 2 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user postgres : 3 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user aaa : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user amanda : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user usuario : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user ts : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user master : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user office : 2 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user gnax : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user deploy : 1 time(s)
pam_succeed_if(sshd:auth): error retrieving information about user upload : 6 time(s)

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

そこで、DenyHostsというツールを利用してこのような不正アクセスを防ぐようにしました。

ちなみに、DenyHostsとは不正な攻撃を察知して防御するツールで、設定した回数、不成功ログインが繰り返された場合、そのアクセス元のIPアドレスを /etc/hosts.deny に記録し、接続を拒否します。

Read the rest of this entry »